no commit message

This commit is contained in:
贝密游戏
2017-08-03 23:40:30 +08:00
parent 5ab4ebe8e0
commit 773d10f7dc
997 changed files with 64282 additions and 99 deletions

View File

@@ -3,6 +3,7 @@ package com.beimi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableAsync;
@@ -13,7 +14,8 @@ import com.beimi.core.BMDataContext;
@EnableAutoConfiguration
@SpringBootApplication
@EnableAsync
@EnableJpaRepositories("com.beimi.web.service.repository")
@EnableJpaRepositories("com.beimi.web.service.repository.jpa")
@EnableElasticsearchRepositories("com.beimi.web.service.repository.es")
public class Application {
public static void main(String[] args) {

View File

@@ -0,0 +1,23 @@
package com.beimi.config.web;
import com.lmax.disruptor.ExceptionHandler;
public class BeiMiExceptionHandler implements ExceptionHandler<Object>{
@Override
public void handleEventException(Throwable ex, long arg1, Object arg2) {
ex.printStackTrace();
}
@Override
public void handleOnShutdownException(Throwable ex) {
}
@Override
public void handleOnStartException(Throwable ex) {
// TODO Auto-generated method stub
}
}

View File

@@ -21,6 +21,7 @@ public class BeiMiExceptionListener extends ExceptionListenerAdapter {
}else{
log.error(e.getMessage(), e);
}
client.disconnect();
}
@Override
@@ -30,6 +31,7 @@ public class BeiMiExceptionListener extends ExceptionListenerAdapter {
}else{
log.error(e.getMessage(), e);
}
client.disconnect();
}
@Override
@@ -39,6 +41,7 @@ public class BeiMiExceptionListener extends ExceptionListenerAdapter {
}else{
log.error(e.getMessage(), e);
}
client.disconnect();
}
@Override
@@ -48,6 +51,7 @@ public class BeiMiExceptionListener extends ExceptionListenerAdapter {
}else{
log.error(e.getMessage(), e);
}
ctx.close();
return true;
}
}

View File

@@ -0,0 +1,29 @@
package com.beimi.config.web;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import com.beimi.util.disruptor.UserDataEventFactory;
import com.beimi.util.disruptor.UserEventHandler;
import com.beimi.util.event.UserDataEvent;
import com.lmax.disruptor.SleepingWaitStrategy;
import com.lmax.disruptor.dsl.Disruptor;
import com.lmax.disruptor.dsl.ProducerType;
@Component
public class DisruptorConfigure {
@SuppressWarnings({ "unchecked", "deprecation" })
@Bean(name="disruptor")
public Disruptor<UserDataEvent> disruptor() {
Executor executor = Executors.newCachedThreadPool();
UserDataEventFactory factory = new UserDataEventFactory();
Disruptor<UserDataEvent> disruptor = new Disruptor<UserDataEvent>(factory, 1024, executor, ProducerType.SINGLE , new SleepingWaitStrategy());
disruptor.setDefaultExceptionHandler(new BeiMiExceptionHandler());
disruptor.handleEventsWith(new UserEventHandler());
disruptor.start();
return disruptor;
}
}

View File

@@ -0,0 +1,48 @@
package com.beimi.config.web;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
@Configuration
public class DruidConfiguration {
/**
* 注册一个StatViewServlet
* @return
*/
@Bean
public ServletRegistrationBean DruidStatViewServle2(){
//org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
//添加初始化参数initParams
//白名单:
// servletRegistrationBean.addInitParameter("allow","127.0.0.1");
//IP黑名单 (存在共同时deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.
// servletRegistrationBean.addInitParameter("deny","192.168.1.73");
//登录查看信息的账号密码.
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","123456");
//是否能够重置数据.
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
/**
* 注册一个filterRegistrationBean
* @return
*/
@Bean
public FilterRegistrationBean druidStatFilter2(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*");
//添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*");
return filterRegistrationBean;
}
}

View File

@@ -24,15 +24,18 @@ import com.corundumstudio.socketio.annotation.SpringAnnotationScanner;
@org.springframework.context.annotation.Configuration
public class IMServerConfiguration
{
@Value("${bm.im.server.host}")
@Value("${uk.im.server.host}")
private String host;
@Value("${bm.im.server.port}")
@Value("${uk.im.server.port}")
private Integer port;
@Value("${web.upload-path}")
private String path;
@Value("${uk.im.server.threads}")
private String threads;
private SocketIOServer server ;
@Bean(name="webimport")
@@ -47,9 +50,12 @@ public class IMServerConfiguration
Configuration config = new Configuration();
// config.setHostname("localhost");
config.setPort(port);
// config.getSocketConfig().setReuseAddress(true);
// config.setSocketConfig(new SocketConfig());
config.setOrigin("*");
// config.setOrigin("http://im.uckefu.com");
config.setExceptionListener(new BeiMiExceptionListener());
File sslFile = new File(path , "ssl/https.properties") ;
if(sslFile.exists()){
Properties sslProperties = new Properties();
@@ -65,14 +71,14 @@ public class IMServerConfiguration
// config.setSSLProtocol("https");
config.setWorkerThreads(100);
int workThreads = !StringUtils.isBlank(threads) && threads.matches("[\\d]{1,6}") ? Integer.parseInt(threads) : 100 ;
config.setWorkerThreads(workThreads);
// config.setStoreFactory(new HazelcastStoreFactory());
config.setAuthorizationListener(new AuthorizationListener() {
public boolean isAuthorized(HandshakeData data) {
return true;
}
});
return server = new SocketIOServer(config);
}

View File

@@ -5,6 +5,7 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import com.beimi.web.handler.interceptor.CrossInterceptorHandler;
import com.beimi.web.interceptor.UserInterceptorHandler;
@Configuration
public class UKWebAppConfigurer
@@ -15,7 +16,8 @@ public class UKWebAppConfigurer
// 多个拦截器组成一个拦截器链
// addPathPatterns 用于添加拦截规则
// excludePathPatterns 用户排除拦截
registry.addInterceptor(new CrossInterceptorHandler()).addPathPatterns("/**");
registry.addInterceptor(new UserInterceptorHandler()).addPathPatterns("/**").excludePathPatterns("/login.html").excludePathPatterns("/tokens").excludePathPatterns("/api/**");
registry.addInterceptor(new CrossInterceptorHandler()).addPathPatterns("/**");
super.addInterceptors(registry);
}
}

View File

@@ -25,7 +25,7 @@ import org.springframework.web.util.WebUtils;
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(tokenInfoTokenFilterSecurityInterceptor() , BasicAuthenticationFilter.class)
.antMatcher("*/*").authorizeRequests()
@@ -46,8 +46,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
RequestMatcher mappings = new AntPathRequestMatcher("/mappings/**");
RequestMatcher metrics = new AntPathRequestMatcher("/metrics/**");
RequestMatcher trace = new AntPathRequestMatcher("/trace/**");
RequestMatcher druid = new AntPathRequestMatcher("/druid/**");
return new DelegateRequestMatchingFilter(autconfig , configprops , beans , dump , env , health , info , mappings , metrics , trace);
return new DelegateRequestMatchingFilter(autconfig , configprops , beans , dump , env , health , info , mappings , metrics , trace, druid);
}
@Bean

View File

@@ -0,0 +1,24 @@
package com.beimi.util;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Menu {
/**
* 数据表名称注解,默认值为类名称
* @return
*/
public String type() default "className";
public String subtype() default "methodName";
public boolean access() default false;
public boolean admin() default false;
public String name() default "methodName";
}

View File

@@ -0,0 +1,9 @@
package com.beimi.util;
public class MessageEnum {
public static final String USER_REGISTER_SUCCESS = "user_register_success";
public static final String USER_REGISTER_FAILD_USERNAME = "user_register_faild_username";
public static final String USER_NOT_EXIST = "user_not_exist";
public static final String USER_GET_SUCCESS = "user_get_success";
}

View File

@@ -28,10 +28,15 @@ import org.jsoup.select.Elements;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.FatalBeanException;
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import com.beimi.core.BMDataContext;
import com.beimi.util.event.UserDataEvent;
import com.beimi.util.event.UserEvent;
import com.lmax.disruptor.dsl.Disruptor;
public class UKTools {
@@ -402,4 +407,15 @@ public class UKTools {
}
return workintTime ;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void published(UserEvent event , ElasticsearchCrudRepository esRes , JpaRepository dbRes){
Disruptor<UserDataEvent> disruptor = (Disruptor<UserDataEvent>) BMDataContext.getContext().getBean("disruptor") ;
long seq = disruptor.getRingBuffer().next();
UserDataEvent userDataEvent = disruptor.getRingBuffer().get(seq) ;
userDataEvent.setEvent(event);
userDataEvent.setDbRes(dbRes);
userDataEvent.setEsRes(esRes);
disruptor.getRingBuffer().publish(seq);
}
}

View File

@@ -0,0 +1,12 @@
package com.beimi.util.disruptor;
import com.beimi.util.event.UserDataEvent;
import com.lmax.disruptor.EventFactory;
public class UserDataEventFactory implements EventFactory<UserDataEvent>{
@Override
public UserDataEvent newInstance() {
return new UserDataEvent();
}
}

View File

@@ -0,0 +1,25 @@
package com.beimi.util.disruptor;
import com.beimi.util.event.UserDataEvent;
import com.beimi.util.event.UserEvent;
import com.lmax.disruptor.RingBuffer;
public class UserDataEventProducer {
private final RingBuffer<UserDataEvent> ringBuffer;
public UserDataEventProducer(RingBuffer<UserDataEvent> ringBuffer)
{
this.ringBuffer = ringBuffer;
}
public void onData(UserEvent userEvent)
{
long id = ringBuffer.next(); // Grab the next sequence
try{
UserDataEvent event = ringBuffer.get(id);
event.setEvent(userEvent);
}finally{
ringBuffer.publish(id);
}
}
}

View File

@@ -0,0 +1,19 @@
package com.beimi.util.disruptor;
import com.beimi.util.event.UserDataEvent;
import com.lmax.disruptor.EventHandler;
public class UserEventHandler implements EventHandler<UserDataEvent>{
@SuppressWarnings("unchecked")
@Override
public void onEvent(UserDataEvent arg0, long arg1, boolean arg2)
throws Exception {
if(arg0.getDbRes()!=null){
arg0.getDbRes().save(arg0.getEvent()) ;
}
if(arg0.getEsRes()!=null){
arg0.getEsRes().save(arg0.getEvent()) ;
}
}
}

View File

@@ -0,0 +1,43 @@
package com.beimi.util.event;
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
import org.springframework.data.jpa.repository.JpaRepository;
@SuppressWarnings("rawtypes")
public class UserDataEvent{
private long id ;
private UserEvent event ;
private ElasticsearchCrudRepository esRes ;
private JpaRepository dbRes ;
public ElasticsearchCrudRepository getEsRes() {
return esRes;
}
public void setEsRes(ElasticsearchCrudRepository esRes) {
this.esRes = esRes;
}
public JpaRepository getDbRes() {
return dbRes;
}
public void setDbRes(JpaRepository dbRes) {
this.dbRes = dbRes;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public UserEvent getEvent() {
return event;
}
public void setEvent(UserEvent event) {
this.event = event;
}
}

View File

@@ -0,0 +1,5 @@
package com.beimi.util.event;
public interface UserEvent extends java.io.Serializable {
}

View File

@@ -0,0 +1,31 @@
package com.beimi.util.event;
import javax.persistence.Transient;
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
import org.springframework.data.jpa.repository.JpaRepository;
@SuppressWarnings("rawtypes")
public abstract class UserEventRes {
private ElasticsearchCrudRepository esRes ;
private JpaRepository dbRes ;
@Transient
public ElasticsearchCrudRepository getEsRes() {
return esRes;
}
public void setEsRes(ElasticsearchCrudRepository esRes) {
this.esRes = esRes;
}
@Transient
public JpaRepository getDbRes() {
return dbRes;
}
public void setDbRes(JpaRepository dbRes) {
this.dbRes = dbRes;
}
}

View File

@@ -0,0 +1,59 @@
package com.beimi.util.rules.model;
/**
* 牌局,用于描述当前牌局的内容
* 1、随机排序生成的 当前 待起牌(麻将、德州有/斗地主无)
* 2、玩家 手牌
* 3、玩家信息
* 4、当前牌
* 5、当前玩家
* 6、房间/牌桌信息
* 7、其他附加信息
* 数据结构内存占用 78 byte 一副牌序列化到 数据库 占用的存储空间约为 78 byt 数据库字段长度约为 20
*
* @author iceworld
*
*/
public class Board implements java.io.Serializable{
private static final long serialVersionUID = 1L;
/**
*
*/
private byte[] cards; //4个Bit描述一张牌麻将136+2/2 = 69 byte ; 扑克 54/2 = 27 byte
private Player[] players;//3~10人(4 byte)
private int room ; //房间ID4 byte
private byte info ; //复合信息 当前牌4 Bit 当前玩家 4 Bit(1 byte)
private byte order ; //序号
public byte[] getCards() {
return cards;
}
public void setCards(byte[] cards) {
this.cards = cards;
}
public Player[] getPlayers() {
return players;
}
public void setPlayers(Player[] players) {
this.players = players;
}
public int getRoom() {
return room;
}
public void setRoom(int room) {
this.room = room;
}
public byte getInfo() {
return info;
}
public void setInfo(byte info) {
this.info = info;
}
public byte getOrder() {
return order;
}
public void setOrder(byte order) {
this.order = order;
}
}

View File

@@ -0,0 +1,39 @@
package com.beimi.util.rules.model;
public class Player implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
private byte[] cards ; //玩家手牌,顺序存储 快速排序4个Bit描述一张牌玩家手牌 麻将 13+1/2 = 7 byte~=long
private byte info ; //复合信息存储用于存储玩家位置2^4,占用4个Bit最大支持16个玩家是否在线1个Bit是否庄家/地主1个Bit是否当前出牌玩家1个Bit是否机器人1个Bit
private byte[] played ; //杠碰吃胡
public byte[] getCards() {
return cards;
}
public void setCards(byte[] cards) {
this.cards = cards;
}
public byte getInfo() {
return info;
}
public void setInfo(byte info) {
this.info = info;
}
public byte[] getPlayed() {
return played;
}
public void setPlayed(byte[] played) {
this.played = played;
}
}

View File

@@ -0,0 +1,24 @@
package com.beimi.web.handler;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.beimi.util.Menu;
import com.beimi.web.service.repository.jpa.UserRepository;
@Controller
public class ApplicationController extends Handler{
@Autowired
private UserRepository userRepository;
@RequestMapping("/")
@Menu(type = "apps" , subtype = "index" , access = false)
public ModelAndView admin(HttpServletRequest request) {
return request(super.createRequestPageTempletResponse("/apps/index"));
}
}

View File

