From 33171b81779fa8921ec0a3af60b52ba3c8d6143a Mon Sep 17 00:00:00 2001 From: jjjzyhbx <2605274496@qq.com> Date: Tue, 5 Sep 2023 12:40:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .idea/.gitignore | 8 + .idea/compiler.xml | 19 + .idea/dataSources.xml | 12 + .idea/encodings.xml | 6 + .idea/jarRepositories.xml | 20 + .idea/misc.xml | 14 + .idea/uiDesigner.xml | 124 + .idea/vcs.xml | 6 + README.md | 70 +- pom.xml | 169 + src/main/java/com/Application.java | 22 + .../com/Chlin/blog/Util/ServiceUtils.java | 71 + .../com/Chlin/blog/controller/Controller.java | 55 + .../blog/controller/DepartmentController.java | 21 + .../Chlin/blog/controller/DishController.java | 125 + .../blog/controller/OrderController.java | 79 + .../Chlin/blog/controller/UserController.java | 205 + src/main/java/com/Chlin/blog/dao/DishDao.java | 76 + .../java/com/Chlin/blog/dao/OrderDao.java | 57 + src/main/java/com/Chlin/blog/dao/UserDao.java | 55 + .../java/com/Chlin/blog/dao/userDaotest.java | 23 + .../com/Chlin/blog/entity/Department.java | 54 + src/main/java/com/Chlin/blog/entity/Dish.java | 144 + .../java/com/Chlin/blog/entity/Orders.java | 157 + src/main/java/com/Chlin/blog/entity/User.java | 204 + .../Chlin/blog/mapper/DepartmentMapper.java | 16 + .../com/Chlin/blog/mapper/DishMapper.java | 20 + .../com/Chlin/blog/mapper/OrdersMapper.java | 18 + .../com/Chlin/blog/mapper/UserMapper.java | 20 + .../blog/mapper/xml/DepartmentMapper.xml | 5 + .../com/Chlin/blog/mapper/xml/DishMapper.xml | 5 + .../com/Chlin/blog/mapper/xml/OrderMapper.xml | 5 + .../com/Chlin/blog/mapper/xml/UserMapper.xml | 5 + .../Chlin/blog/service/DepartmentService.java | 16 + .../com/Chlin/blog/service/DishService.java | 25 + .../com/Chlin/blog/service/OrderService.java | 26 + .../com/Chlin/blog/service/UserService.java | 22 + .../service/impl/DepartmentServiceImpl.java | 20 + .../blog/service/impl/DishServiceImpl.java | 192 + .../blog/service/impl/OrderServiceImpl.java | 119 + .../blog/service/impl/UserServiceImpl.java | 160 + .../java/com/Chlin/config/MyBatisConfig.java | 37 + src/main/java/com/Chlin/test.java | 116 + src/main/java/com/ClinCode.java | 98 + src/main/java/com/testMain.java | 74 + src/main/resources/application.yaml | 20 + src/main/resources/public/index.html | 10 + src/main/resources/static/FirstPage.html | 1399 ++ src/main/resources/static/aaa.html | 10 + src/main/resources/static/artic.html | 229 + src/main/resources/static/axios.js | 2595 ++++ src/main/resources/static/concern.html | 298 + src/main/resources/static/favicon.ico | Bin 0 -> 167256 bytes src/main/resources/static/index.css | 1 + src/main/resources/static/index.js | 1 + src/main/resources/static/login.html | 195 + src/main/resources/static/register.html | 163 + src/main/resources/static/vue.js | 12014 ++++++++++++++++ src/main/resources/static/xlsx.core.min.js | 16 + src/main/resources/static/导航.html | 240 + src/test/java/com/demo.java | 60 + ...程导论_课设报告-陈瑶老师组.doc | Bin 0 -> 1291652 bytes 随便交一个看看.txt | 0 64 files changed, 20047 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/dataSources.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 pom.xml create mode 100644 src/main/java/com/Application.java create mode 100644 src/main/java/com/Chlin/blog/Util/ServiceUtils.java create mode 100644 src/main/java/com/Chlin/blog/controller/Controller.java create mode 100644 src/main/java/com/Chlin/blog/controller/DepartmentController.java create mode 100644 src/main/java/com/Chlin/blog/controller/DishController.java create mode 100644 src/main/java/com/Chlin/blog/controller/OrderController.java create mode 100644 src/main/java/com/Chlin/blog/controller/UserController.java create mode 100644 src/main/java/com/Chlin/blog/dao/DishDao.java create mode 100644 src/main/java/com/Chlin/blog/dao/OrderDao.java create mode 100644 src/main/java/com/Chlin/blog/dao/UserDao.java create mode 100644 src/main/java/com/Chlin/blog/dao/userDaotest.java create mode 100644 src/main/java/com/Chlin/blog/entity/Department.java create mode 100644 src/main/java/com/Chlin/blog/entity/Dish.java create mode 100644 src/main/java/com/Chlin/blog/entity/Orders.java create mode 100644 src/main/java/com/Chlin/blog/entity/User.java create mode 100644 src/main/java/com/Chlin/blog/mapper/DepartmentMapper.java create mode 100644 src/main/java/com/Chlin/blog/mapper/DishMapper.java create mode 100644 src/main/java/com/Chlin/blog/mapper/OrdersMapper.java create mode 100644 src/main/java/com/Chlin/blog/mapper/UserMapper.java create mode 100644 src/main/java/com/Chlin/blog/mapper/xml/DepartmentMapper.xml create mode 100644 src/main/java/com/Chlin/blog/mapper/xml/DishMapper.xml create mode 100644 src/main/java/com/Chlin/blog/mapper/xml/OrderMapper.xml create mode 100644 src/main/java/com/Chlin/blog/mapper/xml/UserMapper.xml create mode 100644 src/main/java/com/Chlin/blog/service/DepartmentService.java create mode 100644 src/main/java/com/Chlin/blog/service/DishService.java create mode 100644 src/main/java/com/Chlin/blog/service/OrderService.java create mode 100644 src/main/java/com/Chlin/blog/service/UserService.java create mode 100644 src/main/java/com/Chlin/blog/service/impl/DepartmentServiceImpl.java create mode 100644 src/main/java/com/Chlin/blog/service/impl/DishServiceImpl.java create mode 100644 src/main/java/com/Chlin/blog/service/impl/OrderServiceImpl.java create mode 100644 src/main/java/com/Chlin/blog/service/impl/UserServiceImpl.java create mode 100644 src/main/java/com/Chlin/config/MyBatisConfig.java create mode 100644 src/main/java/com/Chlin/test.java create mode 100644 src/main/java/com/ClinCode.java create mode 100644 src/main/java/com/testMain.java create mode 100644 src/main/resources/application.yaml create mode 100644 src/main/resources/public/index.html create mode 100644 src/main/resources/static/FirstPage.html create mode 100644 src/main/resources/static/aaa.html create mode 100644 src/main/resources/static/artic.html create mode 100644 src/main/resources/static/axios.js create mode 100644 src/main/resources/static/concern.html create mode 100644 src/main/resources/static/favicon.ico create mode 100644 src/main/resources/static/index.css create mode 100644 src/main/resources/static/index.js create mode 100644 src/main/resources/static/login.html create mode 100644 src/main/resources/static/register.html create mode 100644 src/main/resources/static/vue.js create mode 100644 src/main/resources/static/xlsx.core.min.js create mode 100644 src/main/resources/static/导航.html create mode 100644 src/test/java/com/demo.java create mode 100644 第20组_软件工程导论_课设报告-陈瑶老师组.doc delete mode 100644 随便交一个看看.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..744289d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Project exclude paths +/target/ \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..bfc71e1 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..93865aa --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..63e9001 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8ae6dd8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index feeb8a7..1c24ab7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,70 @@ -# 20group +# 这是一个软件工程课设 + +后端部分:Javaspringboot,mybaitsplus, + +前端部分:html,css,JavaScript,vue,axios + +数据库部分,mysql + +## 功能介绍 + +### 1.登录注册 + + + +### 2.权限认证 + + + +### 3.密码token认证 + + + +### 4个人面版 + + + +### 5个人信息编辑 + + + +### 6余额充值 + + + +### 7菜品信息展示 + + + +### 8加入购物车 + + + +### 9支付订单 + + + +### 10删除订单 + + + +### 11模糊搜索菜品 + + + +### 12管理员批量上传以及下单菜品 + + + +### 13管理员封号 + + + +### 14管理员删除菜品 + + + +### 15管理员指定新管理员 + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..6cfab16 --- /dev/null +++ b/pom.xml @@ -0,0 +1,169 @@ + + + 4.0.0 + + org.example + demo + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 16 + 16 + + + + + + + + + + + + + + + + + + + + + 17 + 17 + + + + org.springframework.boot + spring-boot-starter-parent + 2.7.5 + + + + + + + + + mysql + mysql-connector-java + + + + com.google.code.gson + gson + 2.8.5 + + + + + + + + + org.projectlombok + lombok + 1.18.24 + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.projectlombok + lombok + 1.18.24 + + + + + + com.google.code.gson + gson + 2.8.5 + + + + org.projectlombok + lombok + 1.18.24 + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-starter-web + + + + com.baomidou + mybatis-plus-boot-starter + 3.5.2 + + + + + + + + + + junit + junit + + + org.springframework + spring-test + + + + org.assertj + assertj-core + + + org.springframework.boot + spring-boot-test + + + + + + + + + + + + + + org.apache.velocity + velocity + 1.7 + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/Application.java b/src/main/java/com/Application.java new file mode 100644 index 0000000..15be01a --- /dev/null +++ b/src/main/java/com/Application.java @@ -0,0 +1,22 @@ +package com; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +//扫描文件夹 + +@SpringBootApplication +@MapperScan("com.Chlin.blog.mapper") +@ComponentScan("com.Chlin.blog.mapper") +//@ComponentScan("com.Chlin.blog.controller") +@ComponentScan("com.Chlin.blog.dao") +@ComponentScan({"com.Chlin.blog.controller", "com.Chlin.blog.service.impl"}) +//@ComponentScan("com.Chlin.blog.service.impl") +//@ComponentScan("com.Chlin.blog") +public class Application { + public static void main(String[] args) { + SpringApplication.run(Application.class,args); + } +} diff --git a/src/main/java/com/Chlin/blog/Util/ServiceUtils.java b/src/main/java/com/Chlin/blog/Util/ServiceUtils.java new file mode 100644 index 0000000..c6b92e4 --- /dev/null +++ b/src/main/java/com/Chlin/blog/Util/ServiceUtils.java @@ -0,0 +1,71 @@ +package com.Chlin.blog.Util; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.Objects; + +/** + * 服务工具类 + */ +public class ServiceUtils { + //单例模式 + private ServiceUtils(){ + } + public static ServiceUtils getInstance(){ + return new ServiceUtils(); + } + + /** + * 比较两个对象的不同,更新其中一个 + * @param source 源对象 + * @param target 目标对象 + * @return target=source+target + * @throws IllegalAccessException + */ + public static Object copyChangedFields(Object source, Object target) throws IllegalAccessException { + + Class sourceClass = source.getClass(); + Class targetClass = target.getClass(); + + // 两个对象类类型必须相同 + if (!sourceClass.equals(targetClass)) { + return null; + } + + Object copiedTarget = null; + try { + copiedTarget = sourceClass.newInstance(); + } catch (Exception e) { + // 如果目标对象无法实例化,直接返回 + return null; + } + + Field[] fields = sourceClass.getDeclaredFields(); + + fields = Arrays.stream(fields) + .filter(f -> !Modifier.isStatic(f.getModifiers()) || !Modifier.isFinal(f.getModifiers())) + .toArray(Field[]::new); + + for (Field field : fields) { + field.setAccessible(true); + // 获取源对象和目标对象的字段值 + Object sourceValue = field.get(source); + Object targetValue = field.get(target); + + // 比较两个值 + if (!Objects.equals(sourceValue, targetValue)) { + + // 设置不同的值到复制的目标对象 + field.set(copiedTarget, targetValue); + } else { + + // 相同的值也需要设置到复制的目标对象 + field.set(copiedTarget, targetValue); + } + } + + return copiedTarget; + + } +} diff --git a/src/main/java/com/Chlin/blog/controller/Controller.java b/src/main/java/com/Chlin/blog/controller/Controller.java new file mode 100644 index 0000000..726b3f3 --- /dev/null +++ b/src/main/java/com/Chlin/blog/controller/Controller.java @@ -0,0 +1,55 @@ +package com.Chlin.blog.controller; + +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.entity.User; +import com.Chlin.blog.service.OrderService; +import com.Chlin.blog.service.impl.OrderServiceImpl; +import com.google.gson.Gson; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.view.RedirectView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +@RestController +@RequestMapping("/blog") +public class Controller { + + @GetMapping("/hello") + String test(){ + return "0000"; + } + + Gson gson=new Gson(); + @Autowired + OrderService orderService=new OrderServiceImpl(); + + /** + * 添加到购物车操作 + * 1.返回当前的选中的菜, + * 2.获取当前在线操作的用户 + * 3.创造一个订单 + * @param jsonData + * @param request + * @return + */ + @PostMapping("/addShopping") + public ResponseEntity addShopping(@RequestBody String jsonData, HttpServletRequest request){ + System.out.println("加入购物车"); + HttpSession session=request.getSession(); + val onlineUsers = (User)session.getAttribute("onlineUsers"); + System.out.println("加入购物车在线"+onlineUsers.toString()); + Dish dish=gson.fromJson(jsonData,Dish.class); + val order = orderService.createOrder(onlineUsers, dish); + val save = orderService.save(order); + if (save) { + return ResponseEntity.ok("添加成功"); + } else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("添加失败"); + } + } +} diff --git a/src/main/java/com/Chlin/blog/controller/DepartmentController.java b/src/main/java/com/Chlin/blog/controller/DepartmentController.java new file mode 100644 index 0000000..4e0faaf --- /dev/null +++ b/src/main/java/com/Chlin/blog/controller/DepartmentController.java @@ -0,0 +1,21 @@ +package com.Chlin.blog.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@RestController +@RequestMapping("/blog/department") +public class DepartmentController { + +} + diff --git a/src/main/java/com/Chlin/blog/controller/DishController.java b/src/main/java/com/Chlin/blog/controller/DishController.java new file mode 100644 index 0000000..b42c789 --- /dev/null +++ b/src/main/java/com/Chlin/blog/controller/DishController.java @@ -0,0 +1,125 @@ +package com.Chlin.blog.controller; + + +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.entity.Orders; +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.DishMapper; +import com.Chlin.blog.service.DishService; +import com.Chlin.blog.service.OrderService; +import com.Chlin.blog.service.impl.DishServiceImpl; +import com.Chlin.blog.service.impl.OrderServiceImpl; +import com.google.gson.Gson; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ *菜品控制器 + * @author Chlin + * @since 2023-08-29 + */ +@RestController +@RequestMapping("/blog/dish") +public class DishController { + private Gson gson = new Gson(); + + @Autowired + public DishService dishService; + /** + * 新增一个菜 + * @param jsonData + * @return + */ + @PostMapping("/newDish") + public ResponseEntity newDish(@RequestBody String jsonData){ + Dish dish=new Dish(); + dish=gson.fromJson(jsonData,Dish.class); + final val i = dishService.save(dish); + if (i) { + return ResponseEntity.ok("添加成功"); + } else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("添加失败"); + } + } + @PostMapping("/loadDish") + public String loadDish(){ + List list = dishService.list(); + return gson.toJson(list); + } + + @PostMapping("/search") + public String search(@RequestBody String jsonData){ + + Dish dish=gson.fromJson(jsonData,Dish.class); + List dishes = dishService.listByEntity(dish); + return gson.toJson(dishes); + } + @Autowired + OrderService orderService=new OrderServiceImpl(); + /** + * 添加到购物车操作 + * 1.返回当前的选中的菜, + * 2.获取当前在线操作的用户 + * 3.创造一个订单 + * @param jsonData + * @param + * @return + */ + @PostMapping("/addShop") + public ResponseEntity addShopping(@RequestBody String jsonData,HttpServletRequest request){ + //获得在线用户 +// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); +// HttpServletRequest request = attributes.getRequest(); + HttpSession session=request.getSession(); + val onlineUsers = (User)session.getAttribute("onlineUsers"); + + //获得返回的数据,通过dishid查询是否拥有 + Dish dish=gson.fromJson(jsonData,Dish.class); + val dishes = dishService.getById(dish.getId()); + //根据用户和dish,创建一个订单 + val order = orderService.createOrder(onlineUsers, dishes); + //将订单保存到数据库中 + val save = orderService.save(order); + if (save) { + return ResponseEntity.ok("添加成功"); + } else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("添加失败"); + } + } + + @PostMapping("/myDish") + public String loadMyDish(HttpServletRequest request){ + + HttpSession session=request.getSession(); + val onlineUsers = (User)session.getAttribute("onlineUsers"); + //获得当前用户订单 + val orders = orderService.listByUserStudentId(onlineUsers.getId()); + + List list =new ArrayList<>(); + for (Orders orders1: orders + ) { + list.add(orders1.getDishId()); + } + //根据订单获得菜品 + val dishes = dishService.listByIds(list); + return gson.toJson(dishes); + } +} + diff --git a/src/main/java/com/Chlin/blog/controller/OrderController.java b/src/main/java/com/Chlin/blog/controller/OrderController.java new file mode 100644 index 0000000..6d31855 --- /dev/null +++ b/src/main/java/com/Chlin/blog/controller/OrderController.java @@ -0,0 +1,79 @@ +package com.Chlin.blog.controller; + + +import com.Chlin.blog.entity.Orders; +import com.Chlin.blog.entity.User; +import com.Chlin.blog.service.DishService; +import com.Chlin.blog.service.OrderService; +import com.Chlin.blog.service.UserService; +import com.Chlin.blog.service.impl.DishServiceImpl; +import com.Chlin.blog.service.impl.OrderServiceImpl; +import com.Chlin.blog.service.impl.UserServiceImpl; +import com.google.gson.Gson; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.util.Date; + +/** + *