@@ -1,6 +1,5 @@
package com.beimi.web.handler;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
@@ -11,7 +10,6 @@ import org.springframework.web.servlet.ModelAndView;
import com.beimi.core.BMDataContext;
import com.beimi.util.UKTools;
import com.beimi.util.UKView;
import com.beimi.util.cache.CacheHelper;
import com.beimi.web.model.User;
@@ -26,24 +24,11 @@ public class Handler {
public User getUser(HttpServletRequest request){
User user = (User) request.getSession(true).getAttribute(BMDataContext.USER_SESSION_NAME) ;
if(user==null){
String authorization = request.getHeader("authorization") ;
if(StringUtils.isBlank(authorization) && request.getCookies()!=null){
for(Cookie cookie : request.getCookies()){
if(cookie.getName().equals("authorization")){
authorization = cookie.getValue() ; break ;
}
}
}
if(!StringUtils.isBlank(authorization)){
user = (User) CacheHelper.getApiUserCacheBean().getCacheObject(authorization, BMDataContext.SYSTEM_ORGI) ;
}
if(user==null){
user = new User();
user.setId(UKTools.getContextID(request.getSession().getId())) ;
user.setUsername(BMDataContext.GUEST_USER+"_"+UKTools.genIDByKey(user.getId())) ;
user.setOrgi(BMDataContext.SYSTEM_ORGI);
user.setSessionid(user.getId()) ;
}
user = new User();
user.setId(UKTools.getContextID(request.getSession().getId())) ;
user.setUsername(BMDataContext.GUEST_USER+"_"+UKTools.genIDByKey(user.getId())) ;
user.setOrgi(BMDataContext.SYSTEM_ORGI);
user.setSessionid(user.getId()) ;
}else{
user.setSessionid(user.getId()) ;
}

View File

@@ -0,0 +1,152 @@
package com.beimi.web.handler;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.beimi.core.BMDataContext;
import com.beimi.util.Menu;
import com.beimi.util.UKTools;
import com.beimi.web.model.Organ;
import com.beimi.web.model.OrganRole;
import com.beimi.web.model.Role;
import com.beimi.web.model.RoleAuth;
import com.beimi.web.model.User;
import com.beimi.web.model.UserRole;
import com.beimi.web.service.repository.jpa.OrganRepository;
import com.beimi.web.service.repository.jpa.OrganRoleRepository;
import com.beimi.web.service.repository.jpa.RoleAuthRepository;
import com.beimi.web.service.repository.jpa.UserRepository;
import com.beimi.web.service.repository.jpa.UserRoleRepository;
/**
*
* @author UK
* @version 1.0.0
*
*/
@Controller
public class LoginController extends Handler{
@Autowired
private UserRepository userRepository;
@Autowired
private OrganRoleRepository organRoleRes ;
@Autowired
private UserRoleRepository userRoleRes ;
@Autowired
private RoleAuthRepository roleAuthRes ;
@Autowired
private OrganRepository organRepository;
@RequestMapping(value = "/login" , method=RequestMethod.GET)
@Menu(type = "apps" , subtype = "user" , access = true)
public ModelAndView login(HttpServletRequest request, HttpServletResponse response , @RequestHeader(value = "referer", required = false) String referer , @Valid String msg) {
ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/"));
if(request.getSession(true).getAttribute(BMDataContext.USER_SESSION_NAME) ==null){
view = request(super.createRequestPageTempletResponse("/login"));
if(!StringUtils.isBlank(request.getParameter("referer"))){
referer = request.getParameter("referer") ;
}
if(!StringUtils.isBlank(referer)){
view.addObject("referer", referer) ;
}
}
if(!StringUtils.isBlank(msg)){
view.addObject("msg", msg) ;
}
return view;
}
@RequestMapping(value = "/login" , method=RequestMethod.POST)
@Menu(type = "apps" , subtype = "user" , access = true)
public ModelAndView login(HttpServletRequest request, HttpServletResponse response , @Valid User user ,@Valid String referer) {
ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/"));
if(request.getSession(true).getAttribute(BMDataContext.USER_SESSION_NAME) ==null){
if(user!=null && user.getUsername()!=null){
final User loginUser = userRepository.findByUsernameAndPassword(user.getUsername() , UKTools.md5(user.getPassword())) ;
if(loginUser!=null && !StringUtils.isBlank(loginUser.getId())){
loginUser.setLogin(true);
super.setUser(request, loginUser);
if(!StringUtils.isBlank(referer)){
view = request(super.createRequestPageTempletResponse("redirect:"+referer));
}
List<UserRole> userRoleList = userRoleRes.findByOrgiAndUser(loginUser.getOrgi(), loginUser);
if(userRoleList!=null & userRoleList.size()>0){
for(UserRole userRole : userRoleList){
loginUser.getRoleList().add(userRole.getRole()) ;
}
}
if(!StringUtils.isBlank(loginUser.getOrgan())){
Organ organ = organRepository.findByIdAndOrgi(loginUser.getOrgan(), loginUser.getOrgi()) ;
if(organ!=null){
List<OrganRole> organRoleList = organRoleRes.findByOrgiAndOrgan(loginUser.getOrgi(), organ) ;
if(organRoleList.size() > 0){
for(OrganRole organRole : organRoleList){
loginUser.getRoleList().add(organRole.getRole()) ;
}
}
}
}
//获取用户的授权资源
List<RoleAuth> roleAuthList = roleAuthRes.findAll(new Specification<RoleAuth>(){
@Override
public Predicate toPredicate(Root<RoleAuth> root, CriteriaQuery<?> query,
CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<Predicate>();
if(loginUser.getRoleList()!=null && loginUser.getRoleList().size() > 0){
for(Role role : loginUser.getRoleList()){
list.add(cb.equal(root.get("roleid").as(String.class), role.getId())) ;
}
}
Predicate[] p = new Predicate[list.size()];
cb.and(cb.equal(root.get("orgi").as(String.class), loginUser.getOrgi())) ;
return cb.or(list.toArray(p));
}}) ;
loginUser.setRoleAuthList(roleAuthList);//获取用户收取的资源信息
loginUser.setLastlogintime(new Date());
if(!StringUtils.isBlank(loginUser.getId())){
userRepository.save(loginUser) ;
}
}else{
view = request(super.createRequestPageTempletResponse("/login"));
if(!StringUtils.isBlank(referer)){
view.addObject("referer", referer) ;
}
view.addObject("msg", "0") ;
}
}
}
return view;
}
@RequestMapping("/logout")
public String logout(HttpServletRequest request ){
request.getSession().removeAttribute(BMDataContext.USER_SESSION_NAME) ;
return "redirect:/";
}
}

View File

@@ -1,31 +0,0 @@
package com.beimi.web.handler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.beimi.web.model.User;
import com.beimi.web.service.repository.UserRepository;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserRepository userRes;
@RequestMapping("/{id}")
public User view(@PathVariable("id") String id) {
User user = new User();
user.setId(id);
userRes.save(user) ;
System.out.println(user.getEmail());
return user;
}
}

View File

@@ -0,0 +1,34 @@
package com.beimi.web.handler.admin;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.beimi.util.Menu;
import com.beimi.web.handler.Handler;
import com.beimi.web.service.repository.jpa.SysDicRepository;
import com.beimi.web.service.repository.jpa.UserRepository;
@Controller
public class AdminController extends Handler{
@Autowired
private UserRepository userRepository;
@Autowired
private UserRepository userRes;
@Autowired
private SysDicRepository sysDicRes ;
@RequestMapping("/admin/content")
@Menu(type = "admin" , subtype = "content")
public ModelAndView content(ModelMap map , HttpServletRequest request) {
return request(super.createAdminTempletResponse("/admin/desktop/index"));
}
}

View File

@@ -5,7 +5,6 @@ import java.util.Date;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -14,35 +13,53 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.beimi.core.BMDataContext;
import com.beimi.util.UKTools;
import com.beimi.util.cache.CacheHelper;
import com.beimi.web.handler.Handler;
import com.beimi.web.model.User;
import com.beimi.web.service.repository.UserRepository;
import com.beimi.web.model.PlayUser;
import com.beimi.web.service.repository.es.PlayUserESRepository;
import com.beimi.web.service.repository.jpa.PlayUserRepository;
@RestController
@RequestMapping("/tokens")
public class ApiLoginController extends Handler{
@Autowired
private UserRepository userRepository;
private PlayUserESRepository playUserESRes;
@Autowired
private PlayUserRepository playUserRes ;
@SuppressWarnings("rawtypes")
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity login(HttpServletRequest request , HttpServletResponse response , @Valid User user) {
User loginUser = userRepository.findByUsernameAndPassword(user.getUsername() , UKTools.md5(user.getPassword())) ;
public ResponseEntity login(HttpServletRequest request , HttpServletResponse response, @RequestParam String username , @RequestParam String password) {
PlayUser player = null ;
if(!StringUtils.isBlank(username) && !StringUtils.isBlank(password)){
player = playUserESRes.findByUsernameAndPassword(username, UKTools.md5(password)) ;
if(player == null){
player = playUserRes.findByUsernameAndPassword(username, UKTools.md5(password)) ;
// playUserESRes.save(player) ;
}
}
ResponseEntity entity = null ;
if(loginUser!=null && !StringUtils.isBlank(loginUser.getId())){
loginUser.setLogin(true);
loginUser.setLastlogintime(new Date());
if(!StringUtils.isBlank(loginUser.getId())){
userRepository.save(loginUser) ;
}
if(player!=null && !StringUtils.isBlank(player.getId())){
player.setLogin(true); //已登录
player.setOnline(false); //未在游戏状态
player.setLastlogintime(new Date());
/**
* 消息队列同时存ES和数据库或其他持久化数据系统
*/
UKTools.published(player , playUserESRes , playUserRes);
/**
* 发送到消息队列,用户登录
*/
String auth = UKTools.getUUID();
CacheHelper.getApiUserCacheBean().put(auth, loginUser, BMDataContext.SYSTEM_ORGI);
CacheHelper.getApiUserCacheBean().put(auth, player, BMDataContext.SYSTEM_ORGI);
entity = new ResponseEntity<>(auth, HttpStatus.OK) ;
response.addCookie(new Cookie("authorization",auth));
}else{

View File

@@ -1,5 +1,7 @@
package com.beimi.web.handler.api.rest;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
@@ -11,24 +13,50 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.beimi.util.MessageEnum;
import com.beimi.util.UKTools;
import com.beimi.web.handler.Handler;
import com.beimi.web.model.User;
import com.beimi.web.service.repository.UserRepository;
import com.beimi.web.model.PlayUser;
import com.beimi.web.model.ResultData;
import com.beimi.web.service.repository.es.PlayUserESRepository;
import com.beimi.web.service.repository.jpa.PlayUserRepository;
@RestController
@RequestMapping("/api/user")
@RequestMapping("/api/player")
public class ApiUserController extends Handler{
@Autowired
private UserRepository userRepository;
private PlayUserESRepository playUserESRes;
@Autowired
private PlayUserRepository playUserRes ;
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<User> get(HttpServletRequest request , @RequestParam String id) {
User user = null ;
if(!StringUtils.isBlank(id)){
user = userRepository.findByIdAndOrgi(id, super.getOrgi(request)) ;
public ResponseEntity<ResultData> get(HttpServletRequest request , @RequestParam String id) {
PlayUser player = null ;
if(!StringUtils.isBlank(id) && playUserESRes.exists(id)){
player = playUserESRes.findOne(id) ;
}
return new ResponseEntity<>(user, HttpStatus.OK);
return new ResponseEntity<>(new ResultData( player!=null , player != null ? MessageEnum.USER_GET_SUCCESS : MessageEnum.USER_NOT_EXIST, player), HttpStatus.OK);
}
@RequestMapping(value = "/register")
public ResponseEntity<ResultData> register(HttpServletRequest request , @RequestParam PlayUser player) {
if(player!= null && !StringUtils.isBlank(player.getUsername()) && StringUtils.isBlank(player.getPassword())){
player.setPassword(UKTools.md5(player.getPassword()));
player.setCreatetime(new Date());
player.setUpdatetime(new Date());
player.setLastlogintime(new Date());
int users = playUserESRes.countByUsername(player.getUsername()) ;
if(users == 0){
playUserESRes.save(player) ;
}else{
player = null ;
}
}
return new ResponseEntity<>(new ResultData( player!=null , player != null ? MessageEnum.USER_REGISTER_SUCCESS: MessageEnum.USER_REGISTER_FAILD_USERNAME , player), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,26 @@
package com.beimi.web.handler.apps;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.beimi.util.Menu;
import com.beimi.web.handler.Handler;
import com.beimi.web.service.repository.jpa.UserRepository;
@Controller
public class AppsController extends Handler{
@Autowired
private UserRepository userRes;
@RequestMapping({"/apps/content"})
@Menu(type="apps", subtype="content")
public ModelAndView content(ModelMap map , HttpServletRequest request){
return request(super.createAppsTempletResponse("/apps/desktop/index"));
}
}

View File

@@ -0,0 +1,30 @@
package com.beimi.web.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class CrossInterceptorHandler extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,accept,authorization,content-type");
response.setHeader("X-Frame-Options", "SAMEORIGIN");
return true ;
}
public void postHandle(HttpServletRequest arg0, HttpServletResponse response, Object arg2,
ModelAndView view) throws Exception {
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}

View File

@@ -0,0 +1,89 @@
package com.beimi.web.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.boot.autoconfigure.web.BasicErrorController;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.beimi.core.BMDataContext;
import com.beimi.util.Menu;
import com.beimi.util.UKTools;
import com.beimi.util.cache.CacheHelper;
import com.beimi.web.model.SystemConfig;
import com.beimi.web.model.UKeFuDic;
import com.beimi.web.model.User;
public class UserInterceptorHandler extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
boolean filter = false;
if(handler instanceof HandlerMethod){
User user = (User) request.getSession(true).getAttribute(BMDataContext.USER_SESSION_NAME) ;
HandlerMethod handlerMethod = (HandlerMethod ) handler ;
Menu menu = handlerMethod.getMethod().getAnnotation(Menu.class) ;
if(user != null || (menu!=null && menu.access()) || handlerMethod.getBean() instanceof BasicErrorController){
filter = true;
}
if(!filter){
response.sendRedirect("/login.html");
}
}
return filter ;
}
public void postHandle(HttpServletRequest arg0, HttpServletResponse response, Object arg2,
ModelAndView view) throws Exception {
User user = (User) arg0.getSession().getAttribute(BMDataContext.USER_SESSION_NAME) ;
if( view!=null){
if(user!=null){
view.addObject("user", user) ;
view.addObject("schema",arg0.getScheme()) ;
view.addObject("hostname",arg0.getServerName()) ;
view.addObject("port",arg0.getServerPort()) ;
HandlerMethod handlerMethod = (HandlerMethod ) arg2 ;
Menu menu = handlerMethod.getMethod().getAnnotation(Menu.class) ;
if(menu!=null){
view.addObject("subtype", menu.subtype()) ;
view.addObject("maintype", menu.type()) ;
view.addObject("typename", menu.name()) ;
}
view.addObject("orgi", user.getOrgi()) ;
}
view.addObject("sessionid", UKTools.getContextID(arg0.getSession().getId())) ;
/**
* WebIM共享用户
*/
User imUser = (User) arg0.getSession().getAttribute(BMDataContext.IM_USER_SESSION_NAME) ;
if(imUser == null && view!=null){
imUser = new User();
imUser.setUsername(BMDataContext.GUEST_USER) ;
imUser.setId(UKTools.getContextID(arg0.getSession(true).getId())) ;
imUser.setSessionid(imUser.getId()) ;
view.addObject("imuser", imUser) ;
}
if(arg0.getParameter("msg") != null){
view.addObject("msg", arg0.getParameter("msg")) ;
}
view.addObject("uKeFuDic", UKeFuDic.getInstance()) ; //处理系统 字典数据 通过 字典code 获取
SystemConfig systemConfig = (SystemConfig) CacheHelper.getSystemCacheBean().getCacheObject("systemConfig", BMDataContext.SYSTEM_ORGI) ;
if(systemConfig != null){
view.addObject("systemConfig", systemConfig) ;
}else{
view.addObject("systemConfig", new SystemConfig()) ;
}
}
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}

View File

@@ -0,0 +1,98 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "bm_organ")
@org.hibernate.annotations.Proxy(lazy = false)
public class Organ implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 1115593425069549681L;
private String id ;
private String name ;
private String code ;
private String parent ;
private Date createtime ;
private String creater;
private boolean skill ;
private String username ;
private Date updatetime ;
private String orgi ;
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
public String getParent() {
return parent;
}
public void setParent(String parent) {
this.parent = parent;
}
public boolean isSkill() {
return skill;
}
public void setSkill(boolean skill) {
this.skill = skill;
}
}

View File

@@ -0,0 +1,71 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "bm_organrole")
@org.hibernate.annotations.Proxy(lazy = false)
public class OrganRole implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 707069993826500239L;
private String id ;
private Organ organ;
private Role role ;
private String creater ;
private String orgi ;
private Date createtime = new Date();
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@OneToOne(optional = true)
public Organ getOrgan() {
return organ;
}
public void setOrgan(Organ organ) {
this.organ = organ;
}
@OneToOne(optional = true)
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
}

View File

@@ -0,0 +1,446 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.springframework.data.elasticsearch.annotations.Document;
import com.beimi.util.event.UserEvent;
/**
* @author jaddy0302 Rivulet User.java 2010-3-17
*
*/
@Document(indexName = "beimi", type = "uk_playuser")
@Entity
@Table(name = "bm_playuser")
@org.hibernate.annotations.Proxy(lazy = false)
public class PlayUser implements UserEvent , java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
@Id
private String id ;
private String username ;
private String password ;
private String email ;
private String uname ;
private String firstname ;
private String midname ;
private String lastname ;
private String language ;
private String jobtitle ;
private String gender;
private String mobile ;
private String birthday ;
private String nickname ;
private String secureconf = "5";
private String usertype ; //
private String orgi ;
private String creater;
private Date createtime = new Date();
private Date updatetime = new Date();
private Date passupdatetime = new Date();
private String memo;
private String city ; //城市
private String province ;//省份
private boolean login ; //是否登录
private boolean online ; //是否在线
private String status ; //
private boolean datastatus ;//数据状态,是否已删除
private boolean headimg ; //是否上传头像
private String playerlevel ;//玩家级别 等级
private int experience ; //玩家经验
private boolean secquestion ;//是否设置密保问题
private Date lastlogintime = new Date(); //最后登录时间
private int fans ; //粉丝
private int follows ; //关注
private int integral ; //积分
/**
* @return the id
*/
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "assigned")
public String getId() {
return id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getMidname() {
return midname;
}
public void setMidname(String midname) {
this.midname = midname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getJobtitle() {
return jobtitle;
}
public void setJobtitle(String jobtitle) {
this.jobtitle = jobtitle;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getSecureconf() {
return secureconf;
}
public void setSecureconf(String secureconf) {
this.secureconf = secureconf;
}
public String getUsertype() {
return usertype;
}
public void setUsertype(String usertype) {
this.usertype = usertype;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public Date getPassupdatetime() {
return passupdatetime;
}
public void setPassupdatetime(Date passupdatetime) {
this.passupdatetime = passupdatetime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public boolean isLogin() {
return login;
}
public void setLogin(boolean login) {
this.login = login;
}
public boolean isOnline() {
return online;
}
public void setOnline(boolean online) {
this.online = online;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public boolean isDatastatus() {
return datastatus;
}
public void setDatastatus(boolean datastatus) {
this.datastatus = datastatus;
}
public boolean isHeadimg() {
return headimg;
}
public void setHeadimg(boolean headimg) {
this.headimg = headimg;
}
public String getPlayerlevel() {
return playerlevel;
}
public void setPlayerlevel(String playerlevel) {
this.playerlevel = playerlevel;
}
public int getExperience() {
return experience;
}
public void setExperience(int experience) {
this.experience = experience;
}
public boolean isSecquestion() {
return secquestion;
}
public void setSecquestion(boolean secquestion) {
this.secquestion = secquestion;
}
public Date getLastlogintime() {
return lastlogintime;
}
public void setLastlogintime(Date lastlogintime) {
this.lastlogintime = lastlogintime;
}
public int getFans() {
return fans;
}
public void setFans(int fans) {
this.fans = fans;
}
public int getFollows() {
return follows;
}
public void setFollows(int follows) {
this.follows = follows;
}
public int getIntegral() {
return integral;
}
public void setIntegral(int integral) {
this.integral = integral;
}
public void setId(String id) {
this.id = id;
}
}

View File

@@ -0,0 +1,41 @@
package com.beimi.web.model;
/**
*
* @author iceworld
*
*/
public class ResultData implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = -2710593844038107782L;
private boolean status ;
private String msg ;
private Object data ;
public ResultData(boolean status , String msg , Object data){
this.status = status ;
this.msg = msg ;
this.data = data ;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}

View File

@@ -0,0 +1,89 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "bm_role")
@org.hibernate.annotations.Proxy(lazy = false)
public class Role implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 1115593425069549681L;
private String id ;
private String name ;
private String code ;
private Date createtime ;
private String creater;
private String username ;
private Date updatetime ;
private String orgi ;
public Role(){}
public Role(String id){
this.id = id ;
}
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
}

View File

@@ -0,0 +1,116 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "bm_role_auth")
@org.hibernate.annotations.Proxy(lazy = false)
public class RoleAuth implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 1115593425069549681L;
private String id ;
private String name ;
private String code ;
private Date createtime ;
private String creater;
private String username ;
private Date updatetime ;
private String orgi ;
private String roleid ;
private String dicid ;
private String dicvalue ;
public RoleAuth(){}
public RoleAuth(String id){
this.id = id ;
}
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
public String getRoleid() {
return roleid;
}
public void setRoleid(String roleid) {
this.roleid = roleid;
}
public String getDicid() {
return dicid;
}
public void setDicid(String dicid) {
this.dicid = dicid;
}
public String getDicvalue() {
return dicvalue;
}
public void setDicvalue(String dicvalue) {
this.dicvalue = dicvalue;
}
}

View File

@@ -0,0 +1,210 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "uk_sysdic")
@org.hibernate.annotations.Proxy(lazy = false)
public class SysDic implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 8699781935163431952L;
private String id ;
private String name ;
private String title = "pub"; //改变用处, 变更为 CubeDic 的 目录类型, 个人文件夹 / 公共文件夹
private String code ;
private String orgi ;
private String ctype ;
private String parentid;
private String iconstr ;
private String iconskin ;
private String description;
private String catetype ;
private String memo ;
private String creater;
private boolean haschild ; //修改用处,改为 是否允许租户扩展 字典项目
private boolean discode ; //是否显示code
private Date createtime;
private Date updatetime;
private int sortindex ;
private String dicid ;
private String menutype ; //菜单类型,顶部导航菜单, 左侧菜单
private String rules ; //角色要求 管理员 / 普通用户 / 多媒体坐席 / 呼叫中心坐席
private String module ;
private String url ;
private String mlevel ; //菜单级别, 一级 菜单, 二级菜单
private boolean defaultvalue = false;
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
public String getCtype() {
return ctype;
}
public void setCtype(String ctype) {
this.ctype = ctype;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String getIconstr() {
return iconstr;
}
public void setIconstr(String iconstr) {
this.iconstr = iconstr;
}
public String getIconskin() {
return iconskin;
}
public void setIconskin(String iconskin) {
this.iconskin = iconskin;
}
public String getCatetype() {
return catetype;
}
public void setCatetype(String catetype) {
this.catetype = catetype;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
public boolean isHaschild() {
return haschild;
}
public void setHaschild(boolean haschild) {
this.haschild = haschild;
}
public int getSortindex() {
return sortindex;
}
public void setSortindex(int sortindex) {
this.sortindex = sortindex;
}
public String getDicid() {
return dicid;
}
public void setDicid(String dicid) {
this.dicid = dicid;
}
public boolean isDefaultvalue() {
return defaultvalue;
}
public void setDefaultvalue(boolean defaultvalue) {
this.defaultvalue = defaultvalue;
}
public String toString(){
return this.name ;
}
public boolean isDiscode() {
return discode;
}
public void setDiscode(boolean discode) {
this.discode = discode;
}
public String getModule() {
return module;
}
public void setModule(String module) {
this.module = module;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMlevel() {
return mlevel;
}
public void setMlevel(String mlevel) {
this.mlevel = mlevel;
}
public String getRules() {
return rules;
}
public void setRules(String rules) {
this.rules = rules;
}
public String getMenutype() {
return menutype;
}
public void setMenutype(String menutype) {
this.menutype = menutype;
}
}

View File

@@ -0,0 +1,166 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "bm_systemconfig")
@org.hibernate.annotations.Proxy(lazy = false)
public class SystemConfig implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = -8675632756915176657L;
private String id ;
private String name ;
private String title ;
private String theme = "01"; //默认绿色
private String code ;
private String orgi ;
private String description;
private String memo ;
private String creater;
private Date createtime;
private Date updatetime;
private String loglevel ;
private boolean enablessl ;
private String jksfile ;
private String jkspassword ;
private String mapkey ;
private boolean workorders ;
private boolean callout ;
private boolean auth ; //启用权限控制
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
public String getLoglevel() {
return loglevel;
}
public void setLoglevel(String loglevel) {
this.loglevel = loglevel;
}
public boolean isEnablessl() {
return enablessl;
}
public void setEnablessl(boolean enablessl) {
this.enablessl = enablessl;
}
public String getJksfile() {
return jksfile;
}
public void setJksfile(String jksfile) {
this.jksfile = jksfile;
}
public String getJkspassword() {
return jkspassword;
}
public void setJkspassword(String jkspassword) {
this.jkspassword = jkspassword;
}
public String getMapkey() {
return mapkey;
}
public void setMapkey(String mapkey) {
this.mapkey = mapkey;
}
public boolean isWorkorders() {
return workorders;
}
public void setWorkorders(boolean workorders) {
this.workorders = workorders;
}
public boolean isCallout() {
return callout;
}
public void setCallout(boolean callout) {
this.callout = callout;
}
public boolean isAuth() {
return auth;
}
public void setAuth(boolean auth) {
this.auth = auth;
}
}

View File

@@ -0,0 +1,81 @@
package com.beimi.web.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.beimi.core.BMDataContext;
import com.beimi.util.cache.CacheHelper;
public class UKeFuDic<K,V> extends HashMap<K,V>{
/**
*
*/
private static final long serialVersionUID = 2110217015030751243L;
private static UKeFuDic<Object, Object> uKeFuDic = new UKeFuDic<Object, Object>();
public static UKeFuDic<?, ?> getInstance(){
return uKeFuDic ;
}
@SuppressWarnings("unchecked")
public List<SysDic> getSysDic(String key){
return (List<SysDic>) CacheHelper.getSystemCacheBean().getCacheObject(key, BMDataContext.SYSTEM_ORGI) ;
}
@Override
@SuppressWarnings("unchecked")
public V get(Object key) {
Object obj = CacheHelper.getSystemCacheBean().getCacheObject(String.valueOf(key), BMDataContext.SYSTEM_ORGI) ;
if(obj!=null && obj instanceof List){
obj = getDic((String) key) ;
}else if(obj == null && (String.valueOf(key)).endsWith(".subdic") && (String.valueOf(key)).lastIndexOf(".subdic") > 0){
String id = (String.valueOf(key)).substring(0 , (String.valueOf(key)).lastIndexOf(".subdic")) ;
SysDic dic = (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(id, BMDataContext.SYSTEM_ORGI) ;
if(dic!=null){
SysDic sysDic = (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(dic.getDicid(), BMDataContext.SYSTEM_ORGI) ;
obj = getDic(sysDic.getCode(), dic.getParentid()) ;
}
}
return (V) obj;
}
@SuppressWarnings("unchecked")
public List<SysDic> getDic(String code){
List<SysDic> dicList = new ArrayList<SysDic>() ;
List<SysDic> sysDicList = (List<SysDic>) CacheHelper.getSystemCacheBean().getCacheObject(code, BMDataContext.SYSTEM_ORGI) ;
if(sysDicList!=null){
for(SysDic dic : sysDicList){
if(dic.getParentid().equals(dic.getDicid())){
dicList.add(dic) ;
}
}
}
return dicList ;
}
@SuppressWarnings("unchecked")
public List<SysDic> getDic(String code , String id){
List<SysDic> dicList = new ArrayList<SysDic>() ;
List<SysDic> sysDicList = (List<SysDic>) CacheHelper.getSystemCacheBean().getCacheObject(code, BMDataContext.SYSTEM_ORGI) ;
if(sysDicList!=null){
for(SysDic dic : sysDicList){
if(dic.getParentid().equals(id)){
dicList.add(dic) ;
}
}
}
return dicList ;
}
public List<SysDic> getEpt(){
return new ArrayList<SysDic>() ;
}
public SysDic getDicItem(String id){
return (SysDic) CacheHelper.getSystemCacheBean().getCacheObject(id, BMDataContext.SYSTEM_ORGI) ;
}
}

View File

@@ -1,8 +1,9 @@
package com.beimi.web.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -19,9 +20,9 @@ import org.hibernate.annotations.GenericGenerator;
*
*/
@Entity
@Table(name = "uk_user")
@Table(name = "bm_user")
@org.hibernate.annotations.Proxy(lazy = false)
public class User implements Serializable{
public class User implements java.io.Serializable{
/**
*
*/
@@ -30,7 +31,7 @@ public class User implements Serializable{
/**
*
*/
@Id
@Id
private String id ;
private String sessionid ;
@@ -50,7 +51,10 @@ public class User implements Serializable{
private String birthday ;
private String nickname ;
private String secureconf = "5";
private String usertype ; // 0 Admin User : !0 Other User
private String usertype ; // 0 Admin User : !0 Other User
private boolean superuser ; //是否是超级管理员
private String orgi ;
private String creater;
private Date createtime = new Date();
@@ -58,7 +62,8 @@ public class User implements Serializable{
private Date updatetime = new Date();
private String memo;
private String organ;
private boolean agent ; //是否开通坐席功能
private boolean agent ;
private boolean callcenter ;
private String skill ;
private String city ; //城市
private String province ;//省份
@@ -67,11 +72,14 @@ public class User implements Serializable{
private String status ; //
private boolean datastatus ;//数据状态,是否已删除
private Date lastlogintime = new Date(); //最后登录时间
private int fans ; //粉丝
private int follows ; //关注
private int integral ; //积分
private List<Role> roleList = new ArrayList<Role>() ;
private List<RoleAuth> roleAuthList = new ArrayList<RoleAuth>() ;
public User(){}
public User(String id){
@@ -412,6 +420,13 @@ public class User implements Serializable{
public void setOnline(boolean online) {
this.online = online;
}
@Transient
public List<Role> getRoleList() {
return roleList;
}
public void setRoleList(List<Role> roleList) {
this.roleList = roleList;
}
public String getStatus() {
return status;
}
@@ -424,4 +439,24 @@ public class User implements Serializable{
public void setDatastatus(boolean datastatus) {
this.datastatus = datastatus;
}
public boolean isCallcenter() {
return callcenter;
}
public void setCallcenter(boolean callcenter) {
this.callcenter = callcenter;
}
@Transient
public List<RoleAuth> getRoleAuthList() {
return roleAuthList;
}
public void setRoleAuthList(List<RoleAuth> roleAuthList) {
this.roleAuthList = roleAuthList;
}
public boolean isSuperuser() {
return superuser;
}
public void setSuperuser(boolean superuser) {
this.superuser = superuser;
}
}

View File

@@ -0,0 +1,71 @@
package com.beimi.web.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "bm_userrole")
@org.hibernate.annotations.Proxy(lazy = false)
public class UserRole implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 707069993826500239L;
private String id ;
private User user ;
private Role role ;
private String creater ;
private String orgi ;
private Date createtime = new Date();
@Id
@Column(length = 32)
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@OneToOne(optional = true)
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@OneToOne(optional = true)
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getOrgi() {
return orgi;
}
public void setOrgi(String orgi) {
this.orgi = orgi;
}
}

View File

@@ -0,0 +1,25 @@
package com.beimi.web.service.repository.es;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
import com.beimi.web.model.PlayUser;
public abstract interface PlayUserESRepository
extends ElasticsearchCrudRepository<PlayUser, String>
{
public abstract PlayUser findById(String paramString);
public abstract PlayUser findByUsername(String username);
public abstract int countByUsername(String username);
public abstract PlayUser findByEmail(String email);
public abstract PlayUser findByUsernameAndPassword(String username, String password);
public abstract Page<PlayUser> findByDatastatus(boolean datastatus , String orgi, Pageable paramPageable);
public abstract Page<PlayUser> findByDatastatusAndUsername(boolean datastatus , String orgi ,String username ,Pageable paramPageable);
}

View File

@@ -0,0 +1,23 @@
package com.beimi.web.service.repository.jpa;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.Organ;
public abstract interface OrganRepository
extends JpaRepository<Organ, String>
{
public abstract Organ findByIdAndOrgi(String paramString, String orgi);
public abstract Page<Organ> findByOrgi(String orgi , Pageable paramPageable);
public abstract Organ findByNameAndOrgi(String paramString, String orgi);
public abstract List<Organ> findByOrgi(String orgi);
public abstract List<Organ> findByOrgiAndSkill(String orgi , boolean skill);
}

View File

@@ -0,0 +1,22 @@
package com.beimi.web.service.repository.jpa;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.Organ;
import com.beimi.web.model.OrganRole;
import com.beimi.web.model.Role;
public abstract interface OrganRoleRepository extends JpaRepository<OrganRole, String>
{
public abstract Page<OrganRole> findByOrgiAndRole(String orgi ,Role role,Pageable paramPageable);
public abstract List<OrganRole> findByOrgiAndRole(String orgi ,Role role);
public abstract List<OrganRole> findByOrgiAndOrgan(String orgi ,Organ organ);
}

View File

@@ -0,0 +1,22 @@
package com.beimi.web.service.repository.jpa;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.PlayUser;
public abstract interface PlayUserRepository extends JpaRepository<PlayUser, String>
{
public abstract PlayUser findById(String paramString);
public abstract PlayUser findByUsername(String username);
public abstract PlayUser findByEmail(String email);
public abstract PlayUser findByUsernameAndPassword(String username, String password);
public abstract Page<PlayUser> findByDatastatus(boolean datastatus , String orgi, Pageable paramPageable);
public abstract Page<PlayUser> findByDatastatusAndUsername(boolean datastatus , String orgi ,String username ,Pageable paramPageable);
}

View File

@@ -0,0 +1,21 @@
package com.beimi.web.service.repository.jpa;
import java.util.List;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.RoleAuth;
public abstract interface RoleAuthRepository
extends JpaRepository<RoleAuth, String>
{
public abstract RoleAuth findByIdAndOrgi(String paramString, String orgi);
public List<RoleAuth> findByRoleidAndOrgi(String roleid , String orgi) ;
public List<RoleAuth> findAll(Specification<RoleAuth> spec) ;
public abstract RoleAuth findByNameAndOrgi(String paramString, String orgi);
}

View File

@@ -0,0 +1,18 @@
package com.beimi.web.service.repository.jpa;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.Role;
public abstract interface RoleRepository
extends JpaRepository<Role, String>
{
public abstract Role findByIdAndOrgi(String paramString, String orgi);
public abstract List<Role> findByOrgi(String orgi);
public abstract Role findByNameAndOrgi(String paramString, String orgi);
}

View File

@@ -0,0 +1,31 @@
package com.beimi.web.service.repository.jpa;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.SysDic;
public abstract interface SysDicRepository extends JpaRepository<SysDic, String>{
public abstract SysDic findById(String id);
public abstract SysDic findByCode(String code);
public abstract Page<SysDic> findAll(Pageable paramPageable);
public abstract List<SysDic> findByCodeOrName(String code , String name);
public abstract List<SysDic> findByDicidAndName(String dicid , String name);
public abstract Page<SysDic> findByParentid(String type , Pageable paramPageable);
public abstract List<SysDic> findByParentid(String type);
public abstract List<SysDic> findByDicid(String id);
public int countByName(String name);
}

View File

@@ -0,0 +1,11 @@
package com.beimi.web.service.repository.jpa;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.SystemConfig;
public abstract interface SystemConfigRepository extends JpaRepository<SystemConfig, String>
{
public abstract SystemConfig findByOrgi(String orgi);
}

View File

@@ -1,4 +1,4 @@
package com.beimi.web.service.repository;
package com.beimi.web.service.repository.jpa;
import java.util.List;

View File

@@ -0,0 +1,22 @@
package com.beimi.web.service.repository.jpa;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import com.beimi.web.model.Role;
import com.beimi.web.model.User;
import com.beimi.web.model.UserRole;
public abstract interface UserRoleRepository extends JpaRepository<UserRole, String>
{
public abstract Page<UserRole> findByOrgiAndRole(String orgi ,Role role,Pageable paramPageable);
public abstract List<UserRole> findByOrgiAndRole(String orgi ,Role role);
public abstract List<UserRole> findByOrgiAndUser(String orgi ,User user);
}

Binary file not shown.

View File

@@ -1,3 +1,4 @@
spring.data.jpa.repositories.enabled=true
web.upload-path=data
@@ -6,6 +7,11 @@ server.port=80
server.context-path=/
#spring.data.elasticsearch.cluster-name=elasticsearch
#spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300
#spring.data.elasticsearch.local=false
#spring.data.elasticsearch.repositories.enabled=true
# FREEMARKER (FreeMarkerAutoConfiguration)
spring.freemarker.allow-request-override=false
spring.freemarker.allow-session-override=false
@@ -29,15 +35,16 @@ spring.freemarker.settings.number_format=###
spring.freemarker.order=1
bm.im.server.port=8081
bm.im.server.host=localhost
uk.im.server.port=9081
uk.im.server.host=localhost
uk.im.server.threads=1000
spring.hazelcast.config=classpath:config/hazelcast.xml
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/beimi?useUnicode=true&characterEncoding=UTF-8
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/beimi?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
@@ -47,9 +54,9 @@ spring.datasource.password=123456
#spring.datasource.password=123456
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.initialSize=50
spring.datasource.minIdle=20
spring.datasource.maxActive=100
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
@@ -57,12 +64,15 @@ spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.removeAbandoned=true
spring.datasource.removeAbandonedTimeout=180
spring.datasource.logAbandoned=true
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
management.security.enabled=false
mybatis-plus.mapper-locations: classpath:/mapper/*Mapper.xml
management.security.enabled=false

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,344 @@
.audioplayer
{
height: 2.5em; /* 40 */
color: #fff;
text-shadow: 1px 1px 0 #000;
border: 1px solid #222;
position: relative;
z-index: 1;
background: #333;
background: -webkit-gradient( linear, left top, left bottom, from( #444 ), to( #222 ) );
background: -webkit-linear-gradient( top, #444, #222 );
background: -moz-linear-gradient( top, #444, #222 );
background: -ms-radial-gradient( top, #444, #222 );
background: -o-linear-gradient( top, #444, #222 );
background: linear-gradient( top, #444, #222 );
-webkit-box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .15 ), 0 0 1.25em rgba( 0, 0, 0, .5 ); /* 20 */
-moz-box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .15 ), 0 0 1.25em rgba( 0, 0, 0, .5 ); /* 20 */
box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .15 ), 0 0 1.25em rgba( 0, 0, 0, .5 ); /* 20 */
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.audioplayer-mini
{
width: 2.5em; /* 40 */
margin: 0 auto;
}
.audioplayer > div
{
position: absolute;
}
.audioplayer-playpause
{
width: 2.5em; /* 40 */
height: 100%;
text-align: left;
text-indent: -9999px;
cursor: pointer;
z-index: 2;
top: 0;
left: 0;
}
.audioplayer:not(.audioplayer-mini) .audioplayer-playpause
{
border-right: 1px solid #555;
border-right-color: rgba( 255, 255, 255, .1 );
}
.audioplayer-mini .audioplayer-playpause
{
width: 100%;
}
.audioplayer-playpause:hover,
.audioplayer-playpause:focus
{
background-color: #222;
}
.audioplayer-playpause a
{
display: block;
}
.audioplayer:not(.audioplayer-playing) .audioplayer-playpause a
{
width: 0;
height: 0;
border: 0.5em solid transparent; /* 8 */
border-right: none;
border-left-color: #fff;
content: '';
position: absolute;
top: 50%;
left: 50%;
margin: -0.5em 0 0 -0.25em; /* 8 4 */
}
.audioplayer-playing .audioplayer-playpause a
{
width: 0.75em; /* 12 */
height: 0.75em; /* 12 */
position: absolute;
top: 50%;
left: 50%;
margin: -0.375em 0 0 -0.375em; /* 6 */
}
.audioplayer-playing .audioplayer-playpause a:before,
.audioplayer-playing .audioplayer-playpause a:after
{
width: 40%;
height: 100%;
background-color: #fff;
content: '';
position: absolute;
top: 0;
}
.audioplayer-playing .audioplayer-playpause a:before
{
left: 0;
}
.audioplayer-playing .audioplayer-playpause a:after
{
right: 0;
}
.audioplayer-time
{
width: 4.375em; /* 70 */
height: 100%;
line-height: 2.375em; /* 38 */
text-align: center;
z-index: 2;
top: 0;
}
.audioplayer-time-current
{
border-left: 1px solid #111;
border-left-color: rgba( 0, 0, 0, .25 );
left: 2.5em; /* 40 */
}
.audioplayer-time-duration
{
border-right: 1px solid #555;
border-right-color: rgba( 255, 255, 255, .1 );
right: 2.5em; /* 40 */
}
.audioplayer-novolume .audioplayer-time-duration
{
border-right: 0;
right: 0;
}
.audioplayer-bar
{
height: 0.875em; /* 14 */
background-color: #222;
cursor: pointer;
z-index: 1;
top: 50%;
right: 6.875em; /* 110 */
left: 6.875em; /* 110 */
margin-top: -0.438em; /* 7 */
}
.audioplayer-novolume .audioplayer-bar
{
right: 4.375em; /* 70 */
}
.audioplayer-bar div
{
width: 0;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.audioplayer-bar-loaded
{
background-color: #333;
z-index: 1;
}
.audioplayer-bar-played
{
background: #007fd1;
background: -webkit-gradient( linear, left top, right top, from( #007fd1 ), to( #c600ff ) );
background: -webkit-linear-gradient( left, #007fd1, #c600ff );
background: -moz-linear-gradient( left, #007fd1, #c600ff );
background: -ms-radial-gradient( left, #007fd1, #c600ff );
background: -o-linear-gradient( left, #007fd1, #c600ff );
background: linear-gradient( left, #007fd1, #c600ff );
z-index: 2;
}
.audioplayer-volume
{
width: 2.5em; /* 40 */
height: 100%;
border-left: 1px solid #111;
border-left-color: rgba( 0, 0, 0, .25 );
text-align: left;
text-indent: -9999px;
cursor: pointer;
z-index: 2;
top: 0;
right: 0;
}
.audioplayer-volume:hover,
.audioplayer-volume:focus
{
background-color: #222;
}
.audioplayer-volume-button
{
width: 100%;
height: 100%;
}
.audioplayer-volume-button a
{
width: 0.313em; /* 5 */
height: 0.375em; /* 6 */
background-color: #fff;
display: block;
position: relative;
z-index: 1;
top: 40%;
left: 35%;
}
.audioplayer-volume-button a:before,
.audioplayer-volume-button a:after
{
content: '';
position: absolute;
}
.audioplayer-volume-button a:before
{
width: 0;
height: 0;
border: 0.5em solid transparent; /* 8 */
border-left: none;
border-right-color: #fff;
z-index: 2;
top: 50%;
right: -0.25em;
margin-top: -0.5em; /* 8 */
}
.audioplayer:not(.audioplayer-mute) .audioplayer-volume-button a:after
{
/* "volume" icon by Nicolas Gallagher, http://nicolasgallagher.com/pure-css-gui-icons */
width: 0.313em; /* 5 */
height: 0.313em; /* 5 */
border: 0.25em double #fff; /* 4 */
border-width: 0.25em 0.25em 0 0; /* 4 */
left: 0.563em; /* 9 */
top: -0.063em; /* 1 */
-webkit-border-radius: 0 0.938em 0 0; /* 15 */
-moz-border-radius: 0 0.938em 0 0; /* 15 */
border-radius: 0 0.938em 0 0; /* 15 */
-webkit-transform: rotate( 45deg );
-moz-transform: rotate( 45deg );
-ms-transform: rotate( 45deg );
-o-transform: rotate( 45deg );
transform: rotate( 45deg );
}
.audioplayer-volume-adjust
{
height: 6.25em; /* 100 */
cursor: default;
position: absolute;
left: 0;
right: -1px;
top: -9999px;
background: #222;
background: -webkit-gradient( linear, left top, left bottom, from( #444 ), to( #222 ) );
background: -webkit-linear-gradient( top, #444, #222 );
background: -moz-linear-gradient( top, #444, #222 );
background: -ms-radial-gradient( top, #444, #222 );
background: -o-linear-gradient( top, #444, #222 );
background: linear-gradient( top, #444, #222 );
-webkit-border-top-left-radius: 2px;
-webkit-border-top-right-radius: 2px;
-moz-border-radius-topleft: 2px;
-moz-border-radius-topright: 2px;
border-top-left-radius: 2px;
border-top-right-radius: 2px;
}
.audioplayer-volume:not(:hover) .audioplayer-volume-adjust
{
opacity: 0;
}
.audioplayer-volume:hover .audioplayer-volume-adjust
{
top: auto;
bottom: 100%;
}
.audioplayer-volume-adjust > div
{
width: 40%;
height: 80%;
background-color: #222;
cursor: pointer;
position: relative;
z-index: 1;
margin: 30% auto 0;
}
.audioplayer-volume-adjust div div
{
width: 100%;
height: 100%;
position: absolute;
bottom: 0;
left: 0;
background: #007fd1;
background: -webkit-gradient( linear, left bottom, left top, from( #007fd1 ), to( #c600ff ) );
background: -webkit-linear-gradient( bottom, #007fd1, #c600ff );
background: -moz-linear-gradient( bottom, #007fd1, #c600ff );
background: -ms-radial-gradient( bottom, #007fd1, #c600ff );
background: -o-linear-gradient( bottom, #007fd1, #c600ff );
background: linear-gradient( bottom, #007fd1, #c600ff );
}
.audioplayer-novolume .audioplayer-volume
{
display: none;
}
.audioplayer-play,
.audioplayer-pause,
.audioplayer-volume a
{
-webkit-filter: drop-shadow( 1px 1px 0 #000 );
-moz-filter: drop-shadow( 1px 1px 0 #000 );
-ms-filter: drop-shadow( 1px 1px 0 #000 );
-o-filter: drop-shadow( 1px 1px 0 #000 );
filter: drop-shadow( 1px 1px 0 #000 );
}
.audioplayer-bar,
.audioplayer-bar div,
.audioplayer-volume-adjust div
{
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.audioplayer-bar,
.audioplayer-volume-adjust > div
{
-webkit-box-shadow: -1px -1px 0 rgba( 0, 0, 0, .5 ), 1px 1px 0 rgba( 255, 255, 255, .1 );
-moz-box-shadow: -1px -1px 0 rgba( 0, 0, 0, .5 ), 1px 1px 0 rgba( 255, 255, 255, .1 );
box-shadow: -1px -1px 0 rgba( 0, 0, 0, .5 ), 1px 1px 0 rgba( 255, 255, 255, .1 );
}
.audioplayer-volume-adjust div div,
.audioplayer-bar-played
{
-webkit-box-shadow: inset 0 0 5px rgba( 255, 255, 255, .5 );
-moz-box-shadow: inset 0 0 5px rgba( 255, 255, 255, .5 );
box-shadow: inset 0 0 5px rgba( 255, 255, 255, .5 );
}
.audioplayer-volume-adjust
{
-webkit-box-shadow: -2px -2px 2px rgba( 0, 0, 0, .15 ), 2px -2px 2px rgba( 0, 0, 0, .15 );
-moz-box-shadow: -2px -2px 2px rgba( 0, 0, 0, .15 ), 2px -2px 2px rgba( 0, 0, 0, .15 );
box-shadow: -2px -2px 2px rgba( 0, 0, 0, .15 ), 2px -2px 2px rgba( 0, 0, 0, .15 );
}
.audioplayer *,
.audioplayer *:before,
.audioplayer *:after
{
-webkit-transition: color .25s ease, background-color .25s ease, opacity .5s ease;
-moz-transition: color .25s ease, background-color .25s ease, opacity .5s ease;
-ms-transition: color .25s ease, background-color .25s ease, opacity .5s ease;
-o-transition: color .25s ease, background-color .25s ease, opacity .5s ease;
transition: color .25s ease, background-color .25s ease, opacity .5s ease;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,129 @@
.dark-tooltip{ display:none; position:absolute; z-index:10000;margin-left:5px; text-decoration:none; font-weight:normal; height:auto; top:0; left:0;}
.dark-tooltip.small{ padding:4px; font-size:12px; max-width:150px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; }
.dark-tooltip.medium{ padding:10px; font-size:14px; max-width:200px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px;}
.dark-tooltip.large{ padding:16px; font-size:16px; max-width:250px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; }
/* Tips */
.dark-tooltip .tip{ transform: scale(1.01); -webkit-transform: scale(1.01); transform: scale(1.01); content: ""; position: absolute; width:0; height:0; border-style: solid; line-height: 0px; }
.dark-tooltip.south .tip{ left:50%; top:100%;}
.dark-tooltip.west .tip{ left:0; top:50%;}
.dark-tooltip.north .tip{ left:50%; top:0; }
.dark-tooltip.east .tip{ left:100%; top:50%;}
.dark-tooltip.south.small .tip{ border-width: 7px 5px 0 5px; margin-left:-5px;}
.dark-tooltip.south.medium .tip{ border-width: 8px 6px 0 6px; margin-left:-6px;}
.dark-tooltip.south.large .tip{ border-width: 14px 12px 0 12px; margin-left:-12px;}
.dark-tooltip.west.small .tip{ border-width: 5px 7px 5px 0; margin-left:-7px; margin-top:-5px;}
.dark-tooltip.west.medium .tip{ border-width: 6px 8px 6px 0; margin-left:-8px; margin-top:-6px;}
.dark-tooltip.west.large .tip{ border-width: 12px 14px 12px 0; margin-left:-14px; margin-top:-12px;}
.dark-tooltip.north.small .tip{ border-width: 0 5px 7px 5px; margin-left:-5px; margin-top:-7px;}
.dark-tooltip.north.medium .tip{ border-width: 0 6px 8px 6px; margin-left:-6px; margin-top:-8px;}
.dark-tooltip.north.large .tip{ border-width: 0 12px 14px 12px; margin-left:-12px; margin-top:-14px;}
.dark-tooltip.east.small .tip{ border-width: 5px 0 5px 7px; margin-top:-5px;}
.dark-tooltip.east.medium .tip{ border-width: 6px 0 6px 8px; margin-top:-6px;}
.dark-tooltip.east.large .tip{ border-width: 12px 0 12px 14px; margin-top:-12px;}
/* confirm */
.dark-tooltip ul.confirm{ list-style-type:none;margin-top:5px;display:inline-block;margin:0 auto; }
.dark-tooltip ul.confirm li{ padding:10px;float:left;margin:5px;min-width:25px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px;}
/* themes */
.dark-tooltip.dark{ background-color:#1B1E24; color:#fff; }
.dark-tooltip.light{ background-color:#ebedf3; color:#1B1E24; }
.dark-tooltip.dark.south .tip{ border-color: #1B1E24 transparent transparent transparent; _border-color: #1B1E24 #000000 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.dark.west .tip{ border-color: transparent #1B1E24 transparent transparent; _border-color: #000000 #1B1E24 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.dark.north .tip{ border-color: transparent transparent #1B1E24 transparent; _border-color: #000000 #000000 #1B1E24 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.dark.east .tip{ border-color: transparent transparent transparent #1B1E24; _border-color: #000000 #000000 #000000 #1B1E24; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.light.south .tip{ border-color: #ebedf3 transparent transparent transparent; _border-color: #ebedf3 #000000 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.light.west .tip{ border-color: transparent #ebedf3 transparent transparent; _border-color: #000000 #ebedf3 #000000 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.light.north .tip{ border-color: transparent transparent #ebedf3 transparent; _border-color: #000000 #000000 #ebedf3 #000000; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.light.east .tip{ border-color: transparent transparent transparent #ebedf3; _border-color:#000000 #000000 #000000 #ebedf3 ; _filter: progid:DXImageTransform.Microsoft.Chroma(color='#000000'); }
.dark-tooltip.dark ul.confirm li{ background-color:#416E85;}
.dark-tooltip.dark ul.confirm li:hover{ background-color:#417E85;}
.dark-tooltip.light ul.confirm li{ background-color:#C1DBDB;}
.dark-tooltip.light ul.confirm li:hover{ background-color:#DCE8E8;}
/* Animations */
.animated{
-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;
-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-ms-animation-duration:.5s;-o-animation-duration:.5s;animation-duration:.5s;
}
@-webkit-keyframes flipInUp {
0% { -webkit-transform: perspective(400px) rotateX(-90deg); opacity: 0;}
40% { -webkit-transform: perspective(400px) rotateX(5deg);}
70% { -webkit-transform: perspective(400px) rotateX(-5deg);}
100% { -webkit-transform: perspective(400px) rotateX(0deg); opacity: 1;}
}
@-moz-keyframes flipInUp {
0% {transform: perspective(400px) rotateX(-90deg);opacity: 0;}
40% {transform: perspective(400px) rotateX(5deg);}
70% {transform: perspective(400px) rotateX(-5deg);}
100% {transform: perspective(400px) rotateX(0deg);opacity: 1;}
}
@-o-keyframes flipInUp {
0% {-o-transform: perspective(400px) rotateX(-90deg);opacity: 0;}
40% {-o-transform: perspective(400px) rotateX(5deg);}
70% {-o-transform: perspective(400px) rotateX(-5deg);}
100% {-o-transform: perspective(400px) rotateX(0deg);opacity: 1;}
}
@keyframes flipInUp {
0% {transform: perspective(400px) rotateX(-90deg);opacity: 0;}
40% {transform: perspective(400px) rotateX(5deg);}
70% {transform: perspective(400px) rotateX(-5deg);}
100% {transform: perspective(400px) rotateX(0deg);opacity: 1;}
}
@-webkit-keyframes flipInRight {
0% { -webkit-transform: perspective(400px) rotateY(-90deg); opacity: 0;}
40% { -webkit-transform: perspective(400px) rotateY(5deg);}
70% { -webkit-transform: perspective(400px) rotateY(-5deg);}
100% { -webkit-transform: perspective(400px) rotateY(0deg); opacity: 1;}
}
@-moz-keyframes flipInRight {
0% {transform: perspective(400px) rotateY(-90deg);opacity: 0;}
40% {transform: perspective(400px) rotateY(5deg);}
70% {transform: perspective(400px) rotateY(-5deg);}
100% {transform: perspective(400px) rotateY(0deg);opacity: 1;}
}
@-o-keyframes flipInRight {
0% {-o-transform: perspective(400px) rotateY(-90deg);opacity: 0;}
40% {-o-transform: perspective(400px) rotateY(5deg);}
70% {-o-transform: perspective(400px) rotateY(-5deg);}
100% {-o-transform: perspective(400px) rotateY(0deg);opacity: 1;}
}
@keyframes flipInRight {
0% {transform: perspective(400px) rotateY(-90deg);opacity: 0;}
40% {transform: perspective(400px) rotateY(5deg);}
70% {transform: perspective(400px) rotateY(-5deg);}
100% {transform: perspective(400px) rotateY(0deg);opacity: 1;}
}
.flipIn { -webkit-backface-visibility: visible !important; -moz-backface-visibility: visible !important; -o-backface-visibility: visible !important; backface-visibility: visible !important}
.flipIn.south, .flipIn.north { -webkit-animation-name: flipInUp; -moz-animation-name: flipInUp; -o-animation-name: flipInUp; animation-name: flipInUp; }
.flipIn.west, .flipIn.east { -webkit-animation-name: flipInRight; -moz-animation-name: flipInRight; -o-animation-name: flipInRight; animation-name: flipInRight; }
@-webkit-keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;}}
@-moz-keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;}}
@-o-keyframes fadeIn {0% {opacity: 0;}100% {opacity: 1;}}
@keyframes fadeIn {0% {opacity: 0;}100% {opacity: 1;}}
.fadeIn{-webkit-animation-name: fadeIn; -moz-animation-name: fadeIn; -o-animation-name: fadeIn; animation-name: fadeIn;}
/* Modal */
.darktooltip-modal-layer{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('./modal-bg.png');
opacity: .7;
display: none;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,503 @@
/*
* jQuery OrgChart Plugin
* https://github.com/dabeng/OrgChart
*
* Demos of jQuery OrgChart Plugin
* http://dabeng.github.io/OrgChart/local-datasource/
* http://dabeng.github.io/OrgChart/ajax-datasource/
* http://dabeng.github.io/OrgChart/ondemand-loading-data/
* http://dabeng.github.io/OrgChart/option-createNode/
* http://dabeng.github.io/OrgChart/export-orgchart/
* http://dabeng.github.io/OrgChart/integrate-map/
*
* Copyright 2016, dabeng
* http://dabeng.github.io/
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
.orgchart {
display: inline-block;
min-height: 202px;
min-width: 202px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: #ffffff;;
background-size: 10px 10px;
border: 1px dashed rgba(0,0,0,0);
padding: 5px;
}
.orgchart .hidden, .orgchart~.hidden {
display: none!important;
}
.orgchart *, .orgchart *:before, .orgchart *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.orgchart.b2t {
transform: rotate(180deg);
-ms-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-webkit-transform: rotate(180deg);
}
.orgchart.l2r {
position: absolute;
transform: rotate(-90deg) rotateY(180deg);
-ms-transform: rotate(-90deg) rotateY(180deg);
-moz-transform: rotate(-90deg) rotateY(180deg);
-webkit-transform: rotate(-90deg) rotateY(180deg);
transform-origin: left top;
-ms-transform-origin: left top;
-moz-transform-origin: left top;
-webkit-transform-origin: left top;
}
.orgchart .verticalNodes ul {
list-style: none;
margin:0px;
padding-left: 18px;
text-align: left;
}
.orgchart .verticalNodes ul:first-child {
margin-top: 2px;
}
.orgchart .verticalNodes>td::before {
content: '';
border: 1px solid rgba(50, 194, 77, 0.8);
}
.orgchart .verticalNodes>td>ul>li:first-child::before {
top: -4px;
height: 30px;
width: calc(50% - 2px);
border-width: 2px 0 0 2px;
}
.orgchart .verticalNodes ul>li {
position: relative;
}
.orgchart .verticalNodes ul>li::before,
.orgchart .verticalNodes ul>li::after {
content: '';
position: absolute;
left: -6px;
border-color: rgba(50, 194, 77, 0.8);
border-style: solid;
border-width: 0 0 2px 2px;
}
.orgchart .verticalNodes ul>li::before {
top: -4px;
height: 30px;
width: 11px;
}
.orgchart .verticalNodes ul>li::after {
top: 1px;
height: 100%;
}
.orgchart .verticalNodes ul>li:first-child::after {
top: 24px;
width: 11px;
border-width: 2px 0 0 2px;
}
.orgchart .verticalNodes ul>li:last-child::after {
border-width: 2px 0 0;
}
.orgchart.r2l {
position: absolute;
transform: rotate(90deg);
-ms-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
transform-origin: left top;
-ms-transform-origin: left top;
-moz-transform-origin: left top;
-webkit-transform-origin: left top;
}
.orgchart>.spinner {
font-size: 100px;
margin-top: 30px;
color: rgba(68, 157, 68, 0.8);
}
.orgchart table {
border-spacing: 0!important;
border-collapse: separate!important;
}
.orgchart>table:first-child{
margin: 20px auto;
}
.orgchart td {
text-align: center;
vertical-align: top;
padding: 0;
}
.orgchart tr.lines td.topLine {
border-top: 2px solid rgba(50, 194, 77, 0.8);
}
.orgchart tr.lines td.rightLine {
border-right: 1px solid rgba(50, 194, 77, 0.8);
float: none;
border-radius: 0px;
}
.orgchart tr.lines td.leftLine {
border-left: 1px solid rgba(50, 194, 77, 0.8);
float: none;
border-radius: 0px;
}
.orgchart tr.lines .downLine {
background-color: rgba(50, 194, 77, 0.8);
margin: 0px auto;
height: 20px;
width: 2px;
float: none;
}
/* node styling */
.orgchart .node {
display: inline-block;
position: relative;
margin: 0;
padding: 3px;
border: 2px dashed transparent;
text-align: center;
width: 200px;
}
.orgchart.l2r .node, .orgchart.r2l .node {
width: 50px;
height: 160px;
}
.orgchart .node>.spinner {
position: absolute;
top: calc(50% - 15px);
left: calc(50% - 15px);
vertical-align: middle;
font-size: 30px;
color: rgba(68, 157, 68, 0.8);
}
.orgchart .node:hover {
background-color: rgba(238, 217, 54, 0.5);
transition: .5s;
cursor: default;
z-index: 20;
}
.orgchart .node.focused {
background-color: rgba(238, 217, 54, 0.5);
}
.orgchart .ghost-node {
position: fixed;
left: -10000px;
top: -10000px;
}
.orgchart .ghost-node>* {
fill: #ffffff;
stroke: #bf0000;
}
.orgchart .node.allowedDrop {
border-color: rgba(68, 157, 68, 0.9);
}
.orgchart .node .title {
text-align: center;
font-size: 13px;
font-weight: bold;
height: 20px;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
background-color: rgba(50, 194, 77, 0.8);
color: #fff;
border-radius: 4px 4px 0 0;
}
.orgchart.b2t .node .title {
transform: rotate(-180deg);
-ms-transform: rotate(-180deg);
-moz-transform: rotate(-180deg);
-webkit-transform: rotate(-180deg);
transform-origin: center bottom;
-ms-transform-origin: center bottom;
-moz-transform-origin: center bottom;
-webkit-transform-origin: center bottom;
}
.orgchart.l2r .node .title {
transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
-ms-transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
-moz-transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
-webkit-transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
transform-origin: bottom center;
-ms-transform-origin: bottom center;
-moz-transform-origin: bottom center;
-webkit-transform-origin: bottom center;
width: 120px;
}
.orgchart.r2l .node .title {
transform: rotate(-90deg) translate(-40px, -40px);
-ms-transform: rotate(-90deg) translate(-40px, -40px);
-moz-transform: rotate(-90deg) translate(-40px, -40px);
-webkit-transform: rotate(-90deg) translate(-40px, -40px);
transform-origin: bottom center;
-ms-transform-origin: bottom center;
-moz-transform-origin: bottom center;
-webkit-transform-origin: bottom center;
width: 120px;
}
.orgchart .node .title .symbol {
float: left;
margin-top: 4px;
margin-left: 2px;
}
.orgchart .node .content {
width: 100%;
font-size: 12px;
padding:5px 5px 5px 5px;
line-height: 18px;
border: 1px solid rgba(50, 194, 77, 0.8);
border-radius: 0 0 4px 4px;
text-align: left;
background-color: #fff;
color: #333;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.orgchart.b2t .node .content {
transform: rotate(180deg);
-ms-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-webkit-transform: rotate(180deg);
transform-origin: center top;
-ms-transform-origin: center top;
-moz-transform-origin: center top;
-webkit-transform-origin: center top;
}
.orgchart.l2r .node .content {
transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
-ms-transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
-moz-transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
-webkit-transform: rotate(-90deg) translate(-40px, -40px) rotateY(180deg);
transform-origin: top center;
-ms-transform-origin: top center;
-moz-transform-origin: top center;
-webkit-transform-origin: top center;
width: 120px;
}
.orgchart.r2l .node .content {
transform: rotate(-90deg) translate(-40px, -40px);
-ms-transform: rotate(-90deg) translate(-40px, -40px);
-moz-transform: rotate(-90deg) translate(-40px, -40px);
-webkit-transform: rotate(-90deg) translate(-40px, -40px);
transform-origin: top center;
-ms-transform-origin: top center;
-moz-transform-origin: top center;
-webkit-transform-origin: top center;
width: 120px;
}
.orgchart .node .edge {
font-size: 15px;
position: absolute;
color: rgba(68, 157, 68, 0.5);
cursor: default;
transition: .2s;
-webkit-transition: .2s;
}
.orgchart.noncollapsable .node .edge {
display: none;
}
.orgchart .edge:hover {
color: #449d44;
cursor: pointer;
}
.orgchart .node .verticalEdge {
width: calc(100% - 10px);
width: -webkit-calc(100% - 10px);
width: -moz-calc(100% - 10px);
left: 5px;
}
.orgchart .node .topEdge {
top: -4px;
}
.orgchart .node .bottomEdge {
bottom: -4px;
}
.orgchart .node .horizontalEdge {
width: 15px;
height: calc(100% - 10px);
height: -webkit-calc(100% - 10px);
height: -moz-calc(100% - 10px);
top: 5px;
}
.orgchart .node .rightEdge {
right: -4px;
}
.orgchart .node .leftEdge {
left: -4px;
}
.orgchart .node .horizontalEdge::before {
position: absolute;
top: calc(50% - 7px);
top: -webkit-calc(50% - 7px);
top: -moz-calc(50% - 7px);
}
.orgchart .node .rightEdge::before {
right: 3px;
}
.orgchart .node .leftEdge::before {
left: 3px;
}
.orgchart .node .toggleBtn {
position: absolute;
left: 5px;
bottom: -2px;
color: rgba(68, 157, 68, 0.6);
}
.orgchart .node .toggleBtn:hover {
color: rgba(68, 157, 68, 0.8);
}
.oc-export-btn {
display: inline-block;
position: absolute;
right: 5px;
top: 5px;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
color: #fff;
background-color: #5cb85c;
border: 1px solid transparent;
border-color: #4cae4c;
border-radius: 4px;
}
.oc-export-btn[disabled] {
cursor: not-allowed;
filter: alpha(opacity=30);
-webkit-box-shadow: none;
box-shadow: none;
opacity: 0.3;
}
.oc-export-btn:hover,.oc-export-btn:focus,.oc-export-btn:active {
background-color: #449d44;
border-color: #347a34;
}
.orgchart~.mask {
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: 999;
text-align: center;
background-color: rgba(0,0,0,0.3);
}
.orgchart~.mask .spinner {
position: absolute;
top: calc(50% - 54px);
left: calc(50% - 54px);
color: rgba(255,255,255,0.8);
font-size: 108px;
}
.orgchart .node {
transition: all 0.3s;
webkit-transition: all 0.3s;
opacity: 1;
top: 0;
left: 0;
}
.orgchart .slide-down {
opacity: 0;
top: 40px;
}
.orgchart.l2r .node.slide-down, .orgchart.r2l .node.slide-down {
top: 130px;
}
.orgchart .slide-up {
opacity: 0;
top: -40px;
}
.orgchart.l2r .node.slide-up, .orgchart.r2l .node.slide-up {
top: -130px;
}
.orgchart .slide-right {
opacity: 0;
left: 130px;
}
.orgchart.l2r .node.slide-right, .orgchart.r2l .node.slide-right {
left: 40px;
}
.orgchart .slide-left {
opacity: 0;
left: -130px;
}
.orgchart.l2r .node.slide-left, .orgchart.r2l .node.slide-left {
left: -40px;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,852 @@
@charset "utf-8";
html { *overflow:auto; font-family:"Microsoft Yahei","Helvetica","Simsun","Arial";}
body{
background: url(/images/bg.jpg);
}
@font-face {font-family: "kfont";
src: url('../bmfont/iconfont.eot?t=1484884962181'); /* IE9*/
src: url('../bmfont/iconfont.eot?t=1484884962181#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../bmfont/iconfont.woff?t=1484884962181') format('woff'), /* chrome, firefox */
url('../bmfont/iconfont.ttf?t=1484884962181') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('../bmfont/iconfont.svg?t=1484884962181#kfont') format('svg'); /* iOS 4.1- */
}
.kfont {
font-family:"kfont" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.kfont {
font-family:"kfont" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-home:before { content: "\e717"; }
.icon-icon2:before { content: "\e603"; }
.icon-weixin:before { content: "\e631"; }
.icon-user:before { content: "\e642"; }
.icon-mac:before { content: "\e6be"; }
.icon-zhi01:before { content: "\e62a"; }
.icon-user1:before { content: "\e60b"; }
.icon-attachment:before { content: "\e617"; }
.icon-linux:before { content: "\e726"; }
.icon-windows:before { content: "\e801"; }
.icon-ai:before { content: "\e65f"; }
.icon-msnui-logo-mac:before { content: "\e701"; }
.icon-attachment1:before { content: "\e61b"; }
.icon-import:before { content: "\e609"; }
.icon-icon:before { content: "\e604"; }
.icon-weixin1:before { content: "\e64d"; }
.icon-tel1:before { content: "\e613"; }
.icon-tel:before { content: "\e619"; }
.icon-phone:before { content: "\e637"; }
.icon-export:before { content: "\e62c"; }
.icon-shoujianxiang:before { content: "\e634"; }
.icon-iconfontagent:before { content: "\e620"; }
.icon-delete:before { content: "\e675"; }
.icon-phone1:before { content: "\e64a"; }
.icon-iconfontupgrade:before { content: "\e635"; }
.icon-password:before { content: "\e687"; }
.icon-import1:before { content: "\e641"; }
.icon-chat:before { content: "\e610"; }
.icon-demo25:before { content: "\e61c"; }
.icon-renzheng:before { content: "\e7e5"; }
.icon-license:before { content: "\e658"; }
.icon-password1:before { content: "\e618"; }
.icon-loginiconphone:before { content: "\e61f"; }
.icon-phone2:before { content: "\e629"; }
.icon-servergisfuwupingtai:before { content: "\e7fa"; }
.icon-vip:before { content: "\e71a"; }
.icon-user-copy:before { content: "\e600"; }
.icon-youximoshi:before { content: "\e6bc"; }
.icon-workflow1:before { content: "\e636"; }
.icon-poseidonworkflow:before { content: "\e664"; }
.icon-thumbsup:before { content: "\e661"; }
.icon-discharge_summary:before { content: "\e757"; }
.icon-logout:before { content: "\e622"; }
.icon-workflowmonitoring:before { content: "\e638"; }
.icon-zhishiguanli:before { content: "\e704"; }
.icon-words2:before { content: "\e614"; }
.icon-orders:before { content: "\e606"; }
.icon-iconknowledge:before { content: "\e807"; }
.icon-end-copy:before { content: "\e60e"; }
.icon-import2:before { content: "\e654"; }
.icon-import3:before { content: "\e65a"; }
.icon-iconfontivr:before { content: "\e66f"; }
.icon-history:before { content: "\e659"; }
.icon-fav_active:before { content: "\e623"; }
.icon-daiban-copy:before { content: "\e660"; }
.icon-history1:before { content: "\e60a"; }
.icon-iconfontfav-copy:before { content: "\e608"; }
.icon-weibiaoti201:before { content: "\e6b7"; }
.icon-knowledge:before { content: "\e628"; }
.icon-import4:before { content: "\e89a"; }
.icon-workflow:before { content: "\e632"; }
.icon-agentblacklist:before { content: "\e8a7"; }
.icon-shoujianxiangbiaoqianlan:before { content: "\e62b"; }
.icon-yiguanzhu:before { content: "\e624"; }
.icon-pc:before { content: "\e601"; }
.icon-phone3:before { content: "\e695"; }
.icon-work:before { content: "\e607"; }
.icon-off:before { content: "\e611"; }
.icon-phone4:before { content: "\e647"; }
.icon-callin:before { content: "\e625"; }
.icon-summaryline:before { content: "\e65c"; }
.icon-off1:before { content: "\e7e2"; }
.icon-export1:before { content: "\e605"; }
.icon-off2:before { content: "\e621"; }
.icon-history2:before { content: "\e690"; }
.icon-words:before { content: "\e61d"; }
.icon-90:before { content: "\e60d"; }
.icon-node_end:before { content: "\e61a"; }
.icon-shoujianxiangweixuanzhong:before { content: "\e602"; }
.icon-tag:before { content: "\e63f"; }
.icon-customer:before { content: "\e650"; }
.icon-dianhuahuiyi:before { content: "\e753"; }
.icon-daochu:before { content: "\e672"; }
.icon-userrole:before { content: "\e90b"; }
.icon-zhishi:before { content: "\e615"; }
.icon-userrole1:before { content: "\e7d0"; }
.icon-yinzhangshenpitongguo:before { content: "\e6a4"; }
.icon-yinzhangshenpijujue:before { content: "\e6a5"; }
.icon-icon1:before { content: "\e63b"; }
.icon-30offlineoval:before { content: "\e689"; }
.icon-show_summary_img:before { content: "\e7c8"; }
.icon-zhishiku:before { content: "\e630"; }
.icon-ai1:before { content: "\e676"; }
.icon-knowledge1:before { content: "\e62d"; }
.icon-14guaduan-1:before { content: "\e67e"; }
.icon-zhishi1:before { content: "\e616"; }
.icon-call_transfer:before { content: "\e663"; }
.icon-priority:before { content: "\e82d"; }
.icon-zhishifenlei:before { content: "\e66c"; }
.icon-hang-up:before { content: "\e626"; }
.icon-AI:before { content: "\e66e"; }
.icon-m-quick-quotation:before { content: "\e63d"; }
.icon-ai2:before { content: "\e6ab"; }
.icon-zaixianjieda:before { content: "\e698"; }
.icon-Import:before { content: "\e65b"; }
.icon-transfer:before { content: "\e7be"; }
.icon-history3:before { content: "\e7eb"; }
.icon-import5:before { content: "\e60c"; }
.icon-zhishi2:before { content: "\e699"; }
.icon-icon-test:before { content: "\e67b"; }
.icon-shenpitongguo:before { content: "\e66a"; }
.icon-export2:before { content: "\e612"; }
.icon-shenpi_tongguo:before { content: "\e697"; }
.icon-shenpi_yijujue:before { content: "\e69a"; }
.icon-Summary_today:before { content: "\e60f"; }
.icon-icon_Dial_down:before { content: "\e679"; }
.icon-icon_knowledge:before { content: "\e655"; }
.icon-shenpituihui:before { content: "\e639"; }
.icon-attachment2:before { content: "\e61e"; }
.icon-Call:before { content: "\e670"; }
.icon-uicon_ai:before { content: "\e63a"; }
.icon-equipment_01:before { content: "\e71c"; }
.icon-icon_unknown_filled:before { content: "\e678"; }
.icon-icon_unknown_wirefra:before { content: "\e67a"; }
.icon-Ourknowledge:before { content: "\e643"; }
.icon-user-unknown:before { content: "\e62e"; }
.icon-ic_knowledge_border_:before { content: "\e62f"; }
.icon-ic_knowledge_px:before { content: "\e633"; }
.icon-shenpi-:before { content: "\e627"; }
.icon-ERP_xqcaigou:before { content: "\e65d"; }
.icon-shenpijujue:before { content: "\e674"; }
.icon-youxi:before { content: "\e63c"; }
.icon-youxiquan-zhengchangtai-copy:before { content: "\e644"; }
.icon-youxiquankuai-zhengchangtai:before { content: "\e65e"; }
.icon-youxiquankuai-zhengchangtai-copy:before { content: "\e68b"; }
/***********LOGIN**************/
.login-box-body, .register-box-body{
border-radius: 3px;
position: relative;
}
.login-box, .register-box{
width: 340px;
}
.login-box-msg, .register-box-msg{
text-align: left;
padding: 0 0px 0px 0px;
font-size: 18px;
font-weight: 600;
margin: 0 0 -1px;
line-height: 38px;
border-bottom: solid 3px #008df3;
display: inline-block;
margin-bottom:20px;
}
.login-box-body .form-control {
width: 240px;
height: 32px;
padding: 6px 6px 6px 40px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 2px;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-moz-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-ms-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
body .login-box-body .form-control {
min-height: 30px;
}
.login-box-body .form-control-feedback{
left:5px;
top:6px;
}
body .form-group label[class*=" icon-"]+input, body .form-group label[class*=" icon-"]~* input, body .form-group label[class^=icon-]+input, body .form-group label[class^=icon-]~* input {
padding-left: 40px;
}
.form-control, output {
font-size: 13px;
line-height: 1.42857143;
color: #555;
display: block;
}
.login-box-body .form-control-feedback, .register-box-body .form-control-feedback {
font-size: 15px;
}
.social-auth-links .networks {
background: #f3f7fb;
padding: 20px;
text-align: center;
}
.social-auth-links .networks h3 {
font-size: 14px;
font-weight: 600;
margin: 0 auto 10px;
}
.social-auth-links .networks .items {
padding: 20px 0;
}
.social-auth-links .networks a.item {
width: 48px;
height: 48px;
border-radius: 50%;
margin: 0 6%;
border: 2px solid #008df3;
display: inline-block;
line-height: 43px;
font-size: 20px;
}
.social-auth-links .networks a.item:hover {
background: #008df3;
color: #fff;
}
.login-box-body, .register-box-body{
padding-bottom:0px;
}
.login-page, .register-page{
background-color:#008df3;
}
.login-logo a, .register-logo a {
color: #FFFFFF;
}
.bi-content .content-wrapper, .bi-view .right-side, .bi-view .main-footer{
margin-left: 0px!important;
}
.bi-view > .row {
margin-bottom:6px;
}
.nav-pills>li.active>a{
font-weight:400;
font-size:15px;
}
.r3-box-list{
min-height:600px;
}
.r3-box{
width:230px;
float:left;
margin:10px 5px;
}
.box.box-solid.box-white {
border: 1px solid #DEDEDE;
}
.box.box-solid.box-white>.box-header {
border-bottom: 1px solid #DEDEDE;
}
.r3-box .box-body{
position: relative;
}
.r3-box .small-box{
margin-bottom:0px;
padding:0px;
}
.r3-box .inner {
padding: 14px;
}
.r3-box .small-box-footer{
color:#000000;
}
.small-box:hover{
color: #000000;
}
.small-box > .small-box-footer:hover {
color: #000000;
}
.r3-box .box-title{
width:180px;
overflow:hidden;
text-overflow: ellipsis;
white-space:nowrap;
}
.r3-box .icon{
top:-10px;
}
.bi-view .box{
border:1px solid #d2d6de;
}
.r3-title, .r3-prop-title{
border-style: none;
}
.minSize{
width: 1%;
white-space: nowrap;
word-break: keep-all;
padding-right: 10px;
}
.btn-group {
position: relative;
display: inline-block;
white-space: nowrap;
vertical-align: middle;
}
.minSize a {
color: #08c;
font-size: 15px;
}
.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small{
font-size:45% !important;
}
.r3-user-panel .info{
padding-left:0px;
}
.r3-user-panel >.image>img{
max-width:32px;
}
.skin-blue-light .left-footer {
border-top: 1px solid #d2d6de;
position: absolute;
bottom: 0px;
background-color:#FFFFFF;
padding-top:10px;
padding-bottom:10px;
}
.r3-nav{
font-size:18px;
}
.nav-stacked >li a{
overflow: hidden;
text-overflow: ellipsis;
white-space:nowrap;
}
.nav-pills>li.r3-active>a {
font-weight: 400;
font-size: 15px;
}
.nav-stacked>li.r3-active>a, .nav-stacked>li.r3-active>a:hover {
background: #FFFFFF;
color: #444;
border-top: 0;
border-left-color: #008df3;
}
.nav-pills>li.r3-active>a {
font-weight: 600;
}
.r3-dataset-title{
overflow: hidden;
font-size: 18px;
color: #333333;
line-height: 22px;
text-overflow: ellipsis;
margin-bottom:0px;
padding-top:5px;
}
.r3-dataset-desc{
font-size: 16px;
color: #999999;
line-height: 16px;
margin-top: 10px;
float: left;
}
.r3-dataset-stats{
color:#999999;
}
.r3-dataset-icon{
font-size:30px;
}
.bi-view , .design{
padding-bottom:40px;
}
.content-view {
padding-bottom:5px !important;
}
.r3-dataset-row{
border-bottom:1px solid #DEDEDE;
}
.r3-layout{
overflow:hidden;
}
.d-content .box{
margin-bottom:0px;
border-top:1px;
}
.r3-box .box-title{
font-size:16px;
}
.r3-box .small-box h3{
font-size:22px;
}
.r3-dataset-icon{
text-align: center;
padding-top: 2px;
width: 80px;
padding-right: 0px;
}
.chartdesign{
overflow:auto;
background-color:#FFFFFF;
margin:9px 0 !important;
border-top:1px solid #d2d6de;
}
.title-panel{
position: relative;
width: 100%;
overflow: hidden;
height: 40px;
}
.r3-field{
text-align:left !important;
margin-bottom:3px;
}
.r3-tool{
color:#CCCCCC;
}
.r3-field:hover .r3-tool{
color:#444444;
}
.r3-dropdown-menu{
border-color: #dddddd;
}
.r3-dropdown-menu>li>a {
color: #777 !important;
}
.skin-blue-light .r3-dropdown-menu{
border-top:1px solid #dddddd;
position: fixed;
top:136px;
left:222px;
}
.skin-blue-light .dropdown-menu>li>a:hover {
background-color: #eeeeee;
color: #444444;
}
.skin-blue-light .r3-tip-menu>li>a:hover {
background-color: #FFFFFF !important;
color: #444444;
}
.r3-design-btn{
display:none;
}
.r3-title:hover .r3-design-btn{
display:block;
}
.r3-team-design .r3-title{
background-image: url(../img/titlehandle.png);
background-repeat: repeat-x;
}
.r3-team-design .box-body{
min-height:100px;
}
.r3-design-del{
display:none;
}
.r3-title:hover .r3-design-del{
display:block;
}
.box-body{
color:#444444;
}
.r3-team-field-list{
min-height:100px;
max-height:200px;
overflow-y:auto;
}
.r3-team-field{
list-style: none;
padding:0px;
}
.r3-team-field li{
line-height:30px;
font-size:15px;
font-weight:400;
padding:0 0 0 35px;
}
.r3-team-field li i{
border:1px solid #cccccc;
padding:2px;
font-weight:normal;
font-size:12px;
width:30px;
text-align:center;
}
.r3-team-field li:hover{
background-color:#DEDEDE;
}
.r3-col .r3-model .r3-chart{
min-height:240px;
}
.r3-chart{
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
line-height: normal;
}
.box{
border-top:1px solid #d2d6de;
box-shadow: 0 0px 0px rgba(0,0,0,0);
margin-bottom:0px;
}
.r3-text-pos .r3-text-item:first-child {
border-radius: 5px 0 0 5px;
}
.r3-text-pos .r3-text-item:last-child {
border-radius: 0 5px 5px 0;
}
.r3-text-pos{
}
.r3-text-pos .r3-text-item {
display: inline-block;
cursor: pointer;
width: 50%;
height: 74px;
background: #ffffff;
margin-right: 0px;
text-align: center;
text-align: -webkit-center;
vertical-align: middle;
}
.r3-text-pos .r3-text-item {
border: 1px solid #DDDDDD;
background-color: #f6f6f6;
position: relative;
z-index: 0;
margin-left: -5px;
}
.r3-text-pos .r3-text-item .r3-inner-text {
margin: 28px 0px 0px 0px;
text-align: center;
}
.r3-text-pos .r3-text-item .r3-inner-text .r3-text-underline {
height: 1px;
background: #DEDEDE;
width: 36px;
margin: 0 auto;
}
.r3-text-pos .r3-text-item.selected {
border: 1px solid #888888;
background-color: #fff;
z-index: 1;
}
.r3-text-pos .r3-text-item.selected .r3-inner-text .r3-text-underline {
background: #272a34;
}
.r3-text-pos .r3-text-item:hover{
border: 1px solid #888888;
background-color: #fff;
z-index: 10;
}
.r3-text-pos .r3-text-item:hover .r3-inner-text .r3-text-underline{
background: #272a34;
}
.r3-team-design .form-group label{
font-weight:normal;
}
.r3-team-design .form-group {
margin-bottom:0px;
}
.r3-selected-text {
height: 27px;
margin-top: 1px;
background: #ffffff;
}
.r3-selected-text .r3-tip-text {
color: #272a34;
font-size: 12px;
padding-top: 7px;
text-align: center;
}
.r3-title .checkbox{
margin-top:0px;
}
.r3-text-pos .r3-text-item .r3-inner-image {
line-height:72px;
text-align: center;
}
.r3-text-pos .r3-text-item:hover .r3-text-image {
color:#666666;
}
.r3-text-pos .r3-text-item .r3-text-image {
font-size:48px;
color:#DDDDDD;
}
.r3-text-pos .r3-text-item.selected .r3-text-image {
color:#666666;
}
.login-box, .register-box {
margin: 8% auto !important;
}
.login-logo, .register-logo {
font-size: 27px;
text-align: center;
margin-bottom: 25px;
font-weight: 300;
}
.login-box-body, .register-box-body {
background: #fff;
padding: 20px;
border-top: 0;
color: #666;
}
.login-reg{
position: absolute;
top: 30px;
right: 20px;
}
.has-feedback {
margin-bottom: 20px;
}
.has-feedback {
position: relative;
}
.form-control, output {
font-size: 13px;
line-height: 1.42857143;
color: #555;
display: block;
}
.login-box-body, .register-box-body {
background: #fff;
padding: 20px;
border-top: 0;
color: #666;
}
.error {
color: red;
}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn-primary {
background-color: #008df3;
border-color: #006fc0;
}
.btn {
border-radius: 3px;
-webkit-box-shadow: none;
box-shadow: none;
border: 1px solid transparent;
}
.btn-block {
display: block;
width: 100%;
}
.btn, .btn-lg {
padding: 10px 16px;
font-size: 18px;
line-height: 1.3333333;
border-radius: 6px;
}
.btn-primary {
color: #fff;
}
.form-control-feedback{
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 34px;
height: 34px;
line-height: 34px;
text-align: center;
pointer-events: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,2 @@
/** layui-v1.0.9_rls MIT License By http://www.layui.com */
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:30px;line-height:30px;border-bottom:1px solid #ddd}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #ddd;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,113 @@
.node {
width: 155px;
text-align: left;
height:30px;
line-height:30px;
vertical-align: middle;
border: 1px solid #fff;
padding:0px 10px 0 10px;
}
.node img{
vertical-align: middle;
}
.mover {
border: 1px solid #ddd;
background-color: #ddd;
}
.selected {
background-color: #ddd;
}
.state {
}
#pointer {
background-repeat: no-repeat;
background-position: center;
}
#path {
background-repeat: no-repeat;
background-position: center;
}
#task {
background-repeat: no-repeat;
background-position: center;
}
#state {
background-repeat: no-repeat;
background-position: center;
}
#toolbox {
position: absolute;
top: 100;
left: 10;
background-color: #fff;
width:180px;
cursor: default;
padding: 0px;
}
#toolbox_handle {
margin-top:1px;
margin-bottom:0px;
width:98%;
align:center;
text-align:left;
font-weight: 500;
}
#toolbox_widget{
border:1px solid #9AC3E1;
border-top:0px;
padding-top:10px;
padding-bottom:20px;
}
#properties {
}
#properties_handle {
margin-top:1px;
font-weight: 500;
align:center;
cursor: default;
text-align:left;
width:100%;
}
.properties_all {
width:100%;
text-align:left;
font-size: 12px;
}
.properties_widget{
padding:10px 10px 20px 0px;
border: 1px solid #9AC3E1;
border-top: 0px;
position: relative;
}
.properties_name {
color:#000;
font-weight: 500;
text-align:left;
height:32px;
line-height:32px;
font-size:14px;
padding-left:10px;
}
.properties_value {
height:32px;
line-height:32px;
font-size:14px;
}
.properties_value input{
height: 26px;
}
.properties_value select{
height: 30px;
width:101%;
}
#toolbox hr{
margin:0px !important;
}

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>404 Not Found</title>
<meta charset="utf-8" />
</head>
<body>
<h3>404 Not Found</h3>
<h1 th:text="${errorCode}">404</h1>
<p th:utext="${errorMessage}">Error java.lang.NullPointerException</p>
<a href="/" th:href="@{/}">Back to Home Page</a>
</body>
</html>

View File

@@ -0,0 +1,387 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Mon Feb 27 22:32:26 2017
By admin
</metadata>
<defs>
<font id="layui-icon" horiz-adv-x="1024" >
<font-face
font-family="layui-icon"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="0 -212 1385 896"
underline-thickness="0"
underline-position="0"
unicode-range="U+0078-E6FC"
/>
<missing-glyph
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="duihua" unicode="&#xe611;"
d="M508 836q93 1 175 -34t144 -95t98 -141.5t37 -174.5q1 -88 -30.5 -166t-87.5 -137.5t-131 -98.5t-162 -48q-23 -3 -48.5 -5.5t-56.5 -3.5t-69.5 0t-86.5 7q-107 10 -158.5 26.5t-41.5 18.5q54 9 93 29q21 12 17.5 33t-20.5 39q-52 57 -84.5 133.5t-34.5 164.5
q-1 93 34 175t95.5 143.5t142.5 97.5t175 37zM708 385q0 -27 18 -45.5t45 -18.5t46 18.5t19 45.5t-19 45.5t-46 18.5t-45 -18.5t-18 -45.5zM451 385q0 -27 19 -46.5t46 -19.5q28 0 47 19.5t19 46.5q0 28 -19 47t-47 19q-27 0 -46 -19t-19 -47zM197 386q0 -27 18.5 -46
t45.5 -19q28 0 47 19t19 46t-19 46t-47 19q-27 0 -45.5 -19t-18.5 -46z" />
<glyph glyph-name="shezhi" unicode="&#xe614;"
d="M917 445l-70 11q-14 2 -26.5 12t-16.5 21q-6 17 -8.5 40.5t4.5 40.5l42 57q8 11 7 26.5t-11 25.5l-31 31q-10 10 -25.5 11t-26.5 -7l-57 -42q-11 -9 -27 -11t-27 4q-16 7 -37 24.5t-23 29.5l-11 70q-2 14 -13.5 24t-25.5 10h-44q-14 0 -25.5 -10t-13.5 -24l-11 -70
q-2 -14 -12 -26.5t-21 -16.5q-17 -6 -40.5 -8.5t-40.5 4.5l-57 42q-11 8 -26.5 7t-25.5 -11l-31 -31q-10 -10 -11 -25.5t7 -26.5l42 -57q9 -12 11 -27.5t-4 -26.5q-7 -16 -24.5 -37t-29.5 -23l-70 -11q-14 -2 -24 -13.5t-10 -25.5v-44q0 -14 10 -25.5t24 -13.5l70 -11
q14 -2 26.5 -12t16.5 -21q6 -17 8.5 -40.5t-4.5 -40.5l-42 -57q-8 -11 -7 -26.5t11 -25.5l31 -31q10 -10 25.5 -11t26.5 7l57 42q12 9 27.5 11t26.5 -4q16 -7 37 -24.5t23 -29.5l11 -70q2 -14 13.5 -24t25.5 -10h44q14 0 25.5 10t13.5 24l11 70q2 14 12 26.5t21 16.5
q17 6 41 8.5t40 -4.5l57 -42q11 -8 26.5 -7t25.5 11l31 31q10 10 11 25.5t-7 26.5l-42 57q-9 11 -11 27t4 27q7 16 24.5 37t29.5 23l70 11q14 2 24 13.5t10 25.5v44q0 14 -10 25.5t-24 13.5zM512 210q-72 0 -123 51t-51 123t51 123t123 51t123 -51t51 -123t-51 -123
t-123 -51zM512 384zM407 384q0 43 31 74t74 31t74 -31t31 -74t-31 -74t-74 -31t-74 31t-31 74z" />
<glyph glyph-name="yinshenim" unicode="&#xe60f;"
d="M512 834q-92 0 -175 -35.5t-143.5 -96t-96 -143.5t-35.5 -175t35.5 -175t96 -143.5t143.5 -96t175 -35.5t175 35.5t143.5 96t96 143.5t35.5 175t-35.5 175t-96 143.5t-143.5 96t-175 35.5zM266 590h492v-34h-492v34zM758 178h-492v34h492v-34zM140 367v34h744v-34h-744z
" />
<glyph glyph-name="search" unicode="&#xe615;"
d="M439.5 121q-74.5 0 -142.5 28q-65 28 -115.5 78.5t-78.5 115.5q-29 68 -29 142.5t29 142.5q28 65 78.5 115.5t115.5 78.5q68 29 142.5 29t141.5 -29q66 -28 116.5 -78.5t78.5 -115.5q28 -68 28 -142.5t-28 -142.5q-28 -65 -78.5 -115.5t-116.5 -78.5q-67 -28 -141.5 -28z
M439 797q-129 0 -220.5 -91t-91.5 -220t91.5 -220.5t220.5 -91.5t220.5 91.5t91.5 220.5t-91.5 220t-220.5 91zM890.5 -49q-34.5 0 -58.5 24l-157 153l37 38l158 -153q8 -9 20.5 -9t21 9t8.5 21.5t-8 20.5l-1 1l-152 157l38 37l153 -157q24 -24 24 -58.5t-24.5 -59
t-59 -24.5zM281 327q-66 66 -66 158.5t66 158.5l38 -38q-50 -50 -50 -120.5t50 -120.5z" />
<glyph glyph-name="fenxiang1" unicode="&#xe641;"
d="M770 222q-38 0 -71.5 -16.5t-55.5 -46.5l-249 125q7 21 7 43q0 25 -8 48l248 124q22 -31 56 -48.5t73 -17.5q65 0 111.5 46.5t46.5 112t-46.5 111.5t-112 46t-112 -46t-46.5 -112q0 -9 1 -18l-261 -131q-46 44 -109 44q-65 0 -111.5 -46.5t-46.5 -112t46.5 -112
t112 -46.5t111.5 47l259 -130q-2 -11 -2 -22q0 -65 46.5 -111.5t112 -46.5t112 46.5t46.5 112t-46.5 111.5t-111.5 46v0z" />
<glyph glyph-name="shezhi1" unicode="&#xe620;"
d="M946 322q0 16 -8.5 27.5t-22.5 13.5q-8 2 -28.5 5t-37.5 6t-20 4q-5 0 -10 4t-6 7q0 2 -12 30q-5 12 5 25q5 8 48 68q7 8 6 23t-11 25l-56 56q-7 7 -20.5 7t-22.5 -7l-72 -51q-1 0 -3 -1t-7.5 -2.5t-9.5 1.5l-34 14q-7 5 -10 20q0 4 -14 82q-2 13 -13 21.5t-24 8.5h-75
q-12 0 -22.5 -9.5t-12.5 -20.5l-14 -84q-1 -7 -3.5 -11.5t-5.5 -5.5l-2 -2l-30 -12q-8 -3 -13.5 -1.5t-17 9t-62.5 43.5q-15 9 -28 7.5t-22 -11t-51 -50.5q-10 -11 -9.5 -26t10.5 -29q11 -15 41 -58q12 -17 9 -27q-2 -6 -12 -28q-3 -8 -8.5 -11t-19.5 -6q-9 -2 -39 -7
t-38 -6q-14 -3 -22.5 -14.5t-8.5 -27.5v-65q0 -35 39 -42q23 -4 74 -12q16 -3 22 -16l9 -22q4 -9 3.5 -15t-8.5 -17q-9 -13 -46 -65q-8 -13 -6 -26.5t11 -22.5q10 -11 49 -49q11 -11 25.5 -12t28.5 8q15 11 65 47q13 9 28 3q5 -2 22 -9q13 -6 17 -24q2 -11 13 -79
q6 -33 41 -33h62q39 0 45 31l14 84q2 13 14 18q5 3 27 12q12 6 27 -6q7 -4 64 -45q28 -19 52 5q11 10 49 48q12 15 12 27.5t-7 23.5t-50 71q-8 11 -2 24q2 5 12 25q5 11 18 13q9 2 84 15q31 5 31 40v66zM909 255q0 -10 -9 -12q-1 0 -12 -2t-23.5 -4t-26 -4.5t-20.5 -3.5
q-29 -5 -38 -28q-4 -8 -11 -27q-10 -25 3 -42q1 -3 14 -21t23.5 -32.5t12.5 -17.5q6 -10 -1 -17l-13 -13l-22 -22l-13 -13q-8 -7 -19 0q-1 1 -13 9t-26 18t-25 18q-23 16 -49 6q-21 -9 -22 -9q-27 -11 -34 -49q-1 -7 -4 -24.5t-5 -30t-3 -15.5q-1 -11 -13 -11h-65
q-11 0 -15 12q-4 13 -12 74q-2 14 -9.5 25.5t-15.5 15.5q-25 10 -28 11q-29 12 -51 -4q-3 -2 -19.5 -14t-29.5 -21.5t-16 -11.5q-11 -7 -18 0l-47 47q-8 8 0 20l41 58q21 29 10 54q-3 6 -4.5 9.5t-2 5t-2 4.5t-4.5 10q-9 21 -38 26q-76 14 -77 14q-12 2 -12 14v66
q0 11 13 13q1 0 15.5 2.5t31.5 5.5t26 5q34 5 43 29l11 27q11 25 -7 50q-44 60 -45 62q-7 11 1 19l13 13l22 22l12 12q9 8 18 1q53 -38 64 -46q24 -17 49 -6q19 8 27 11q24 9 29 40q12 74 12.5 77.5t4 7t7.5 3.5h70q10 0 11 -9l4 -21t7 -40.5t4 -24.5q2 -9 10 -19.5
t16 -13.5q30 -13 31 -13q8 -3 19.5 -2t16.5 4q73 51 76 53q8 6 17 -3l13.5 -13.5l22.5 -22.5l12 -12q6 -6 1 -14q-1 0 -7.5 -9.5t-13.5 -19.5t-15 -21.5t-12 -16.5q-16 -23 -5 -49l9 -22q12 -28 34 -32q83 -13 84 -14q12 -1 12 -13l-0.5 -18t-0.5 -33t1 -17zM527 489
q-83 0 -141.5 -58.5t-58.5 -141.5t58.5 -141.5t141.5 -58.5t141.5 58.5t58.5 141.5t-58.5 141.5t-141.5 58.5zM526.5 124q-68.5 0 -116.5 48.5t-48 117t48 116.5t116.5 48t117 -48t48.5 -116.5t-48.5 -117t-117 -48.5z" />
<glyph glyph-name="yinqing" unicode="&#xe628;"
d="M422 277h-236v46h236q8 31 33 50.5t57 19.5q39 0 66 -27t27 -66t-27 -66t-66 -27q-32 0 -57 19.5t-33 50.5v0zM512 696q-107 0 -198.5 -53t-144.5 -144.5t-53 -198.5t53 -198.5t144.5 -144.5t198.5 -53q114 0 209 60t144 159l102 -59l-23 -40l-62 36q-52 -80 -129 -130
l35 -62l-40 -23l-36 62q-84 -43 -177 -48v-71h-46v71q-93 5 -177 48l-36 -62l-40 23l36 62q-77 50 -130 130l-62 -36l-23 40l62 36q-43 85 -48 177h-71v46h71q5 92 48 177l-62 36l23 40l62 -36q52 80 130 130l-36 62l40 23l36 -62q84 43 177 48v71h46v-71q93 -5 177 -48
l36 62l40 -23l-36 -62q78 -50 130 -130l62 36l23 -40l-102 -59q-49 99 -144 159t-209 60v0z" />
<glyph glyph-name="yuejuancuohao" unicode="&#x1006;"
d="M783 701l-271 -271l-271 271q-8 8 -18.5 8t-18.5 -7.5t-8 -18.5t8 -18l271 -272l-271 -271q-8 -8 -8 -18.5t8 -18t18.5 -7.5t18.5 7l271 272l271 -272q8 -7 18.5 -7t18.5 7.5t8 18t-8 18.5l-271 271l271 272q8 7 8 18t-8 18.5t-18.5 7.5t-18.5 -8z" />
<glyph glyph-name="cuo" unicode="&#x1007;"
d="M512 822q-107 0 -198 -53t-143.5 -143.5t-52.5 -197.5t52.5 -198t143.5 -144t198 -53t198 53t143.5 144t52.5 198t-52.5 197.5t-143.5 143.5t-198 53zM702 271q6 -6 6 -14.5t-6 -14.5t-14.5 -6t-14.5 6l-161 161l-161 -161q-6 -6 -14.5 -6t-14.5 6t-6 14.5t6 14.5
l161 161l-161 161q-6 6 -6 14.5t6 14.5t14.5 6t14.5 -6l161 -161l161 161q6 6 14.5 6t14.5 -6t6 -14.5t-6 -14.5l-161 -161z" />
<glyph glyph-name="baobiao" unicode="&#xe629;"
d="M964 95v35l-37 -3v484h-236v70h-361v-70h-234v-481h-36v-35h433v-141h-91v-35h217v35h-90v141h435zM366 646h289v-35h-289v35zM365 249l-143 73l15 28l123 -64l174 160l127 -92l93 122l13 -9l12 -10l-111 -147l-132 96z" />
<glyph glyph-name="star" unicode="&#xe600;"
d="M750 -84q-24 0 -45 11l-193 104l-192 -104q-24 -12 -51 -10.5t-48 15.5q-23 16 -33.5 40.5t-5.5 50.5l37 225l-162 163q-19 19 -25 44t3 50q8 25 28 41.5t47 20.5l221 33l96 199q12 24 35 38.5t50 14.5t50 -14.5t35 -38.5l96 -199l221 -33q27 -4 47 -20.5t28 -41.5
q9 -25 3 -50t-25 -44l-162 -163l37 -225q5 -26 -5.5 -50.5t-32.5 -39.5q-25 -17 -54 -17zM512 92q7 0 13 -4l206 -111q21 -11 40 2t15 35l-40 239q-2 15 8 25l173 173q16 15 9 36q-8 20 -30 24l-236 35q-15 2 -22 15l-102 214q-10 20 -34 20t-34 -20l-102 -214
q-7 -13 -22 -15l-236 -35q-22 -4 -30 -24q-7 -21 9 -36l173 -173q10 -10 8 -25l-40 -239q-4 -22 15 -35t40 -2l206 111q6 4 13 4zM200 439q-12 0 -14 12q-1 6 2.5 11t9.5 5l10 2q5 1 10 -2.5t6 -9.5t-2.5 -10.5t-9.5 -5.5l-9 -2h-3zM253 448q-12 0 -14 11q-2 6 1.5 11t9.5 6
l154 30l58 133q6 13 19 7t7 -19l-61 -140q-3 -7 -10 -8l-162 -31h-2z" />
<glyph glyph-name="yuandian" unicode="&#xe617;"
d="M513 831q-91 0 -174 -35.5t-143 -95.5t-95.5 -143t-35.5 -174.5t35.5 -174.5t95.5 -143t143 -95.5t174 -35.5t174 35.5t143 95.5t95.5 143t35.5 174.5t-35.5 174.5t-95.5 143t-143 95.5t-174 35.5zM513 -7q-106 0 -195.5 52t-141.5 142t-52 195.5t52 195t141.5 142
t195.5 52.5t195.5 -52.5t141.5 -142t52 -195t-52 -195.5t-141.5 -142t-195.5 -52zM513 382zM169 382.5q0 93.5 46 173t125.5 125.5t173 46t172.5 -46t125.5 -125.5t46.5 -173t-46.5 -173t-125.5 -125.5t-172.5 -46t-173 46t-125.5 125.5t-46 173z" />
<glyph glyph-name="kefu" unicode="&#xe606;"
d="M133 415q0 102 50 189t137 137.5t192 50.5t193.5 -50.5t140 -137.5t51.5 -189q0 -132 -81.5 -234t-208.5 -133l-116 -51v41q-99 7 -181 58.5t-129.5 136t-47.5 182.5zM84 415q0 -158 106 -276t263 -140q-4 -23 -6.5 -44t-0.5 -21q3 0 190 79q133 40 218.5 150.5
t85.5 251.5q0 113 -57 209.5t-156 153t-215 56.5t-215 -56.5t-156 -153t-57 -209.5zM341 277q17 -32 64 -53.5t106 -21.5q58 0 106 21t66 52q-7 4 -15.5 7.5t-12.5 4.5q-16 -24 -55 -41.5t-87.5 -17.5t-88 17.5t-55.5 43.5z" />
<glyph glyph-name="logo" unicode="&#xe609;"
d="M991 829q-5 2 -11 2q-17 0 -28 -11q-843 -424 -911 -459q-28 -15 -26 -41q2 -21 23 -28l290 -91l5 -2l17 50l-254 80l780 406q-232 -263 -436 -494q-29 -33 -29 -71v-153v0v-54v-2v0q1 -10 8.5 -17t18 -7t18 7t8.5 17v0q1 191 0 205q0 20 11 33q113 129 466 528
q-113 -562 -128 -637q-1 -4 -4 -4h-2q-13 4 -280 85l-5 1l-17 -50l5 -2q1 0 28.5 -8.5t66.5 -20t79 -24t72 -22t39 -11.5q8 -2 15 -2q20 0 35.5 13t19.5 34q2 9 56 278q85 418 86 427l1 3q5 31 -17 42z" />
<glyph glyph-name="list" unicode="&#xe60a;"
d="M618 734h-397q-13 0 -22 -9t-9 -22v-638q0 -13 9 -22t22 -9h582q13 0 22 9t9 22l-1 476zM804 541h-184v165zM813 65q0 -5 -3 -8t-7 -3h-582q-4 0 -7 3t-3 8v638q0 5 3 8t7 3h378v-193h214v-456zM298 482h55v-55h-55v55zM400 468h323v-26h-323v26zM298 342h55v-55h-55v55z
M400 328h323v-27h-323v27zM298 200h55v-55h-55v55zM400 185h323v-26h-323v26zM881 53z" />
<glyph glyph-name="tubiao" unicode="&#xe62c;"
d="M953 232h-169l-103 121q0 1 -1 1v1h-1v1h-1v0q0 1 -1 1v0q0 1 -0.5 1h-1t-0.5 0.5v0.5h-1v1h-1h-1v0l-1 1v0q-2 1 -5 1h-1v0q-3 1 -5 1v0l-1 -1v0h-1h-1v0h-1h-0.5h-0.5h-1v-1h-1h-1v0l-4 -2v0l-1 -1q-2 -1 -4 -3v0q0 -1 -1 -1v0q0 -1 -1 -1v0v-1l-1 -1v0l-0.5 -0.5
l-0.5 -0.5v-1v0q0 -1 -1 -1v0v-1v-1q-1 0 -1 -1v0v-1l-98 -343l-104 727v2v0v1h-1v1v0v1v1h-1v1v0v1v0l-1 1v0q0 1 -1 1v0v1v0l-1 1v1h-0.5t-0.5 0.5t-0.5 0.5t-0.5 1v0h-1v1h-1v0q0 1 -1 1v0l-1 1v0h-1v1h-1v0q-1 0 -1 1v0h-1h-1v1h-1v0q-3 1 -5 1v0h-1h-1v0h-1v0h-5v0h-1
l-1 -1h-0.5h-0.5h-1v0l-1 -1h-1v0l-1 -1v0h-1v0l-1 -1v0h-1v0l-1 -1v0q0 -1 -1 -1v0l-0.5 -0.5l-0.5 -0.5v0l-1 -1v0l-1 -1v0q0 -1 -1 -1v0v-1h-1v-1v0q0 -1 -1 -1v0v-1v-1h-1v-1v0q0 -1 -1 -1v0v-2l-141 -509h-177q-10 0 -17.5 -7.5t-7.5 -18.5t7.5 -18.5t17.5 -7.5h192
q1 0 2 1q2 -1 3 -1q19 0 24 19l114 411l103 -724v0v-1v0q0 -1 1 -2v0v-2v-1l1 -1v-1l1 -1v-1l1 -1v-1q1 0 2 -1v0q0 -1 1 -2v0l2 -2v0q2 -2 5 -3h1q0 -1 1 -1h1q1 -1 2 -1v0v0v0h1.5t1 -0.5t1 -0.5h0.5h3v0h1v0h0.5h1.5v0v1v0h1h1h1q1 0 1 1h1q3 1 5 2v0q2 1 3 2v1q1 0 2 1
v0l1 1v1q1 0 1.5 0.5l0.5 0.5v2h1q0 1 1 2v0v2v0q1 1 1 2v0v0v0l118 412l80 -94v-1l0.5 -0.5l0.5 -0.5l0.5 -0.5l0.5 -0.5h0.5t0.5 -1v0q1 -1 3 -2v0h1v0q0 -1 0.5 -1h1h0.5l0.5 -0.5l0.5 -0.5h1v0q1 0 1 -1h1h1v0h1v0h1v0h2v0h1v0v0v0h181q11 0 18.5 7t7.5 18t-7.5 18.5
t-18.5 7.5z" />
<glyph glyph-name="right" unicode="&#x1005;"
d="M516.5 -63q-91.5 0 -175.5 35q-81 34 -143 96.5t-96 143.5q-36 83 -36 174.5t36 175.5q34 80 96 142.5t143 96.5q84 35 175.5 35t174.5 -35q81 -34 143 -96.5t97 -142.5q35 -84 35 -175.5t-35 -174.5q-35 -81 -97 -143.5t-143 -96.5q-83 -35 -174.5 -35zM516 775
q-105 0 -194.5 -52t-141.5 -141.5t-52 -195t52 -195t141.5 -141.5t194.5 -52t194.5 52t141.5 141.5t52 195t-52 195t-141.5 141.5t-194.5 52zM435 133l-226 225l80 80l146 -146l308 308l80 -79z" />
<glyph glyph-name="huanfu2" unicode="&#xe61b;"
d="M959 539l-218 154h-101l-4 -10q-1 -3 -4.5 -9.5t-14.5 -21t-24.5 -26t-35 -21.5t-46.5 -10q-53 1 -93 44q-21 22 -31 44l-4 10h-100l-218 -154l104 -159l90 65l-19 -368h269h4h270l-19 368l90 -65zM730 507l21 -400h-238h-4h-236l20 400l-116 -84l-36 55l159 112l-19 31
l-160 -112l-14 22l185 131h72q12 -24 30 -44q49 -53 117 -54v0v0h0.5h0.5v0v0q67 1 117 54q18 20 31 44h71l186 -131l-15 -22l-160 112l-19 -31l159 -112l-36 -55z" />
<glyph glyph-name="On-line" unicode="&#xe610;"
d="M680 541l-249 -251l-95 94l-35 -35l112 -112q9 -9 17 -9q9 0 18 9l267 268zM512 800q-172 0 -294 -122t-122 -294t122 -294t294 -122t294 122t122 294t-122 294t-294 122zM512 3q-103 0 -191 51t-139 139t-51 191t51 191t139 139t191 51t191 -51t139 -139t51 -191
t-51 -191t-139 -139t-191 -51z" />
<glyph glyph-name="biaoge" unicode="&#xe62d;"
d="M305 260zM730 427zM596 554zM144 603v-602h737v602h-737zM420 216v129h185v-129h-185zM605 173v-129h-185v129h185zM605 517v-129h-185v129h185zM374 517v-129h-184v129h184zM190 345h184v-129h-184v129zM651 345h184v-129h-184v129zM651 388v129h184v-129h-184zM190 173
h184v-129h-184v129zM651 44v129h184v-129h-184z" />
<glyph glyph-name="youyou" unicode="&#xe602;"
d="M284 722l57 59l399 -397l-399 -397l-57 59l336 338z" />
<glyph glyph-name="zuozuo" unicode="&#xe603;"
d="M740 722l-57 59l-399 -397l399 -397l57 59l-336 338z" />
<glyph glyph-name="icon5" unicode="&#xe62e;"
d="M963 175q-13 77 -73 133q-55 52 -157 85q-5 1 -81 25q56 10 122 13h120q-43 63 -127 84q-89 23 -152 -32q30 106 -39 161q-24 19 -55 23t-56 -8q73 -39 94 -145q-66 102 -188 86q-25 -3 -52 -9.5t-62 -16.5t-52 -14q25 -23 48 -28t49 -10t57.5 -11t48.5 -9q3 -1 14 -3
t14.5 -2.5t13 -3t14 -4t13 -4.5t13.5 -6.5t11.5 -8t11.5 -9.5q-126 38 -236 9q-69 -18 -123.5 -52.5t-71.5 -72.5q31 16 72 18.5t73 -0.5q81 -3 113 1q23 3 48.5 8t60 13t50.5 11q-24 -16 -31 -21t-28.5 -20.5t-29 -23t-24 -23.5t-22.5 -27.5t-15 -29.5t-11 -34t-2.5 -37
t4.5 -44q20 34 51.5 67.5t60 56.5t62.5 54.5t56 59.5q-24 -134 66 -238q5 -5 30.5 -33.5t34.5 -40t24 -35.5t22 -47q18 196 -98 397l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h2l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1
l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1
l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l2 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1
l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1
h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1v-1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l2 -1l1 -1
h1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1l1 -1h1l1 -1h1l1 -1l1 -1h1zM513 236q-37 -19 -42 -65q-3 -29 -11 -84t-11 -79q0 -6 -8 -96h80q23 183 29 230q1 11 -4 23q-4 9 -33 71z" />
<glyph glyph-name="iconfont17" unicode="&#xe62f;"
d="M512 -212q139 0 257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5t-257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5zM512 764q192 0 328 -136t136 -328t-136 -328t-328 -136t-328 136t-136 328t136 328t328 136zM378 451h102
v-478q0 -14 9.5 -23t22.5 -9t22.5 9t9.5 23v478h102q13 0 17 7.5t-4 17.5l-128 173q-8 10 -19 10t-19 -10l-128 -173q-8 -10 -4 -17.5t17 -7.5z" />
<glyph glyph-name="tianjia" unicode="&#xe61f;"
d="M675 413h-127v127q0 15 -10.5 25.5t-25.5 10.5t-26 -10.5t-11 -25.5v-127h-127q-15 0 -25.5 -11t-10.5 -26t10.5 -25.5t25.5 -10.5h127v-127q0 -15 11 -26t26 -11t25.5 11t10.5 26v127h127q15 0 25.5 10.5t10.5 25.5t-10.5 26t-25.5 11v0zM511 831q-92 0 -176 -36
t-145 -97t-97 -145t-36 -176.5t36 -176.5t97 -144.5t145 -96.5t176.5 -36t176.5 36t144.5 96.5t96.5 144.5t36 176.5t-36 176.5t-96.5 145t-144.5 97t-177 36v0zM511 -21q-107 0 -198.5 53.5t-145 145t-53.5 199t53.5 199t145 145t199 53.5t199 -53.5t145 -145t53.5 -199
t-53.5 -199t-145 -145t-199.5 -53.5v0zM511 -21z" />
<glyph glyph-name="xiazai" unicode="&#xe601;"
d="M511 828q-90 0 -172.5 -35t-142 -94.5t-94.5 -141.5t-35 -172.5t35 -172.5t94.5 -141.5t142 -94.5t172.5 -35t172 35t141.5 94.5t94.5 141.5t35 172.5t-35 172.5t-94.5 141.5t-141.5 94.5t-172 35zM510.5 -30q-112.5 0 -208 55.5t-151 151t-55.5 208t55.5 208t151 151
t208 55.5t208 -55.5t151 -151t55.5 -208t-55.5 -208t-151 -151t-208 -55.5zM663 352l-125 -106v324q0 11 -8 19t-19 8t-19 -8t-8 -19v-325l-126 107q-8 8 -19 8t-19 -8t-8 -19t8 -19l170 -161q8 -9 20 -8q13 -1 21 8l170 161q8 8 8 19t-8 19t-19 8t-19 -8z" />
<glyph glyph-name="xuanzemoban48" unicode="&#xe630;"
d="M320 300h-213q-27 0 -45.5 -18.5t-18.5 -45.5v-213q0 -27 18.5 -45.5t45.5 -18.5h213q27 0 45.5 18.5t18.5 45.5v213q0 27 -18.5 45.5t-45.5 18.5zM256 257v-256h-85v256h85zM85 23v213q0 9 6.5 15t15.5 6h42v-256h-42q-9 0 -15.5 6.5t-6.5 15.5zM341 23q0 -9 -6 -15.5
t-15 -6.5h-43v256h43q9 0 15 -6t6 -15v-213zM576 471h-341q-36 0 -61 -25t-25 -61v-42h43v42q0 18 12.5 30.5t30.5 12.5h42v-96h22v96h213v-427h-85l-22 -42h171q35 0 60 25t25 60v341q0 36 -25 61t-60 25zM619 44q0 -18 -12.5 -30.5t-30.5 -12.5h-43v427h43
q18 0 30.5 -12.5t12.5 -30.5v-341zM853 -41q36 0 61 25t25 60v512q0 35 -25 60t-61 25h-512q-35 0 -60 -25t-25 -60v-43h43v43q0 18 12.5 30.5t29.5 12.5h86v-86h21v86h299v-598h-43l-21 -42h170zM896 44q0 -18 -12.5 -30.5t-30.5 -12.5h-85v598h85q18 0 30.5 -12.5
t12.5 -30.5v-512z" />
<glyph glyph-name="gongju" unicode="&#xe631;"
d="M282 555q-20 -20 -49 -20t-49 20l-33 33l98 99l33 -33q21 -20 21 -49.5t-21 -49.5v0zM249 621v0l-33 -33q7 -7 16.5 -7t16.5 7t7 16.5t-7 16.5v0zM397 412l-147 143l32 33l147 -142l-32 -34v0zM751 50l-133 140l33 33l133 -140l-33 -33v0zM850 -16q-34 -34 -82 -34
t-82 34l-148 154l33 33l148 -154q20 -21 49 -20.5t49.5 20.5t20.5 49.5t-21 49.5l-147 154l33 33l147 -154q34 -34 34 -82.5t-34 -82.5v0zM802 384q-48 -47 -115.5 -47t-115 47.5t-47.5 115.5t48 115l42 43l33 -33l-43 -43q-34 -34 -34 -82t34 -82.5t82.5 -34.5t82.5 34
l42 43l33 -33l-42 -43v0zM844 427l-49 50l-17 -17q-27 -27 -65 -27v0q-39 0 -66 27t-27 66t27 66l16 17l-49 49l33 33l82 -82l-49 -50q-14 -14 -14 -33t13.5 -33t33 -14t33.5 14l49 50l82 -83l-33 -33v0zM234 45v47h46v-47h-46v0zM538 273l-92 91l33 33l92 -91l-33 -33v0z
M304 17l174 240l37 -28l-177 -244q-34 -34 -82 -34t-82 34t-34 82.5t34 82.5l3 3l240 175l28 -38l-239 -174q-20 -20 -20 -48q0 -29 21 -50q19 -19 48 -19.5t49 18.5v0z" />
<glyph glyph-name="bianji" unicode="&#xe642;"
d="M769 432l-126 126l63 63q16 16 38 16t38 -16l50 -50q16 -16 16 -38t-16 -38zM403 67l-126 125l343 340l126 -126zM176 -37l77 205l125 -125z" />
<glyph glyph-name="xiaoxi" unicode="&#xe645;"
d="M587 671q-10 4 -18 -3l-259 -229h-148q-7 0 -12 -5t-5 -12v-268q0 -7 5 -12t12 -5h144q7 0 12 5t5 12v252q2 1 4 3l237 209v-653l-161 138q-91 78 -94 76q-10 -7 -19 -23q-1 -2 16 -16q7 -6 17.5 -14.5t20 -16.5t18 -15.5t14 -12l5.5 -4.5l10 -8l178 -153q5 -4 11 -4
q4 0 7 1q10 5 10 16v726q0 11 -10 16v0zM290 171h-115v234h115v-234v0zM748 292q0 -39 -24 -69.5t-61 -40.5h-4q-13 0 -16 12q-2 7 1.5 13t10.5 8q26 7 42.5 28.5t16.5 48.5t-16.5 48.5t-42.5 28.5q-7 2 -10.5 8t-2 12.5t7.5 10t13 2.5q37 -10 61 -40.5t24 -69.5v0zM865 292
q0 -67 -34 -124t-93 -89q-4 -2 -8 -2q-10 0 -14 9q-4 6 -2 12.5t8 9.5q51 28 80 77t29 107q0 57 -29.5 106.5t-79.5 77.5q-6 3 -8 9.5t1 12.5t9.5 8t13.5 -1q59 -32 93 -89t34 -124v0z" />
<glyph glyph-name="xiangxia" unicode="&#xe61a;"
d="M888 620q12 12 28.5 12t28.5 -12v0q12 -12 12 -28.5t-12 -28.5l-406 -405q-12 -12 -28.5 -12t-27.5 12v0q-12 11 -12 27.5t12 28.5zM539 214q11 -12 11 -28.5t-11 -27.5v0q-12 -12 -28.5 -12t-28.5 12l-406 405q-11 12 -11 28.5t11 28.5v0q12 12 28.5 12t28.5 -12z
M539 214z" />
<glyph glyph-name="wenjian" unicode="&#xe621;"
d="M887 515v-45v-45v-478q0 -29 -20 -49t-48 -20h-614q-29 0 -48.5 20t-19.5 49v705q0 28 20 48t48 20h387h45h38q14 5 23 -5l183 -183q7 -7 6 -17zM660 447q-10 0 -16.5 7t-6.5 16v205h-45h-364q-19 0 -32.5 -13.5t-13.5 -32.5v-660q0 -18 13.5 -31.5t32.5 -13.5h568
q19 0 32.5 13.5t13.5 31.5v456v22h-182zM683 666v-173h159v14z" />
<glyph glyph-name="layouts" unicode="&#xe632;"
d="M917 -103h-810q-18 0 -30 12t-12 30v698q0 18 12 30t30 12h810q18 0 30 -12t12 -30v-698q0 -18 -12 -30t-30 -12zM316 -61h601v363h-601v-363zM107 -61h167v363h-167v-363zM148.5 637q-17.5 0 -29.5 -12t-12 -29.5t12 -30t29.5 -12.5t30 12.5t12.5 30t-12.5 29.5t-30 12z
M274.5 637q-17.5 0 -29.5 -12t-12 -29.5t12 -30t29.5 -12.5t29.5 12.5t12 30t-12 29.5t-29.5 12zM400.5 637q-17.5 0 -30 -12t-12.5 -29.5t12.5 -30t30 -12.5t29.5 12.5t12 30t-12 29.5t-29.5 12zM875 512h-768v-168h810v168h-42z" />
<glyph glyph-name="duigou" unicode="&#xe618;" horiz-adv-x="1600"
d="M0 -31l1 -1q-1 0 -1 1zM423 -32q0 1 1 1q0 -1 -1 -1zM1189 507q0 -7 -8 -10q-95 -40 -170.5 -108.5t-144.5 -165.5q-70 -98 -123 -216q-5 -10 -8.5 -11t-11.5 7q-59 58 -262 258q-30 29 -39 37q-7 6 -7 10.5t10 8.5q62 29 98 48q18 10 33 -5q31 -32 164 -162
q12 -12 14.5 -11t7.5 17q27 77 97 193q107 180 274 406q0 1 2 4.5t4 4.5t4.5 0.5t3.5 -2.5t1 -5.5v-5.5q15 -69 60 -287z" />
<glyph glyph-name="tianjia1" unicode="&#xe608;"
d="M510 -61q-91 0 -173.5 35.5t-142.5 95t-95.5 142.5t-35.5 174t35.5 173.5t95.5 142.5t142.5 95.5t173.5 35.5t173.5 -35.5t142.5 -95.5t95.5 -142.5t35.5 -173.5t-35.5 -174t-95.5 -142.5t-142.5 -95t-173.5 -35.5v0zM510 812q-116 0 -214 -57t-155.5 -155t-57.5 -214
t57.5 -214.5t155.5 -155.5t214 -57t214 57t155.5 155.5t57.5 214.5t-57.5 214t-155.5 155t-214 57v0zM528 153h-36v215h-214v36h214v214h36v-214h214v-36h-214v-215v0zM528 153z" />
<glyph glyph-name="yaoyaozhibofanye" unicode="&#xe633;"
d="M508.5 744q-90.5 0 -173.5 -35.5t-142.5 -95.5t-95 -142.5t-35.5 -173.5t35.5 -173.5t95 -142.5t142.5 -95.5t173.5 -35.5t173.5 35.5t143 95.5t95 142.5t35 173.5t-35 173.5t-95 142.5t-143 95.5t-173.5 35.5zM508.5 -107q-109.5 0 -202.5 54t-147.5 147t-54.5 203
t54.5 203t147.5 147t202.5 54t203 -54t147.5 -147t54 -203t-54 -203t-147.5 -147t-203 -54zM253 401q4 13 -4.5 20.5t-20.5 5.5t-16 -14q-42 -126 14 -249q7 -11 17 -11t17.5 10.5t2.5 21.5q-47 104 -10 216zM599 164l-127 133l127 133q7 7 7 16.5t-7 16.5t-16.5 7t-16.5 -7
l-148 -148q-7 -7 -7 -18q0 -10 7 -18l148 -148q7 -7 16.5 -7t16.5 7t7 16.5t-7 16.5z" />
<glyph glyph-name="404" unicode="&#xe61c;"
d="M300 300l5 2q1 -5 27 -15l5 -13q16 -37 37 -112q22 8 61 -14l2 -4l-47 -36l18 -43q3 -8 -45 -30q-17 11 -26 7l-1 3q-17 37 -17 50l-4 -2l6 -15l-11 -4q-62 -24 -91 -8l-4 -1l-2 4q-11 25 32 182q18 7 23 31q19 13 32 18v0zM216 80q43 30 38 40q-1 3 1 10l-1 2
q-38 -32 -37 -34q-2 -14 -1 -18v0zM217 73l1 -2q17 1 28 6q1 0 20 15l-1 2q-11 -4 -15 6q-35 -23 -33 -27v0zM226 144l11 4q-1 -3 -16 -19q-3 -16 -1 -20q41 31 38 40l1 10l-4 -4l-9 -3l-1 2q17 6 21 37l-1 3q-38 -32 -37 -37l-2 -13v0zM232 173l1 -2l2 1q42 35 35 51
q2 1 2 3h-3q-43 -33 -36 -49q-2 -2 -1 -4v0zM241 212l1 -2q20 15 66 58l3 1l-7 15l1 5l-3 -1q-55 -49 -56 -57l-5 -19v0zM312 107l-36 -14q-2 0 -16 -11l1 -2l12 2l20 8q18 7 61 46l-6 15l-3 -1q-36 -25 -31 -37q2 -4 -2 -6v0zM268 265l1 -2q26 25 28 26l-1 2l-9 -4
q-18 -7 -19 -22v0zM276 223q24 -57 12 -90l-4 -29l27 11q-11 44 -32 106l-1 3l-2 -1v0zM279 232l7 -15q20 22 32 27l-3 9l-3 12l-2 -1q-32 -25 -31 -32v0zM293 195q36 25 29 41l-3 6h-2q-32 -29 -28 -39l4 -8v0zM294 190l3 -6l3 -12l2 1l-1 -5l7 -15l32 27l-6 16
q-14 -16 -21 -19l-2 -1q-1 3 20 26l-3 13l-1 3l-33 -28v0zM307 148l3 -6l2 -12q36 26 34 31l-5 13q-17 -12 -34 -26v0zM356 132q-36 -27 -31 -37l1 -10q38 27 35 34q37 32 43 34l-1 2q-2 4 -14 4l-31 -31l-2 4v0zM328 81l5 -10l-1 -5h2q18 11 26 18t7 10l-5 13l-34 -26v0z
M334 61l5 -13q39 20 36 27l-4 11q-33 -23 -37 -25v0zM358 140l1 -4q8 3 11 24l-2 -1q-5 -17 -10 -19v0zM732 256h4q-1 -4 14 -20v-11q-2 -34 -13 -96q19 -1 39 -30v-4l-48 -11l-2 -37q0 -8 -44 -8q-8 14 -16 14v2q1 34 6 43h-4l-1 -13l-9 1q-56 2 -70 24h-4v4q1 22 89 124
q15 -1 29 16q19 3 30 2v0zM588 116v-2q13 -5 23 -5q2 0 20 5l1 2q-10 0 -10 9q-34 -5 -34 -9v0zM590 121q42 8 43 17q0 3 4 7v2q-40 -11 -40 -13q-7 -9 -7 -13v0zM620 165h10q-3 -3 -18 -9q-9 -11 -9 -14q42 9 42 16l5 8l-4 -2h-8v2q14 -1 29 21v2q-39 -11 -40 -15l-7 -9v0z
M671 110l-32 1q-2 0 -16 -3v-1l10 -3l17 -1q16 0 62 14l1 13l-2 1q-36 -7 -36 -17q-1 -4 -4 -4v0zM635 185v-2h2q44 12 45 27q2 0 2 1h-2q-44 -9 -45 -24q-2 0 -2 -2v0zM686 207q-3 -50 -24 -70l-13 -20l24 -2q8 39 15 90v2h-2v0zM656 211v-2q21 5 70 21h2l1 13l2 4h-2
q-59 -19 -62 -24l-11 -12v0zM670 68v-11q36 2 36 8v9q-33 -6 -36 -6v0zM673 85v-9l-2 -4h1q34 4 35 10v11l-34 -8v0zM712 114q-36 -8 -36 -18l-3 -7q38 8 39 13q38 12 44 11v2q-1 4 -10 8l-34 -13v4v0zM682 142v-6l-3 -9q9 1 16 3t11.5 3t6.5 2.5t2 2.5l1 11q-16 -2 -34 -7
v0zM688 177v-6l-3 -9h2l-2 -4l-1 -13l34 10l1 13q-16 -7 -22 -7h-2q0 2 24 13l3 11v2l-34 -10v0zM688 181q36 7 37 21v6h-2q-34 -11 -34 -19l-1 -8v0zM692 213l-1 -13q24 10 34 9l1 8l2 9h-2q-33 -8 -34 -13v0zM695 241v-2q29 10 30 10v2h-7q-17 1 -23 -10v0zM716 119v-4
q7 0 17 14l-2 1q-10 -11 -15 -11v0zM479 382q80 15 109 -24q15 -28 18 -45q18 -85 -53 -138q-18 -8 -30 -10q-48 -10 -96 33q-14 24 -18 44q-20 96 46 133l24 7v0zM410 265q9 8 16 9q-15 -14 -14 -17q-1 -8 1 -14h2q36 24 35 30l-2 10q-6 -5 -12 -7l-1 4q16 4 14 30h-2
q-34 -25 -37 -34q-1 -4 0 -11v0zM410 286q50 33 45 57q-23 -18 -34 -27.5t-10 -10.5q-2 -14 -1 -19v0zM413 316v-2q41 31 53 49q15 3 20 16h-2q-55 -10 -71 -63v0zM414 235q4 -8 5 -14q29 23 35 24l-4 18q-9 -2 -36 -28v0zM422 220q3 -15 10 -15l27 22q0 2 -5 16
q-25 -22 -32 -23v0zM433 199q7 -9 10 -8l4 1q17 15 25 17q-2 6 -10 15q-30 -22 -29 -25v0zM448 186l1 -3q4 1 12 -3q28 15 28 20q-9 2 -10 8q-18 -8 -31 -22v0zM469 179l1 -2l15 1l12 2q4 1 18 10v2q-11 -2 -21 5l-25 -18v0zM476 249l5 -22q5 -21 29 -32l4 1q37 51 23 119
l-3 12l-6 19l-6 -1q-6 -1 -31 2q-25 -45 -15 -98v0zM476 363l1 -2q17 -3 20 -2q21 15 23 23l-21 -2q-4 -1 -23 -17v0zM509 363l4 3q2 0 15 -10q15 20 24 21q-1 5 -23 5q-21 -17 -20 -19v0zM512 185v-2l4 1q30 6 48 40q-15 -15 -52 -39v0zM522 198q57 36 54 53q3 7 2 11
q-53 -40 -49 -55q-4 -1 -7 -9v0zM529 352l7 -15l2 1q7 8 27 26v2q-8 8 -9 10h-4l-23 -24v0zM537 333l4 -9v-9l4 1q29 27 29 28l-1 3q-3 13 -7 13q-26 -26 -29 -27v0zM540 236q21 15 30.5 25t8.5 14q3 11 2 15h-2l-35 -30q-5 -22 -4 -24v0zM542 307l3 -12l10 4
q-11 -11 -10 -14q-1 -16 -1 -19q29 21 37 34l-3 12q-10 -10 -17 -11q13 17 18 18l-4 19q-30 -26 -33 -31v0zM307 569q-16 0 -20 -16q-3 -11 4 -21t26 -15v50q-5 2 -10 2v0zM710 537v-3q3 5 3 12q0 8 -6 14.5t-15 6.5q-5 0 -9 -3q11 0 19 -8t8 -19v0zM532 520q0 7 -8 19.5
t-17 21.5l-8 8q0 -25 12 -48q-3 -5 -6.5 -13.5t-4.5 -13.5l-2 -6q33 16 34 32v0zM489 507q4 0 4 4.5t-4.5 4.5t-4.5 -4.5t5 -4.5v0zM445 630l-2 16q-2 -1 -14 0.5t-28.5 -6.5t-21.5 -25q17 19 66 15v0zM621 615q-5 17 -20.5 24.5t-29.5 7.5h-14q-1 -8 -2 -17q49 4 66 -15v0z
M420 518q22 0 38 14.5t16 35t-16 34.5t-38.5 14t-38 -14t-15.5 -34.5t15.5 -35t38.5 -14.5v0zM420 614q21 0 36 -13.5t15 -33t-15 -33t-36.5 -13.5t-36.5 13.5t-15 33t15 33t37 13.5v0zM420 534q15 0 25.5 10t10.5 23.5t-10.5 23t-25.5 9.5t-26 -9.5t-11 -23t11 -23.5
t26 -10v0zM435 552q4 4 7 1.5t-0.5 -6.5t-6.5 -1t0 6v0zM396 586q10 10 18 3t-2 -18q-9 -10 -18 -3q-8 8 2 18v0zM584 518q23 0 38.5 14.5t15.5 35t-15.5 34.5t-38 14t-38.5 -14t-16 -34.5t16 -35t38 -14.5v0zM584 614q22 0 37 -13.5t15 -33t-15 -33t-36.5 -13.5t-36.5 13.5
t-15 33t15 33t36 13.5v0zM584 534q15 0 25.5 10t10.5 23.5t-10.5 23t-25.5 9.5t-25.5 -9.5t-10.5 -23t10.5 -23.5t25.5 -10v0zM600 552q3 4 6 1.5t-0.5 -6.5t-6.5 -1t1 6v0zM561 586q9 10 17.5 3t-1.5 -18q-10 -10 -18 -3q-8 8 2 18v0zM957 382v0q-2 2 -2 2.5v0.5l-0.5 0.5
t-1.5 0.5h-1q-9 13 -14 19t-19.5 15.5t-29.5 12.5v35q0 8 -5 8h-198q0 16 -1 28q19 2 31.5 13.5t12.5 28.5t-13.5 29t-32.5 13q-3 134 -7 150l-1 1q-3 4 -21 8q0 22 -12 47q4 -23 -26 -39h-1q0 4 -0.5 8.5t-5 16.5t-13 23t-26.5 25t-43 25q-2 -59 -32 -86v0l-6 -1v0v0v0v0h1
q-1 0 -1 -1q-24 -18 -65 -18q-20 0 -44 4q-6 1 -11.5 1t-16.5 -3v0v0q-27 -6 -30 -10l-1 -1q-2 -11 -6 -151q-19 -1 -32 -13t-13 -29q0 -16 12.5 -28t31.5 -13q-1 -16 -1 -28h-181q-3 0 -6.5 -3t-3.5 -6v-97q-16 -1 -27 -5q-36 -13 -36 -60q0 -2 1 -4q-7 -13 -5 -35
q2 -11 5 -14q-5 -10 2 -27q5 -13 22 -10q-7 -13 11 -29h3.5t4.5 2t5.5 4t6.5 5t6 5v-267q0 -6 11 -6h752q5 0 5 6v313q24 2 38 20q8 11 9 17q60 40 21 97v0zM316 509q-17 0 -28.5 10.5t-11.5 25.5q0 16 12 26.5t30 10.5v3v-1v-2h0.5h0.5h2v1q11 2 19 4q5 15 13.5 31t14.5 24
l6 9q-9 29 -13 67q24 -41 82 -56.5t115.5 -2t82.5 47.5q-2 -15 -5.5 -29t-5.5 -21l-2 -6q24 -29 34 -64q2 -1 6.5 -1.5t7.5 -0.5t5 -1v3h1q17 0 29.5 -12t12.5 -27t-11 -26q-15 -10 -41 -10l2 -35h-356q0 5 0.5 15t0.5 15v2h-3v0zM127 463q0 3 3.5 6t6.5 3h742q5 0 5 -9v-29
q0 2 -10 1q-48 -5 -61 -10h-637l-1 -2v-60q-16 8 -48 7v93v0zM821 -14h-640v297q16 6 15 22q-1 12 -15 16v8q2 1 3 2t1.5 2.5l0.5 1.5q9 17 -5 24v56h615q-5 -10 -5 -12q-2 -11 -2 -29l-91 -59q-1 0 -3 -1t-6.5 -5t-6.5 -7.5t-3.5 -9t2.5 -9.5q15 -23 51 -1q49 30 64 41v-1
v0l-3 -2q-9 -6 -4.5 -22t20.5 -19q2 -1 5.5 -0.5t3.5 1.5v-294h3v0zM178 271q0 5 -5 8l5 2v-10v0zM178 323h-2h-1l3 2v-2v0zM879 -66h-742q-10 0 -10 7v266q1 0 6 3q16 7 25.5 17.5t0.5 15.5h-1h-1q18 7 18 21v-289l655 2v292q17 -16 35 -10q4 -9 19 -10v-308q0 -7 -5 -7v0z
M879 -66z" />
<glyph glyph-name="lunbozutu" unicode="&#xe634;"
d="M1002 60v468q0 19 -12 34t-30 15h-64l1 7q0 23 -17 40t-41 17h-653q-23 0 -40.5 -19.5t-17.5 -44.5v1h-61q-19 0 -32 -13t-13 -31v-468h-1q0 -18 13.5 -31t32.5 -13h61v-5q0 -24 17 -41t41 -17h653q56 0 57 42h64q17 0 30 19.5t13 39.5h-1zM128 65h-64v470h64v-470z
M853 23q0 -5 -8 -13.5t-13 -8.5h-640q-5 0 -13 8.5t-8 13.5v554q0 5 5.5 12t9.5 7l6 3h640q5 0 13 -8.5t8 -13.5v-554zM960 44h-64v491l61 2h3v0v-2v-470q0 -1 1 -7t1 -10t-2 -4zM412.5 316q32.5 0 56 22.5t23.5 54.5t-23.5 55t-56 23t-56 -23t-23.5 -55t23.5 -54.5
t56 -22.5zM412.5 432q16.5 0 28 -11.5t11.5 -27.5t-11.5 -27t-28 -11t-28 11t-11.5 27t11.5 27.5t28 11.5zM786 373q-34 -8 -61.5 -22.5t-48.5 -36.5t-31.5 -36.5t-26.5 -38.5q-21 -33 -34.5 -46t-30.5 -13v0q-17 0 -33 5t-23.5 9t-24.5 14q-16 10 -25.5 15t-27 10t-35.5 5
q-26 0 -55.5 -13.5t-54 -35t-36.5 -33.5t-20 -22l-5 -51q0 -8 6 -13t14 -5h558q8 0 14 5t6 13v272q0 9 -8 15t-17 3zM771 105h-518q85 95 131 95q28 0 67 -25q18 -10 28 -15.5t30.5 -11.5t41.5 -6l3 -1q17 0 31 6t26.5 19t20 22.5t19.5 29.5q24 37 50.5 61.5t69.5 40.5v-215
z" />
<glyph glyph-name="help" unicode="&#xe607;"
d="M690 742q-74 56 -195 56q-93 0 -151 -39q-88 -60 -88 -217h154q0 2 -0.5 14t0 16t1 13.5t2 15.5t4.5 13.5t7 13.5q29 47 80 47q30 0 48 -8.5t34 -27.5q23 -29 23 -72q0 -28 -26 -63q-11 -16 -30 -30q-9 -6 -23.5 -15.5t-45 -35t-43.5 -46.5q-28 -45 -31 -130
q-1 -12 14 -12h124q13 0 14 13q2 43 6 59q10 32 40 54l41 29q67 52 81 72q38 52 38 114q0 107 -78 166zM484 156q-40 1 -67.5 -24.5t-29 -66.5t25 -67.5t66.5 -27.5q41 -1 68.5 23.5t28.5 66t-25 68t-67 28.5z" />
<glyph glyph-name="daima1" unicode="&#xe635;" horiz-adv-x="1025"
d="M513.5 810q-103.5 0 -198.5 -40.5t-163 -109t-108.5 -163t-40.5 -198.5t40.5 -198.5t108.5 -163t163 -109t198.5 -40.5t198.5 40.5t163 109t108.5 163t40.5 198.5t-40.5 198.5t-108.5 163t-163 109t-198.5 40.5zM513.5 -167q-94.5 0 -181 36.5t-149 99t-99.5 149
t-37 181.5t37 181t99.5 148.5t149 99.5t181 37t181 -37t149 -99.5t99.5 -148.5t37 -181t-37 -181.5t-99.5 -149t-149 -99t-181 -36.5zM172 276l242 -104v45l-192 80l192 78v45l-242 -102v-42zM443 109h36l106 379h-36zM613 420v-45l192 -78l-192 -80v-45l242 104v42z" />
<glyph glyph-name="jinshui" unicode="&#xe636;"
d="M862 -50q-44 0 -75.5 32t-31.5 78q0 28 14 53v1l80 137v0l13 22l14 -22v0l79 -136q1 -1 1 -2q14 -25 14 -53q0 -46 -31.5 -78t-76.5 -32v0zM924 105v0l-62 114l-61 -114h-1q-9 -19 -9 -40q0 -33 21 -56t50.5 -23t50.5 23t21 56q0 21 -10 40v0zM683 309q-67 0 -114.5 50
t-47.5 121q0 45 21 84q0 1 1 1l120 212v0l20 35l20 -35v0l119 -210l2 -4q20 -39 20 -83q0 -71 -47 -121t-114 -50v0zM791 546v1l-108 193l-109 -193v-1q-17 -31 -17 -57q0 -57 37 -100.5t89 -43.5t88.5 39.5t36.5 94.5q0 36 -17 67v0zM539 193q2 -3 3 -6q33 -61 33 -131
q0 -111 -76.5 -189.5t-184 -78.5t-184 78.5t-76.5 189.5q0 71 34 132q0 2 1 3l193 332v0l32 55l32 -55v0l193 -330v0zM314 507l-194 -333q-1 -1 -1 -2q-31 -54 -31 -116q0 -96 66.5 -164t160 -68t159.5 68t66 164q0 62 -30 116q-1 1 -1 2l-195 333v0z" />
<glyph glyph-name="guanyu" unicode="&#xe60b;"
d="M514 835q-92 0 -175.5 -36t-144 -96.5t-96.5 -144t-36 -175.5t36 -175.5t96.5 -144t144 -96.5t175.5 -36t176 36t144.5 96.5t96 144t35.5 175.5t-35.5 175.5t-96 144t-144.5 96.5t-176 36zM514.5 -20q-109.5 0 -202.5 54t-147 146.5t-54 202t54 202.5t147 147t202.5 54
t202 -54t146.5 -147t54 -202.5t-54 -202t-146.5 -146.5t-202 -54zM514 594q-14 -16 -14 -38q0 -18 12 -30q11 -12 29 -12q20 0 36 16q14 17 14 38q0 18 -11 30q-13 13 -32.5 12t-33.5 -16zM549 293q-14 -14 -26 -23q6 29 28 103q18 63 18 73q0 13 -10 22q-22 18 -69 -8
q-24 -14 -54 -47l-11 -11l35 -27l9 9q8 9 20 19q-39 -128 -39 -164q0 -16 10 -27q9 -10 25 -10q15 0 36 11q19 11 59 49l11 10l-31 31z" />
<glyph glyph-name="xiangshang" unicode="&#xe619;"
d="M514 539l384 -384q9 -9 22 -9t22.5 9.5t9.5 22t-10 22.5l-403 403q-13 13 -25 13q-20 0 -26 -6l-410 -410q-9 -10 -9 -22.5t9.5 -22t22.5 -9.5t22 9z" />
<glyph glyph-name="bofang" unicode="&#xe651;"
d="M512 -128q-104 0 -199 40.5t-163.5 109t-109 163.5t-40.5 199t40.5 199t109 163.5t163.5 109t199 40.5t199 -40.5t163.5 -109t109 -163.5t40.5 -199t-40.5 -199t-109 -163.5t-163.5 -109t-199 -40.5zM512 864q-98 0 -186.5 -38t-153 -102.5t-102.5 -153t-38 -186.5
t38 -186.5t102.5 -153t153 -102.5t186.5 -38t186.5 38t153 102.5t102.5 153t38 186.5t-38 186.5t-102.5 153t-153 102.5t-186.5 38zM640 181h-21q-18 0 -30.5 12.5t-12.5 30.5v320q0 18 12.5 30.5t30.5 12.5h21q18 0 30.5 -12.5t12.5 -30.5v-320q0 -18 -12.5 -30.5
t-30.5 -12.5zM405 181h-21q-18 0 -30.5 12.5t-12.5 30.5v320q0 18 12.5 30.5t30.5 12.5h21q18 0 30.5 -12.5t12.5 -30.5v-320q0 -18 -12.5 -30.5t-30.5 -12.5z" />
<glyph glyph-name="riqi" unicode="&#xe637;"
d="M933 674h-167v57h-34v-57h-192v57h-34v-57h-217v57h-33v-57h-168q-9 0 -15.5 -6.5t-6.5 -15.5v-706q0 -10 6.5 -16.5t15.5 -6.5h845q9 0 15.5 6.5t6.5 16.5v706q0 9 -6.5 15.5t-15.5 6.5zM939 -54q0 -6 -6 -6h-845q-6 0 -6 6v706q0 6 6 6h168v-56h33v56h217v-56h34v56
h192v-56h34v56h167q6 0 6 -6v-706zM207 524h129v-94h-129v94zM459 524h129v-94h-129v94zM685 524h129v-94h-129v94zM207 349h129v-94h-129v94zM459 349h129v-94h-129v94zM685 349h129v-94h-129v94zM207 174h129v-94h-129v94zM459 174h129v-94h-129v94zM685 174h129v-94h-129
v94z" />
<glyph glyph-name="wenjian1" unicode="&#xe61d;"
d="M893.5 644.5q-32.5 32.5 -77.5 32.5h-353l-120 95l-11 9h-14h-142q-39 0 -66.5 -28t-27.5 -68v-255v-7v-341q0 -46 32.5 -78t77.5 -32h624q45 0 77.5 32t32.5 78v485q0 45 -32.5 77.5zM176 740h142l131 -104h367q28 0 48.5 -20.5t20.5 -48.5v-120h-762v238q0 23 15.5 39
t37.5 16zM816 13h-624q-28 0 -48.5 20t-20.5 49v324h762v-324q0 -29 -20.5 -49t-48.5 -20z" />
<glyph glyph-name="delete" unicode="&#xe640;"
d="M739 24h-452q-20 0 -34.5 14.5t-14.5 33.5v418q0 20 14.5 34.5t34.5 14.5h452q20 0 34.5 -14.5t14.5 -34.5v-418q0 -19 -14.5 -33.5t-34.5 -14.5zM287 495q-7 0 -7 -5v-418q0 -4 7 -4h452q7 0 7 4v418q0 5 -7 5h-452zM832 496h-640q-21 0 -35.5 13.5t-14.5 31.5v61
q0 19 14.5 32t35.5 13h640q21 0 35.5 -13t14.5 -32v-61q0 -18 -14.5 -31.5t-35.5 -13.5zM185 541q1 -3 7 -3h640q6 0 7 3v61q-1 3 -7 3h-640q-6 0 -7 -3v-61zM601 605h-175q-20 0 -34.5 13.5t-14.5 31.5v11q0 19 14.5 32t34.5 13h175q20 0 34.5 -13t14.5 -32v-11
q0 -18 -14.5 -31.5t-34.5 -13.5zM419 650q2 -2 7 -2h175q5 0 7 2v11q-2 3 -7 3h-175q-5 0 -7 -3v-11zM404 431h-30q-5 0 -9 -4t-4 -9v-273q0 -5 4 -9t9 -4h30q6 0 9.5 4t3.5 9v273q0 5 -3.5 9t-9.5 4zM660 431h-31q-5 0 -9 -4t-4 -9v-273q0 -5 4 -9t9 -4h31q5 0 9 4t4 9v273
q0 5 -4 9t-9 4zM532 431h-30q-6 0 -9.5 -4t-3.5 -9v-273q0 -5 3.5 -9t9.5 -4h30q5 0 9 4t4 9v273q0 5 -4 9t-9 4z" />
<glyph glyph-name="bofangzanting02" unicode="&#xe652;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5v0v0zM512 -95q-98 0 -187 37.5t-153 101.5t-101.5 153t-37.5 187t37.5 187t101.5 153t153 101.5t187 37.5
t187 -37.5t153 -101.5t101.5 -153t37.5 -187t-37.5 -187t-101.5 -153t-153 -101.5t-187 -37.5v0v0zM733 392l-340 197q-6 6 -12 0q-3 0 -5.5 -2.5t-2.5 -5.5v-394l4 -8q6 -6 12 0l344 197q4 4 4 8q3 3 1.5 5.5t-5.5 2.5v0v0zM733 392z" />
<glyph glyph-name="top" unicode="&#xe604;"
d="M812 153l-300 173l-300 -173l300 604zM264 209l248 143l248 -143l-248 499zM372 138v-126h-16v126h-46v15h107v-15h-45v0zM507 154q40 0 50 -11.5t10 -58.5q0 -50 -10 -61.5t-50.5 -11.5t-50 11.5t-9.5 60.5v10v13q0 28 12 38q13 10 48 10zM506 141q-33 0 -38.5 -7.5
t-5.5 -51t5.5 -51t39 -7.5t39 7.5t5.5 51.5v9v13q0 23 -7.5 29.5t-37.5 6.5zM608 12v141h60h5q24 0 32.5 -9t8.5 -35q0 -24 -9 -32.5t-34 -8.5h-6h-41v-56h-16zM624 81h38q24 0 30.5 5t6.5 22q0 21 -4.5 26.5t-21.5 5.5h-6h-43v-59v0z" />
<glyph glyph-name="haoyouqingqiu" unicode="&#xe612;"
d="M672 766q9 -38 8 -95q0 -1 -3.5 -40.5t-2.5 -49.5q1 -7 2 -11t4 -9t5 -9q11 -24 3 -72q-5 -26 -13 -39q-3 -5 -14 -10.5t-14 -12.5q-6 -10 -7 -32t-3 -30q-3 -8 -14 -22t-11 -30q19 -3 25 -4q25 -57 39 -67q21 -6 39 -11q26 -11 76.5 -34t65.5 -29q9 -4 31 -12t33 -13.5
t24 -17.5t18 -28q0 -10 1.5 -65.5t1.5 -79.5h-908q0 24 1 79.5t1 65.5q5 16 18 28t24.5 17.5t33.5 13.5t31 12q14 6 65 29t77 34q18 5 39 11q13 10 39 67l19 5q-3 14 -13 25.5t-12 18.5q-1 6 -7 78q0 -1 -4.5 0t-9 2.5t-6.5 1.5q-6 5 -11 14t-8 24t-4 24t-2 26.5t-1 18.5
q-1 4 6 18t4 27q-19 94 2.5 159t69.5 81q22 10 38 15t44 10.5t56 0t53 -21.5l18 -18l29 -5q7 -4 13 -13.5t8 -17.5z" />
<glyph glyph-name="weibiaoti1" unicode="&#xe605;"
d="M960 640l-45 45l-544 -512l-262 281l-45 -44l294 -327l7 7l6 -7z" />
<glyph glyph-name="chuangkou" unicode="&#xe638;"
d="M96 724v-684h832v684h-832zM884 84h-744v406h744v-406z" />
<glyph glyph-name="comiisbiaoqing" unicode="&#xe60c;"
d="M511.5 832q-90.5 0 -173.5 -35.5t-143 -95.5t-95.5 -143t-35.5 -174t35.5 -174t95.5 -143t143 -95.5t173.5 -35.5t173.5 35.5t143 95.5t95.5 143t35.5 174t-35.5 174t-95.5 143t-143 95.5t-173.5 35.5zM511.5 -26q-111.5 0 -206 55t-149.5 149.5t-55 205.5t55 205.5
t149.5 149.5t206 55t206 -55t149.5 -149.5t55 -205.5t-55 -205.5t-149.5 -149.5t-206 -55zM724.5 282.5q-7.5 2.5 -14.5 -1t-9 -10.5q-22 -60 -74 -96.5t-115 -36.5q-64 0 -116 37t-73 97q-3 7 -10 10.5t-14 1t-10.5 -9.5t-1.5 -15q26 -71 87.5 -114.5t137.5 -43.5
q75 0 136.5 43.5t87.5 113.5q2 8 -1 15t-10.5 9.5zM302 494q0 -18 13.5 -31.5t32 -13.5t31.5 13.5t13 32t-13 31.5t-31.5 13t-32 -13t-13.5 -32v0zM631 494q0 -18 13.5 -31.5t32 -13.5t31.5 13.5t13 32t-13 31.5t-31.5 13t-32 -13t-13.5 -32v0z" />
<glyph glyph-name="zhengque" unicode="&#xe616;"
d="M512 832q-91 0 -174 -35.5t-143 -95.5t-95.5 -143t-35.5 -174t35.5 -174t95.5 -143t143 -95.5t174 -35.5t174 35.5t143 95.5t95.5 143t35.5 174t-35.5 174t-95.5 143t-143 95.5t-174 35.5zM433 160l-186 252l68 61l118 -129l291 264l53 -56z" />
<glyph glyph-name="iconfontwodehaoyou" unicode="&#xe613;" horiz-adv-x="1449"
d="M1383 -40l-3 26l-7 31l-10 30l-14 31l-14 23l-20 23l-22 18l-30 17l-22 10l-29 7l-29 7l-25 10l-31 14l-25 12l-31 14l-23 14v83l10 11l9 16l7 16l6 19l6 24l2 18l4 -1l6 1l6 4l5 9l4 11l2 14l3 24l1 21l-1 18l-4 11l-7 4l-4 -1l3 24l3 28l1 25v21l-3 18l-6 19l-8 16
l-11 19l-12 16l-15 12l-19 12l-23 11l-20 5l-24 4l-23 1l-24 -4l-23 -8l-21 -9l-17 -11l-17 -15l-16 -17l-14 -20l-10 -22l-6 -25l-1 -32l3 -30l4 -38h-8l-6 -7l-1 -13l1 -30l4 -34l3 -17l6 -10l10 -5l6 1l4 -28l4 -16l6 -18l9 -18l10 -14l8 -10l-1 -85l8 -3l12 -3l12 -5
l12 -4l11 -4l9 -5l12 -5l13 -7l13 -8l11 -8l13 -10l12 -11l11 -14l12 -15l13 -17l10 -21l9 -22l9 -21l5 -19l4 -20l4 -23l2 -27l1 -18l-1 -16l-4 -13l-7 -13l-8 -9l-15 -8h309l14 7l11 11l7 12l2 15zM439 816l-18 -19l-15 -22l-11 -24l-7 -28l-1 -35l3 -32l5 -43h-10l-6 -7
l-1 -14l1 -33l5 -38l3 -19l6 -10l11 -6l7 1l4 -30l5 -18l7 -20l9 -20l11 -15l9 -11l-1 -93l-15 -10l-34 -16l-35 -16l-29 -13l-22 -10l-25 -8l-26 -5l-25 -6l-26 -11l-24 -12l-21 -15l-24 -25l-17 -24l-13 -25l-11 -25l-10 -30l-5 -23l-4 -20l-3 -23v-20l3 -21l11 -14
l15 -10l20 -2h861l15 8l13 12l7 13l2 16l-2 22l-3 28l-8 34l-11 33l-16 34l-15 25l-22 25l-24 20l-33 19l-24 11l-32 8l-32 8l-27 10l-35 16l-27 13l-34 16l-26 14v92l11 12l11 18l8 17l6 21l6 26l3 20l4 -1l7 1l6 5l6 10l4 12l3 15l2 27l2 23l-2 19l-4 13l-8 4l-4 -1l4 26
l3 31l1 28v22l-4 21l-6 20l-9 18l-12 21l-13 17l-16 13l-21 13l-26 13l-22 5l-26 5h-26l-26 -4l-25 -9l-23 -9l-19 -13z" />
<glyph glyph-name="wenjianxiazai" unicode="&#xe61e;"
d="M187 77v582q24 -24 57 -24h560v-151h25v176h-585q-23 0 -40 17t-17 40.5t17 40.5t40 17h573v25h-573q-34 0 -58 -24t-24 -58v-641q0 -31 22 -53.5t54 -22.5h226v25h-226q-21 0 -36 15t-15 36zM237 730h560v-25h-560v25zM686 428q-64 0 -118 -37.5t-76 -98.5
q-23 -61 -5.5 -125t67.5 -105.5t116.5 -46.5t122.5 29q56 33 82.5 93.5t13.5 124.5q-14 72 -72 119t-131 47zM686 39q-57 0 -104 33t-67 86q-20 54 -4.5 110.5t60 93t102.5 41t107 -25.5t72.5 -83.5t12.5 -109.5q-13 -62 -64 -103.5t-115 -41.5zM699 152v159h-25v-159
l-69 69l-18 -18l99 -99l99 99l-18 18z" />
<glyph glyph-name="tupian" unicode="&#xe60d;"
d="M959 63h-893v638h893v-638zM98 95h829v574h-829v-574zM649 398h-2q-36 0 -61.5 25.5t-25.5 60.5v2q0 36 25.5 61.5t61.5 25.5h2q36 0 61 -25.5t25 -61.5v-2q0 -35 -25 -60.5t-61 -25.5zM647 541q-23 0 -39 -16t-16 -39v-2q0 -22 16 -38t39 -16h2q22 0 38.5 16t16.5 38v2
q0 23 -16.5 39t-38.5 16h-2zM91 160l-23 23l275 279l22 -22zM605 195l-265 264l23 23l264 -265zM619 181l-23 23l168 171l23 -23zM926 201l-167 168l22 22l167 -167z" />
<glyph glyph-name="lianjie" unicode="&#xe64c;"
d="M262 -122q-102 0 -179 77t-77 182.5t77 182.5l135 134l89 -89l-134 -135q-39 -38 -39 -89t38.5 -89.5t90 -38.5t89.5 38l179 179q39 39 39 90q0 47 -32 90l-71 64l90 89l70 -70q71 -71 71 -179q0 -112 -77 -180l-179 -179q-33 -37 -81.5 -57t-98.5 -20zM467 205l-70 64
q-77 77 -77 182.5t77 182.5l179 179q77 77 182.5 77t182.5 -77t77 -182.5t-77 -182.5l-135 -134l-89 89l134 135q39 38 39 89t-38.5 89.5t-92 38.5t-87.5 -38l-186 -173q-38 -38 -38 -89.5t38 -89.5l71 -71z" />
<glyph glyph-name="jilu" unicode="&#xe60e;"
d="M828 700.5q-63 63.5 -145 97t-171.5 33.5t-171.5 -33.5t-145 -97t-97 -145t-34 -171.5q0 -133 72 -244q7 -11 20 -13.5t23.5 4.5t13.5 19.5t-4 23.5q-63 95 -63 210q0 104 51.5 193t140.5 140.5t193.5 51.5t193.5 -51.5t140.5 -140.5t51.5 -193.5t-51.5 -193t-140.5 -140
t-193 -51.5q-108 0 -200 55q-11 7 -23.5 3.5t-19 -14.5t-3.5 -23.5t14 -18.5q107 -65 232 -65q89 0 171 34t145 97.5t97 145t34 171.5t-34 171.5t-97 145zM494.5 690q-16.5 0 -28 -11.5t-11.5 -27.5v-284v-2v-2q2 -15 13 -24.5t27 -9.5v0v0h224q16 0 27.5 12t11.5 28
t-11.5 27.5t-27.5 11.5h-185v243q0 16 -11.5 27.5t-28 11.5z" />
<glyph glyph-name="liucheng" unicode="&#xe622;"
d="M512 640h9h117h138h117q24 0 41 -12.5t23 -33.5q2 -9 2 -20v-509q0 -28 -18.5 -46.5t-46.5 -18.5h-763q-29 0 -47.5 18.5t-18.5 47.5v636q0 29 18.5 47.5t47.5 18.5h314q30 0 48.5 -18.5t18.5 -47.5v-55v-7zM129 640h319v64h-319v-64z" />
<glyph glyph-name="fontstrikethrough" unicode="&#xe64f;"
d="M928 448h-144q-5 84 -29 145q-12 29 -37 58.5t-61.5 56.5t-87 43.5t-105.5 16.5h-208v-320h-160q-13 0 -22.5 -9.5t-9.5 -22.5t9.5 -22.5t22.5 -9.5h160v-320h230q55 0 103 16t80 42t52.5 53.5t32.5 55.5q27 70 31 153h143q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5z
M349 711h64q3 0 9 1q10 2 26 0t35 -2.5t40.5 -8.5t42.5 -18t40.5 -31t35 -47.5t26 -67t12.5 -89.5h-331v263zM439 121h-90v262v1h331q-3 -55 -17 -99.5t-31.5 -71t-44 -46t-45.5 -28.5t-45.5 -13.5t-35 -4.5h-22.5z" />
<glyph glyph-name="unlink" unicode="&#xe64d;"
d="M150 768q-12 -4 -18.5 -16t-2.5 -25q3 -8 9 -13l123 -123q7 -11 20 -14t24 4t14 20t-4 24q-4 6 -10 10l-123 123q-11 12 -28 10h-4v0zM406 831q-10 -3 -16 -12t-6 -20v-127q0 -13 9.5 -22.5t22.5 -9.5t22.5 9.5t9.5 22.5v127q0 14 -9 23.5t-22 9.5q-3 0 -7 -1q-2 1 -4 0
v0zM91 512q-13 -2 -21 -13t-6 -24t13 -21t24 -6h123q13 0 22.5 9.5t9.5 22.5t-9.5 22.5t-22.5 9.5h-123h-6h-4v0zM795 320q-13 -2 -21 -10.5t-6 -21.5q3 -14 14 -24t23 -8h123q13 0 22.5 11.5t9.5 25.5q0 13 -9 20t-23 7h-123h-6h-4v0zM598 127q-10 -3 -16 -12t-6 -20v-127
q0 -13 9.5 -22.5t22.5 -9.5t22.5 9.5t9.5 22.5v127q0 14 -9 23.5t-22 9.5q-3 0 -7 -1q-2 1 -4 0v0zM726 192q-12 -4 -18.5 -16t-2.5 -25q3 -8 9 -13l123 -123q7 -11 19.5 -14t24 4t14.5 19.5t-4 24.5q-4 6 -10 10l-123 123q-11 12 -28 10h-4v0v0zM340 28q-80 0 -136 56
t-56 135.5t56 136.5l88 87q9 10 22.5 10t23 -9.5t9.5 -22.5t-10 -23l-88 -88q-37 -37 -37 -90t37.5 -90.5t90.5 -37.5t90 37l88 88q10 10 23 10t22.5 -9.5t9.5 -23t-10 -22.5l-87 -88q-56 -56 -136 -56zM702 324q-13 0 -22.5 9t-9.5 22.5t9 22.5l88 88q38 37 38 90.5
t-37.5 90.5t-90.5 37t-91 -37l-88 -88q-9 -9 -22 -9t-22.5 9.5t-9.5 22.5t9 23l88 87q56 56 135.5 56t136 -56t56.5 -135.5t-57 -135.5l-87 -88q-10 -9 -23 -9z" />
<glyph glyph-name="bianjiwenzi" unicode="&#xe639;" horiz-adv-x="1063"
d="M945 197h-88l-116 -325h74l17 62h135l18 -62h77l-117 325v0zM848 1l51 152l51 -152h-102v0zM210 490l-27 23l-171 -199q-13 -16 -11.5 -37t17 -34.5t36.5 -12t35 17.5l11 13q12 12 24 1q13 -11 2 -23q-15 -17 -18.5 -43t11.5 -41q17 -13 42.5 -6t40.5 24q5 5 12 5.5
t12 -4t5.5 -11.5t-3.5 -12q-15 -17 -18.5 -43t11.5 -41q17 -13 42.5 -6t40.5 24q5 5 12 5.5t12 -4.5q13 -11 2 -23q-15 -17 -18.5 -43t11.5 -41q17 -12 42.5 -5.5t40.5 23.5q11 12 24 1q5 -4 5.5 -11t-4.5 -12q-14 -17 -17.5 -43t11.5 -41q16 -14 37 -12.5t34 17.5l171 200
l-8 37l-449 357v0zM844 330l-164 141l250 244l10 10q28 32 25.5 74.5t-35 70.5t-75.5 25.5t-71 -34.5h-1l-219 -290l-164 143q-11 9 -25.5 8t-23.5 -12l-103 -116l-23 -26l26 -23l445 -384l30 -24l121 144q10 11 9 25t-12 24v0zM818 831q16 18 40 19.5t42 -14t20 -39.5
t-14 -42t-40 -19.5t-42.5 14t-20 39.5t14.5 42v0zM765 758q6 -27 27 -45t49 -19l-197 -199l-51 43l172 220v0zM776 300l-66 -81l-402 347l69 79q11 12 23 2l374 -324q6 -4 6.5 -11t-4.5 -12v0z" />
<glyph glyph-name="sanjiao" unicode="&#xe623;"
d="M293 728l427 -355l-427 -356v711z" />
<glyph glyph-name="danxuankuanghouxuan" unicode="&#xe63f;"
d="M512 848q-94 0 -180 -36.5t-148.5 -99t-99 -148.5t-36.5 -180t36.5 -180t99 -148.5t148.5 -99t180 -36.5t180 36.5t148.5 99t99 148.5t36.5 180t-36.5 180t-99 148.5t-148.5 99t-180 36.5zM512 -16q-109 0 -201 53.5t-145.5 145.5t-53.5 201t53.5 201t145.5 145.5
t201 53.5t201 -53.5t145.5 -145.5t53.5 -201t-53.5 -201t-145.5 -145.5t-201 -53.5z" />
<glyph glyph-name="danxuankuangxuanzhong" unicode="&#xe643;"
d="M512 384zM320 383.5q0 79.5 56.5 136t136 56.5t135.5 -56.5t56 -136t-56 -135.5t-135.5 -56t-136 56t-56.5 135.5zM512 848q-94 0 -180 -36.5t-148.5 -99t-99 -148.5t-36.5 -180t36.5 -180t99 -148.5t148.5 -99t180 -36.5t180 36.5t148.5 99t99 148.5t36.5 180t-36.5 180
t-99 148.5t-148.5 99t-180 36.5zM512 -16q-109 0 -201 53.5t-145.5 145.5t-53.5 201t53.5 201t145.5 145.5t201 53.5t201 -53.5t145.5 -145.5t53.5 -201t-53.5 -201t-145.5 -145.5t-201 -53.5z" />
<glyph glyph-name="juzhongduiqi" unicode="&#xe647;"
d="M992 448h-960q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM800 704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h576zM992 832h-960q-13 0 -22.5 9.5
t-9.5 22.5t9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM224 256q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-576zM32 128h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-960
q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM224 -64h576q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5z" />
<glyph glyph-name="youduiqi" unicode="&#xe648;"
d="M992 64h-960q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM992 256h-704q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM992 448h-960q-13 0 -22.5 9.5
t-9.5 22.5t9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM992 640h-704q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM992 832h-960q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h960
q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM288 -64h704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-704q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5z" />
<glyph glyph-name="zuoduiqi" unicode="&#xe649;"
d="M992 448h-960q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM32 704h704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-704q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM992 832h-960q-13 0 -22.5 9.5
t-9.5 22.5t9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5zM32 320h704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-704q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM32 128h960q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-960
q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM32 -64h704q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-704q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5z" />
<glyph glyph-name="gongsisvgtubiaozongji22" unicode="&#xe626;"
d="M79 832h864q6 0 11 -4.5t5 -11.5v-863q0 -7 -5 -11.5t-11 -4.5h-864q-7 0 -11.5 4.5t-4.5 11.5v863q0 7 4.5 11.5t11.5 4.5v0zM927 800h-832v-831h832v831z" />
<glyph glyph-name="gongsisvgtubiaozongji23" unicode="&#xe627;"
d="M80 832h864q6 0 10.5 -4.5t4.5 -11.5v-863q0 -7 -4.5 -11.5t-10.5 -4.5h-864q-7 0 -11.5 4.5t-4.5 11.5v863q0 7 4.5 11.5t11.5 4.5v0zM928 800h-832v-831h832v831zM144 361q-11 12 0 23t22 0l11 -11l0.5 -0.5l0.5 -0.5l207 -206l472 471q11 12 22.5 0.5t0.5 -22.5
l-484 -483v0q-11 -11 -22 0l-218 217l-1 1z" />
<glyph glyph-name="shuaxin" unicode="&#x1002;"
d="M959 451q-22 147 -127.5 252.5t-252.5 127.5q-70 11 -140 -1q-70 -11 -134 -44q-7 -4 -10 -12t1 -15.5t12 -10t16 1.5q120 62 252 41t227 -116q72 -73 102 -169t12 -195q-24 42 -86 88q-5 4 -11.5 6.5t-13.5 0.5t-8 -12q-1 -3 9 -19t24.5 -40.5t21.5 -45.5
q13 -34 17 -66.5t6 -39.5q0 -2 1 -4v0q4 -13 16 -14.5t16 6.5h1q3 3 4 6q33 64 44 134q12 70 1 140zM700 18q-120 -62 -252 -41t-227 116q-72 73 -102 169t-12 195q25 -45 88 -92q5 -4 11.5 -6.5t13.5 0t8 11.5q1 4 -9 19.5t-24.5 40.5t-21.5 46q-13 35 -17 66.5t-7 42.5
q-2 7 -6 10q-3 3 -6 5q-7 4 -15 1t-12 -10q-33 -64 -44 -134q-12 -70 -1 -140q22 -147 127.5 -252.5t252.5 -127.5q70 -11 140 1q70 11 134 44q7 4 10 12t-1 15.5t-12 10t-16 -1.5z" />
<glyph glyph-name="loading2" unicode="&#xe63e;"
d="M538 832q-11 0 -18.5 -7.5t-7.5 -18t7.5 -18t18.5 -7.5q100 0 185.5 -50t135 -135.5t49.5 -185.5q0 -11 7.5 -18.5t18.5 -7.5t18.5 7.5t7.5 18.5q0 114 -57 211.5t-154 154t-211 56.5z" />
<glyph glyph-name="jiacu" unicode="&#xe62b;"
d="M199 848h355q106 0 158 -8.5t92.5 -36.5t68 -74.5t27.5 -104.5q0 -62 -33.5 -114.5t-90.5 -78.5q81 -23 124.5 -80t43.5 -134q0 -61 -28 -118t-77 -91.5t-121 -42.5q-45 -5 -216 -6h-303v889zM378 700v-206h118q105 0 130 3q46 6 72.5 32.5t26.5 69.5q0 41 -22.5 67
t-67.5 31q-27 3 -154 3h-103zM378 346v-236h167q97 0 123 5q40 7 65.5 35t25.5 75q0 40 -19.5 68t-56.5 40.5t-159 12.5h-146z" />
<glyph glyph-name="liaotianduihuaimgoutong" unicode="&#xe63a;"
d="M998 501q0 89 -55.5 165t-151.5 120t-209 44q-91 0 -173.5 -30t-142.5 -84q57 12 116 14q90 47 200 47q97 0 180 -37t131 -100.5t48 -138.5q0 -48 -21 -93q11 -43 11 -87q67 82 67 180v0zM442 399q-23 0 -39 -15t-16 -36.5t16 -36.5t39 -15t39.5 15t16.5 36.5t-16.5 36.5
t-39.5 15zM243 399q-23 0 -39 -15t-16 -36.5t16 -36.5t39 -15t39.5 15t16.5 36.5t-16.5 36.5t-39.5 15zM641 399q-23 0 -39.5 -15t-16.5 -36.5t16.5 -36.5t39.5 -15t39.5 15t16.5 36.5t-16.5 36.5t-39.5 15zM442 678q-113 0 -209 -44t-151.5 -120t-55.5 -165q0 -65 29 -122
t77.5 -97t106.5 -66.5t119 -35.5l61 -79q8 -11 23 -11t24 11l60 79q62 10 120 36t106 66t77.5 97.5t29.5 121.5q0 89 -56 165t-152 120t-209 44zM715 174q-82 -71 -197 -90q-23 -3 -37 -21l-39 -50l-38 50q-14 18 -37 21q-115 19 -197 90q-87 75 -87 175q0 108 100 188
q107 84 259 84q153 0 259 -84q101 -80 101 -188q0 -100 -87 -175z" />
<glyph glyph-name="shipin1" unicode="&#xe6ed;"
d="M953 599v0v0zM101 661v0v0zM101 720v0v0zM661 697q15 0 26 -2q18 -4 34 -17q23 -17 32 -52q4 -13 3 -42q-1 -8 -1 -12v-37l102 70l25 18h2v1q12 9 21 11q5 1 10 1q15 0 28 -9q19 -14 19 -51v-3v-410q0 -38 -20 -52q-11 -8 -27 -8q-8 0 -15 2.5t-16 10.5l-2 1l-25 18
l-102 70v-38q0 -3 1 -12q0 -29 -3 -43q-9 -34 -31 -51q-17 -13 -34 -17q-10 -2 -25 -2h-13h-10h-473h-6h-6q-32 0 -47 7q-44 18 -53 73l-1 3v2v57v0v371v7v7q-1 55 9 77q16 33 49 46q6 2 15 3h3l4 2h501h12h6.5h7.5zM304 224l256 128v34l-256 127v-289zM661 738h-16h-10
h-501h-7l-7 -3q-12 -1 -23 -5q-49 -18 -71 -67q-14 -30 -13 -94v-14v-371v0v0v-1v-56v-3v-3l1 -4v-2q7 -36 26 -62q20 -29 52 -42q23 -10 63 -10h6h6h473h9h14q19 0 34 3q25 6 49 25q34 25 46 72q3 11 4 26l37 -26l25 -17v-0.5v-0.5q15 -11 27 -15q14 -6 30 -6q28 0 51 16
q25 18 33 48q4 14 4 37v410v3v0q0 23 -4 36q-8 30 -32 48q-23 17 -52 17q-10 0 -20 -2q-18 -5 -36 -18v0v-1l-25 -17h-1v0l-37 -26q-1 12 -4 23q-12 49 -46 75q-24 18 -50 24q-15 3 -35 3v0zM345 290v157l157 -78l-157 -79v0zM347 429v-121v121z" />
<glyph glyph-name="yinpin" unicode="&#xe6fc;"
d="M356 2v0v283h-103v-283h103zM665 285h103v-283h-103v283zM64 302q0 -6 -0.5 -33.5t-0.5 -43t1.5 -37.5t4.5 -34h66q-3 10 -4.5 24t-2.5 33t-1 31v34v26q0 108 51.5 200t140 145t193.5 53t193.5 -53t140 -145t51.5 -200q0 -121 -8 -148h66q3 12 4.5 34t1.5 37.5t-0.5 43
t-0.5 33.5q0 94 -35.5 180t-95.5 148t-143 99t-174 37t-174 -37t-143 -99t-95.5 -148t-35.5 -180z" />
<glyph glyph-name="wenjianjiafan" unicode="&#xe624;"
d="M958 240l-124 464q-4 14 -15.5 23t-25.5 9h-679q-3 0 -5 -1v1q-19 0 -32 -13.5t-13 -31.5v-613q0 -19 13 -32t32 -13h172q19 0 32 13l55 56q3 2 6 2h411q19 0 32 13t13 32v38h87q21 0 34 16.5t7 36.5zM101 78v498l96 -358q4 -14 15.5 -22.5t25.5 -8.5h555v-38q0 -8 -8 -8
h-411q-19 0 -32 -13l-55 -56q-2 -2 -6 -2h-172q-8 0 -8 8zM921.5 226q-1.5 -2 -4.5 -2h-679q-4 0 -5 4l-124 463q-1 3 0.5 5.5t4.5 2.5h679q4 0 5 -5l124 -463q1 -3 -0.5 -5z" />
<glyph glyph-name="shouji" unicode="&#xe63b;"
d="M732 896h-440q-72 0 -124 -51.5t-52 -124.5v-672q0 -73 52 -124.5t124 -51.5h439q73 0 124.5 51.5t51.5 124.5v672q1 73 -51 124.5t-124 51.5zM292 853h439q53 0 91.5 -36t41.5 -89h-704q3 53 41.5 89t90.5 36zM865 49q0 -55 -39 -94.5t-94 -39.5h-440q-55 0 -94 39.5
t-39 94.5v45h706v-45v0zM865 137h-706v549h706v-549v0zM512 -55q21 0 36.5 15.5t15.5 36.5t-15.5 36t-36.5 15t-36.5 -15t-15.5 -36t15.5 -36.5t36.5 -15.5z" />
<glyph glyph-name="tianjia2" unicode="&#xe654;"
d="M567 58q0 -23 -16 -39t-39 -16v0q-23 0 -39 16t-16 39v610q0 22 16 38.5t39 16.5v0q23 0 39 -16.5t16 -38.5v-610zM817 418q23 0 39 -16.5t16 -38.5v0q0 -23 -16 -39t-39 -16h-610q-23 0 -39 16t-16 39v0q0 22 16 38.5t39 16.5h610zM817 418z" />
<glyph glyph-name="biaoqing" unicode="&#xe650;" horiz-adv-x="1025"
d="M512 -128q-103 0 -196.5 38.5t-166 111t-111 166t-38.5 196.5t38.5 196.5t111.5 166t166.5 111t196 38.5t196 -38.5t165.5 -111.5q99 -98 133.5 -230t-0.5 -264t-133 -230q-72 -73 -165.5 -111.5t-196.5 -38.5v0v0v0v0v0zM512 829q-89 0 -170.5 -33.5t-144.5 -96.5
t-96.5 -144.5t-33.5 -170.5t33.5 -170.5t96.5 -144.5t144.5 -96.5t170.5 -33.5t170.5 33.5t144.5 96.5q85 85 115.5 200t0 229.5t-115.5 200.5q-63 63 -144.5 96.5t-170.5 33.5v0v0v0v0v0zM330 244q3 -4 7.5 -10.5t21.5 -23t36.5 -29t51 -23t65.5 -10.5t67.5 10t56.5 24
t41.5 28t27.5 24l9 10h5t10.5 -2.5t13.5 -7t11 -14.5t5 -24q-3 -4 -9.5 -11.5t-29 -27t-48.5 -34t-69.5 -27t-90.5 -12.5t-87.5 12t-64.5 28t-41 32.5t-24 28.5l-6 11q-1 2 -0.5 5.5t2.5 11.5t6 14.5t12.5 11.5t20.5 5v0v0v0v0zM363 549q-26 0 -44 -18.5t-18 -44.5t18 -44.5
t44 -18.5t44.5 18.5t18.5 44.5t-18.5 44.5t-44.5 18.5v0v0v0v0v0zM685 549q-26 0 -44.5 -18.5t-18.5 -44.5t18.5 -44.5t44 -18.5t44 18.5t18.5 44.5t-18.5 44.5t-43.5 18.5v0v0v0v0v0zM685 549z" />
<glyph glyph-name="html" unicode="&#xe64b;"
d="M194 416h-101v102h-46v-268h46v120h101v-120h46v268h-46v-102v0zM277 481h74v-231h46v231h74v37h-194v-37zM628 336l-47 182h-74v-268h46v212l46 -212h56l47 214l-1 -214h46v268h-74zM848 287v231h-46v-268h175v37h-129z" />
<glyph glyph-name="biaodan" unicode="&#xe63c;"
d="M314 437h396v-30h-396v30zM314 316h396v-30h-396v30zM314 195h264v-31h-264v31zM609 740q-6 32 -33.5 54t-63.5 22t-63.5 -22t-33.5 -54h-298v-788h790v788h-298zM446 670v18v37q0 25 19.5 42.5t46.5 17.5t46.5 -17.5t19.5 -42.5v-37v-18l17 -8q49 -26 71 -73h-308
q22 47 71 73zM874 -17h-724v727h263v-22q-39 -20 -65 -54t-34 -76h396q-8 42 -34 76t-65 54v22h263v-727z" />
<glyph glyph-name="25" unicode="&#xe62a;"
d="M310 524h-186q-13 0 -22 -9.5t-9 -21.5v-187q0 -12 9 -21.5t22 -9.5h186q13 0 22 9.5t9 21.5v187q0 12 -9 21.5t-22 9.5zM295 306h-155q-13 0 -14.5 1.5t-1.5 14.5v155q0 13 1.5 14.5t14.5 1.5h155q13 0 14 -1.5t1 -14.5v-155q0 -13 -1 -14.5t-14 -1.5zM419 353h481v31
h-481v-31zM419 229h481v31h-481v-31zM419 89h481v31h-481v-31zM419 493h481v31h-481v-31zM993 725h-16v124q0 13 -9 22t-22 9h-170q-13 0 -22 -9t-9 -22v-124h-140v124q0 13 -9 22t-22 9h-171q-12 0 -21.5 -9t-9.5 -22v-124h-124v124q0 13 -9 22t-22 9h-186q-13 0 -22 -9
t-9 -22v-946q0 -13 9 -22t22 -9h962q13 0 22 9t9 22v791q0 13 -9 22t-22 9zM993 -66q0 -13 -9 -22t-22 -9h-900q-13 0 -22 9t-9 22v884q0 13 9 22t22 9h124q13 0 22 -9t9 -22v-124h745q13 0 22 -9t9 -22v-729z" />
<glyph glyph-name="emwdaima" unicode="&#xe64e;" horiz-adv-x="1025"
d="M270 626q-9 9 -22 9t-22 -9l-217 -217q-9 -9 -9 -22t9 -22l217 -217q9 -9 22 -9t22 9t9 22t-9 22l-195 195l195 195q9 10 9 22.5t-9 21.5zM1015 409l-217 217q-9 9 -22 9t-22 -9t-9 -22t9 -22l195 -195l-195 -195q-9 -9 -9 -22t9 -22t22 -9t22 9l217 217q9 9 9 22t-9 22z
M624 696v0q-12 4 -23.5 -1.5t-16.5 -17.5l-202 -558q-5 -12 0.5 -24t18.5 -16v0q12 -4 23.5 1.5t16.5 17.5l202 558q4 12 -1.5 24t-17.5 16z" />
<glyph glyph-name="zitixiahuaxian" unicode="&#xe646;"
d="M0 -49h945v-79h-945v79zM0 896h407v-62l-88 -6l-20 -18v-444q0 -127 54 -181.5t177 -54.5q114 0 165 58t51 190v427l-22 22l-91 7v62h322v-62l-86 -7l-20 -22v-440q0 -177 -88.5 -256t-285.5 -79q-103 0 -181 26.5t-122 77.5q-34 39 -48.5 90t-14.5 147v439l-20 18l-89 6
v62z" />
<glyph glyph-name="sanjiao1" unicode="&#xe625;"
d="M773 89zM890 575h-731l365 -365z" />
<glyph glyph-name="tupian-copy-copy" unicode="&#xe64a;"
d="M765 615q5 0 11.5 -0.5t24.5 -5.5t31.5 -14.5t24.5 -30.5t11 -50q1 -2 1 -5.5t-1.5 -13.5t-4.5 -19.5t-10 -21t-17.5 -20t-29 -14.5t-41.5 -6q-4 -1 -10.5 -0.5t-24 6t-30.5 15t-24 30.5t-10 49q0 4 0.5 10t5.5 22.5t14.5 29.5t30 25t48.5 14zM968 771q3 -1 6.5 -1.5
t13 -3.5t16.5 -8t13 -15.5t6 -23.5v-713q-1 -2 -1.5 -5.5t-3.5 -12.5t-8.5 -16t-16 -12.5t-25.5 -5.5v817zM1 6q1 -2 1 -6t3.5 -12.5t8.5 -15.5t15.5 -12.5t24.5 -5.5h914v150h-99l-203 207l-153 -154l-209 257l-205 -308l-45 -1l-2 613h-51v-712v0zM968 771h-914
q-3 0 -6.5 -0.5t-12.5 -3t-15.5 -7.5t-12.5 -16t-6 -25h967v52z" />
<glyph glyph-name="loading1" unicode="&#xe63d;"
d="M441 756.5q0 -29.5 21 -50t50 -20.5t50 20.5t21 50t-21 50t-50 20.5t-50 -20.5t-21 -50zM167 640q0 -28 20.5 -48.5t48.5 -20.5t48.5 20.5t20.5 48.5t-20.5 48.5t-48.5 20.5t-48.5 -20.5t-20.5 -48.5zM63 382v0q0 -26 18.5 -44t44 -18t44 18t18.5 44v0q0 26 -18.5 44.5
t-44 18.5t-44 -18.5t-18.5 -44.5zM174 100.5q0 -22.5 15.5 -38.5t38 -16t38.5 16t16 38.5t-16 38.5t-38.5 16t-38 -16t-15.5 -38.5zM467 -17v0q0 -19 14 -33t33.5 -14t33 14t13.5 33v0v0q0 20 -13.5 33.5t-33 13.5t-33.5 -13.5t-14 -33.5v0zM771 91v0q0 -14 10 -23.5
t24 -9.5t24 9.5t10 23.5v0v0q0 14 -10 24t-24 10t-24 -10t-10 -24v0zM912 383q0 -10 7 -17t16.5 -7t17 7t7.5 17v0q0 10 -7.5 17t-17 7t-16.5 -7t-7 -17v0zM840 635v0q0 -7 5 -12t12 -5t12 5t5 12v0v0q0 7 -5 12t-12 5t-12 -5t-5 -12v0z" />
<glyph glyph-name="xieti" unicode="&#xe644;"
d="M898 834v-64h-129l-321 -772h128v-64h-450v64h129l321 772h-128v64h450z" />
<glyph glyph-name="yuyin" unicode="&#xe688;"
d="M463 644v0q-7 7 -16.5 7t-16.5 -7t-7 -17t7 -17q93 -93 93 -226t-93 -226q-7 -7 -7 -17t7 -17t16.5 -7t16.5 7q53 53 81 122q27 66 27 138t-27 138q-28 69 -81 122zM782 619v0q-47 117 -137 206q-7 7 -17 7t-17 -7t-7 -16.5t7 -16.5q83 -83 127 -191q42 -104 42 -217
t-42 -217q-44 -107 -127 -191q-7 -7 -7 -16.5t7 -16.5t17 -7t17 7q90 89 137 206q46 113 46 235t-46 235zM299 427.5q-18 18.5 -43 18.5t-43.5 -18t-18.5 -43.5t18 -43.5t43.5 -18t43.5 18t18 43t-18 43.5z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,48 @@
#header{
background-color: #377FED;
}
.chat-bottom .special{
background-color: #377FED !important;
}
.medium{
background-color:#377FED;
}
.little-content-head{
background-color:#377FED;
}
.little-content .lit-chat{
border-left: 3px solid #377FED;
border-right: 3px solid #377FED;
border-bottom: 3px solid #377FED;
}
.little-content .bot-chat{
border-left: 3px solid #377FED;
border-right: 3px solid #377FED;
border-bottom: 3px solid #377FED;
}
.bot-chat button{
background-color: #377FED;
}
.service{
background-color: #377FED;
}
.white-box h1{
color:#377FED;
}
.white-box h2{
color:#377FED;
}
.white-box h3{
color:#377FED;
}
.submitBtn{
background-color: #377FED;
}
/*调查问卷弹框*/
.diaHeader span {
color: #377FED;
}
.dialogWrap{border:1px solid #379FEd}
.submitBtnWrap .submitBtn{
background-color: #377FED;
}

View File

@@ -0,0 +1,48 @@
#header{
background-color: #67CAFF;
}
.chat-bottom .special{
background-color: #67CAFF !important;
}
.medium{
background-color:#67CAFF;
}
.little-content-head{
background-color:#67CAFF;
}
.little-content .lit-chat{
border-left: 3px solid #67CAFF;
border-right: 3px solid #67CAFF;
border-bottom: 3px solid #67CAFF;
}
.little-content .bot-chat{
border-left: 3px solid #67CAFF;
border-right: 3px solid #67CAFF;
border-bottom: 3px solid #67CAFF;
}
.bot-chat button{
background-color: #67CAFF;
}
.service{
background-color: #67CAFF;
}
.white-box h1{
color:#67CAFF;
}
.white-box h2{
color:#67CAFF;
}
.white-box h3{
color:#67CAFF;
}
.submitBtn{
background-color: #67CAFF;
}
/*调查问卷弹框*/
.diaHeader span {
color: #67CAFF;
}
.dialogWrap{border:1px solid #67CAFF;}
.submitBtnWrap .submitBtn{
background-color: #67CAFF;
}

View File

@@ -0,0 +1,48 @@
#header{
background-color: #8ECA51;
}
.chat-bottom .special{
background-color: #8ECA51 !important;
}
.medium{
background-color:#8ECA51;
}
.little-content-head{
background-color:#8ECA51;
}
.little-content .lit-chat{
border-left: 3px solid #8ECA51;
border-right: 3px solid #8ECA51;
border-bottom: 3px solid #8ECA51;
}
.little-content .bot-chat{
border-left: 3px solid #8ECA51;
border-right: 3px solid #8ECA51;
border-bottom: 3px solid #8ECA51;
}
.bot-chat button{
background-color: #8ECA51;
}
.service{
background-color: #8ECA51;
}
.white-box h1{
color:#8ECA51;
}
.white-box h2{
color:#8ECA51;
}
.white-box h3{
color:#8ECA51;
}
.submitBtn{
background-color: #8ECA51;
}
/*调查问卷弹框*/
.diaHeader span {
color: #8ECA51;
}
.dialogWrap{border:1px solid #a4cc7b;}
.submitBtnWrap .submitBtn{
background-color: #5CA114;
}

View File

@@ -0,0 +1,48 @@
#header{
background-color: #8E8E8E;
}
.chat-bottom .special{
background-color: #8E8E8E !important;
}
.medium{
background-color:#8E8E8E;
}
.little-content-head{
background-color:#8E8E8E;
}
.little-content .lit-chat{
border-left: 3px solid #8E8E8E;
border-right: 3px solid #8E8E8E;
border-bottom: 3px solid #8E8E8E;
}
.little-content .bot-chat{
border-left: 3px solid #8E8E8E;
border-right: 3px solid #8E8E8E;
border-bottom: 3px solid #8E8E8E;
}
.bot-chat button{
background-color: #8E8E8E;
}
.service{
background-color: #8E8E8E;
}
.white-box h1{
color:#8E8E8E;
}
.white-box h2{
color:#8E8E8E;
}
.white-box h3{
color:#8E8E8E;
}
.submitBtn{
background-color: #8E8E8E;
}
/*调查问卷弹框*/
.diaHeader span {
color: #8E8E8E;
}
.dialogWrap{border:1px solid #8E8E8E;}
.submitBtnWrap .submitBtn{
background-color: #8E8E8E;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,48 @@
#header{
background-color: #E45DB3;
}
.chat-bottom .special{
background-color: #E45DB3 !important;
}
.medium{
background-color:#E45DB3;
}
.little-content-head{
background-color:#E45DB3;
}
.little-content .lit-chat{
border-left: 3px solid #E45DB3;
border-right: 3px solid #E45DB3;
border-bottom: 3px solid #E45DB3;
}
.little-content .bot-chat{
border-left: 3px solid #E45DB3;
border-right: 3px solid #E45DB3;
border-bottom: 3px solid #E45DB3;
}
.bot-chat button{
background-color: #E45DB3;
}
.service{
background-color: #E45DB3;
}
.white-box h1{
color:#E45DB3;
}
.white-box h2{
color:#E45DB3;
}
.white-box h3{
color:#E45DB3;
}
.submitBtn{
background-color:#E45DB3;
}
/*调查问卷弹框*/
.diaHeader span {
color: #E45DB3;
}
.dialogWrap{border:1px solid #E45DB3;}
.submitBtnWrap .submitBtn{
background-color: #E45DB3;
}

View File

@@ -0,0 +1,48 @@
#header{
background-color: #FF626F;
}
.chat-bottom .special{
background-color: #FF626F !important;
}
.medium{
background-color:#FF626F;
}
.little-content-head{
background-color:#FF626F;
}
.little-content .lit-chat{
border-left: 3px solid #FF626F;
border-right: 3px solid #FF626F;
border-bottom: 3px solid #FF626F;
}
.little-content .bot-chat{
border-left: 3px solid #FF626F;
border-right: 3px solid #FF626F;
border-bottom: 3px solid #FF626F;
}
.bot-chat button{
background-color: #FF626F;
}
.service{
background-color: #FF626F;
}
.white-box h1{
color:#FF626F;
}
.white-box h2{
color:#FF626F;
}
.white-box h3{
color:#FF626F;
}
.submitBtn{
background-color:#FF626F;
}
/*调查问卷弹框*/
.diaHeader span {
color: #FF626F;
}
.dialogWrap{border:1px solid #FF626F;}
.submitBtnWrap .submitBtn{
background-color: #FF626F;
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Some files were not shown because too many files have changed in this diff Show More