+ * 前端控制器 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@RestController +@RequestMapping("/blog/order") +public class OrderController { + @Autowired + OrderService orderService=new OrderServiceImpl(); + @Autowired + DishService dishService=new DishServiceImpl(); + @Autowired + UserService userService=new UserServiceImpl(); + + Gson gson=new Gson(); + + @PostMapping("/payment1") + public ResponseEntity payment(@RequestBody String json, HttpServletRequest request){ + + HttpSession session=request.getSession(); + User user=(User) session.getAttribute("onlineUsers"); + System.out.println(user.toString()); + //获得当前选中的订单 + Orders orders=gson.fromJson(json,Orders.class); + + //查询数据库中的订单 + Orders orders1 = orderService.listByUseridAndDishId(orders); + + if(user.getBalance().compareTo(orders1.getPaidAmount())>0){ + final val subtract = user.getBalance().subtract(orders1.getAmount()); + user.setBalance(subtract); + //订单完成,设置订单状态,更新订单完成时间 + orders1.setStatus(1); + orders1.setCompleteTime(new Date()); + //跟新用户跟订单状态 + userService.saveOrUpdate(user); + //更新在线用户数据 + session.setAttribute("onlineUsers",user); + //更新订单 + orderService.updateById(orders1); + return ResponseEntity.ok("有订单,正在计算中,支付成功"); + } + else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("余额不足了"); + } + } + +} + diff --git a/src/main/java/com/Chlin/blog/controller/UserController.java b/src/main/java/com/Chlin/blog/controller/UserController.java new file mode 100644 index 0000000..0a08f80 --- /dev/null +++ b/src/main/java/com/Chlin/blog/controller/UserController.java @@ -0,0 +1,205 @@ +package com.Chlin.blog.controller; + + +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.UserMapper; +import com.Chlin.blog.service.impl.UserServiceImpl; +import com.google.gson.Gson; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +/** + *

+ * 前端控制器 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@RestController +@RequestMapping("/blog/user") +public class UserController { + private Gson gson = new Gson(); + @Autowired + private UserMapper userMapper; + private UserServiceImpl userService=new UserServiceImpl(); + +// private void setCookies(String id,String password,Cookie cookie){ +// +// +// } + /** + * 用户登录 + * 接受用户名密码,返回判断是否正确 + * 返回格式{value3:true} + * @return + */ + @PostMapping("/login") + public ResponseEntity login(@RequestBody String jsonData, HttpServletResponse resp) { + User user1=new User(); + User user = gson.fromJson(jsonData, User.class); + System.out.println(user.toString()+"欢迎判断"); + if (userService.login(userMapper, user)) { +// if(user.isRememberpassword()) { +// user1 = loadMassage(); +// System.out.println("在线"+user1.toString()); +// Cookie PasswordCookie = new Cookie("password", user1.getPassword()); +// PasswordCookie.setMaxAge(30 * 24 * 60 * 60); +// // 设置 Cookie 的过期时间为一年 +// resp.addCookie(PasswordCookie); +// } + // 登录成功时设置 Cookie + user1 = loadMassage(); + System.out.println("在线"+user1.toString()); + Cookie PasswordCookie = new Cookie("password", user1.getPassword()); + PasswordCookie.setMaxAge(30 * 24 * 60 * 60); + // 设置 Cookie 的过期时间为一年 + resp.addCookie(PasswordCookie); + Cookie idCookie = new Cookie("id", user1.getStudentId()); + resp.addCookie(idCookie); + +// return "{\"value3\":true}"; + return ResponseEntity.ok("登录成功"); + } else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("登录失败"); +// return "{\"value3\":false}"; + } + } + + /** + * 记住密码, + * 返回密码 + */ + @PostMapping("/remember") + public String rememberPassword(@RequestBody String jsonData){ + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + User user = gson.fromJson(jsonData, User.class); + +// System.out.println(user.getStudentId()+"???"+jsonData); + User user1 = userService.rememberPassword(request, user); + + return gson.toJson(user1); + } + + + /** + * 注册 + */ + @PostMapping("/register") + public String register(@RequestBody String jsonData){ + User user = gson.fromJson(jsonData, User.class); + System.out.println(user.toString()+"+000"); + int register = userService.register(userMapper, user); + if(register!=0){ + return "{\"value4\":true}"; + }else { + return "{\"value4\":false}"; + } + } + + /** + * 主页加载个人信息 + * @return + */ + private User loadMassage(){ + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + HttpSession session = request.getSession(); + User onlineUsers = (User)session.getAttribute("onlineUsers"); + return onlineUsers; + } + @PostMapping("/loadLogin") + public String loadLogin(){ + final val user = loadMassage(); + if(user!=null){ + return gson.toJson(user); + }else { + return ""; + } + } + @PostMapping("/loadMassage") + public String loadMyMassage(){ + return gson.toJson(loadMassage()); + } + + /** + * 一个更新个人信息的控制插件 + * @param jsonData + * @return + */ + @PostMapping("/newUserMassage") + public ResponseEntity upDataMassage(@RequestBody String jsonData) { + User user = gson.fromJson(jsonData, User.class); + System.out.println("+"+user.toString()); + // 执行更新操作 + final val i = userService.upUserMassage(userMapper, user); + + // 根据更新结果返回不同的响应 + if (i!=0) { + return ResponseEntity.ok("修改成功"); + } else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("修改失败"); + } + } + + /** + * 充值 + * @param jsonData + * @return + */ + @PostMapping("/recharge") + public ResponseEntity RechargeMoney(@RequestBody String jsonData){ + User user = gson.fromJson(jsonData, User.class); + System.out.println("+"+user.toString()); + // 执行更新操作 + final val i = userService.upUserBalance(userMapper, user); + // 根据更新结果返回不同的响应 + if (i!=0) { + return ResponseEntity.ok("修改成功"); + } else { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("修改失败"); + } + } + + /** + * 设置管理员 + * @param jsonData + * @return + */ + @PostMapping("/setAdmin") + public ResponseEntity adminSet(@RequestBody String jsonData){ + return ResponseEntity.ok("设置成功"); + } + + /** + * 管理员封号 + * @param jsonData + * @return + */ + @PostMapping("/banUser") + public ResponseEntity adminBanUser(@RequestBody String jsonData){ + return ResponseEntity.ok("设置成功"); + } + + /** + * 用户退出登录 + * @param jsonData + * @return + */ + @PostMapping("/sign") + public ResponseEntity signOut(@RequestBody String jsonData){ + return ResponseEntity.ok("设置成功"); + } +} + diff --git a/src/main/java/com/Chlin/blog/dao/DishDao.java b/src/main/java/com/Chlin/blog/dao/DishDao.java new file mode 100644 index 0000000..fc20362 --- /dev/null +++ b/src/main/java/com/Chlin/blog/dao/DishDao.java @@ -0,0 +1,76 @@ +package com.Chlin.blog.dao; +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.mapper.DishMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 菜单的Dao层 + */ +@Component +public class DishDao { + /** + * 私有构造 + */ + private static DishDao instance; + + private DishDao() { + // 私有构造函数 + } + + public static DishDao getInstance() { + if (instance == null) { + instance = new DishDao(); + } + return instance; + } + + private DishMapper dishMapper; + + public void setDishMapper(DishMapper dishMapper) { + this.dishMapper = dishMapper; + } + + + /** + * 基本crud + */ + + /** + * 查找所有 + * + * @param + * @return + */ + public List selectAll() { + List dishes = dishMapper.selectList(null); + return dishes; + } + + /** + * 新增 + * + * @param + * @param dish + * @return + */ + public int insertDishData(Dish dish) { + return dishMapper.insert(dish); + } + + /** + * 根据id更新 + */ + public int upDataUserMassageById( Dish dish) { + return dishMapper.updateById(dish); + } + + /** + * 根据id删除 + */ + public int deleteUserMassageById(Dish dish) { + return dishMapper.deleteById(dish); + } +} diff --git a/src/main/java/com/Chlin/blog/dao/OrderDao.java b/src/main/java/com/Chlin/blog/dao/OrderDao.java new file mode 100644 index 0000000..8fb13da --- /dev/null +++ b/src/main/java/com/Chlin/blog/dao/OrderDao.java @@ -0,0 +1,57 @@ +package com.Chlin.blog.dao; + +import com.Chlin.blog.entity.Orders; +import com.Chlin.blog.mapper.OrdersMapper; +import java.util.List; + +/** + * 订单的dao层 + */ +public class OrderDao { + /** + * 私有构造 + */ + private OrderDao() { + } + + public static OrderDao getInstance() { + return new OrderDao(); + } + + /** + * 基本crud + */ + + /** + * 查找所有 + * @param + * @return + */ + public List selectAll(OrdersMapper ordersMapper){ + List orders = ordersMapper.selectList(null); + return orders; + } + + /** + * 新增 + * @param ordersMapper + * @param orders + * @return + */ + public int insertOrderData(OrdersMapper ordersMapper, Orders orders){ + return ordersMapper.insert(orders); + } + /** + * 根据id更新 + */ + public int upDataUserMassageById(OrdersMapper ordersMapper, Orders orders){ + return ordersMapper.updateById(orders); + } + + /** + * 根据id删除 + */ + public int deleteUserMassageById(OrdersMapper ordersMapperr, Orders orders){ + return ordersMapperr.deleteById(orders); + } +} diff --git a/src/main/java/com/Chlin/blog/dao/UserDao.java b/src/main/java/com/Chlin/blog/dao/UserDao.java new file mode 100644 index 0000000..b3564a6 --- /dev/null +++ b/src/main/java/com/Chlin/blog/dao/UserDao.java @@ -0,0 +1,55 @@ +package com.Chlin.blog.dao; + +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; + +import java.util.List; + +/** + * 用户跟数据库交互层crud + */ +public class UserDao { + + private UserDao() { + + } + + public static UserDao getInstance() { + return new UserDao(); + } + + /** + * 查找所有 + * @param + * @return + */ + public List selectAll(UserMapper userMapper){ + List users = userMapper.selectList(null); + return users; + } + + /** + * 新增 + * @param userMapper + * @param user + * @return + */ + public int insertUserData(UserMapper userMapper,User user){ + return userMapper.insert(user); + } + /** + * 根据id更新 + */ + public int upDataUserMassageById(UserMapper userMapper,User user){ + return userMapper.updateById(user); + } + + /** + * 根据id删除 + */ + public int deleteUserMassageById(UserMapper userMapper,User user){ + return userMapper.deleteById(user); + } +} diff --git a/src/main/java/com/Chlin/blog/dao/userDaotest.java b/src/main/java/com/Chlin/blog/dao/userDaotest.java new file mode 100644 index 0000000..bb71c4d --- /dev/null +++ b/src/main/java/com/Chlin/blog/dao/userDaotest.java @@ -0,0 +1,23 @@ +package com.Chlin.blog.dao; + +import com.Chlin.blog.mapper.UserMapper; +import lombok.val; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; +import org.springframework.test.context.junit4.SpringRunner; +@RunWith(SpringRunner.class) +@SpringBootTest +public class userDaotest { + + @Autowired + private UserMapper userMapper ; + @Test + public void testone(){ + UserDao userDao=UserDao.getInstance(); + val users = userDao.selectAll(userMapper); + users.forEach(System.out::println); + } +} diff --git a/src/main/java/com/Chlin/blog/entity/Department.java b/src/main/java/com/Chlin/blog/entity/Department.java new file mode 100644 index 0000000..e88ef23 --- /dev/null +++ b/src/main/java/com/Chlin/blog/entity/Department.java @@ -0,0 +1,54 @@ +package com.Chlin.blog.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +//import io.swagger.annotations.ApiModel; +//import io.swagger.annotations.ApiModelProperty; + +/** + *

+ * + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +//@ApiModel(value="Department对象", description="") +public class Department implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String name; + + + public Integer getId() { + return id; + } + + public Department setId(Integer id) { + this.id = id; + return this; + } + + public String getName() { + return name; + } + + public Department setName(String name) { + this.name = name; + return this; + } + + @Override + public String toString() { + return "Department{" + + "id=" + id + + ", name=" + name + + "}"; + } +} diff --git a/src/main/java/com/Chlin/blog/entity/Dish.java b/src/main/java/com/Chlin/blog/entity/Dish.java new file mode 100644 index 0000000..70f1ad3 --- /dev/null +++ b/src/main/java/com/Chlin/blog/entity/Dish.java @@ -0,0 +1,144 @@ +package com.Chlin.blog.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +//import io.swagger.annotations.ApiModel; +//import io.swagger.annotations.ApiModelProperty; + +/** + *

+ * 一个菜品dish类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +//@ApiModel(value="Dish对象", description="") +@Data +public class Dish implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String name; + + private BigDecimal price; + + private Integer categoryId=0; + + private Integer monthlySales; + + private Integer inventory; + +// @ApiModelProperty(value = "状态:0-下架,1-上架") + private Integer status; + + private Date createTime; + + private Date updateTime; + + + public Integer getId() { + return id; + } + + public Dish setId(Integer id) { + this.id = id; + return this; + } + + public String getName() { + return name; + } + + public Dish setName(String name) { + this.name = name; + return this; + } + + public BigDecimal getPrice() { + return price; + } + + public Dish setPrice(BigDecimal price) { + this.price = price; + return this; + } + + public Integer getCategoryId() { + return categoryId; + } + + public Dish setCategoryId(Integer categoryId) { + this.categoryId = categoryId; + return this; + } + + public Integer getMonthlySales() { + return monthlySales; + } + + public Dish setMonthlySales(Integer monthlySales) { + this.monthlySales = monthlySales; + return this; + } + + public Integer getInventory() { + return inventory; + } + + public Dish setInventory(Integer inventory) { + this.inventory = inventory; + return this; + } + + public Integer getStatus() { + return status; + } + + public Dish setStatus(Integer status) { + this.status = status; + return this; + } + + public Date getCreateTime() { + return createTime; + } + + public Dish setCreateTime(Date createTime) { + this.createTime = createTime; + return this; + } + + public Date getUpdateTime() { + return updateTime; + } + + public Dish setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + return this; + } + + @Override + public String toString() { + return "Dish{" + + "id=" + id + + ", name=" + name + + ", price=" + price + + ", categoryId=" + categoryId + + ", monthlySales=" + monthlySales + + ", inventory=" + inventory + + ", status=" + status + + ", createTime=" + createTime + + ", updateTime=" + updateTime + + "}"; + } +} diff --git a/src/main/java/com/Chlin/blog/entity/Orders.java b/src/main/java/com/Chlin/blog/entity/Orders.java new file mode 100644 index 0000000..218f078 --- /dev/null +++ b/src/main/java/com/Chlin/blog/entity/Orders.java @@ -0,0 +1,157 @@ +package com.Chlin.blog.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +//import io.swagger.annotations.ApiModel; +//import io.swagger.annotations.ApiModelProperty; + +/** + *

+ * + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +//@ApiModel(value="Order对象", description="") +public class Orders implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer userId; + + private Integer dishId; + + //购买数量 + private Integer count; + + //单个金额 + private BigDecimal amount; + + //支付金额paid=count+amount + private BigDecimal paidAmount; + +// @ApiModelProperty(value = "状态:0-未付款,1-已付款") + private Integer status; + +// @ApiModelProperty(value = "支付类型:1-余额;2-现金") + private Integer payType; + + private Date completeTime; + + private Date createTime; + + + public Integer getId() { + return id; + } + + public Orders setId(Integer id) { + this.id = id; + return this; + } + + public Integer getUserId() { + return userId; + } + + public Orders setUserId(Integer userId) { + this.userId = userId; + return this; + } + + public Integer getDishId() { + return dishId; + } + + public Orders setDishId(Integer dishId) { + this.dishId = dishId; + return this; + } + + public Integer getCount() { + return count; + } + + public Orders setCount(Integer count) { + this.count = count; + return this; + } + + public BigDecimal getAmount() { + return amount; + } + + public Orders setAmount(BigDecimal amount) { + this.amount = amount; + return this; + } + + public BigDecimal getPaidAmount() { + return paidAmount; + } + + public Orders setPaidAmount(BigDecimal paidAmount) { + this.paidAmount = paidAmount; + return this; + } + + public Integer getStatus() { + return status; + } + + public Orders setStatus(Integer status) { + this.status = status; + return this; + } + + public Integer getPayType() { + return payType; + } + + public Orders setPayType(Integer payType) { + this.payType = payType; + return this; + } + + public Date getCompleteTime() { + return completeTime; + } + + public Orders setCompleteTime(Date completeTime) { + this.completeTime = completeTime; + return this; + } + + public Date getCreateTime() { + return createTime; + } + + public Orders setCreateTime(Date createTime) { + this.createTime = createTime; + return this; + } + + @Override + public String toString() { + return "Orders{" + + "id=" + id + + ", userId=" + userId + + ", dishId=" + dishId + + ", count=" + count + + ", amount=" + amount + + ", paidAmount=" + paidAmount + + ", status=" + status + + ", payType=" + payType + + ", completeTime=" + completeTime + + ", createTime=" + createTime + + "}"; + } +} diff --git a/src/main/java/com/Chlin/blog/entity/User.java b/src/main/java/com/Chlin/blog/entity/User.java new file mode 100644 index 0000000..b7ae552 --- /dev/null +++ b/src/main/java/com/Chlin/blog/entity/User.java @@ -0,0 +1,204 @@ +package com.Chlin.blog.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +//import io.swagger.annotations.ApiModel; +//import io.swagger.annotations.ApiModelProperty; + +/** + *

+ * + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +//@ApiModel(value="User对象", description="") +public class User implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String username; + + private String password; + + private String realName; + +// @ApiModelProperty(value = "用户类型:0-学生,1-员工") + private Integer type; + + private String studentId; + + private String email; + + private Integer phone; + + private Integer grade; + + private BigDecimal balance; + + private Date registerTime; + + private Date lastLoginTime; + private boolean rememberpassword; + private String signatures; + + public boolean isRememberpassword() { + return rememberpassword; + } + + + public String getSignatures() { + return signatures; + } + + public void setSignatures(String signatures) { + this.signatures = signatures; + } + + // +// public static long getSerialVersionUID() { +// return serialVersionUID; +// } + + public boolean isRememberPassword() { + return rememberpassword; + } + + public void setRememberPassword(boolean rememberPassword) { + this.rememberpassword = rememberPassword; + } + + public Integer getId() { + return id; + } + + public User setId(Integer id) { + this.id = id; + return this; + } + + public String getUsername() { + return username; + } + + public User setUsername(String username) { + this.username = username; + return this; + } + + public String getPassword() { + return password; + } + + public User setPassword(String password) { + this.password = password; + return this; + } + + public String getRealName() { + return realName; + } + + public User setRealName(String realName) { + this.realName = realName; + return this; + } + + public Integer getType() { + return type; + } + + public User setType(Integer type) { + this.type = type; + return this; + } + + public String getStudentId() { + return studentId; + } + + public User setStudentId(String studentId) { + this.studentId = studentId; + return this; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Integer getPhone() { + return phone; + } + + public void setPhone(Integer phone) { + this.phone = phone; + } + + public Integer getGrade() { + return grade; + } + + public User setGrade(Integer grade) { + this.grade = grade; + return this; + } + + public BigDecimal getBalance() { + return balance; + } + + public User setBalance(BigDecimal balance) { + this.balance = balance; + return this; + } + + public Date getRegisterTime() { + return registerTime; + } + + public User setRegisterTime(Date registerTime) { + this.registerTime = registerTime; + return this; + } + + public Date getLastLoginTime() { + return lastLoginTime; + } + + public User setLastLoginTime(Date lastLoginTime) { + this.lastLoginTime = lastLoginTime; + return this; + } + + @Override + public String toString() { + return "User{" + + "id=" + id + + ", username=" + username + + ", password=" + password + + ", realName=" + realName + + ", type=" + type + + ", studentId=" + studentId + + ", email=" + email + + ", phone=" + phone + + ", grade=" + grade + + ", balance=" + balance + + ", signatures=" + signatures + + ", registerTime=" + registerTime + + ", lastLoginTime=" + lastLoginTime + + ", rememberPassword=" + rememberpassword + + "}"; + } +} diff --git a/src/main/java/com/Chlin/blog/mapper/DepartmentMapper.java b/src/main/java/com/Chlin/blog/mapper/DepartmentMapper.java new file mode 100644 index 0000000..4bf4792 --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/DepartmentMapper.java @@ -0,0 +1,16 @@ +package com.Chlin.blog.mapper; + +import com.Chlin.blog.entity.Department; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +public interface DepartmentMapper extends BaseMapper { + +} diff --git a/src/main/java/com/Chlin/blog/mapper/DishMapper.java b/src/main/java/com/Chlin/blog/mapper/DishMapper.java new file mode 100644 index 0000000..fa8fa5b --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/DishMapper.java @@ -0,0 +1,20 @@ +package com.Chlin.blog.mapper; + +import com.Chlin.blog.entity.Dish; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@Repository +//@Mapper +public interface DishMapper extends BaseMapper { + +} diff --git a/src/main/java/com/Chlin/blog/mapper/OrdersMapper.java b/src/main/java/com/Chlin/blog/mapper/OrdersMapper.java new file mode 100644 index 0000000..e5e365d --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/OrdersMapper.java @@ -0,0 +1,18 @@ +package com.Chlin.blog.mapper; + +import com.Chlin.blog.entity.Orders; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@Repository +public interface OrdersMapper extends BaseMapper { + +} diff --git a/src/main/java/com/Chlin/blog/mapper/UserMapper.java b/src/main/java/com/Chlin/blog/mapper/UserMapper.java new file mode 100644 index 0000000..c91b9a4 --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/UserMapper.java @@ -0,0 +1,20 @@ +package com.Chlin.blog.mapper; + +import com.Chlin.blog.entity.User; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@Mapper +@Repository +public interface UserMapper extends BaseMapper { + +} diff --git a/src/main/java/com/Chlin/blog/mapper/xml/DepartmentMapper.xml b/src/main/java/com/Chlin/blog/mapper/xml/DepartmentMapper.xml new file mode 100644 index 0000000..91c3377 --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/xml/DepartmentMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/com/Chlin/blog/mapper/xml/DishMapper.xml b/src/main/java/com/Chlin/blog/mapper/xml/DishMapper.xml new file mode 100644 index 0000000..9aabf0d --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/xml/DishMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/com/Chlin/blog/mapper/xml/OrderMapper.xml b/src/main/java/com/Chlin/blog/mapper/xml/OrderMapper.xml new file mode 100644 index 0000000..aa32a4d --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/xml/OrderMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/com/Chlin/blog/mapper/xml/UserMapper.xml b/src/main/java/com/Chlin/blog/mapper/xml/UserMapper.xml new file mode 100644 index 0000000..7121f5f --- /dev/null +++ b/src/main/java/com/Chlin/blog/mapper/xml/UserMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/com/Chlin/blog/service/DepartmentService.java b/src/main/java/com/Chlin/blog/service/DepartmentService.java new file mode 100644 index 0000000..b857abe --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/DepartmentService.java @@ -0,0 +1,16 @@ +package com.Chlin.blog.service; + +import com.Chlin.blog.entity.Department; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +public interface DepartmentService extends IService { + +} diff --git a/src/main/java/com/Chlin/blog/service/DishService.java b/src/main/java/com/Chlin/blog/service/DishService.java new file mode 100644 index 0000000..892a077 --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/DishService.java @@ -0,0 +1,25 @@ +package com.Chlin.blog.service; + +import com.Chlin.blog.entity.Dish; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 服务类的接口 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +public interface DishService extends IService { + + int insertNewDish(Dish dish); + + List listByEntity(Dish dish); + boolean updateBatchByDishList(List dishList); + Dish listByEntityID(Dish dish); + + +} diff --git a/src/main/java/com/Chlin/blog/service/OrderService.java b/src/main/java/com/Chlin/blog/service/OrderService.java new file mode 100644 index 0000000..4a9a39a --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/OrderService.java @@ -0,0 +1,26 @@ +package com.Chlin.blog.service; + +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.entity.Orders; +import com.Chlin.blog.entity.User; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +public interface OrderService extends IService { + Orders createOrder(User user, Dish dish); + + List listByUserStudentId(Integer intger); + Orders listByUseridAndDishId(Orders orders); + + void setOrder(Orders order); + boolean removeByUseridAndDishId(Integer userid,Integer dishId); +} diff --git a/src/main/java/com/Chlin/blog/service/UserService.java b/src/main/java/com/Chlin/blog/service/UserService.java new file mode 100644 index 0000000..badf659 --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/UserService.java @@ -0,0 +1,22 @@ +package com.Chlin.blog.service; + +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.UserMapper; +import com.baomidou.mybatisplus.extension.service.IService; + +import javax.servlet.http.HttpServletRequest; + +/** + *

+ * 服务类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +public interface UserService extends IService { + boolean login(UserMapper userMapper, User user); + int register(UserMapper userMapper,User user); + User rememberPassword(HttpServletRequest request,User user); + int upUserMassage(UserMapper userMapper,User user); +} diff --git a/src/main/java/com/Chlin/blog/service/impl/DepartmentServiceImpl.java b/src/main/java/com/Chlin/blog/service/impl/DepartmentServiceImpl.java new file mode 100644 index 0000000..9363cbf --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/impl/DepartmentServiceImpl.java @@ -0,0 +1,20 @@ +package com.Chlin.blog.service.impl; + +import com.Chlin.blog.entity.Department; +import com.Chlin.blog.mapper.DepartmentMapper; +import com.Chlin.blog.service.DepartmentService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@Service +public class DepartmentServiceImpl extends ServiceImpl implements DepartmentService { + +} diff --git a/src/main/java/com/Chlin/blog/service/impl/DishServiceImpl.java b/src/main/java/com/Chlin/blog/service/impl/DishServiceImpl.java new file mode 100644 index 0000000..ccda8f5 --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/impl/DishServiceImpl.java @@ -0,0 +1,192 @@ +package com.Chlin.blog.service.impl; + +import com.Chlin.blog.dao.DishDao; +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.mapper.DishMapper; +import com.Chlin.blog.service.DishService; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.function.BiFunction; +import java.util.function.Predicate; + +/** + *

+ * 服务实现类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@Service +public class DishServiceImpl extends ServiceImpl implements DishService { + private DishDao dishDao=DishDao.getInstance(); + + + /** + * 插入一条菜单数据 + * @param dish + * @return + */ + @Override + public int insertNewDish(Dish dish) { + dishDao.setDishMapper(this.getBaseMapper()); + System.out.println(dishDao); + dish.setCreateTime(new Date()); + dish.setUpdateTime(new Date()); + return dishDao.insertDishData(dish); +// return this.getBaseMapper().insert(dish); + } + + /** + * 插入一条 + * @param entity + * @return + */ + @Override + public boolean save(Dish entity) { + entity.setCreateTime(new Date()); + entity.setUpdateTime(new Date()); + return super.save(entity); + } + + /** + * 查询所有 + * @return + */ + @Override + public List list() { + return super.list(); + } + + /** + * 通过id查询 + * @param idList + * @return + */ + @Override + public List listByIds(Collection idList) { + return super.listByIds(idList); + } + + /** + * 构造条件查询 + * @param queryWrapper + * @return + */ + @Override + public List list(Wrapper queryWrapper) { + return super.list(queryWrapper); + } + + /** + * 根据名字或者根据价格查询 + * @param dish + * @return + */ + @Override + public List listByEntity(Dish dish) { + QueryWrapper wrapper = new QueryWrapper<>(); + if(dish.getName() != null){ + wrapper.like("name",dish.getName()); + } + if(dish.getPrice()!=null) { + wrapper.like("price", dish.getPrice()); + } + return list(wrapper); + } + + @Override + public Dish getOne(Wrapper queryWrapper) { + return super.getOne(queryWrapper); + } + + @Override + public Dish getById(Serializable id) { + return super.getById(id); + } + + /** + * 根据名字或者根据价格查询 + * @param dish + * @return + */ + @Override + public Dish listByEntityID(Dish dish) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like("id",dish.getId()); + return getOne(wrapper); + } + + @Override + public boolean update(Dish entity, Wrapper updateWrapper) { + entity.setUpdateTime(new Date()); + return super.update(entity, updateWrapper); + } + +// @Override +// public boolean updateBatchById(Collection entityList) { +// /*更新时间 +// */ +// return super.updateBatchById(entityList); +// } + // 在Service中添加方法 + + /** + * 根据id,批量跟新 + * @param dishList + * @return + */ + @Override + public boolean updateBatchByDishList(List dishList){ + + // 设置更新时间 + dishList.forEach(dish -> { + dish.setUpdateTime(new Date()); + }); + + // 调用父类批量更新方法 + return super.updateBatchById(dishList); + + } + + /** + * 根据id更新 + * @param entity + * @return + */ + @Override + public boolean updateById(Dish entity) { + entity.setUpdateTime(new Date()); + return super.updateById(entity); + } + + /** + * 根据id删除 + * @param entity + * @return + */ + @Override + public boolean removeById(Dish entity) { + return super.removeById(entity); + } + + /** + * 根据id批量删除 + * @param list + * @param useFill + * @return + */ + @Override + public boolean removeByIds(Collection list, boolean useFill) { + return super.removeByIds(list, useFill); + } +} diff --git a/src/main/java/com/Chlin/blog/service/impl/OrderServiceImpl.java b/src/main/java/com/Chlin/blog/service/impl/OrderServiceImpl.java new file mode 100644 index 0000000..4279944 --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/impl/OrderServiceImpl.java @@ -0,0 +1,119 @@ +package com.Chlin.blog.service.impl; + +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.entity.Orders; +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.OrdersMapper; +import com.Chlin.blog.service.OrderService; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ + +/** + * 订单服务, + */ +@Service +public class OrderServiceImpl extends ServiceImpl implements OrderService { + + private Orders orders =new Orders(); + + + @Override + public void setOrder(Orders order) { + orders=order; + } + + public Orders getOrders() { + return orders; + } + + /** + * crud + */ + //创建订单 + + + @Override + public Orders createOrder(User user, Dish dish) { + orders.setUserId(user.getId()); + orders.setDishId(dish.getId()); + orders.setAmount(dish.getPrice()); + orders.setCount(1); + orders.setPaidAmount(dish.getPrice()); + orders.setCreateTime(new Date()); + orders.setPayType(1); + orders.setStatus(0); + return orders; + } + + /** + * 保存一个订单,更新到数据库中 + * @param entity + * @return + */ + @Override + public boolean save(Orders entity) { + //加入购物车等于创建订单,支付等于完成订单 + entity.setStatus(0); + return super.save(entity); + } + + /** + * 更新一个订单 + * @param entity + * @return + */ + @Override + public boolean updateById(Orders entity) { + if(entity.getStatus()!=0){ + entity.setCompleteTime(new Date()); + } + return super.updateById(entity); + } + + /** + * 根据用户id查找他需要的订单 + * @param + * @return + */ + public List listByUserStudentId(Integer userid) { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.like("user_id",userid); + return super.list(queryWrapper); + } + + /** + * 根据用户学号跟订单号删除订单 + * @param + * @return + */ + @Override + public boolean removeByUseridAndDishId(Integer userid,Integer dishId) { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.like("user_id",userid); + queryWrapper.like("dish_id",dishId); + return super.remove(queryWrapper); + } + + @Override + public Orders listByUseridAndDishId(Orders orders) { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.like("user_id",orders.getUserId()); + queryWrapper.like("dish_id",orders.getDishId()); + super.listObjs(queryWrapper).forEach(System.out::println); + return new Orders(); + } +} diff --git a/src/main/java/com/Chlin/blog/service/impl/UserServiceImpl.java b/src/main/java/com/Chlin/blog/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..adec2a5 --- /dev/null +++ b/src/main/java/com/Chlin/blog/service/impl/UserServiceImpl.java @@ -0,0 +1,160 @@ +package com.Chlin.blog.service.impl; + +import com.Chlin.blog.Util.ServiceUtils; +import com.Chlin.blog.dao.UserDao; +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.UserMapper; +import com.Chlin.blog.service.UserService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Chlin + * @since 2023-08-29 + */ +@Service +public class UserServiceImpl extends ServiceImpl implements UserService { + + private UserDao userDao=UserDao.getInstance(); + /** + * login + */ + @Override + public boolean login(UserMapper userMapper, User user){ + // 从数据库查询所有用户 + List users = userDao.selectAll(userMapper); + // 遍历用户列表,查找匹配的用户 + for(User u : users){ + // 判断用户名和密码是否匹配 + if(u.getPassword().equals(user.getPassword())&&u.getStudentId().equals(user.getStudentId())) { + // 找到匹配用户,登录成功 + // 获取当前请求的上下文 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + HttpSession session = request.getSession(); + // 存储登录用户信息到会话 + session.setAttribute("onlineUsers", u); + return true; + } + } + + // 没找到匹配用户,登录失败 + return false; + + } + + /** + * register + * 注册 + */ + @Override + public int register(UserMapper userMapper,User user){ + user.setRegisterTime(new Date()); + user.setLastLoginTime(new Date()); + user.setRealName("student"); + user.setBalance(new BigDecimal(0)); + return userDao.insertUserData(userMapper,user); + } + + /** + * 记住密码 + * @param request + * @param user + * @return + */ + @Override + public User rememberPassword(HttpServletRequest request,User user) { + Cookie[] cookies=request.getCookies(); + String id = null; + String password = null; + if (cookies != null) { + for (Cookie cookie : cookies) { + if (cookie.getName().equals("password")) { + password= cookie.getValue(); +// System.out.println("impl"+"id" +"/"+password); + } + } + if(cookies!=null){ + for (Cookie cookie : cookies) { + if(cookie.getName().equals("id")) { + id=cookie.getValue(); +// System.out.println("impl"+"id" +"/"+id); + } +// System.out.println("impl"+"id" +"/"+user.getStudentId()); +// if(id!=null&&id.equals(user.getStudentId())){ +// user.setPassword(password); +//// System.out.println("impl"+":"+user.toString()); +// user.setRememberPassword(true); +// } + user.setPassword(password); + } + } + } + return user; + } + + + /** + * 更新个人信息 + * @param userMapper + * @param user + * @return + */ + @Override + public int upUserMassage(UserMapper userMapper, User user) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + HttpSession session = request.getSession(); + //更新后台时间 + user.setLastLoginTime(new Date()); + // 存储登录用户信息到会话 + User onlineUsers = (User)session.getAttribute("onlineUsers"); + /** + * 我打对比onlineUsers跟user不同的地方,然后将user与onlineUsers不同的地方更新到onlineUsers中,然后写入ssession,怎么办 + */ + +// final val instance = ServiceUtils.getInstance(); + try { + user=(User)ServiceUtils.copyChangedFields(onlineUsers,user); + session.setAttribute("onlineUsers",user); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return userDao.upDataUserMassageById(userMapper,user); + } + + public int upUserBalance(UserMapper userMapper, User user) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + HttpSession session = request.getSession(); + //更新后台时间 + user.setLastLoginTime(new Date()); + // 存储登录用户信息到会话 + User onlineUsers = (User)session.getAttribute("onlineUsers"); + /** + * 我打对比onlineUsers跟user不同的地方,然后将user与onlineUsers不同的地方更新到onlineUsers中,然后写入ssession,怎么办 + */ + BigDecimal sum = onlineUsers.getBalance().add(user.getBalance()); +// final val instance = ServiceUtils.getInstance(); + onlineUsers.setBalance(sum); + System.out.println("修改后的余额"+onlineUsers.toString()); + return userDao.upDataUserMassageById(userMapper,user); + + + } +} diff --git a/src/main/java/com/Chlin/config/MyBatisConfig.java b/src/main/java/com/Chlin/config/MyBatisConfig.java new file mode 100644 index 0000000..7dd9198 --- /dev/null +++ b/src/main/java/com/Chlin/config/MyBatisConfig.java @@ -0,0 +1,37 @@ +//package com.Chlin.config; +// +//import com.baomidou.mybatisplus.core.injector.ISqlInjector; +//import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; +//import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +//import org.mybatis.spring.annotation.MapperScan; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.context.annotation.Profile; +//import org.springframework.transaction.annotation.EnableTransactionManagement; +// +//@MapperScan("com.Chlin.mapper") +//@EnableTransactionManagement +//@Configuration +//public class MyBatisConfig { +// //注册乐观锁插件 +// @Bean +// public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor(){ +// return new OptimisticLockerInnerInterceptor(); +// } +// +// //分页插件 +// @Bean +// public PaginationInnerInterceptor paginationInnerInterceptor(){ +// return new PaginationInnerInterceptor(); +// } +// +// //逻辑删除插件 +//// @Bean +//// public ISqlInjector sqlInjector(){ +//// return new LogicSqlInjector(); +//// } +// //执行效率插件 +//// @Bean +//// @Profile({"dev,test"}) +//// public +//} diff --git a/src/main/java/com/Chlin/test.java b/src/main/java/com/Chlin/test.java new file mode 100644 index 0000000..30e7df8 --- /dev/null +++ b/src/main/java/com/Chlin/test.java @@ -0,0 +1,116 @@ +package com.Chlin; + +import com.Chlin.blog.entity.Dish; +import com.Chlin.blog.entity.Orders; +import com.Chlin.blog.entity.User; +import com.Chlin.blog.mapper.DishMapper; +import com.Chlin.blog.mapper.UserMapper; +import com.Chlin.blog.service.OrderService; +import com.Chlin.blog.service.impl.DishServiceImpl; +import com.Chlin.blog.service.impl.OrderServiceImpl; +import com.Chlin.blog.service.impl.UserServiceImpl; +import com.google.gson.Gson; +import lombok.val; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.math.BigDecimal; +import java.util.Date; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class test { + @Autowired + private UserMapper userMapper; + private UserServiceImpl userService=new UserServiceImpl(); + @Test + public void testRegister(){ + + User user=new User(); + user.setId(1110); + user.setUsername("xiao"); + user.setPassword("00000000"); + user.setRealName("Joh"); + user.setType(0); + user.setStudentId("00000000"); + user.setEmail("E1234560"); + user.setPhone(2); + user.setGrade(10); + user.setBalance(new BigDecimal("1000.00")); + user.setRegisterTime(new Date()); + user.setLastLoginTime(new Date()); + System.out.println(userService.register(userMapper,user)); + } + @Autowired + public DishServiceImpl dishService; + @Test + public void testDishINsert(){ + Dish dish=new Dish(); + dish.setName("酸汤鱼"); + dish.setInventory(10); + dish.setPrice(new BigDecimal(10)); + dishService.save(dish); + + } + @Test + public void testList(){ + Dish dish=new Dish(); + dish.setName("酸汤鱼"); + dish.setPrice(new BigDecimal(16)); +// dishService.listByEntity(dish).forEach(System.out::println); + dish.setId(1); + dishService.updateById(dish); + } + + @Autowired + OrderService orderService=new OrderServiceImpl(); + @Test + public void testOrder(){ + + User user=new User(); + user.setId(1110); + user.setUsername("xiao"); + user.setPassword("00000000"); + user.setRealName("Joh"); + user.setType(0); + user.setStudentId("00000000"); + user.setEmail("E1234560"); + user.setPhone(2); + user.setGrade(10); + user.setBalance(new BigDecimal("1000.00")); + user.setRegisterTime(new Date()); + user.setLastLoginTime(new Date()); + Dish dish=new Dish(); + dish.setName("酸汤鱼"); + dish.setPrice(new BigDecimal(16)); +// dishService.listByEntity(dish).forEach(System.out::println); + dish.setId(1); + val order = orderService.createOrder(user, dish); + order.setId(2); + orderService.save(order); +// final val dish1 = dishService.listByEntityID(dish); +// final val byId = dishService.getById(dish.getId()); +// System.out.println(byId); +// Orders orders=new Orders(); +// orders.setUserId(2); +// orders.setDishId(2); +// final val orders1 = orderService.listByUseridAndDishId(orders); +// System.out.println(orders1); +// orderService.save(order); + +// orderService.listByUserStudentId(1).forEach(System.out::println); +// orderService.removeByUseridAndDishId(1,1); + + } + Gson gson=new Gson(); + @Test + public void jsonTest(){ + + String jsonData="{\"name\":\"rstyj\",\"price\":1111,\"updateTime\":\"2023-08-31 22:31:33\",\"monthlySales\":3,\"inventory\":0}"; + Dish dish=gson.fromJson(jsonData,Dish.class); + + } +} diff --git a/src/main/java/com/ClinCode.java b/src/main/java/com/ClinCode.java new file mode 100644 index 0000000..4ec2c30 --- /dev/null +++ b/src/main/java/com/ClinCode.java @@ -0,0 +1,98 @@ +//package com; +// +//import com.baomidou.mybatisplus.annotation.DbType; +//import com.baomidou.mybatisplus.annotation.FieldFill; +//import com.baomidou.mybatisplus.generator.AutoGenerator; +// +//import com.baomidou.mybatisplus.generator.config.DataSourceConfig; +//import com.baomidou.mybatisplus.generator.config.GlobalConfig; +// +//import com.baomidou.mybatisplus.generator.config.PackageConfig; +//import com.baomidou.mybatisplus.generator.config.StrategyConfig; +//import com.baomidou.mybatisplus.generator.config.po.TableFill; +//import com.baomidou.mybatisplus.generator.config.rules.DateType; +//import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; +//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +//import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; +//import lombok.val; +// +//import java.sql.Types; +//import java.util.ArrayList; +//import java.util.Collections; +// +///** +// * 代码自动生成器 +// */ +//public class ClinCode { +// public static void main(String[] args) { +// String property = System.getProperty("user.dir"); +// property=property+"/src/main/java"; +//// FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create("url", "username", "password") +//// +//// .globalConfig(builder -> { +//// builder.author("Chlin") // 设置作者 +//// .enableSwagger() // 开启 swagger 模式 +//// .fileOverride() // 覆盖已生成文件 +//// .outputDir("D://"); // 指定输出目录 +//// }); +//// System.out.println(property); +// AutoGenerator autoGenerator = new AutoGenerator(); +// +// //配置策略 +// //全局配置 +// GlobalConfig gc=new GlobalConfig(); +// gc.setAuthor("Chlin"); +// gc.setOutputDir(property); +// gc.setOpen(false); +// gc.setFileOverride(false); +// gc.setServiceName("%sService"); +// gc.setDateType(DateType.ONLY_DATE); +// gc.setSwagger2(true); +// +// autoGenerator.setGlobalConfig(gc); +// +// DataSourceConfig dataSourceConfig=new DataSourceConfig(); +// dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/meal_card_management?characterEncoding=UTF-8&serverTimezone=UTC"); +// dataSourceConfig.setUsername("root"); +// dataSourceConfig.setPassword("2605274496"); +// dataSourceConfig.setDbType(DbType.MYSQL); +// dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); +// +// autoGenerator.setDataSource(dataSourceConfig); +// +// //包配置 +// PackageConfig packageConfig=new PackageConfig(); +// packageConfig.setModuleName("blog"); +// packageConfig.setParent("com.Chlin"); +// packageConfig.setEntity("entity"); +// packageConfig.setService("service"); +// packageConfig.setController("controller"); +// packageConfig.setMapper("mapper"); +// +// autoGenerator.setPackageInfo(packageConfig); +// +// //策略配置 +// StrategyConfig strategyConfig=new StrategyConfig(); +// strategyConfig.setInclude("department","dish","order","user");//要映射的表名 +// strategyConfig.setNaming(NamingStrategy.underline_to_camel); +// strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); +// strategyConfig.setEntityBuilderModel(true); +// strategyConfig.setLogicDeleteFieldName("deleted"); +// +// //自动填充配置 +// TableFill gmtCreate=new TableFill("gmt_create", FieldFill.INSERT); +// TableFill gmtModified=new TableFill("gmt_modified",FieldFill.INSERT_UPDATE); +// ArrayList tableFills=new ArrayList<>(); +// tableFills.add(gmtCreate); +// tableFills.add(gmtModified); +// strategyConfig.setTableFillList(tableFills); +// +// strategyConfig.setVersionFieldName("version"); +// strategyConfig.setRestControllerStyle(true); +// strategyConfig.setControllerMappingHyphenStyle(true); +// +// autoGenerator.setStrategy(strategyConfig); +// +// autoGenerator.execute(); +// } +//} diff --git a/src/main/java/com/testMain.java b/src/main/java/com/testMain.java new file mode 100644 index 0000000..9756187 --- /dev/null +++ b/src/main/java/com/testMain.java @@ -0,0 +1,74 @@ +package com; + +import com.Chlin.blog.entity.User; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.Objects; + +/** + * 用来测试一些工具 + */ +public class testMain { + public static void main(String[] args) { + User user=new User(); + user.setPassword("12345"); + user.setEmail("derthyj"); + user.setId(10); + User user1=new User(); + user1.setId(1); + user1.setPassword("12345"); + user1.setEmail("cfyasgu"); + try { + System.out.println((copyChangedFields(user,user1).toString())); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + public static Object copyChangedFields(Object source, Object target) throws IllegalAccessException { + + Class sourceClass = source.getClass(); + Class targetClass = target.getClass(); + + // 两个对象类类型必须相同 + if (!sourceClass.equals(targetClass)) { + return null; + } + + Object copiedTarget = null; + try { + copiedTarget = targetClass.newInstance(); + } catch (Exception e) { + // 如果目标对象无法实例化,直接返回 + return null; + } + + Field[] fields = sourceClass.getDeclaredFields(); + + fields = Arrays.stream(fields) + .filter(f -> !Modifier.isStatic(f.getModifiers()) || !Modifier.isFinal(f.getModifiers())) + .toArray(Field[]::new); + + for (Field field : fields) { + field.setAccessible(true); + // 获取源对象和目标对象的字段值 + Object sourceValue = field.get(source); + Object targetValue = field.get(target); + + // 比较两个值 + if (!Objects.equals(sourceValue, targetValue)) { + + // 设置不同的值到复制的目标对象 + field.set(copiedTarget, targetValue); + } else { + + // 相同的值也需要设置到复制的目标对象 + field.set(copiedTarget, targetValue); + } + } + + return copiedTarget; + + } +} diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml new file mode 100644 index 0000000..4c7252e --- /dev/null +++ b/src/main/resources/application.yaml @@ -0,0 +1,20 @@ +server: + port: 90 +#spring.profiles.active=dev +spring.datasource.username: root +spring.datasource.password: 2605274496 +spring.datasource.url: jdbc:mysql://localhost:3306/meal_card_management?characterEncoding=UTF-8&serverTimezone=UTC +spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver + +#日志 + +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + global-config: + db-config: + logic-delete-value: 1 + logic-not-delete-value: 0 +#图标 +# spring.mvc.favicon.enabled=false +# spring.web.resources.static-locations=classpath:/static/ \ No newline at end of file diff --git a/src/main/resources/public/index.html b/src/main/resources/public/index.html new file mode 100644 index 0000000..4aebd38 --- /dev/null +++ b/src/main/resources/public/index.html @@ -0,0 +1,10 @@ + + + + + Title + + +hello world + + \ No newline at end of file diff --git a/src/main/resources/static/FirstPage.html b/src/main/resources/static/FirstPage.html new file mode 100644 index 0000000..56906aa --- /dev/null +++ b/src/main/resources/static/FirstPage.html @@ -0,0 +1,1399 @@ + + + + + Title + + + + + + + + +
+ + + + + + + + {{my.username}} + {{my.id}} + {{my.email}} + {{my.balance}} + + {{my.signatures}} + + + + + + 充值 + + + 充值金额: + 充值方式: + + 确认充值 + + + + + + + + + + + + + + + + + + + +
用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
+
结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。
+
+ +
用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
+
结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。
+
+ + +
+ +
+ + + + 发布菜品 + + + + + + + 想要发布的菜名: + 请设置单价: + 请选择数量: + + + + + + + + + + + + + 确认发布 + + + + + + + + + + + + + + + + + + + +
+ + + + 搜索 +
+
+ + + + +
+
+
+ + + 上传菜品的文件 + + +
将文件拖到此处,或点击上传
+
只能上传excel文件,
+
+ +
+ + 退出登录 + +
+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/static/aaa.html b/src/main/resources/static/aaa.html new file mode 100644 index 0000000..2016bab --- /dev/null +++ b/src/main/resources/static/aaa.html @@ -0,0 +1,10 @@ + + + + + Title + + +ergrtehtryjuy + + \ No newline at end of file diff --git a/src/main/resources/static/artic.html b/src/main/resources/static/artic.html new file mode 100644 index 0000000..aec4bf2 --- /dev/null +++ b/src/main/resources/static/artic.html @@ -0,0 +1,229 @@ + + + + + Title + + + + + + + +
+ + + + + + + + + + + + + + + 上一篇 + {{updata?'保存':'修改'}} + + {{shou?'取消收藏':'收藏'}} + 下一篇 + + +
+ + + + \ No newline at end of file diff --git a/src/main/resources/static/axios.js b/src/main/resources/static/axios.js new file mode 100644 index 0000000..7c0b76b --- /dev/null +++ b/src/main/resources/static/axios.js @@ -0,0 +1,2595 @@ +/* axios v0.27.2 | (c) 2022 by Matt Zabriskie */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["axios"] = factory(); + else + root["axios"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./index.js": +/*!******************!*\ + !*** ./index.js ***! + \******************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./lib/axios */ "./lib/axios.js"); + +/***/ }), + +/***/ "./lib/adapters/xhr.js": +/*!*****************************!*\ + !*** ./lib/adapters/xhr.js ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); +var settle = __webpack_require__(/*! ./../core/settle */ "./lib/core/settle.js"); +var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./lib/helpers/cookies.js"); +var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./lib/helpers/buildURL.js"); +var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./lib/core/buildFullPath.js"); +var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./lib/helpers/parseHeaders.js"); +var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./lib/helpers/isURLSameOrigin.js"); +var transitionalDefaults = __webpack_require__(/*! ../defaults/transitional */ "./lib/defaults/transitional.js"); +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./lib/core/AxiosError.js"); +var CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ "./lib/cancel/CanceledError.js"); +var parseProtocol = __webpack_require__(/*! ../helpers/parseProtocol */ "./lib/helpers/parseProtocol.js"); + +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + var responseType = config.responseType; + var onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !responseType || responseType === 'text' || responseType === 'json' ? + request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + var transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = config.responseType; + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken || config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = function(cancel) { + if (!request) { + return; + } + reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel); + request.abort(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + if (!requestData) { + requestData = null; + } + + var protocol = parseProtocol(fullPath); + + if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData); + }); +}; + + +/***/ }), + +/***/ "./lib/axios.js": +/*!**********************!*\ + !*** ./lib/axios.js ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./utils */ "./lib/utils.js"); +var bind = __webpack_require__(/*! ./helpers/bind */ "./lib/helpers/bind.js"); +var Axios = __webpack_require__(/*! ./core/Axios */ "./lib/core/Axios.js"); +var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./lib/core/mergeConfig.js"); +var defaults = __webpack_require__(/*! ./defaults */ "./lib/defaults/index.js"); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = __webpack_require__(/*! ./cancel/CanceledError */ "./lib/cancel/CanceledError.js"); +axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./lib/cancel/CancelToken.js"); +axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./lib/cancel/isCancel.js"); +axios.VERSION = __webpack_require__(/*! ./env/data */ "./lib/env/data.js").version; +axios.toFormData = __webpack_require__(/*! ./helpers/toFormData */ "./lib/helpers/toFormData.js"); + +// Expose AxiosError class +axios.AxiosError = __webpack_require__(/*! ../lib/core/AxiosError */ "./lib/core/AxiosError.js"); + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = __webpack_require__(/*! ./helpers/spread */ "./lib/helpers/spread.js"); + +// Expose isAxiosError +axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./lib/helpers/isAxiosError.js"); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; + + +/***/ }), + +/***/ "./lib/cancel/CancelToken.js": +/*!***********************************!*\ + !*** ./lib/cancel/CancelToken.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var CanceledError = __webpack_require__(/*! ./CanceledError */ "./lib/cancel/CanceledError.js"); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + + // eslint-disable-next-line func-names + this.promise.then(function(cancel) { + if (!token._listeners) return; + + var i; + var l = token._listeners.length; + + for (i = 0; i < l; i++) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = function(onfulfilled) { + var _resolve; + // eslint-disable-next-line func-names + var promise = new Promise(function(resolve) { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `CanceledError` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Subscribe to the cancel signal + */ + +CancelToken.prototype.subscribe = function subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } +}; + +/** + * Unsubscribe from the cancel signal + */ + +CancelToken.prototype.unsubscribe = function unsubscribe(listener) { + if (!this._listeners) { + return; + } + var index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; + + +/***/ }), + +/***/ "./lib/cancel/CanceledError.js": +/*!*************************************!*\ + !*** ./lib/cancel/CanceledError.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./lib/core/AxiosError.js"); +var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js"); + +/** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function CanceledError(message) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); + +module.exports = CanceledError; + + +/***/ }), + +/***/ "./lib/cancel/isCancel.js": +/*!********************************!*\ + !*** ./lib/cancel/isCancel.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; + + +/***/ }), + +/***/ "./lib/core/Axios.js": +/*!***************************!*\ + !*** ./lib/core/Axios.js ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); +var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./lib/helpers/buildURL.js"); +var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./lib/core/InterceptorManager.js"); +var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./lib/core/dispatchRequest.js"); +var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./lib/core/mergeConfig.js"); +var buildFullPath = __webpack_require__(/*! ./buildFullPath */ "./lib/core/buildFullPath.js"); +var validator = __webpack_require__(/*! ../helpers/validator */ "./lib/helpers/validator.js"); + +var validators = validator.validators; +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + var transitional = config.transitional; + + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + + // filter out skipped interceptors + var requestInterceptorChain = []; + var synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + var responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + var promise; + + if (!synchronousRequestInterceptors) { + var chain = [dispatchRequest, undefined]; + + Array.prototype.unshift.apply(chain, requestInterceptorChain); + chain = chain.concat(responseInterceptorChain); + + promise = Promise.resolve(config); + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; + } + + + var newConfig = config; + while (requestInterceptorChain.length) { + var onFulfilled = requestInterceptorChain.shift(); + var onRejected = requestInterceptorChain.shift(); + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected(error); + break; + } + } + + try { + promise = dispatchRequest(newConfig); + } catch (error) { + return Promise.reject(error); + } + + while (responseInterceptorChain.length) { + promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + var fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: (config || {}).data + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url: url, + data: data + })); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +module.exports = Axios; + + +/***/ }), + +/***/ "./lib/core/AxiosError.js": +/*!********************************!*\ + !*** ./lib/core/AxiosError.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js"); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +function AxiosError(message, code, config, request, response) { + Error.call(this); + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +var prototype = AxiosError.prototype; +var descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED' +// eslint-disable-next-line func-names +].forEach(function(code) { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = function(error, code, config, request, response, customProps) { + var axiosError = Object.create(prototype); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +module.exports = AxiosError; + + +/***/ }), + +/***/ "./lib/core/InterceptorManager.js": +/*!****************************************!*\ + !*** ./lib/core/InterceptorManager.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); + +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; + + +/***/ }), + +/***/ "./lib/core/buildFullPath.js": +/*!***********************************!*\ + !*** ./lib/core/buildFullPath.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./lib/helpers/isAbsoluteURL.js"); +var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./lib/helpers/combineURLs.js"); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; + + +/***/ }), + +/***/ "./lib/core/dispatchRequest.js": +/*!*************************************!*\ + !*** ./lib/core/dispatchRequest.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); +var transformData = __webpack_require__(/*! ./transformData */ "./lib/core/transformData.js"); +var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./lib/cancel/isCancel.js"); +var defaults = __webpack_require__(/*! ../defaults */ "./lib/defaults/index.js"); +var CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ "./lib/cancel/CanceledError.js"); + +/** + * Throws a `CanceledError` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData.call( + config, + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); +}; + + +/***/ }), + +/***/ "./lib/core/mergeConfig.js": +/*!*********************************!*\ + !*** ./lib/core/mergeConfig.js ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js"); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(undefined, config1[prop]); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(undefined, config2[prop]); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(undefined, config1[prop]); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(prop) { + if (prop in config2) { + return getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + return getMergedValue(undefined, config1[prop]); + } + } + + var mergeMap = { + 'url': valueFromConfig2, + 'method': valueFromConfig2, + 'data': valueFromConfig2, + 'baseURL': defaultToConfig2, + 'transformRequest': defaultToConfig2, + 'transformResponse': defaultToConfig2, + 'paramsSerializer': defaultToConfig2, + 'timeout': defaultToConfig2, + 'timeoutMessage': defaultToConfig2, + 'withCredentials': defaultToConfig2, + 'adapter': defaultToConfig2, + 'responseType': defaultToConfig2, + 'xsrfCookieName': defaultToConfig2, + 'xsrfHeaderName': defaultToConfig2, + 'onUploadProgress': defaultToConfig2, + 'onDownloadProgress': defaultToConfig2, + 'decompress': defaultToConfig2, + 'maxContentLength': defaultToConfig2, + 'maxBodyLength': defaultToConfig2, + 'beforeRedirect': defaultToConfig2, + 'transport': defaultToConfig2, + 'httpAgent': defaultToConfig2, + 'httpsAgent': defaultToConfig2, + 'cancelToken': defaultToConfig2, + 'socketPath': defaultToConfig2, + 'responseEncoding': defaultToConfig2, + 'validateStatus': mergeDirectKeys + }; + + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + var merge = mergeMap[prop] || mergeDeepProperties; + var configValue = merge(prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +}; + + +/***/ }), + +/***/ "./lib/core/settle.js": +/*!****************************!*\ + !*** ./lib/core/settle.js ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var AxiosError = __webpack_require__(/*! ./AxiosError */ "./lib/core/AxiosError.js"); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +}; + + +/***/ }), + +/***/ "./lib/core/transformData.js": +/*!***********************************!*\ + !*** ./lib/core/transformData.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); +var defaults = __webpack_require__(/*! ../defaults */ "./lib/defaults/index.js"); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + var context = this || defaults; + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn.call(context, data, headers); + }); + + return data; +}; + + +/***/ }), + +/***/ "./lib/defaults/index.js": +/*!*******************************!*\ + !*** ./lib/defaults/index.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js"); +var normalizeHeaderName = __webpack_require__(/*! ../helpers/normalizeHeaderName */ "./lib/helpers/normalizeHeaderName.js"); +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./lib/core/AxiosError.js"); +var transitionalDefaults = __webpack_require__(/*! ./transitional */ "./lib/defaults/transitional.js"); +var toFormData = __webpack_require__(/*! ../helpers/toFormData */ "./lib/helpers/toFormData.js"); + +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; + +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} + +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(/*! ../adapters/xhr */ "./lib/adapters/xhr.js"); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(/*! ../adapters/http */ "./lib/adapters/xhr.js"); + } + return adapter; +} + +function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +var defaults = { + + transitional: transitionalDefaults, + + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + + var isObjectPayload = utils.isObject(data); + var contentType = headers && headers['Content-Type']; + + var isFileList; + + if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) { + var _FormData = this.env && this.env.FormData; + return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData()); + } else if (isObjectPayload || contentType === 'application/json') { + setContentTypeIfUnset(headers, 'application/json'); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + var transitional = this.transitional || defaults.transitional; + var silentJSONParsing = transitional && transitional.silentJSONParsing; + var forcedJSONParsing = transitional && transitional.forcedJSONParsing; + var strictJSONParsing = !silentJSONParsing && this.responseType === 'json'; + + if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) { + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; + } + } + } + + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: __webpack_require__(/*! ./env/FormData */ "./lib/helpers/null.js") + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*' + } + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +module.exports = defaults; + + +/***/ }), + +/***/ "./lib/defaults/transitional.js": +/*!**************************************!*\ + !*** ./lib/defaults/transitional.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + + +/***/ }), + +/***/ "./lib/env/data.js": +/*!*************************!*\ + !*** ./lib/env/data.js ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = { + "version": "0.27.2" +}; + +/***/ }), + +/***/ "./lib/helpers/bind.js": +/*!*****************************!*\ + !*** ./lib/helpers/bind.js ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; + + +/***/ }), + +/***/ "./lib/helpers/buildURL.js": +/*!*********************************!*\ + !*** ./lib/helpers/buildURL.js ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); + +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; + + +/***/ }), + +/***/ "./lib/helpers/combineURLs.js": +/*!************************************!*\ + !*** ./lib/helpers/combineURLs.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; + + +/***/ }), + +/***/ "./lib/helpers/cookies.js": +/*!********************************!*\ + !*** ./lib/helpers/cookies.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); + + +/***/ }), + +/***/ "./lib/helpers/isAbsoluteURL.js": +/*!**************************************!*\ + !*** ./lib/helpers/isAbsoluteURL.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +}; + + +/***/ }), + +/***/ "./lib/helpers/isAxiosError.js": +/*!*************************************!*\ + !*** ./lib/helpers/isAxiosError.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +module.exports = function isAxiosError(payload) { + return utils.isObject(payload) && (payload.isAxiosError === true); +}; + + +/***/ }), + +/***/ "./lib/helpers/isURLSameOrigin.js": +/*!****************************************!*\ + !*** ./lib/helpers/isURLSameOrigin.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); + + +/***/ }), + +/***/ "./lib/helpers/normalizeHeaderName.js": +/*!********************************************!*\ + !*** ./lib/helpers/normalizeHeaderName.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js"); + +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; + + +/***/ }), + +/***/ "./lib/helpers/null.js": +/*!*****************************!*\ + !*** ./lib/helpers/null.js ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// eslint-disable-next-line strict +module.exports = null; + + +/***/ }), + +/***/ "./lib/helpers/parseHeaders.js": +/*!*************************************!*\ + !*** ./lib/helpers/parseHeaders.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js"); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; +}; + + +/***/ }), + +/***/ "./lib/helpers/parseProtocol.js": +/*!**************************************!*\ + !*** ./lib/helpers/parseProtocol.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = function parseProtocol(url) { + var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +}; + + +/***/ }), + +/***/ "./lib/helpers/spread.js": +/*!*******************************!*\ + !*** ./lib/helpers/spread.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; + + +/***/ }), + +/***/ "./lib/helpers/toFormData.js": +/*!***********************************!*\ + !*** ./lib/helpers/toFormData.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js"); + +/** + * Convert a data object to FormData + * @param {Object} obj + * @param {?Object} [formData] + * @returns {Object} + **/ + +function toFormData(obj, formData) { + // eslint-disable-next-line no-param-reassign + formData = formData || new FormData(); + + var stack = []; + + function convertValue(value) { + if (value === null) return ''; + + if (utils.isDate(value)) { + return value.toISOString(); + } + + if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { + return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + function build(data, parentKey) { + if (utils.isPlainObject(data) || utils.isArray(data)) { + if (stack.indexOf(data) !== -1) { + throw Error('Circular reference detected in ' + parentKey); + } + + stack.push(data); + + utils.forEach(data, function each(value, key) { + if (utils.isUndefined(value)) return; + var fullKey = parentKey ? parentKey + '.' + key : key; + var arr; + + if (value && !parentKey && typeof value === 'object') { + if (utils.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) { + // eslint-disable-next-line func-names + arr.forEach(function(el) { + !utils.isUndefined(el) && formData.append(fullKey, convertValue(el)); + }); + return; + } + } + + build(value, fullKey); + }); + + stack.pop(); + } else { + formData.append(parentKey, convertValue(data)); + } + } + + build(obj); + + return formData; +} + +module.exports = toFormData; + + +/***/ }), + +/***/ "./lib/helpers/validator.js": +/*!**********************************!*\ + !*** ./lib/helpers/validator.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var VERSION = __webpack_require__(/*! ../env/data */ "./lib/env/data.js").version; +var AxiosError = __webpack_require__(/*! ../core/AxiosError */ "./lib/core/AxiosError.js"); + +var validators = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) { + validators[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +var deprecatedWarnings = {}; + +/** + * Transitional option validator + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * @returns {function} + */ +validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return function(value, opt, opts) { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +/** + * Assert object's properties type + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + var keys = Object.keys(options); + var i = keys.length; + while (i-- > 0) { + var opt = keys[i]; + var validator = schema[opt]; + if (validator) { + var value = options[opt]; + var result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} + +module.exports = { + assertOptions: assertOptions, + validators: validators +}; + + +/***/ }), + +/***/ "./lib/utils.js": +/*!**********************!*\ + !*** ./lib/utils.js ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var bind = __webpack_require__(/*! ./helpers/bind */ "./lib/helpers/bind.js"); + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +// eslint-disable-next-line func-names +var kindOf = (function(cache) { + // eslint-disable-next-line func-names + return function(thing) { + var str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); + }; +})(Object.create(null)); + +function kindOfTest(type) { + type = type.toLowerCase(); + return function isKindOf(thing) { + return kindOf(thing) === type; + }; +} + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return Array.isArray(val); +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +var isArrayBuffer = kindOfTest('ArrayBuffer'); + + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; +} + +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (kindOf(val) !== 'object') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; +} + +/** + * Determine if a value is a Date + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +var isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +var isFile = kindOfTest('File'); + +/** + * Determine if a value is a Blob + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +var isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +var isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a FormData + * + * @param {Object} thing The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(thing) { + var pattern = '[object FormData]'; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || + toString.call(thing) === pattern || + (isFunction(thing.toString) && thing.toString() === pattern) + ); +} + +/** + * Determine if a value is a URLSearchParams object + * @function + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +var isURLSearchParams = kindOfTest('URLSearchParams'); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + */ + +function inherits(constructor, superConstructor, props, descriptors) { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + props && Object.assign(constructor.prototype, props); +} + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function} [filter] + * @returns {Object} + */ + +function toFlatObject(sourceObj, destObj, filter) { + var props; + var i; + var prop; + var merged = {}; + + destObj = destObj || {}; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if (!merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = Object.getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +} + +/* + * determines whether a string ends with the characters of a specified string + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * @returns {boolean} + */ +function endsWith(str, searchString, position) { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + var lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +} + + +/** + * Returns new array from array like object + * @param {*} [thing] + * @returns {Array} + */ +function toArray(thing) { + if (!thing) return null; + var i = thing.length; + if (isUndefined(i)) return null; + var arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +} + +// eslint-disable-next-line func-names +var isTypedArray = (function(TypedArray) { + // eslint-disable-next-line func-names + return function(thing) { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array)); + +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM, + inherits: inherits, + toFlatObject: toFlatObject, + kindOf: kindOf, + kindOfTest: kindOfTest, + endsWith: endsWith, + toArray: toArray, + isTypedArray: isTypedArray, + isFileList: isFileList +}; + + +/***/ }) + +/******/ }); +}); +//# sourceMappingURL=axios.map \ No newline at end of file diff --git a/src/main/resources/static/concern.html b/src/main/resources/static/concern.html new file mode 100644 index 0000000..76a92a6 --- /dev/null +++ b/src/main/resources/static/concern.html @@ -0,0 +1,298 @@ + + + + + concern + + + + + + +
+ + + + + + + + + {{his.username}} + {{his.id}} + + + {{his.signature}} + + + + + + + + + + + + + +
简化流程:设计简洁直观的操作流程;
+
清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;
+
帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。
+
+ + + + +
用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
+
结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。
+
+ +
用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
+
结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/static/favicon.ico b/src/main/resources/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..262b8a66f61214a60c13d0bef99fe86d656466c5 GIT binary patch literal 167256 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Π%mHPVtEYR?{Qj1P2F4foWqO!wWm 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/index.css b/src/main/resources/static/index.css new file mode 100644 index 0000000..12b718f --- /dev/null +++ b/src/main/resources/static/index.css @@ -0,0 +1 @@ +@charset "UTF-8";@font-face{font-family:element-icons;src:url(fonts/element-icons.woff) format("woff"),url(fonts/element-icons.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination::after,.el-pagination::before{display:table;content:""}.el-pagination::after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pager li,.el-pagination__editor{-webkit-box-sizing:border-box;text-align:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409EFF}.el-pagination button:disabled{color:#C0C4CC;background-color:#FFF;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat #FFF;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#C0C4CC;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more::before,.el-pagination--small li.more::before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409EFF}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#C0C4CC}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409EFF}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409EFF;color:#FFF}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager .more::before{line-height:30px}.el-pager li{padding:0 4px;background:#FFF;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#C0C4CC}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409EFF}.el-pager li.active{color:#409EFF;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;background:#FFF;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-autocomplete-suggestion,.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409EFF}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #E4E7ED;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#FFF}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#F5F7FA}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#FFF}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button::before{content:'';position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default::before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled)::before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown [disabled]{cursor:not-allowed;color:#bbb}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#FFF;border:1px solid #EBEEF5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #EBEEF5}.el-dropdown-menu__item--divided:before{content:'';height:6px;display:block;margin:0 -20px;background-color:#FFF}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#FFF}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu::after,.el-menu::before{display:table;content:""}.el-menu::after{clear:both}.el-menu.el-menu--horizontal{border-bottom:solid 1px #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409EFF;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#FFF;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409EFF;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #E4E7ED;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409EFF}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409EFF}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{line-height:1;vertical-align:middle;display:inline-block}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#FFF;border:1px solid #DCDFE6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409EFF}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-switch,.el-switch__core{position:relative;vertical-align:middle}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;-webkit-box-shadow:-1px 0 0 0 #409EFF;box-shadow:-1px 0 0 0 #409EFF}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#F2F6FC}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-picker-panel,.el-popover,.el-select-dropdown,.el-table-filter,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:20px;height:20px}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409EFF}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;display:inline-block;width:40px;height:20px;border:1px solid #DCDFE6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#DCDFE6;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#FFF}.el-switch.is-checked .el-switch__core{border-color:#409EFF;background-color:#409EFF}.el-switch.is-checked .el-switch__core::after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #E4E7ED;border-radius:4px;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409EFF;background-color:#FFF}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#F5F7FA}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"\e6da";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#FFF}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#F5F7FA}.el-select-dropdown__item.selected{color:#409EFF;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#E4E7ED}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#C0C4CC}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409EFF}.el-select .el-input .el-select__caret{color:#C0C4CC;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#C0C4CC;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#E4E7ED}.el-range-editor.is-active,.el-range-editor.is-active:hover,.el-select .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#C0C4CC;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-select .el-tag__close.el-icon-close{background-color:#C0C4CC;top:0;color:#FFF;-ms-flex-negative:0;flex-shrink:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#FFF}.el-select .el-tag__close.el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#F5F7FA}.el-table .el-table__cell{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini .el-table__cell{padding:6px 0}.el-table tr{background-color:#FFF}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #EBEEF5}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#FFF}.el-table th.el-table__cell>.cell{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#409EFF}.el-table th.el-table__cell.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-date-table td,.el-date-table td div,.el-table-filter{-webkit-box-sizing:border-box}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #EBEEF5}.el-table--border::after,.el-table--group::after,.el-table::before{content:'';position:absolute;background-color:#EBEEF5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #EBEEF5}.el-table--border .el-table__cell:first-child .cell{padding-left:10px}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #EBEEF5;border-bottom-width:1px}.el-table--border th.el-table__cell,.el-table__fixed-right-patch{border-bottom:1px solid #EBEEF5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#EBEEF5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#FFF}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{border-top:1px solid #EBEEF5;background-color:#F5F7FA;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #EBEEF5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#F5F7FA;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #EBEEF5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#C0C4CC;top:5px}.el-table .sort-caret.descending{border-top-color:#C0C4CC;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409EFF}.el-table .descending .sort-caret.descending{border-top-color:#409EFF}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#FAFAFA}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#F5F7FA}.el-table__body tr.current-row>td.el-table__cell{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #EBEEF5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#F5F7FA}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #EBEEF5;border-radius:2px;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409EFF;color:#FFF}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #EBEEF5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#F2F6FC}.el-table-filter__bottom button:hover{color:#409EFF}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#C0C4CC}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409EFF;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#FFF}.el-date-table td.available:hover{color:#409EFF}.el-date-table td.current:not(.disabled) span{color:#FFF;background-color:#409EFF}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#FFF}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409EFF}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#F5F7FA;opacity:1;cursor:not-allowed;color:#C0C4CC}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#F2F6FC;border-radius:15px}.el-date-table td.selected div:hover{background-color:#F2F6FC}.el-date-table td.selected span{background-color:#409EFF;color:#FFF;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:solid 1px #EBEEF5}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#409EFF;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#FFF}.el-month-table td.disabled .cell{background-color:#F5F7FA;cursor:not-allowed;color:#C0C4CC}.el-month-table td.disabled .cell:hover{color:#C0C4CC}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409EFF}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#F2F6FC}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#FFF}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#FFF;background-color:#409EFF}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409EFF}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409EFF;font-weight:700}.el-year-table td.disabled .cell{background-color:#F5F7FA;cursor:not-allowed;color:#C0C4CC}.el-year-table td.disabled .cell:hover{color:#C0C4CC}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409EFF}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#FFF}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #EBEEF5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409EFF}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409EFF;font-weight:700}.time-select-item.disabled{color:#E4E7ED;cursor:not-allowed}.time-select-item:hover{background-color:#F5F7FA;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#C0C4CC;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input:-ms-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input::-ms-input-placeholder{color:#C0C4CC}.el-date-editor .el-range-input::placeholder{color:#C0C4CC}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#C0C4CC;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#E4E7ED}.el-range-editor.is-disabled input{background-color:#F5F7FA;color:#C0C4CC;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#C0C4CC}.el-range-editor.is-disabled input::placeholder{color:#C0C4CC}.el-range-editor.is-disabled .el-range-separator{color:#C0C4CC}.el-picker-panel{color:#606266;border:1px solid #E4E7ED;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#FFF;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#FFF;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409EFF}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409EFF}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409EFF}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#FFF;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#FFF;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409EFF}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list::after,.el-time-spinner__list::before{content:'';display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#F5F7FA;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#C0C4CC;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #E4E7ED;background-color:#FFF;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #E4E7ED;border-bottom:1px solid #E4E7ED}.el-form-item__label,.el-tabs__item,.el-tabs__nav-wrap.is-scrollable,.el-time-panel__footer,.el-time-range-picker__cell{-webkit-box-sizing:border-box}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409EFF}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #E4E7ED}.el-popover{position:absolute;background:#FFF;min-width:150px;border-radius:4px;border:1px solid #EBEEF5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover,.el-cascader__dropdown,.el-color-picker__panel,.el-message-box,.el-notification{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#FFF;border-radius:4px;border:1px solid #EBEEF5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#F56C6C}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409EFF}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67C23A}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#E6A23C}.el-message-box__status.el-icon-error{color:#F56C6C}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#F56C6C;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#C0C4CC}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#409EFF;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item::after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__content::after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#F56C6C;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:'*';color:#F56C6C;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#F56C6C}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409EFF;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409EFF}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#E4E7ED;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409EFF inset;box-shadow:0 0 2px 2px #409EFF inset;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs--card>.el-tabs__header .el-tabs__active-bar,.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs__item .el-icon-close:hover{background-color:#C0C4CC;color:#FFF}.el-tabs__item.is-active{color:#409EFF}.el-tabs__item:hover{color:#409EFF;cursor:pointer}.el-tabs__item.is-disabled{color:#C0C4CC;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #E4E7ED}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #E4E7ED;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #E4E7ED;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#FFF}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#FFF;border:1px solid #DCDFE6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#F5F7FA;border-bottom:1px solid #E4E7ED;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-col-offset-0,.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409EFF;background-color:#FFF;border-right-color:#DCDFE6;border-left-color:#DCDFE6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409EFF}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#C0C4CC}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-cascader-menu:last-child .el-cascader-node,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #DCDFE6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-button-group>.el-button:not(:last-child),.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #E4E7ED;border-bottom:none;border-top:1px solid #E4E7ED;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #E4E7ED;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #E4E7ED;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #E4E7ED;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #E4E7ED}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #E4E7ED;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #E4E7ED;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #E4E7ED;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#FFF;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409EFF}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#F5F7FA}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409EFF;color:#fff}.el-tree-node__content:hover,.el-upload-list__item:hover{background-color:#F5F7FA}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#C0C4CC;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#C0C4CC}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert,.el-notification,.el-slider__button,.el-slider__stop{background-color:#FFF}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#C0C4CC}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#FFF}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67C23A}.el-alert--success.is-light .el-alert__description{color:#67C23A}.el-alert--success.is-dark{background-color:#67C23A;color:#FFF}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#FFF}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#E6A23C}.el-alert--warning.is-light .el-alert__description{color:#E6A23C}.el-alert--warning.is-dark{background-color:#E6A23C;color:#FFF}.el-alert--error.is-light{background-color:#fef0f0;color:#F56C6C}.el-alert--error.is-light .el-alert__description{color:#F56C6C}.el-alert--error.is-dark{background-color:#F56C6C;color:#FFF}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active,.el-upload iframe{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #EBEEF5;position:fixed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67C23A}.el-notification .el-icon-error{color:#F56C6C}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#E6A23C}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#F5F7FA;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409EFF}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409EFF}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #DCDFE6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #DCDFE6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#E4E7ED;color:#E4E7ED}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#E4E7ED;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #DCDFE6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #DCDFE6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-button-group::after,.el-button-group::before,.el-color-dropdown__main-wrapper::after,.el-link.is-underline:hover:after,.el-page-header__left::after,.el-progress-bar__inner::after,.el-row::after,.el-row::before,.el-slider::after,.el-slider::before,.el-slider__button-wrapper::after,.el-transfer-panel .el-transfer-panel__footer::after,.el-upload-cover::after,.el-upload-list--picture-card .el-upload-list__item-actions::after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#FFF}.el-tooltip__popper.is-light{background:#FFF;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#FFF}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#FFF}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#FFF}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#FFF}.el-slider::after,.el-slider::before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper::after{display:inline-block;vertical-align:middle}.el-slider::after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#E4E7ED;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#C0C4CC}.el-slider__runway.disabled .el-slider__button{border-color:#C0C4CC}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409EFF;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-button,.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-image-viewer__btn,.el-radio,.el-slider__button,.el-step__icon-inner{-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper::after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409EFF;border-radius:50%;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #DCDFE6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#C0C4CC}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409EFF}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-12,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-row,.el-upload-dragger,.el-upload-list__item{position:relative}.el-loading-spinner .el-loading-text{color:#409EFF;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409EFF;stroke-linecap:round}.el-loading-spinner i{color:#409EFF}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{width:0%}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409EFF;color:#409EFF}.el-upload:focus .el-upload-dragger{border-color:#409EFF}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#C0C4CC;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #DCDFE6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409EFF;font-style:normal}.el-upload-dragger:hover{border-color:#409EFF}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409EFF}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67C23A}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409EFF}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409EFF;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409EFF}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#FFF}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#FFF}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#FFF}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#FFF;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#FFF;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#FFF;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner::after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67C23A}.el-progress.is-success .el-progress__text{color:#67C23A}.el-progress.is-warning .el-progress-bar__inner{background-color:#E6A23C}.el-badge__content,.el-progress.is-exception .el-progress-bar__inner{background-color:#F56C6C}.el-progress.is-warning .el-progress__text{color:#E6A23C}.el-progress.is-exception .el-progress__text{color:#F56C6C}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__header,.el-message,.el-step__icon{-webkit-box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#EBEEF5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409EFF;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-progress-bar__inner::after{height:100%}.el-progress-bar__innerText{color:#FFF;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#EBEEF5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67C23A}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#E6A23C}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#F56C6C}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#C0C4CC;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67C23A}.el-message .el-icon-error{color:#F56C6C}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#E6A23C}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{border-radius:10px;color:#FFF;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #FFF}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409EFF}.el-badge__content--success{background-color:#67C23A}.el-badge__content--warning{background-color:#E6A23C}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#F56C6C}.el-card{border-radius:4px;border:1px solid #EBEEF5;background-color:#FFF;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #EBEEF5;box-sizing:border-box}.el-card__body,.el-main{padding:20px}.el-rate{height:20px;line-height:1}.el-carousel__item,.el-carousel__mask{height:100%;position:absolute;width:100%}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#C0C4CC;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#F5F7FA}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#C0C4CC;border-color:#C0C4CC}.el-step__head.is-success{color:#67C23A;border-color:#67C23A}.el-step__head.is-error{color:#F56C6C;border-color:#F56C6C}.el-step__head.is-finish{color:#409EFF;border-color:#409EFF}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#FFF;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step.is-horizontal,.el-step__icon-inner{display:inline-block}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{-webkit-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#C0C4CC}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#C0C4CC}.el-step__title.is-success{color:#67C23A}.el-step__title.is-error{color:#F56C6C}.el-step__title.is-finish{color:#409EFF}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#C0C4CC}.el-step__description.is-success{color:#67C23A}.el-step__description.is-error{color:#F56C6C}.el-step__description.is-finish{color:#409EFF}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{content:'';display:inline-block;position:absolute;height:15px;width:1px;background:#C0C4CC}.el-step.is-simple .el-step__arrow::before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#FFF;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#C0C4CC;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#FFF;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{top:0;left:0;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{top:0;left:0;background-color:#FFF;opacity:.24;-webkit-transition:.2s;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #EBEEF5;border-bottom:1px solid #EBEEF5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#FFF;color:#303133;cursor:pointer;border-bottom:1px solid #EBEEF5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__header.focusing:focus:not(:hover),.el-tag{color:#409EFF}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#FFF;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #EBEEF5}.el-cascader__search-input,.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-cascader,.el-tag{display:inline-block}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#EBEEF5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#FFF;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#EBEEF5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#FFF}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#EBEEF5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#FFF;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#EBEEF5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#FFF}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;height:32px;padding:0 10px;line-height:30px;font-size:12px;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409EFF}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67C23A}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409EFF}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#FFF;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67C23A}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409EFF}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#FFF;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#FFF;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67C23A}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#FFF;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#E6A23C}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#FFF;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#F56C6C}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#FFF;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#C0C4CC}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#C0C4CC}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#FFF;border:1px solid #E4E7ED;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#C0C4CC;color:#FFF}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#F5F7FA}.el-cascader__suggestion-item.is-checked{color:#409EFF;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#C0C4CC}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#C0C4CC}.el-cascader__search-input:-ms-input-placeholder{color:#C0C4CC}.el-cascader__search-input::-ms-input-placeholder{color:#C0C4CC}.el-cascader__search-input::placeholder{color:#C0C4CC}.el-color-predefine{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409EFF;box-shadow:0 0 3px 2px #409EFF}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(rgba(0,0,0,0)));background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409EFF;border-color:#409EFF}.el-color-dropdown__link-btn{cursor:pointer;color:#409EFF;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409EFF,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color,.el-input__inner,.el-textarea__inner,.el-transfer-panel{-webkit-box-sizing:border-box}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-input__inner,.el-textarea__inner{background-image:none;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{font-size:12px;color:#999;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;position:absolute;width:100%;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);color:#FFF;text-align:center;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#FFF;border:1px solid #EBEEF5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#FFF;border:1px solid #DCDFE6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#C0C4CC}.el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea__inner:hover{border-color:#C0C4CC}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea .el-input__count{color:#909399;background:#FFF;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea.is-exceed .el-textarea__inner{border-color:#F56C6C}.el-textarea.is-exceed .el-input__count{color:#F56C6C}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#C0C4CC;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#FFF;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#FFF;border-radius:4px;border:1px solid #DCDFE6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#C0C4CC;text-align:center}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#C0C4CC}.el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input__inner::-ms-input-placeholder{color:#C0C4CC}.el-input__inner::placeholder{color:#C0C4CC}.el-input__inner:hover{border-color:#C0C4CC}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#F56C6C}.el-input.is-exceed .el-input__suffix .el-input__count{color:#F56C6C}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#F5F7FA;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #DCDFE6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-timeline-item__node--primary,.el-transfer__button{background-color:#409EFF}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#FFF;font-size:0}.el-button-group>.el-button+.el-button,.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-timeline,.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #DCDFE6;background-color:#F5F7FA;color:#C0C4CC}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer-panel{border:1px solid #EBEEF5;border-radius:4px;overflow:hidden;background:#FFF;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409EFF}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#F5F7FA;margin:0;padding-left:15px;border-bottom:1px solid #EBEEF5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-container,.el-header{-webkit-box-sizing:border-box}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#FFF;margin:0;padding:0;border-top:1px solid #EBEEF5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-webkit-box;display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.el-container{display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical,.el-drawer,.el-empty,.el-result{-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-container.is-vertical{-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;box-sizing:border-box}.el-footer{padding:0 20px;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #E4E7ED}.el-timeline-item__icon{color:#FFF;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#E4E7ED;border-radius:50%;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-webkit-box;display:-ms-flexbox;-webkit-box-pack:center}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--success{background-color:#67C23A}.el-timeline-item__node--warning{background-color:#E6A23C}.el-timeline-item__node--danger{background-color:#F56C6C}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409EFF}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409EFF}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409EFF}.el-link.el-link--default.is-disabled{color:#C0C4CC}.el-link.el-link--primary{color:#409EFF}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#F56C6C}.el-link.el-link--danger{color:#F56C6C}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67C23A}.el-link.el-link--success{color:#67C23A}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#E6A23C}.el-link.el-link--warning{color:#E6A23C}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#DCDFE6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#FFF;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-image__error,.el-image__placeholder{background:#F5F7FA}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error{display:flex;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#C0C4CC;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;user-select:none}.el-button,.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-radio{-webkit-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff;top:50%}.el-image-viewer__prev{-webkit-transform:translateY(-50%);transform:translateY(-50%);left:40px}.el-image-viewer__next{-webkit-transform:translateY(-50%);transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button,.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#FFF;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#FFF;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#FFF;border-color:#EBEEF5;color:#C0C4CC}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#FFF;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#FFF}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#FFF;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#FFF}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#FFF;background-color:#67C23A;border-color:#67C23A}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#FFF}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#FFF}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#FFF;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67C23A;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67C23A;border-color:#67C23A;color:#FFF}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#FFF;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#FFF;background-color:#E6A23C;border-color:#E6A23C}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#FFF}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#FFF}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#FFF;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#E6A23C;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#E6A23C;border-color:#E6A23C;color:#FFF}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#FFF;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#FFF;background-color:#F56C6C;border-color:#F56C6C}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#FFF}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#FFF}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#FFF;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#F56C6C;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#F56C6C;border-color:#F56C6C;color:#FFF}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#FFF;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#FFF;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#FFF}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#FFF}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#FFF;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#FFF}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#FFF;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini{font-size:12px;border-radius:3px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;border-color:transparent;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover{border-color:transparent}.el-button-group .el-button--danger:last-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:last-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:last-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:last-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:last-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child),.el-button-group>.el-dropdown>.el-button{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:first-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:first-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:first-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:first-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-right-color:rgba(255,255,255,.5)}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #EBEEF5}.el-backtop,.el-page-header{display:-webkit-box;display:-ms-flexbox}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#C0C4CC}.el-backtop,.el-calendar-table td.is-today{color:#409EFF}.el-calendar-table td{border-bottom:1px solid #EBEEF5;border-right:1px solid #EBEEF5;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#F2F8FE}.el-calendar-table tr:first-child td{border-top:1px solid #EBEEF5}.el-calendar-table tr td:first-child{border-left:1px solid #EBEEF5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#F2F8FE}.el-backtop{position:fixed;background-color:#FFF;width:40px;height:40px;border-radius:50%;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#F2F6FC}.el-page-header{display:flex;line-height:24px}.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#DCDFE6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#EBEEF5;cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#DCDFE6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#C0C4CC}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#C0C4CC}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#F2F6FC;border-color:#DCDFE6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#C0C4CC;border-color:#C0C4CC}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409EFF;border-color:#409EFF}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#C0C4CC;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409EFF}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409EFF}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#FFF;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #DCDFE6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#FFF;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409EFF}.el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #FFF;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409EFF}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#FFF;background-color:#409EFF;border-color:#409EFF;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409EFF}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#EBEEF5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409EFF}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-avatar,.el-cascader-panel,.el-radio,.el-radio--medium.is-bordered .el-radio__label,.el-radio__label{font-size:14px}.el-radio{color:#606266;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;outline:0;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-cascader-menu,.el-cascader-menu__list,.el-radio__inner{-webkit-box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:#409EFF}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#EBEEF5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#F5F7FA;border-color:#E4E7ED}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#F5F7FA}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#C0C4CC}.el-radio__input.is-disabled+span.el-radio__label{color:#C0C4CC;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409EFF;background:#409EFF}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409EFF}.el-radio__input.is-focus .el-radio__inner{border-color:#409EFF}.el-radio__inner{border:1px solid #DCDFE6;border-radius:100%;width:14px;height:14px;background-color:#FFF;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#409EFF}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#FFF;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-radio__label{padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px}.el-cascader-panel.is-bordered{border:1px solid #E4E7ED;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#606266;border-right:solid 1px #E4E7ED}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#C0C4CC}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409EFF;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#F5F7FA}.el-cascader-node.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#C0C4CC;width:40px;height:40px;line-height:40px}.el-drawer,.el-drawer__body>*{-webkit-box-sizing:border-box}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-empty__image img,.el-empty__image svg{vertical-align:top;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes rtl-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@keyframes rtl-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@-webkit-keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes ltr-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@keyframes ltr-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@-webkit-keyframes ttb-drawer-in{0%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes ttb-drawer-in{0%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes ttb-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@keyframes ttb-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@-webkit-keyframes btt-drawer-in{0%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes btt-drawer-in{0%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes btt-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}@keyframes btt-drawer-out{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#FFF;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden;outline:0}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.el-popconfirm__main,.el-skeleton__image{display:-ms-flexbox;-webkit-box-align:center;display:-webkit-box}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer__container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:flex;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:flex;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-skeleton__image svg{fill:#DCDDE0;width:22%;height:22%}.el-empty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:40px 0}.el-empty__image{width:160px}.el-empty__image img{user-select:none;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{fill:#DCDDE0}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom,.el-result__title{margin-top:20px}.el-descriptions{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions--mini,.el-descriptions--small{font-size:12px}.el-descriptions__body{color:#606266;background-color:#FFF}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%;table-layout:fixed}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:left;font-weight:400;line-height:1.5}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #EBEEF5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item{vertical-align:top}.el-descriptions-item__container{display:-webkit-box;display:-ms-flexbox;display:flex}.el-descriptions-item__container .el-descriptions-item__content,.el-descriptions-item__container .el-descriptions-item__label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.el-descriptions-item__container .el-descriptions-item__content{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-descriptions-item__label.has-colon::after{content:':';position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-descriptions-item__content{word-break:break-word;overflow-wrap:break-word}.el-result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#67C23A}.el-result .icon-error{fill:#F56C6C}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#E6A23C} \ No newline at end of file diff --git a/src/main/resources/static/index.js b/src/main/resources/static/index.js new file mode 100644 index 0000000..9d9c196 --- /dev/null +++ b/src/main/resources/static/index.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("src/main/webapp/vue")):"function"==typeof define&&define.amd?define("ELEMENT",["src/main/webapp/vue"],t):"object"==typeof exports?exports.ELEMENT=t(require("src/main/webapp/vue")):e.ELEMENT=t(e.Vue)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e, t, n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e, t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e, t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=49)}([function(t, i){t.exports=e},function(e, t, i){var n=i(4);e.exports=function(e, t, i){return void 0===i?n(e,t,!1):n(e,i,!1!==t)}},function(e, t, i){var n;!function(r){"use strict";var s={},a=/d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,o="[^\\s]+",l=/\[([^]*?)\]/gm,u=function(){};function c(e, t){for(var i=[],n=0,r=e.length; n3?0:(e-e%10!=10)*e%10]}};var g={D:function(e){return e.getDay()},DD:function(e){return d(e.getDay())},Do:function(e, t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return d(e.getDate())},ddd:function(e, t){return t.dayNamesShort[e.getDay()]},dddd:function(e, t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return d(e.getMonth()+1)},MMM:function(e, t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e, t){return t.monthNames[e.getMonth()]},yy:function(e){return d(String(e.getFullYear()),4).substr(2)},yyyy:function(e){return d(e.getFullYear(),4)},h:function(e){return e.getHours()%12||12},hh:function(e){return d(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return d(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return d(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return d(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return d(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return d(e.getMilliseconds(),3)},a:function(e, t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e, t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+d(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},y={d:["\\d\\d?",function(e, t){e.day=t}],Do:["\\d\\d?"+o,function(e, t){e.day=parseInt(t,10)}],M:["\\d\\d?",function(e, t){e.month=t-1}],yy:["\\d\\d?",function(e, t){var i=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?i-1:i)+t}],h:["\\d\\d?",function(e, t){e.hour=t}],m:["\\d\\d?",function(e, t){e.minute=t}],s:["\\d\\d?",function(e, t){e.second=t}],yyyy:["\\d{4}",function(e, t){e.year=t}],S:["\\d",function(e, t){e.millisecond=100*t}],SS:["\\d{2}",function(e, t){e.millisecond=10*t}],SSS:["\\d{3}",function(e, t){e.millisecond=t}],D:["\\d\\d?",u],ddd:[o,u],MMM:[o,h("monthNamesShort")],MMMM:[o,h("monthNames")],a:[o,function(e, t, i){var n=t.toLowerCase();n===i.amPm[0]?e.isPm=!1:n===i.amPm[1]&&(e.isPm=!0)}],ZZ:["[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z",function(e, t){var i,n=(t+"").match(/([+-]|\d\d)/gi);n&&(i=60*n[1]+parseInt(n[2],10),e.timezoneOffset="+"===n[0]?i:-i)}]};y.dd=y.d,y.dddd=y.ddd,y.DD=y.D,y.mm=y.m,y.hh=y.H=y.HH=y.h,y.MM=y.M,y.ss=y.s,y.A=y.a,s.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},s.format=function(e, t, i){var n=i||s.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");t=s.masks[t]||t||s.masks.default;var r=[];return(t=(t=t.replace(l,function(e, t){return r.push(t),"@@@"})).replace(a,function(t){return t in g?g[t](e,n):t.slice(1,t.length-1)})).replace(/@@@/g,function(){return r.shift()})},s.parse=function(e, t, i){var n=i||s.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=s.masks[t]||t,e.length>1e3)return null;var r={},o=[],u=[];t=t.replace(l,function(e, t){return u.push(t),"@@@"});var c,h=(c=t,c.replace(/[|\\{()[^$+*?.-]/g,"\\$&")).replace(a,function(e){if(y[e]){var t=y[e];return o.push(t[1]),"("+t[0]+")"}return e});h=h.replace(/@@@/g,function(){return u.shift()});var d=e.match(new RegExp(h,"i"));if(!d)return null;for(var p=1; pe?u():!0!==t&&(r=setTimeout(n?function(){r=void 0}:u,void 0===n?e-o:e))}}},function(e, t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e, t){var i=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e, t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce(function(e, t){var r,s,a,o,l;for(a in t)if(r=e[a],s=t[a],r&&i.test(a))if("class"===a&&("string"==typeof r&&(l=r,e[a]=r={},r[l]=!0),"string"==typeof s&&(l=s,t[a]=s={},s[l]=!0)),"on"===a||"nativeOn"===a||"hook"===a)for(o in s)r[o]=n(r[o],s[o]);else if(Array.isArray(r))e[a]=r.concat(s);else if(Array.isArray(s))e[a]=[r].concat(s);else for(o in s)r[o]=s[o];else e[a]=t[a];return e},{})}},function(e, t){var i={}.hasOwnProperty;e.exports=function(e, t){return i.call(e,t)}},function(e, t, i){"use strict";t.__esModule=!0;var n,r=i(56),s=(n=r)&&n.__esModule?n:{default:n};t.default=s.default||function(e){for(var t=1; t0?n:i)(e)}},function(e, t, i){var n=i(29)("keys"),r=i(22);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e, t, i){var n=i(14),r=i(5),s=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e, t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:i(21)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e, t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e, t){t.f=Object.getOwnPropertySymbols},function(e, t){e.exports={}},function(e, t, i){var n=i(10).f,r=i(7),s=i(13)("toStringTag");e.exports=function(e, t, i){e&&!r(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e, t, i){t.f=i(13)},function(e, t, i){var n=i(5),r=i(14),s=i(21),a=i(34),o=i(10).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},function(e, t, i){e.exports=!i(11)&&!i(16)(function(){return 7!=Object.defineProperty(i(37)("div"),"a",{get:function(){return 7}}).a})},function(e, t, i){var n=i(15),r=i(5).document,s=n(r)&&n(r.createElement);e.exports=function(e){return s?r.createElement(e):{}}},function(e, t, i){var n=i(7),r=i(12),s=i(62)(!1),a=i(28)("IE_PROTO");e.exports=function(e, t){var i,o=r(e),l=0,u=[];for(i in o)i!=a&&n(o,i)&&u.push(i);for(; t.length>l;)n(o,i=t[l++])&&(~s(u,i)||u.push(i));return u}},function(e, t, i){var n=i(40);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e, t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e, t, i){var n=i(26);e.exports=function(e){return Object(n(e))}},function(e, t, i){"use strict";var n=i(21),r=i(24),s=i(43),a=i(9),o=i(32),l=i(69),u=i(33),c=i(72),h=i(13)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e, t, i, f, m, v, g){l(i,t,f);var y,b,w,_=function(e){if(!d&&e in S)return S[e];switch(e){case"keys":case"values":return function(){return new i(this,e)}}return function(){return new i(this,e)}},x=t+" Iterator",C="values"==m,k=!1,S=e.prototype,D=S[h]||S["@@iterator"]||m&&S[m],E=D||_(m),$=m?C?_("entries"):E:void 0,T="Array"==t&&S.entries||D;if(T&&(w=c(T.call(new e)))!==Object.prototype&&w.next&&(u(w,x,!0),n||"function"==typeof w[h]||a(w,h,p)),C&&D&&"values"!==D.name&&(k=!0,E=function(){return D.call(this)}),n&&!g||!d&&!k&&S[h]||a(S,h,E),o[t]=E,o[x]=p,m)if(y={values:C?E:_("values"),keys:v?E:_("keys"),entries:$},g)for(b in y)b in S||s(S,b,y[b]);else r(r.P+r.F*(d||k),t,y);return y}},function(e, t, i){e.exports=i(9)},function(e, t, i){var n=i(18),r=i(70),s=i(30),a=i(28)("IE_PROTO"),o=function(){},l=function(){var e,t=i(37)("iframe"),n=s.length;for(t.style.display="none",i(71).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" + + + + + + +

+ + +> \ No newline at end of file diff --git a/src/main/resources/static/register.html b/src/main/resources/static/register.html new file mode 100644 index 0000000..c8fc3c2 --- /dev/null +++ b/src/main/resources/static/register.html @@ -0,0 +1,163 @@ + + + + + Title + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+ 注册 + + 返回登录 +
+ + +
+
+ + + \ No newline at end of file diff --git a/src/main/resources/static/vue.js b/src/main/resources/static/vue.js new file mode 100644 index 0000000..d800532 --- /dev/null +++ b/src/main/resources/static/vue.js @@ -0,0 +1,12014 @@ +/*! + * Vue.js v2.6.14 + * (c) 2014-2021 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Vue = factory()); +}(this, function () { 'use strict'; + + /* */ + + var emptyObject = Object.freeze({}); + + // These helpers produce better VM code in JS engines due to their + // explicitness and function inlining. + function isUndef (v) { + return v === undefined || v === null + } + + function isDef (v) { + return v !== undefined && v !== null + } + + function isTrue (v) { + return v === true + } + + function isFalse (v) { + return v === false + } + + /** + * Check if value is primitive. + */ + function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) + } + + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ + function isObject (obj) { + return obj !== null && typeof obj === 'object' + } + + /** + * Get the raw type string of a value, e.g., [object Object]. + */ + var _toString = Object.prototype.toString; + + function toRawType (value) { + return _toString.call(value).slice(8, -1) + } + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ + function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' + } + + function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' + } + + /** + * Check if val is a valid array index. + */ + function isValidArrayIndex (val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) + } + + function isPromise (val) { + return ( + isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function' + ) + } + + /** + * Convert a value to a string that is actually rendered. + */ + function toString (val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, null, 2) + : String(val) + } + + /** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ + function toNumber (val) { + var n = parseFloat(val); + return isNaN(n) ? val : n + } + + /** + * Make a map and return a function for checking if a key + * is in that map. + */ + function makeMap ( + str, + expectsLowerCase + ) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } + } + + /** + * Check if a tag is a built-in tag. + */ + var isBuiltInTag = makeMap('slot,component', true); + + /** + * Check if an attribute is a reserved attribute. + */ + var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); + + /** + * Remove an item from an array. + */ + function remove (arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } + } + + /** + * Check whether an object has the property. + */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn (obj, key) { + return hasOwnProperty.call(obj, key) + } + + /** + * Create a cached version of a pure function. + */ + function cached (fn) { + var cache = Object.create(null); + return (function cachedFn (str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) + } + + /** + * Camelize a hyphen-delimited string. + */ + var camelizeRE = /-(\w)/g; + var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) + }); + + /** + * Capitalize a string. + */ + var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) + }); + + /** + * Hyphenate a camelCase string. + */ + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cached(function (str) { + return str.replace(hyphenateRE, '-$1').toLowerCase() + }); + + /** + * Simple bind polyfill for environments that do not support it, + * e.g., PhantomJS 1.x. Technically, we don't need this anymore + * since native bind is now performant enough in most browsers. + * But removing it would mean breaking code that was able to run in + * PhantomJS 1.x, so this must be kept for backward compatibility. + */ + + /* istanbul ignore next */ + function polyfillBind (fn, ctx) { + function boundFn (a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length; + return boundFn + } + + function nativeBind (fn, ctx) { + return fn.bind(ctx) + } + + var bind = Function.prototype.bind + ? nativeBind + : polyfillBind; + + /** + * Convert an Array-like object to a real Array. + */ + function toArray (list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret + } + + /** + * Mix properties into target object. + */ + function extend (to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to + } + + /** + * Merge an Array of Objects into a single Object. + */ + function toObject (arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res + } + + /* eslint-disable no-unused-vars */ + + /** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ + function noop (a, b, c) {} + + /** + * Always return false. + */ + var no = function (a, b, c) { return false; }; + + /* eslint-enable no-unused-vars */ + + /** + * Return the same value. + */ + var identity = function (_) { return _; }; + + /** + * Generate a string containing static keys from compiler modules. + */ + function genStaticKeys (modules) { + return modules.reduce(function (keys, m) { + return keys.concat(m.staticKeys || []) + }, []).join(',') + } + + /** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ + function looseEqual (a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime() + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } + } + + /** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ + function looseIndexOf (arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 + } + + /** + * Ensure a function is called only once. + */ + function once (fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } + } + + var SSR_ATTR = 'data-server-rendered'; + + var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' + ]; + + var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch' + ]; + + /* */ + + + + var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "development" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "development" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS + }); + + /* */ + + /** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ + var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; + + /** + * Check if a string starts with $ or _ + */ + function isReserved (str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F + } + + /** + * Define a property. + */ + function def (obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); + } + + /** + * Parse simple path. + */ + var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); + function parsePath (path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } + } + + /* */ + + // can we use __proto__? + var hasProto = '__proto__' in {}; + + // Browser environment sniffing + var inBrowser = typeof window !== 'undefined'; + var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; + var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); + var UA = inBrowser && window.navigator.userAgent.toLowerCase(); + var isIE = UA && /msie|trident/.test(UA); + var isIE9 = UA && UA.indexOf('msie 9.0') > 0; + var isEdge = UA && UA.indexOf('edge/') > 0; + var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); + var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); + var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; + var isPhantomJS = UA && /phantomjs/.test(UA); + var isFF = UA && UA.match(/firefox\/(\d+)/); + + // Firefox has a "watch" function on Object.prototype... + var nativeWatch = ({}).watch; + + var supportsPassive = false; + if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get () { + /* istanbul ignore next */ + supportsPassive = true; + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) {} + } + + // this needs to be lazy-evaled because vue may be required before + // vue-server-renderer can set VUE_ENV + var _isServer; + var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && !inWeex && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer + }; + + // detect devtools + var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + + /* istanbul ignore next */ + function isNative (Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) + } + + var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + + var _Set; + /* istanbul ignore if */ // $flow-disable-line + if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; + } else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = /*@__PURE__*/(function () { + function Set () { + this.set = Object.create(null); + } + Set.prototype.has = function has (key) { + return this.set[key] === true + }; + Set.prototype.add = function add (key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear () { + this.set = Object.create(null); + }; + + return Set; + }()); + } + + /* */ + + var warn = noop; + var tip = noop; + var generateComponentTrace = (noop); // work around flow check + var formatComponentName = (noop); + + { + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); }; + + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); + } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + return '' + } + var options = typeof vm === 'function' && vm.cid != null + ? vm.options + : vm._isVue + ? vm.$options || vm.constructor.options + : vm; + var name = options.name || options._componentTag; + var file = options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; + } + + /* */ + + var uid = 0; + + /** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ + var Dep = function Dep () { + this.id = uid++; + this.subs = []; + }; + + Dep.prototype.addSub = function addSub (sub) { + this.subs.push(sub); + }; + + Dep.prototype.removeSub = function removeSub (sub) { + remove(this.subs, sub); + }; + + Dep.prototype.depend = function depend () { + if (Dep.target) { + Dep.target.addDep(this); + } + }; + + Dep.prototype.notify = function notify () { + // stabilize the subscriber list first + var subs = this.subs.slice(); + if (!config.async) { + // subs aren't sorted in scheduler if not running async + // we need to sort them now to make sure they fire in correct + // order + subs.sort(function (a, b) { return a.id - b.id; }); + } + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } + }; + + // The current target watcher being evaluated. + // This is globally unique because only one watcher + // can be evaluated at a time. + Dep.target = null; + var targetStack = []; + + function pushTarget (target) { + targetStack.push(target); + Dep.target = target; + } + + function popTarget () { + targetStack.pop(); + Dep.target = targetStack[targetStack.length - 1]; + } + + /* */ + + var VNode = function VNode ( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory + ) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; + }; + + var prototypeAccessors = { child: { configurable: true } }; + + // DEPRECATED: alias for componentInstance for backwards compat. + /* istanbul ignore next */ + prototypeAccessors.child.get = function () { + return this.componentInstance + }; + + Object.defineProperties( VNode.prototype, prototypeAccessors ); + + var createEmptyVNode = function (text) { + if ( text === void 0 ) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node + }; + + function createTextVNode (val) { + return new VNode(undefined, undefined, undefined, String(val)) + } + + // optimized shallow clone + // used for static nodes and slot nodes because they may be reused across + // multiple renders, cloning them avoids errors when DOM manipulations rely + // on their elm reference. + function cloneVNode (vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned + } + + /* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + + var arrayProto = Array.prototype; + var arrayMethods = Object.create(arrayProto); + + var methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' + ]; + + /** + * Intercept mutating methods and emit events + */ + methodsToPatch.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); + }); + + /* */ + + var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + + /** + * In some cases we may want to disable observation inside a component's + * update computation. + */ + var shouldObserve = true; + + function toggleObserving (value) { + shouldObserve = value; + } + + /** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ + var Observer = function Observer (value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + if (hasProto) { + protoAugment(value, arrayMethods); + } else { + copyAugment(value, arrayMethods, arrayKeys); + } + this.observeArray(value); + } else { + this.walk(value); + } + }; + + /** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ + Observer.prototype.walk = function walk (obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i]); + } + }; + + /** + * Observe a list of Array items. + */ + Observer.prototype.observeArray = function observeArray (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } + }; + + // helpers + + /** + * Augment a target Object or Array by intercepting + * the prototype chain using __proto__ + */ + function protoAugment (target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ + } + + /** + * Augment a target Object or Array by defining + * hidden properties. + */ + /* istanbul ignore next */ + function copyAugment (target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } + } + + /** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ + function observe (value, asRootData) { + if (!isObject(value) || value instanceof VNode) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + shouldObserve && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob + } + + /** + * Define a reactive property on an Object. + */ + function defineReactive$$1 ( + obj, + key, + val, + customSetter, + shallow + ) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + if ((!getter || setter) && arguments.length === 2) { + val = obj[key]; + } + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter () { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + if (Array.isArray(value)) { + dependArray(value); + } + } + } + return value + }, + set: function reactiveSetter (newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + /* eslint-enable no-self-compare */ + if (customSetter) { + customSetter(); + } + // #7981: for accessor properties without setter + if (getter && !setter) { return } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); + } + + /** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ + function set (target, key, val) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid adding reactive properties to a Vue instance or its root $data ' + + 'at runtime - declare it upfront in the data option.' + ); + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val + } + + /** + * Delete a property and trigger change if necessary. + */ + function del (target, key) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid deleting properties on a Vue instance or its root $data ' + + '- just set it to null.' + ); + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); + } + + /** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ + function dependArray (value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } + } + + /* */ + + /** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ + var strats = config.optionMergeStrategies; + + /** + * Options with restrictions + */ + { + strats.el = strats.propsData = function (parent, child, vm, key) { + if (!vm) { + warn( + "option \"" + key + "\" can only be used during instance " + + 'creation with the `new` keyword.' + ); + } + return defaultStrat(parent, child) + }; + } + + /** + * Helper that recursively merges two data objects together. + */ + function mergeData (to, from) { + if (!from) { return to } + var key, toVal, fromVal; + + var keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') { continue } + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if ( + toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal) + ) { + mergeData(toVal, fromVal); + } + } + return to + } + + /** + * Data + */ + function mergeDataOrFn ( + parentVal, + childVal, + vm + ) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn () { + return mergeData( + typeof childVal === 'function' ? childVal.call(this, this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal + ) + } + } else { + return function mergedInstanceDataFn () { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm, vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } + } + + strats.data = function ( + parentVal, + childVal, + vm + ) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + warn( + 'The "data" option should be a function ' + + 'that returns a per-instance value in component ' + + 'definitions.', + vm + ); + + return parentVal + } + return mergeDataOrFn(parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) + }; + + /** + * Hooks and props are merged as arrays. + */ + function mergeHook ( + parentVal, + childVal + ) { + var res = childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res + ? dedupeHooks(res) + : res + } + + function dedupeHooks (hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res + } + + LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; + }); + + /** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ + function mergeAssets ( + parentVal, + childVal, + vm, + key + ) { + var res = Object.create(parentVal || null); + if (childVal) { + assertObjectType(key, childVal, vm); + return extend(res, childVal) + } else { + return res + } + } + + ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; + }); + + /** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ + strats.watch = function ( + parentVal, + childVal, + vm, + key + ) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key$1 in childVal) { + var parent = ret[key$1]; + var child = childVal[key$1]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key$1] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret + }; + + /** + * Other object hashes. + */ + strats.props = + strats.methods = + strats.inject = + strats.computed = function ( + parentVal, + childVal, + vm, + key + ) { + if (childVal && "development" !== 'production') { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret + }; + strats.provide = mergeDataOrFn; + + /** + * Default strategy. + */ + var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal + }; + + /** + * Validate component names + */ + function checkComponents (options) { + for (var key in options.components) { + validateComponentName(key); + } + } + + function validateComponentName (name) { + if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { + warn( + 'Invalid component name: "' + name + '". Component names ' + + 'should conform to valid custom element name in html5 specification.' + ); + } + if (isBuiltInTag(name) || config.isReservedTag(name)) { + warn( + 'Do not use built-in or reserved HTML elements as component ' + + 'id: ' + name + ); + } + } + + /** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ + function normalizeProps (options, vm) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } else { + warn('props must be strings when using array syntax.'); + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } else { + warn( + "Invalid value for option \"props\": expected an Array or an Object, " + + "but got " + (toRawType(props)) + ".", + vm + ); + } + options.props = res; + } + + /** + * Normalize all injections into Object-based format + */ + function normalizeInject (options, vm) { + var inject = options.inject; + if (!inject) { return } + var normalized = options.inject = {}; + if (Array.isArray(inject)) { + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } else if (isPlainObject(inject)) { + for (var key in inject) { + var val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } else { + warn( + "Invalid value for option \"inject\": expected an Array or an Object, " + + "but got " + (toRawType(inject)) + ".", + vm + ); + } + } + + /** + * Normalize raw function directives into object format. + */ + function normalizeDirectives (options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def$$1 = dirs[key]; + if (typeof def$$1 === 'function') { + dirs[key] = { bind: def$$1, update: def$$1 }; + } + } + } + } + + function assertObjectType (name, value, vm) { + if (!isPlainObject(value)) { + warn( + "Invalid value for option \"" + name + "\": expected an Object, " + + "but got " + (toRawType(value)) + ".", + vm + ); + } + } + + /** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ + function mergeOptions ( + parent, + child, + vm + ) { + { + checkComponents(child); + } + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child, vm); + normalizeInject(child, vm); + normalizeDirectives(child); + + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField (key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options + } + + /** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ + function resolveAsset ( + options, + type, + id, + warnMissing + ) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + if (warnMissing && !res) { + warn( + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, + options + ); + } + return res + } + + /* */ + + + + function validateProp ( + key, + propOptions, + propsData, + vm + ) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // boolean casting + var booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + var stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + { + assertProp(prop, key, value, vm, absent); + } + return value + } + + /** + * Get the default value of a prop. + */ + function getPropDefaultValue (vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // warn against non-factory defaults for Object & Array + if (isObject(def)) { + warn( + 'Invalid default value for prop "' + key + '": ' + + 'Props with type Object/Array must use a factory function ' + + 'to return the default value.', + vm + ); + } + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def + } + + /** + * Assert whether a prop is valid. + */ + function assertProp ( + prop, + name, + value, + vm, + absent + ) { + if (prop.required && absent) { + warn( + 'Missing required prop: "' + name + '"', + vm + ); + return + } + if (value == null && !prop.required) { + return + } + var type = prop.type; + var valid = !type || type === true; + var expectedTypes = []; + if (type) { + if (!Array.isArray(type)) { + type = [type]; + } + for (var i = 0; i < type.length && !valid; i++) { + var assertedType = assertType(value, type[i], vm); + expectedTypes.push(assertedType.expectedType || ''); + valid = assertedType.valid; + } + } + + var haveExpectedTypes = expectedTypes.some(function (t) { return t; }); + if (!valid && haveExpectedTypes) { + warn( + getInvalidTypeMessage(name, value, expectedTypes), + vm + ); + return + } + var validator = prop.validator; + if (validator) { + if (!validator(value)) { + warn( + 'Invalid prop: custom validator check failed for prop "' + name + '".', + vm + ); + } + } + } + + var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/; + + function assertType (value, type, vm) { + var valid; + var expectedType = getType(type); + if (simpleCheckRE.test(expectedType)) { + var t = typeof value; + valid = t === expectedType.toLowerCase(); + // for primitive wrapper objects + if (!valid && t === 'object') { + valid = value instanceof type; + } + } else if (expectedType === 'Object') { + valid = isPlainObject(value); + } else if (expectedType === 'Array') { + valid = Array.isArray(value); + } else { + try { + valid = value instanceof type; + } catch (e) { + warn('Invalid prop type: "' + String(type) + '" is not a constructor', vm); + valid = false; + } + } + return { + valid: valid, + expectedType: expectedType + } + } + + var functionTypeCheckRE = /^\s*function (\w+)/; + + /** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ + function getType (fn) { + var match = fn && fn.toString().match(functionTypeCheckRE); + return match ? match[1] : '' + } + + function isSameType (a, b) { + return getType(a) === getType(b) + } + + function getTypeIndex (type, expectedTypes) { + if (!Array.isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1 + } + for (var i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i + } + } + return -1 + } + + function getInvalidTypeMessage (name, value, expectedTypes) { + var message = "Invalid prop: type check failed for prop \"" + name + "\"." + + " Expected " + (expectedTypes.map(capitalize).join(', ')); + var expectedType = expectedTypes[0]; + var receivedType = toRawType(value); + // check if we need to specify expected value + if ( + expectedTypes.length === 1 && + isExplicable(expectedType) && + isExplicable(typeof value) && + !isBoolean(expectedType, receivedType) + ) { + message += " with value " + (styleValue(value, expectedType)); + } + message += ", got " + receivedType + " "; + // check if we need to specify received value + if (isExplicable(receivedType)) { + message += "with value " + (styleValue(value, receivedType)) + "."; + } + return message + } + + function styleValue (value, type) { + if (type === 'String') { + return ("\"" + value + "\"") + } else if (type === 'Number') { + return ("" + (Number(value))) + } else { + return ("" + value) + } + } + + var EXPLICABLE_TYPES = ['string', 'number', 'boolean']; + function isExplicable (value) { + return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; }) + } + + function isBoolean () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) + } + + /* */ + + function handleError (err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + var cur = vm; + while ((cur = cur.$parent)) { + var hooks = cur.$options.errorCaptured; + if (hooks) { + for (var i = 0; i < hooks.length; i++) { + try { + var capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) { return } + } catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } finally { + popTarget(); + } + } + + function invokeWithErrorHandling ( + handler, + context, + args, + vm, + info + ) { + var res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res) && !res._handled) { + res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); + // issue #9511 + // avoid catch triggering multiple times when nested calls + res._handled = true; + } + } catch (e) { + handleError(e, vm, info); + } + return res + } + + function globalHandleError (err, vm, info) { + if (config.errorHandler) { + try { + return config.errorHandler.call(null, err, vm, info) + } catch (e) { + // if the user intentionally throws the original error in the handler, + // do not log it twice + if (e !== err) { + logError(e, null, 'config.errorHandler'); + } + } + } + logError(err, vm, info); + } + + function logError (err, vm, info) { + { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if ((inBrowser || inWeex) && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } + } + + /* */ + + var isUsingMicroTask = false; + + var callbacks = []; + var pending = false; + + function flushCallbacks () { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + // Here we have async deferring wrappers using microtasks. + // In 2.5 we used (macro) tasks (in combination with microtasks). + // However, it has subtle problems when state is changed right before repaint + // (e.g. #6813, out-in transitions). + // Also, using (macro) tasks in event handler would cause some weird behaviors + // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). + // So we now use microtasks everywhere, again. + // A major drawback of this tradeoff is that there are some scenarios + // where microtasks have too high a priority and fire in between supposedly + // sequential events (e.g. #4521, #6690, which have workarounds) + // or even between bubbling of the same event (#6566). + var timerFunc; + + // The nextTick behavior leverages the microtask queue, which can be accessed + // via either native Promise.then or MutationObserver. + // MutationObserver has wider support, however it is seriously bugged in + // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It + // completely stops working after triggering a few times... so, if native + // Promise is available, we will use it: + /* istanbul ignore next, $flow-disable-line */ + if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + timerFunc = function () { + p.then(flushCallbacks); + // In problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + isUsingMicroTask = true; + } else if (!isIE && typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' + )) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + var counter = 1; + var observer = new MutationObserver(flushCallbacks); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + isUsingMicroTask = true; + } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { + // Fallback to setImmediate. + // Technically it leverages the (macro) task queue, + // but it is still a better choice than setTimeout. + timerFunc = function () { + setImmediate(flushCallbacks); + }; + } else { + // Fallback to setTimeout. + timerFunc = function () { + setTimeout(flushCallbacks, 0); + }; + } + + function nextTick (cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + // $flow-disable-line + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve) { + _resolve = resolve; + }) + } + } + + /* */ + + var mark; + var measure; + + { + var perf = inBrowser && window.performance; + /* istanbul ignore if */ + if ( + perf && + perf.mark && + perf.measure && + perf.clearMarks && + perf.clearMeasures + ) { + mark = function (tag) { return perf.mark(tag); }; + measure = function (name, startTag, endTag) { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + // perf.clearMeasures(name) + }; + } + } + + /* not type checking this file because flow doesn't play well with Proxy */ + + var initProxy; + + { + var allowedGlobals = makeMap( + 'Infinity,undefined,NaN,isFinite,isNaN,' + + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' + + 'require' // for Webpack/Browserify + ); + + var warnNonPresent = function (target, key) { + warn( + "Property or method \"" + key + "\" is not defined on the instance but " + + 'referenced during render. Make sure that this property is reactive, ' + + 'either in the data option, or for class-based components, by ' + + 'initializing the property. ' + + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', + target + ); + }; + + var warnReservedPrefix = function (target, key) { + warn( + "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + + 'prevent conflicts with Vue internals. ' + + 'See: https://vuejs.org/v2/api/#data', + target + ); + }; + + var hasProxy = + typeof Proxy !== 'undefined' && isNative(Proxy); + + if (hasProxy) { + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); + config.keyCodes = new Proxy(config.keyCodes, { + set: function set (target, key, value) { + if (isBuiltInModifier(key)) { + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); + return false + } else { + target[key] = value; + return true + } + } + }); + } + + var hasHandler = { + has: function has (target, key) { + var has = key in target; + var isAllowed = allowedGlobals(key) || + (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); + if (!has && !isAllowed) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return has || !isAllowed + } + }; + + var getHandler = { + get: function get (target, key) { + if (typeof key === 'string' && !(key in target)) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return target[key] + } + }; + + initProxy = function initProxy (vm) { + if (hasProxy) { + // determine which proxy handler to use + var options = vm.$options; + var handlers = options.render && options.render._withStripped + ? getHandler + : hasHandler; + vm._renderProxy = new Proxy(vm, handlers); + } else { + vm._renderProxy = vm; + } + }; + } + + /* */ + + var seenObjects = new _Set(); + + /** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ + function traverse (val) { + _traverse(val, seenObjects); + seenObjects.clear(); + } + + function _traverse (val, seen) { + var i, keys; + var isA = Array.isArray(val); + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { + return + } + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) { _traverse(val[i], seen); } + } else { + keys = Object.keys(val); + i = keys.length; + while (i--) { _traverse(val[keys[i]], seen); } + } + } + + /* */ + + var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } + }); + + function createFnInvoker (fns, vm) { + function invoker () { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); + } + } else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") + } + } + invoker.fns = fns; + return invoker + } + + function updateListeners ( + on, + oldOn, + add, + remove$$1, + createOnceHandler, + vm + ) { + var name, def$$1, cur, old, event; + for (name in on) { + def$$1 = cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) { + warn( + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), + vm + ); + } else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } + } + + /* */ + + function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } + var invoker; + var oldHook = def[hookKey]; + + function wrappedHook () { + hook.apply(this, arguments); + // important: remove merged hook to ensure it's called only once + // and prevent memory leak + remove(invoker.fns, wrappedHook); + } + + if (isUndef(oldHook)) { + // no existing hook + invoker = createFnInvoker([wrappedHook]); + } else { + /* istanbul ignore if */ + if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { + // already a merged invoker + invoker = oldHook; + invoker.fns.push(wrappedHook); + } else { + // existing plain hook + invoker = createFnInvoker([oldHook, wrappedHook]); + } + } + + invoker.merged = true; + def[hookKey] = invoker; + } + + /* */ + + function extractPropsFromVNodeData ( + data, + Ctor, + tag + ) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + { + var keyInLowerCase = key.toLowerCase(); + if ( + key !== keyInLowerCase && + attrs && hasOwn(attrs, keyInLowerCase) + ) { + tip( + "Prop \"" + keyInLowerCase + "\" is passed to component " + + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + + " \"" + key + "\". " + + "Note that HTML attributes are case-insensitive and camelCased " + + "props need to use their kebab-case equivalents when using in-DOM " + + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." + ); + } + } + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res + } + + function checkProp ( + res, + hash, + key, + altKey, + preserve + ) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false + } + + /* */ + + // The template compiler attempts to minimize the need for normalization by + // statically analyzing the template at compile time. + // + // For plain HTML markup, normalization can be completely skipped because the + // generated render function is guaranteed to return Array. There are + // two cases where extra normalization is needed: + + // 1. When the children contains components - because a functional component + // may return an Array instead of a single root. In this case, just a simple + // normalization is needed - if any child is an Array, we flatten the whole + // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep + // because functional components already normalize their own children. + function simpleNormalizeChildren (children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children + } + + // 2. When the children contains constructs that always generated nested Arrays, + // e.g.