Commit 5960b553 by 石头

提交admin

1 parent 2286effe
Showing 471 changed files with 1133 additions and 1181 deletions
...@@ -85,7 +85,11 @@ ...@@ -85,7 +85,11 @@
<artifactId>springfox-swagger-ui</artifactId> <artifactId>springfox-swagger-ui</artifactId>
</dependency> </dependency>
<!--接口文档--> <!--接口文档-->
<dependency>
<groupId>com.baidu</groupId>
<artifactId>adapter-ueditor</artifactId>
<version>1.0</version>
</dependency>
</dependencies> </dependencies>
......
...@@ -33,7 +33,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -33,7 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
* @date 2017/12/6 * @date 2017/12/6
*/ */
@RestController @RestController
@RequestMapping("/theme") @RequestMapping("/api/theme")
public class ThemeController extends BaseController { public class ThemeController extends BaseController {
@Autowired @Autowired
......
...@@ -32,7 +32,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -32,7 +32,7 @@ import org.springframework.web.bind.annotation.RestController;
* @author 石磊 * @author 石磊
* @date 2017/12/6 * @date 2017/12/6
*/ */
@RequestMapping("/word") @RequestMapping("/api/word")
@RestController @RestController
public class WordController extends BaseController { public class WordController extends BaseController {
......
/* 前后端通信相关的配置,注释只允许使用多行方式 */
{
"formData":{},
"fileManagerCategoryAction":"filecategory",
"fileManagerCategoryList":[
{
"id":1,
"pid":0,
"type":"image",
"title":"Title"
}
],
/* 上传图片配置项 */
"physicalPath":"/data/www/uploads/niushilan/",
"imageActionName": "uploadimage", /* 执行上传图片的action名称 */
"imageFieldName": "upfile", /* 提交的图片表单名称 */
"imageMaxSize": 2048000, /* 上传大小限制,单位B */
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
"imageCompressEnable": true, /* 是否压缩图片,默认是true */
"imageCompressBorder": 1600, /* 图片压缩最长边限制 */
"imageInsertAlign": "none", /* 插入的图片浮动方式 */
"imageUrlPrefix": "", /* 图片访问路径前缀 */
"imagePathFormat": "/admin/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
/* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
/* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
/* {time} 会替换成时间戳 */
/* {yyyy} 会替换成四位年份 */
/* {yy} 会替换成两位年份 */
/* {mm} 会替换成两位月份 */
/* {dd} 会替换成两位日期 */
/* {hh} 会替换成两位小时 */
/* {ii} 会替换成两位分钟 */
/* {ss} 会替换成两位秒 */
/* 非法字符 \ : * ? " < > | */
/* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
/* 涂鸦图片上传配置项 */
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
"scrawlPathFormat": "/admin/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
"scrawlInsertAlign": "none",
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/admin/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
/* 抓取远程图片配置 */
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
"catcherPathFormat": "/admin/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
"catcherMaxSize": 2048000, /* 上传大小限制,单位B */
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
/* 上传视频配置 */
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
"videoFieldName": "upfile", /* 提交的视频表单名称 */
"videoPathFormat": "/uploads/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoUrlPrefix": "", /* 视频访问路径前缀 */
"videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
"videoAllowFiles": [
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
/* 上传文件配置 */
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
"fileFieldName": "upfile", /* 提交的文件表单名称 */
"filePathFormat": "/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"fileUrlPrefix": "", /* 文件访问路径前缀 */
"fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */
"fileAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
], /* 上传文件格式显示 */
/* 列出指定目录下的图片 */
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
"imageManagerListPath": "/ueditor/jsp/admin/image/", /* 指定要列出图片的目录 */
"imageManagerListSize": 20, /* 每次列出文件数量 */
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
/* 列出指定目录下的文件 */
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
"fileManagerListPath": "/ueditor/jsp/uploads/file/", /* 指定要列出文件的目录 */
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
"fileManagerListSize": 20, /* 每次列出文件数量 */
"fileManagerAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
] /* 列出的文件类型 */
}
\ No newline at end of file \ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="com.baidu.ueditor.ActionEnter"
pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%
request.setCharacterEncoding( "utf-8" );
response.setHeader("Content-Type" , "text/html");
/*服务器物理根路径*/
String rootPath = application.getRealPath("/");
out.write( new ActionEnter(request, rootPath ).exec() );
%>
\ No newline at end of file \ No newline at end of file
package com.dookay.cihai.core;
import com.dookay.coral.common.core.CoralCommonCoreMarker;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author houkun
*/
@SpringBootApplication(scanBasePackageClasses = {
CoralCommonCoreMarker.class,
CiHaiCoreApplication.class
})
public class CiHaiCoreApplication {
public static void main(String[] args) {
SpringApplication.run(CiHaiCoreApplication.class, args);
}
}
package com.dookay.cihai.core;
import com.dookay.coral.bulider.utils.CoreUtils;
/**
* @author Luxor
* @version v0.0.1
* @since 2017/10/31
*/
public class Generator {
public static void main(String[] args) throws Exception {
CoreUtils.generate("/generator.xml");
}
}
package com.dookay.cihai.core.theme.domain;
import lombok.Data;
import java.io.Serializable;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
/**
* 专题
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
@Data
@Table(name = "t_theme")
public class ThemeDomain implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@Id
private Long id;
/**
*
*/
private String title;
/**
*
*/
private String introduce;
/**
*
*/
private String basicInfo;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
}
package com.dookay.cihai.core.theme.domain;
import lombok.Data;
import java.io.Serializable;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
/**
* 专题词条关系
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
@Data
@Table(name = "t_theme_word")
public class ThemeWordDomain implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@Id
private Long id;
/**
*
*/
private Long wordId;
/**
*
*/
private Long themeId;
/**
*
*/
private Date createTime;
}
package com.dookay.cihai.core.theme.mapper;
import com.dookay.coral.common.core.persistence.Mapper;
import com.dookay.cihai.core.theme.domain.ThemeDomain;
/**
* 专题
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public interface ThemeMapper extends Mapper<ThemeDomain> {
}
package com.dookay.cihai.core.theme.mapper;
import com.dookay.coral.common.core.persistence.Mapper;
import com.dookay.cihai.core.theme.domain.ThemeWordDomain;
/**
* 专题词条关系
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public interface ThemeWordMapper extends Mapper<ThemeWordDomain> {
}
package com.dookay.cihai.core.theme.query;
import com.dookay.coral.common.core.persistence.Query;
import tk.mybatis.mapper.entity.Example;
import com.dookay.coral.common.core.persistence.criteria.QueryCriteria;
import com.dookay.cihai.core.theme.domain.ThemeDomain;
/**
* 专题
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public class ThemeQuery extends Query {
@Override
public QueryCriteria toCriteria() {
QueryCriteria queryCriteria = new QueryCriteria(ThemeDomain.class);
Example.Criteria criteria = queryCriteria.createCriteria();
//todo 写查询逻辑
return queryCriteria;
}
}
package com.dookay.cihai.core.theme.query;
import com.dookay.coral.common.core.persistence.Query;
import tk.mybatis.mapper.entity.Example;
import com.dookay.coral.common.core.persistence.criteria.QueryCriteria;
import com.dookay.cihai.core.theme.domain.ThemeWordDomain;
/**
* 专题词条关系
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public class ThemeWordQuery extends Query {
@Override
public QueryCriteria toCriteria() {
QueryCriteria queryCriteria = new QueryCriteria(ThemeWordDomain.class);
Example.Criteria criteria = queryCriteria.createCriteria();
//todo 写查询逻辑
return queryCriteria;
}
}
package com.dookay.cihai.core.theme.service;
import com.dookay.coral.common.core.service.IBaseService;
import com.dookay.cihai.core.theme.domain.ThemeDomain;
/**
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public interface IThemeService extends IBaseService<ThemeDomain> {
}
package com.dookay.cihai.core.theme.service;
import com.dookay.coral.common.core.service.IBaseService;
import com.dookay.cihai.core.theme.domain.ThemeWordDomain;
/**
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public interface IThemeWordService extends IBaseService<ThemeWordDomain> {
}
package com.dookay.cihai.core.theme.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dookay.coral.common.core.service.impl.BaseServiceImpl;
import com.dookay.cihai.core.theme.mapper.ThemeMapper;
import com.dookay.cihai.core.theme.domain.ThemeDomain;
import com.dookay.cihai.core.theme.service.IThemeService;
/**
* 专题
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
@SuppressWarnings("ALL")
@Service("themeService")
public class ThemeServiceImpl extends BaseServiceImpl<ThemeDomain> implements IThemeService {
@Autowired
private ThemeMapper themeMapper;
}
package com.dookay.cihai.core.theme.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dookay.coral.common.core.service.impl.BaseServiceImpl;
import com.dookay.cihai.core.theme.mapper.ThemeWordMapper;
import com.dookay.cihai.core.theme.domain.ThemeWordDomain;
import com.dookay.cihai.core.theme.service.IThemeWordService;
/**
* 专题词条关系
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
@SuppressWarnings("ALL")
@Service("themeWordService")
public class ThemeWordServiceImpl extends BaseServiceImpl<ThemeWordDomain> implements IThemeWordService {
@Autowired
private ThemeWordMapper themeWordMapper;
}
package com.dookay.cihai.core.word.domain;
import lombok.Data;
import java.io.Serializable;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
/**
* 词条
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
@Data
@Table(name = "t_word")
public class WordDomain implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@Id
private Long id;
/**
*
*/
private String word;
/**
*
*/
private String body;
/**
*
*/
private String baikePoster;
/**
*
*/
private String baikeVoice;
/**
*
*/
private String baikeDescription;
/**
*
*/
private String baikeParaphrase;
/**
*
*/
private String baikePhotos;
/**
*
*/
private String baikeVideo;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
* 拼音
*/
private String wordSpell;
}
package com.dookay.cihai.core.word.mapper;
import com.dookay.coral.common.core.persistence.Mapper;
import com.dookay.cihai.core.word.domain.WordDomain;
/**
* 词条
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public interface WordMapper extends Mapper<WordDomain> {
}
package com.dookay.cihai.core.word.query;
import com.dookay.coral.common.core.persistence.Query;
import tk.mybatis.mapper.entity.Example;
import com.dookay.coral.common.core.persistence.criteria.QueryCriteria;
import com.dookay.cihai.core.word.domain.WordDomain;
/**
* 词条
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public class WordQuery extends Query {
@Override
public QueryCriteria toCriteria() {
QueryCriteria queryCriteria = new QueryCriteria(WordDomain.class);
Example.Criteria criteria = queryCriteria.createCriteria();
//todo 写查询逻辑
return queryCriteria;
}
}
package com.dookay.cihai.core.word.service;
import com.dookay.coral.common.core.service.IBaseService;
import com.dookay.cihai.core.word.domain.WordDomain;
/**
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
public interface IWordService extends IBaseService<WordDomain> {
}
package com.dookay.cihai.core.word.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dookay.coral.common.core.service.impl.BaseServiceImpl;
import com.dookay.cihai.core.word.mapper.WordMapper;
import com.dookay.cihai.core.word.domain.WordDomain;
import com.dookay.cihai.core.word.service.IWordService;
/**
* 词条
* @author wangwei
* @since 2017年12月06日
* @version V1.0
*/
@SuppressWarnings("ALL")
@Service("wordService")
public class WordServiceImpl extends BaseServiceImpl<WordDomain> implements IWordService {
@Autowired
private WordMapper wordMapper;
}
<context schema="cihai">
<project>cihai-core</project>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.2.24:3306/cihai?characterEncoding=utf8"
uName="root" password="dookay100001"/>
<!-- 数据类型 -->
<javaTypeResolver>
<property name="int" value="Integer"/>
<property name="tinyint" value="Integer"/>
<property name="bigint" value="Long"/>
<property name="char" value="String"/>
<property name="varchar" value="String"/>
<property name="text" value="String"/>
<property name="float" value="Float"/>
<property name="double" value="Double"/>
<property name="decimal" value="Double"/>
<property name="smallint" value="Integer"/>
<property name="timestamp" value="Date"/>
<property name="datetime" value="Date"/>
<property name="date" value="Date"/>
<property name="bit" value="Boolean"/>
<property name="time" value="Time"/>
<property name="smallint" value="Boolean"/>
</javaTypeResolver>
<table tableName="t_word" domainObjectName="Word"
packageName="com.dookay.cihai.core.word" desc="词条" author="wangwei">
</table>
<table tableName="t_theme" domainObjectName="Theme"
packageName="com.dookay.cihai.core.theme" desc="专题" author="wangwei">
</table>
<table tableName="t_theme_word" domainObjectName="ThemeWord"
packageName="com.dookay.cihai.core.theme" desc="专题词条关系" author="wangwei">
</table>
</context>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dookay.cihai.core.theme.mapper.ThemeMapper" >
<!-- 公共查询语句 -->
<sql id="selectSql">
select
<trim suffixOverrides="," >
a.`id` as 'id',
a.`title` as 'title',
a.`introduce` as 'introduce',
a.`basic_info` as 'basicInfo',
a.`create_time` as 'createTime',
a.`update_time` as 'updateTime',
</trim>
from
`t_theme` as a
</sql>
</mapper>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dookay.cihai.core.theme.mapper.ThemeWordMapper" >
<!-- 公共查询语句 -->
<sql id="selectSql">
select
<trim suffixOverrides="," >
a.`id` as 'id',
a.`word_id` as 'wordId',
a.`theme_id` as 'themeId',
a.`create_time` as 'createTime',
</trim>
from
`t_theme_word` as a
</sql>
</mapper>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dookay.cihai.core.word.mapper.WordMapper" >
<!-- 公共查询语句 -->
<sql id="selectSql">
select
<trim suffixOverrides="," >
a.`id` as 'id',
a.`word` as 'word',
a.`body` as 'body',
a.`baike_poster` as 'baikePoster',
a.`baike_voice` as 'baikeVoice',
a.`baike_description` as 'baikeDescription',
a.`baike_paraphrase` as 'baikeParaphrase',
a.`baike_photos` as 'baikePhotos',
a.`baike_video` as 'baikeVideo',
a.`create_time` as 'createTime',
a.`update_time` as 'updateTime',
</trim>
from
`t_word` as a
</sql>
</mapper>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dookay.cihai.core.word.mapper.WordThemeMapper" >
<!-- 公共查询语句 -->
<sql id="selectSql">
select
<trim suffixOverrides="," >
a.`id` as 'id',
a.`title` as 'title',
a.`introduce` as 'introduce',
a.`basic_info` as 'basicInfo',
a.`create_time` as 'createTime',
a.`update_time` as 'updateTime',
</trim>
from
`t_word_theme` as a
</sql>
</mapper>
\ No newline at end of file \ No newline at end of file
package com.dookay.cihai.jsp; package com.dookay.cihai.wechat;
import com.dookay.cihai.core.CiHaiCoreApplication;
import com.dookay.coral.common.core.CoralCommonCoreMarker; import com.dookay.coral.common.core.CoralCommonCoreMarker;
import com.dookay.coral.common.web.CoralCommonWebMarker; import com.dookay.coral.common.web.CoralCommonWebMarker;
import com.dookay.cihai.core.CihaiCoreMarker;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
...@@ -22,13 +22,14 @@ import org.springframework.cache.annotation.EnableCaching; ...@@ -22,13 +22,14 @@ import org.springframework.cache.annotation.EnableCaching;
scanBasePackageClasses = { scanBasePackageClasses = {
CoralCommonCoreMarker.class, CoralCommonCoreMarker.class,
CoralCommonWebMarker.class, CoralCommonWebMarker.class,
CihaiCoreMarker.class, CiHaiCoreApplication.class,
CihaiJspApplication.class, CihaiJspApplication.class,
}) })
@MapperScan(basePackageClasses = CihaiCoreMarker.class) @MapperScan(basePackageClasses = CiHaiCoreApplication.class)
@ServletComponentScan(basePackageClasses = { @ServletComponentScan(basePackageClasses = {
CoralCommonWebMarker.class, CoralCommonWebMarker.class,
CihaiJspApplication.class CihaiJspApplication.class,
CiHaiCoreApplication.class
}) })
@EnableCaching @EnableCaching
public class CihaiJspApplication extends SpringBootServletInitializer { public class CihaiJspApplication extends SpringBootServletInitializer {
......
/*****************************************
* *
* @dookay.com Internet make it happen *
* ----------- ----------------------- *
* dddd ddddd Internet make it happen *
* o o o Internet make it happen *
* k k k Internet make it happen *
* a a a Internet make it happen *
* yyyy yyyyy Internet make it happen *
* ----------- ----------------------- *
* NO BUG ENJOY LIFE *
* *
****************************************/
package com.dookay.cihai.wechat.controller;
import com.dookay.coral.common.web.controller.BaseController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
/**
* @author 石磊
* @date 2017/12/6
*/
@Controller
@RequestMapping(value = "/")
public class HomeController extends BaseController {
/**
* @author 石磊
* @date 2017/12/6
* @description home
*/
@RequestMapping(method = RequestMethod.GET)
public ModelAndView index() {
ModelAndView mv = new ModelAndView("portal/home/index");
return mv;
}
}
debug=true debug=false
# 数据库连接 # 数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.url=jdbc:mysql://192.168.2.24:3306/cihai
spring.datasource.username=root spring.datasource.username=root
# 加密后的密码 # 加密后的密码
spring.datasource.password=UvoEsj8TZ9a11DQRR42EGuoIRjeuqSagmUzCdUeDnw9PJ9hum0Lx/MTPrpIR7isrPdA8lMpaY77eW4g3f1tCQQ== spring.datasource.password=AmwpshLB35Fgazrs4rCfGlwNBZOTD34ezY/zS751V+7iSJHjr3tDNkpOfnW/y0fjFcMTNX0ycMt3KIUnDi8JYg==
# 加密时的公钥 # 加密时的公钥
public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJFbtR5GoNcW9j8b4RhZQ1CC1xNBx8Sqphxc8/6vNWYdd7d84AUfSAzFXCzGvuvJ0URNAg9IykPDexY/mHP8dA0CAwEAAQ== public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKgof5ExfKmEZEjq+GuqEoHA8tkIftarLRzUDAxdQzJQtF57DF63gPJJkIZLcKa2t8jt5JC2SRdxERg1A/kx0BMCAwEAAQ==
# 日志 # 日志
logging.level.root=info logging.level.root=info
logging.level.com.dookay.core=trace logging.level.com.dookay.core=trace
# redis # redis
spring.redis.host=127.0.0.1
coral.web.resource.mapping.uploads-inner=/uploads/**
coral.web.resource.mapping.uploads-mapping=file:/data/www/uploads/demo/
coral.web.view.form.interval-milli-second=10000
\ No newline at end of file \ No newline at end of file
spring.redis.host=192.168.2.27
spring.redis.password=lyd123456
# 文件存储
coral.web.resource.mapping.uploads-inner=/uploads/*
coral.web.resource.mapping.uploads-mapping=/data/www/uploads/cihai
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--添加此行消除额外空格--%>
<%@ page trimDirectiveWhitespaces="true" %>
<%--添加此行消除额外空格--%>
<jsp:include page="/WEB-INF/jsp/include/header.jsp">
<jsp:param name="pageTitle" value="coral-list"/>
</jsp:include>
<jsp:useBean id="coralList" scope="request" type="com.dookay.coral.common.web.component.list.CoralListModelContainer<com.dookay.core.domain.CountryDomain>"/>
<h1>coralList</h1>
<%--排序器--%>
<p><a class="${cl:isCurrentOrder("id-desc") ? "active" : ""}" href="${cl:sortUrl("id-desc")}">id-desc</a></p>
<p><a class="${cl:isCurrentOrder("id-asc") ? "active" : ""}" href="${cl:sortUrl("id-asc")}">id-asc</a></p>
<p><a class="${cl:isCurrentOrder("countryCode-desc") ? "active" : ""}" href="${cl:sortUrl("countryCode-desc")}">countryCode-desc</a></p>
<p>currentOrder: ${coralList.sorterModel.orderBy}</p>
<%--排序器--%>
<%--单选--%>
<p>
<c:forEach var="item" items="${cl:singleSelect('id').items}">
<span><a class="${item.selected ? "active" :""}" href="${cl:singleSelectUrl("id", item)}">${item.text}</a></span>
</c:forEach>
<span><a class="${cl:noneSelectByField("id") ? "active" :""}" href="${cl:unSelectUrl("id")}">全部</a></span>
</p>
<%--单选--%>
<form>
<%--多选--%>
<h3>countryCode:</h3>
<c:forEach var="item" items="${cl:multiSelect('countryCode').items}">
<input type="checkbox" name="countryCode"
value="${item.value}" ${item.selected ? "checked" : ""} /> ${item.text}
</c:forEach>
<%--多选--%>
<%--搜索--%>
<h3>countryName</h3>
<input type="text" name="countryName" value="${cl:searchSelect("countryName").selected}">
<%--搜索--%>
<%--范围选择--%>
<input type="date" name="createTimeGt" value="${cl:rangeSelect("createTime").selected.min}">
<input type="date" name="createTimeLt" value="${cl:rangeSelect("createTime").selected.max}">
<%--范围选择--%>
<%--隐藏域,保存分页和排序信息--%>
<cl:filterHidden/>
<%--隐藏域,保存分页和排序信息--%>
<input type="submit" value="提交">
</form>
<table>
<tr>
<th>id</th>
<th>code</th>
<th>name</th>
</tr>
<c:choose>
<c:when test="${cl:isEmpty()}">
<%--无内容--%>
<tr>
<td colspan="3">无数据</td>
</tr>
<%--无内容--%>
</c:when>
<c:otherwise>
<%--有内容--%>
<c:forEach var="country" items="${coralList.resultList}">
<tr>
<td>${country.id}</td>
<td>${country.countryCode}</td>
<td>${country.countryName}</td>
</tr>
</c:forEach>
<%--有内容--%>
</c:otherwise>
</c:choose>
</table>
<%--翻页器--%>
<p>
<c:forEach var="page" items="${coralList.pageModel.pages}">
<span>
<c:choose>
<c:when test="${page != null}">
<a href="${page.url}">${page.pageIndex}</a>
</c:when>
<c:otherwise>
<span>...</span>
</c:otherwise>
</c:choose>
</span>
</c:forEach>
<span>当前第${coralList.pageModel.currentPage.pageIndex}页,共${coralList.pageModel.totalPage}页,${coralList.pageModel.totalRecord}条记录</span>
</p>
<%--翻页器--%>
<style>
a.active {
color: red;
}
</style>
<jsp:include page="/WEB-INF/jsp/include/footer.jsp"/>
\ No newline at end of file \ No newline at end of file
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--添加此行消除额外空格--%>
<%@ page trimDirectiveWhitespaces="true" %>
<%--添加此行消除额外空格--%>
<jsp:include page="/WEB-INF/jsp/include/header.jsp">
<jsp:param name="pageTitle" value="user-list"/>
</jsp:include>
<jsp:useBean id="coralList" scope="request" type="com.dookay.coral.common.web.component.list.CoralListModelContainer<com.dookay.core.domain.UserInfoDomain>"/>
<h1>coralList</h1>
<%--排序器--%>
<p><a class="${cl:isCurrentOrder("id-desc") ? "active" : ""}" href="${cl:sortUrl("id-desc")}">id-desc</a></p>
<p><a class="${cl:isCurrentOrder("id-asc") ? "active" : ""}" href="${cl:sortUrl("id-asc")}">id-asc</a></p>
<p>currentOrder: ${coralList.sorterModel.orderBy}</p>
<%--排序器--%>
<form>
<%--多选--%>
<h3>countryCode:</h3>
<c:forEach var="item" items="${cl:multiSelect('username').items}">
<input type="checkbox" name="username"
value="${item.value}" ${item.selected ? "checked" : ""} /> ${item.text}
</c:forEach>
<%--多选--%>
<%--隐藏域,保存分页和排序信息--%>
<cl:filterHidden/>
<%--隐藏域,保存分页和排序信息--%>
<input type="submit" value="提交">
</form>
<table>
<tr>
<th>id</th>
<th>username</th>
</tr>
<c:choose>
<c:when test="${cl:isEmpty()}">
<%--无内容--%>
<tr>
<td colspan="3">无数据</td>
</tr>
<%--无内容--%>
</c:when>
<c:otherwise>
<%--有内容--%>
<c:forEach var="user" items="${coralList.resultList}">
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
</tr>
</c:forEach>
<%--有内容--%>
</c:otherwise>
</c:choose>
</table>
<%--翻页器--%>
<p>
<c:forEach var="page" items="${coralList.pageModel.pages}">
<span>
<c:choose>
<c:when test="${page != null}">
<a href="${page.url}">${page.pageIndex}</a>
</c:when>
<c:otherwise>
<span>...</span>
</c:otherwise>
</c:choose>
</span>
</c:forEach>
<span>当前第${coralList.pageModel.currentPage.pageIndex}页,共${coralList.pageModel.totalPage}页,${coralList.pageModel.totalRecord}条记录</span>
</p>
<%--翻页器--%>
<style>
a.active {
color: red;
}
</style>
<jsp:include page="/WEB-INF/jsp/include/footer.jsp"/>
\ No newline at end of file \ No newline at end of file
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--添加此行消除额外空格--%>
<%@ page trimDirectiveWhitespaces="true" %>
<%--添加此行消除额外空格--%>
<jsp:include page="/WEB-INF/jsp/include/header.jsp">
<jsp:param name="pageTitle" value="form-index"/>
</jsp:include>
<p>普通html表单需手动添加csrf</p>
<%--@elvariable id="_csrf" type="org.springframework.security.web.csrf.CsrfToken"--%>
<input name="${_csrf.parameterName}" value="${_csrf.token}">
<%--@elvariable id="simpleForm" type="com.dookay.jsp.demo.form.form.SimpleForm"--%>
<form:form action="/form/simple" modelAttribute="simpleForm" cssClass="j_ajaxForm">
<p>
姓名:<form:input path="name"/>
</p>
<p>
手机号:<form:input path="mobile"/>
</p>
<p>
<form:button>提交</form:button>
</p>
</form:form>
<jsp:include page="/WEB-INF/jsp/include/footer.jsp"/>
\ No newline at end of file \ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>九回运动场</title> <title>辞海管理后台</title>
</head> </head>
<body> <body>
<div id="dk-app"></div> <div id="dk-app"></div>
......
/*
* 图片上传
*/
.list-img ul{
float: left;
padding-left: 0;
margin-top: -10px;
margin-bottom: 0;
}
.list-img li{
float: left;
position: relative;
width: 90px;
height: 90px;
margin-right: 10px;
margin-top: 10px;
border-radius: 3px;
background-color: #eee;
overflow: hidden;
}
.list-img .pic{
display: table;
width: 100%;
height: 100%;
}
.list-img .pic .inner{
width: 100%;
height: 100%;
display: table-cell;
vertical-align: middle;
}
.list-img .pic img{
width: 100%;
}
.list-img .opt{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 1;
padding: 3px 20px 0;
color: #fff;
text-align: center;
line-height: 20px;
background-color:rgba(0,0,0,.5);
}
.list-img .opt a{
display: block;
margin-top:6px;
}
.list-img li:hover .opt{
opacity: 1;
}
.list-img .upload{
float: left;
display: block;
border:1px solid #ddd;
border-radius: 3px;
width: 90px;
height: 90px;
line-height: 90px;
text-align: center;
}
.list-img .upload .ion{
margin-top: 19px;
font-size: 50px;
color: #ccc;
}
.list-img .upload:hover{
background-color: #fafafa;
}
.list-file li{
padding: 5px 10px;
margin-bottom: 10px;
border-radius: 3px;
background-color: #fafafa;
}
.list-file li .ion{
display: inline-block;
font-size: 16px;
line-height: 18px;
width: 20px;
}
.list-file li a{
margin-left: 5px;
}
.list-file li .opt{
float: right;
}
.list-file li:hover .opt{
opacity: 1;
}
.list-img-multiple .upload{
float: none;
margin-top: 10px;
}
.list-img-multiple ul{
float: none;
}
.list-img-multiple li{
float: none;
width: auto;
height: auto;
overflow: visible;
background: none;
margin-right: 0;
}
.list-img-multiple li:last-child{
padding-bottom: 10px;
}
.list-img-multiple .left{
width: 90px;
float: left;
}
.list-img-multiple .pic-wraper{
width: 90px;
height: 90px;
margin-bottom: 5px;
overflow: hidden;
border-radius: 3px;
background-color: #eee;
}
.list-img-multiple .info-form{
margin-left: 100px;
}
.list-img-multiple .info-form textarea{
height: 60px;
resize: none;
}
.list-img-multiple .info-form .form-control{
margin-top: 10px;
}
.list-img-multiple .opt{
position: static;
opacity: 1;
background: none;
text-align: left;
padding:5px 0 0;
line-height: normal;
height: 30px;
}
.list-img-multiple .opt a{
margin-top:0;
margin-right: 10px;
display: inline-block;
}
.list-img-multiple .upload-sort{
position: absolute;
right: -10px;
top: 0;
bottom: 0;
z-index: 1;
width: 26px;
text-align: center;
cursor: move;
background-color: #eee;
opacity: .1;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.list-img-multiple .upload-sort:before{
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
display: block;
width: 6px;
background-color: #fff;
}
.list-img-multiple li:hover .upload-sort{
opacity: 1;
}
.list-img-multiple .upload-sort .ion{
position: absolute;
top: 50%;
left: 4px;
margin-top: -13px;
vertical-align: middle;
font-size: 22px;
line-height: 26px;
}
.list-img-multiple li:last-child .upload-sort{bottom: 10px;}
.list-img-multiple .drag-start{
background-color: #fafafa;
}
.list-img-multiple .opt .upload_move_up,
.list-img-multiple .opt .upload_move_down{
margin-right: 0;
margin-left: 5px;
opacity: .2;
margin-top: 3px;
-webkit-transition: opacity .15s linear;
-o-transition: opacity .15s linear;
transition: opacity .15s linear;
}
.list-img-multiple li:hover .opt .upload_move_up,
.list-img-multiple li:hover .opt .upload_move_down{
-webkit-transition: opacity .15s linear;
-o-transition: opacity .15s linear;
transition: opacity .15s linear;
opacity: 1;
}
.list-img-multiple li:first-child .upload_move_up{
opacity: .1;
}
.list-img-multiple li:last-child .upload_move_down{
opacity: .1;
}
.list-img-multiple li:first-child:hover .opt .upload_move_up,
.list-img-multiple li:last-child:hover .opt .upload_move_down{
opacity: .1;
}
/*
* 缩略图背景图片
*/
.thumbnail-bg{
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.thumbnail-bg-narrow{
background-size: contain;
}
/*
* 带手机的布局
*/
.dk-game-design{
position: relative;
min-height: 750px;
}
.dk-game-design .dk-game-design-left{
position: absolute;
left: 0;
top: 10px;
width: 345px;
}
.dk-game-design .dk-game-design-phone{
position: relative;
width: 345px;
height: 732px;
}
.dk-game-design .dk-game-design-phone>img{
position: absolute;
left:0;
right: 0;
bottom: 0;
top:0;
z-index: 1;
}
.dk-game-design .dk-game-design-phone-content{
position: absolute;
z-index: 2;
left: 12px;
right: 13px;
top: 77px;
bottom: 86px;
}
.dk-game-design .dk-game-design-form{
margin-left: 385px;
}
.dk-game-design-upload{
min-height: 840px;
}
.dk-game-design-upload .dk-game-design-left .upload_change,
.dk-game-design-upload .dk-game-design-left .upload_btn{
position: absolute;
z-index: 3;
bottom: -74px;
left: 50%;
margin-left: -41px;
}
.dk-game-design-upload .dk-game-design-left .upload_change{
bottom: -160px;
}
.dk-game-design-element{
margin: 10px 0;
padding: 15px 5px 0;
border-radius: 4px;
background-color: #fcfcfc;
}
.dk-game-design-element .upload.upload_btn{
margin-bottom: 10px;
}
.dk-store-edit-element {
padding-left: 15px;
padding-right: 15px;
}
.dk-nav-tabs-tools-wrapper .nav{
min-height: 42px;
}
.dk-nav-tabs-tools-wrapper .dk-nav-tabs-tools{
float: right;
margin-top: -38px;
}
.setting-data {
width: 100%
}
.setting-data th, .setting-data td {
height: 200px;;
text-align: center;
border: 1px solid #999;
width: 14%;
font-size: 18px;
}
.setting-data .setting-data-ul {
margin: 5px 0 0 0;
padding: 0;
}
.setting-data .setting-data-ul li {
list-style: none;
font-size: 14px;
}
.setting-data .time-add {
font-size: 14px;
color: #666;
}
.none{display: none;}
This diff could not be displayed because it is too large.
*{margin: 0;padding: 0;list-style: none;}
/*
KISSY CSS Reset
理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。
2. reset 的目的不是让默认样式在所有浏览器下一致,而是减少默认样式有可能带来的问题。
3. reset 期望提供一套普适通用的基础样式。但没有银弹,推荐根据具体需求,裁剪和修改后再使用。
特色:1. 适应中文;2. 基于最新主流浏览器。
维护:玉伯<lifesinger@gmail.com>, 正淳<ragecarrier@gmail.com>
*/
/** 清除内外边距 **/
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */
th, td /* table elements 表格元素 */ {
margin: 0;
padding: 0;
}
/** 设置默认字体 **/
body,
button, input, select, textarea /* for ie */ {
font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif;
}
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */
code, kbd, pre, samp { font-family: courier new, courier, monospace; } /* 统一等宽字体 */
small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */
/** 重置列表元素 **/
ul, ol { list-style: none; }
/** 重置文本格式元素 **/
a { text-decoration: none; }
a:hover { text-decoration: underline; }
/** 重置表单元素 **/
legend { color: #000; } /* for ie6 */
fieldset, img { border: 0; } /* img 搭车:让链接里的 img 无边框 */
button, input, select, textarea { font-size: 100%; } /* 使得表单元素在 ie 下能继承字体大小 */
/* 注:optgroup 无法扶正 */
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }
/* 清除浮动 */
.ks-clear:after, .clear:after {
content: '\20';
display: block;
height: 0;
clear: both;
}
.ks-clear, .clear {
*zoom: 1;
}
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main h1{font-size:36px; color:#333; text-align:left;margin-bottom:30px; border-bottom: 1px solid #eee;}
.helps{margin-top:40px;}
.helps pre{
padding:20px;
margin:10px 0;
border:solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists{
width: 100% !important;
}
.icon_lists li{
float:left;
width: 100px;
height:180px;
text-align: center;
list-style: none !important;
}
.icon_lists .icon{
font-size: 42px;
line-height: 100px;
margin: 10px 0;
color:#333;
-webkit-transition: font-size 0.25s ease-out 0s;
-moz-transition: font-size 0.25s ease-out 0s;
transition: font-size 0.25s ease-out 0s;
}
.icon_lists .icon:hover{
font-size: 100px;
}
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p,
.markdown pre {
margin: 1em 0;
}
.markdown > p,
.markdown > blockquote,
.markdown > .highlight,
.markdown > ol,
.markdown > ul {
width: 80%;
}
.markdown ul > li {
list-style: circle;
}
.markdown > ul li,
.markdown blockquote ul > li {
margin-left: 20px;
padding-left: 4px;
}
.markdown > ul li p,
.markdown > ol li p {
margin: 0.6em 0;
}
.markdown ol > li {
list-style: decimal;
}
.markdown > ol li,
.markdown blockquote ol > li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown pre {
border-radius: 6px;
background: #f7f7f7;
padding: 20px;
}
.markdown pre code {
border: none;
background: #f7f7f7;
margin: 0;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown > table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown > table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown > table th,
.markdown > table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown > table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
font-style: italic;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown > br,
.markdown > p > br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
pre{
background: #fff;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>IconFont</title>
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
</head>
<body>
<div class="main markdown">
<h1>IconFont 图标</h1>
<ul class="icon_lists clear">
<li>
<i class="icon iconfont icon-caiwu"></i>
<div class="name">财务</div>
<div class="fontclass">.icon-caiwu</div>
</li>
<li>
<i class="icon iconfont icon-cha"></i>
<div class="name"></div>
<div class="fontclass">.icon-cha</div>
</li>
<li>
<i class="icon iconfont icon-shangjia"></i>
<div class="name">商家</div>
<div class="fontclass">.icon-shangjia</div>
</li>
<li>
<i class="icon iconfont icon-icon19"></i>
<div class="name">添加</div>
<div class="fontclass">.icon-icon19</div>
</li>
<li>
<i class="icon iconfont icon-huojian"></i>
<div class="name">火箭</div>
<div class="fontclass">.icon-huojian</div>
</li>
<li>
<i class="icon iconfont icon-yijianfankui"></i>
<div class="name">意见反馈</div>
<div class="fontclass">.icon-yijianfankui</div>
</li>
<li>
<i class="icon iconfont icon-kaiguanguan-copy"></i>
<div class="name">开关 关</div>
<div class="fontclass">.icon-kaiguanguan-copy</div>
</li>
<li>
<i class="icon iconfont icon-time"></i>
<div class="name">时间</div>
<div class="fontclass">.icon-time</div>
</li>
<li>
<i class="icon iconfont icon-xiaoxi"></i>
<div class="name">消息</div>
<div class="fontclass">.icon-xiaoxi</div>
</li>
<li>
<i class="icon iconfont icon-anquan"></i>
<div class="name">安全</div>
<div class="fontclass">.icon-anquan</div>
</li>
<li>
<i class="icon iconfont icon-sousuo"></i>
<div class="name">搜索</div>
<div class="fontclass">.icon-sousuo</div>
</li>
<li>
<i class="icon iconfont icon-rizhi"></i>
<div class="name">日志</div>
<div class="fontclass">.icon-rizhi</div>
</li>
<li>
<i class="icon iconfont icon-calendar"></i>
<div class="name">日历</div>
<div class="fontclass">.icon-calendar</div>
</li>
<li>
<i class="icon iconfont icon-xiala"></i>
<div class="name">下拉</div>
<div class="fontclass">.icon-xiala</div>
</li>
<li>
<i class="icon iconfont icon-cuxiao"></i>
<div class="name">促销</div>
<div class="fontclass">.icon-cuxiao</div>
</li>
<li>
<i class="icon iconfont icon-xiangxiajiantou"></i>
<div class="name">向下箭头</div>
<div class="fontclass">.icon-xiangxiajiantou</div>
</li>
<li>
<i class="icon iconfont icon-tab-stadium-off"></i>
<div class="name">场馆</div>
<div class="fontclass">.icon-tab-stadium-off</div>
</li>
<li>
<i class="icon iconfont icon-tongzhi"></i>
<div class="name">通知</div>
<div class="fontclass">.icon-tongzhi</div>
</li>
<li>
<i class="icon iconfont icon-tubiaozhizuomoban"></i>
<div class="name">套餐</div>
<div class="fontclass">.icon-tubiaozhizuomoban</div>
</li>
<li>
<i class="icon iconfont icon-arrow-up"></i>
<div class="name"></div>
<div class="fontclass">.icon-arrow-up</div>
</li>
<li>
<i class="icon iconfont icon-shuju"></i>
<div class="name">数据</div>
<div class="fontclass">.icon-shuju</div>
</li>
<li>
<i class="icon iconfont icon-neirong"></i>
<div class="name">内容</div>
<div class="fontclass">.icon-neirong</div>
</li>
<li>
<i class="icon iconfont icon-renqun"></i>
<div class="name">人群</div>
<div class="fontclass">.icon-renqun</div>
</li>
<li>
<i class="icon iconfont icon-qiusai"></i>
<div class="name">球赛</div>
<div class="fontclass">.icon-qiusai</div>
</li>
<li>
<i class="icon iconfont icon-dianchangxinxi"></i>
<div class="name">店长信息</div>
<div class="fontclass">.icon-dianchangxinxi</div>
</li>
<li>
<i class="icon iconfont icon-xinxi"></i>
<div class="name">信息</div>
<div class="fontclass">.icon-xinxi</div>
</li>
<li>
<i class="icon iconfont icon-Shapex"></i>
<div class="name">Shape@2x</div>
<div class="fontclass">.icon-Shapex</div>
</li>
<li>
<i class="icon iconfont icon-ion-android-drafts-"></i>
<div class="name">ion-android-drafts -</div>
<div class="fontclass">.icon-ion-android-drafts-</div>
</li>
<li>
<i class="icon iconfont icon-ion-social-vimeo-I"></i>
<div class="name">ion-social-vimeo - I</div>
<div class="fontclass">.icon-ion-social-vimeo-I</div>
</li>
<li>
<i class="icon iconfont icon-ion-pricetags-Ioni"></i>
<div class="name">ion-pricetags - Ioni</div>
<div class="fontclass">.icon-ion-pricetags-Ioni</div>
</li>
<li>
<i class="icon iconfont icon-ion-pie-graph-Ioni"></i>
<div class="name">ion-pie-graph - Ioni</div>
<div class="fontclass">.icon-ion-pie-graph-Ioni</div>
</li>
<li>
<i class="icon iconfont icon-ion-ios-basketball-"></i>
<div class="name">ion-ios-basketball -</div>
<div class="fontclass">.icon-ion-ios-basketball-</div>
</li>
<li>
<i class="icon iconfont icon-ion-android-cart-I"></i>
<div class="name">ion-android-cart - I</div>
<div class="fontclass">.icon-ion-android-cart-I</div>
</li>
<li>
<i class="icon iconfont icon-Shapex1"></i>
<div class="name">Shape@2x</div>
<div class="fontclass">.icon-Shapex1</div>
</li>
<li>
<i class="icon iconfont icon-up-arrow"></i>
<div class="name">向下箭头</div>
<div class="fontclass">.icon-up-arrow</div>
</li>
</ul>
<h2 id="font-class-">font-class引用</h2>
<hr>
<p>font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。</p>
<p>与unicode使用方式相比,具有如下特点:</p>
<ul>
<li>兼容性良好,支持ie8+,及所有现代浏览器。</li>
<li>相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。</li>
<li>因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。</li>
<li>不过因为本质上还是使用的字体,所以多色图标还是不支持的。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的fontclass代码:</h3>
<pre><code class="lang-js hljs javascript"><span class="hljs-comment">&lt;link rel="stylesheet" type="text/css" href="./iconfont.css"&gt;</span></code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="lang-css hljs">&lt;<span class="hljs-selector-tag">i</span> <span class="hljs-selector-tag">class</span>="<span class="hljs-selector-tag">iconfont</span> <span class="hljs-selector-tag">icon-xxx</span>"&gt;&lt;/<span class="hljs-selector-tag">i</span>&gt;</code></pre>
<blockquote>
<p>"iconfont"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。</p>
</blockquote>
</div>
</body>
</html>

8.29 KB | W: | H:

2.32 KB | W: | H:

vue/admin-vue/src/assets/images/logo.png
vue/admin-vue/src/assets/images/logo.png
vue/admin-vue/src/assets/images/logo.png
vue/admin-vue/src/assets/images/logo.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -17,267 +17,10 @@ ...@@ -17,267 +17,10 @@
return '/api/common/listArea?cityName=' + cityName; return '/api/common/listArea?cityName=' + cityName;
}, },
}, },
//商家管理 word:{
storeManage: { list:'/api/word/list'
list: {
type: 'GET',
url: '/api/store/list',
desc: "商家列表"
},
create: {
type: "POST",
url: "/api/store/create",
desc: '添加商家信息'
},
update: {
type: "POST",
url: "/api/store/update",
desc: "修改商家信息"
},
get: {
type: "GET",
url: function (id) {
return "/api/store/get/" + id;
},
desc: "商家详情"
},
disable: {
type: 'GET',
url: function (id) {
return "/api/store/disable/" + id;
},
desc: "禁用商家"
},
enable: {
type: "GET",
url: function (id) {
return "/api/store/enable/" + id;
},
desc: '启用商家',
},
},
//场馆管理
venues: {
list: {
type: 'GET',
url: '/api/venues/list',
},
start: {
type: 'POST',
url: '/api/venues/start',
},
create: '/api/venues/create',
update: '/api/venues/update',
detail: function (id) {
return '/api/venues/detail/' + id;
},
//收费
price: '/api/venues/priceList',
savePrice: '/api/venues/price/config/save',
detailPriceConfig: function (id) {
return '/api/venues/price/config/detail/' + id;
},
savePriceList: '/api/venues/price/list/save'
},
//场地管理:
ground: {
list: '/api/venues/ground/list',
create: '/api/venues/ground/create',
start: function (id) {
return '/api/venues/ground/start/' + id;
},
detail: '/api/venues/ground/detail',
update: '/api/venues/ground/update',
changeRank: '/api/venues/ground/changeRank',
},
//闸机管理
door: {
list: '/api/venues/door/list',
create: '/api/venues/door/create',
detail: '/api/venues/door/detail',
update: '/api/venues/door/update',
delete: function (id) {
return '/api/venues/door/delete/' + id;
},
},
//会员管理
user: {
list: {
type: 'GET',
url: '/api/user/list',
},
getUserInfo: function (id) {
return '/api/user/getUserInfo/' + id;
},
getUserVipCard: {
type: 'GET',
url: '/api/user/getUserVipCard',
},
getUserIdentify: function (id) {
return '/api/user/getUserIdentify/' + id;
},
getUserAccount: function (id) {
return '/api/user/getUserAccount/' + id;
},
getTimeList: {
type: 'GET',
url: '/api/user/getTimeList',
},
getBlockList: {
type: 'GET',
url: '/api/user/getBlockList',
},
resettingPwd: {
type: 'POST',
url: '/api/user/resettingPwd',
},
getUserIdcard: '/api/user/getUserIdcard',
getCount: '/api/user/getCount',
identifyPass: function (id) {
return '/api/user/identifyPass/' + id;
},
identifyRefuse: function (id) {
return '/api/user/identifyRefuse/' + id;
},
getUser: '/api/user/getUser',
create: '/api/user/create',
},
//包场管理
block: {
list: '/api/block/order/list',
today: '/api/block/order/list/today',
statusList: '/api/block/status/list'
},
//消费管理
order: {
//计时订单
time: {
list: {
type: "GET",
url: '/api/order/time/list',
desc: '计时订单列表',
},
get: {
type: "GET",
url: function (id) {
return '/api/order/time/get/' + id;
},
desc: '计时详情'
},
},
//包场订单
block: {
list: {
type: "GET",
url: '/api/order/block/list',
desc: '包场订单列表',
},
get: {
type: 'GET',
url: function (id) {
return '/api/order/block/get/' + id;
},
desc: '包场订单详情',
},
},
//套餐订单
package: {
list: {
type: "GET",
url: '/api/order/package/list',
desc: '套餐订单列表',
},
get: {
type: 'GET',
url: function (id) {
return '/api/order/package/get/' + id;
},
desc: '套餐订单详情',
}
},
//充值订单
recharge: {
list: {
type: "GET",
url: '/api/order/list',
desc: '充值订单列表'
},
get: {
type: "GET",
url: function (id) {
return '/api/order/get/' + id;
},
desc: '充值订单详情'
}
},
},
//促销管理
promotion: {
package: {
list: {
type: "GET",
url: "/api/promotion/package/list",
desc: "套餐列表"
},
get: {
type: "GET",
url: function (id) {
return '/api/promotion/package/get/' + id;
},
desc: "套餐详情"
},
create: {
type: "POST",
url: '/api/promotion/package/create',
desc: "添加套餐"
},
update: {
type: "POST",
url: "/api/promotion/package/update",
desc: '修改套餐'
},
delete: {
type: "POST",
url: function (id) {
return "/api/promotion/package/delete/" + id;
},
desc: '删除套餐'
}
},
packageType: {
list: {
type: 'GET',
url: '/api/promotion/package/type/list',
desc: '套餐类型列表'
},
get: {
type: 'GET',
url: function (id) {
return "/api/promotion/package/type/get/" + id;
},
desc: '添加套餐类型'
},
create: {
type: 'POST',
url: "/api/promotion/package/type/create",
desc: '添加套餐类型'
},
update: {
type: "POST",
url: '/api/promotion/package/type/update',
desc: '修改套餐类型',
},
delete: {
type: "POST",
url: function (id) {
return "/api/promotion/package/type/delete/" + id;
},
desc: "删除套餐类型"
},
},
} }
} }
window.api = api window.api = api
})() })()
var commonApp = function () { (function () {
var commonApp = function () {
/** /**
* 初始化 * 初始化
...@@ -6,39 +7,47 @@ var commonApp = function () { ...@@ -6,39 +7,47 @@ var commonApp = function () {
*/ */
var _init = function () { var _init = function () {
// 网页全屏 // 网页全屏
_fullScreen($('#js-full-screen'),function (isNormalScreen,$e) { _fullScreen($('#js-full-screen'), function (isNormalScreen, $e) {
$e.html('<span class="ion ion-arrow-'+(isNormalScreen?'expand':'shrink')+'">'); $e.html('<span class="ion ion-arrow-' + (isNormalScreen ? 'expand' : 'shrink') + '">');
}); });
// 加载侧导航 // 加载侧导航
_navNarrow($('#js-toggle-aside-nav')); _navNarrow($('#js-toggle-aside-nav'));
_navCollapse($('#js-aside-collapse')); _navCollapse($('#js-aside-collapse'));
}; };
/** /**
* 侧导航折叠效果 * 侧导航折叠效果
* @param $element 根<ul>元素 * @param $element 根<ul>元素
* @private * @private
*/ */
var _navCollapse = function ($element) { var _navCollapse = function ($element) {
$element.children('li').each(function (i,n) { $element.children('li').each(function (i, n) {
var $this = $(n), var $this = $(n),
$ul = $this.children('ul'), $ul = $this.children('ul'),
$a = $this.children('a'); $a = $this.children('a');
if($ul.size() > 0){ if ($ul.length > 0) {
var aClass = 'collapsed', var aClass = 'collapsed',
ulClass = '', ulClass = '',
thisClass= 'panel'; thisClass = 'panel';
if($ul.children('.active').size() > 0){ if ($ul.children('.active').length > 0) {
aClass = ''; aClass = '';
ulClass = 'collapse in'; ulClass = 'collapse in';
thisClass = 'panel has-children-active'; thisClass = 'panel has-children-active';
} }
$this.attr({'class':thisClass}); $this.attr({'class': thisClass});
$a.attr({'href':'javascript:;','data-toggle':'collapse','data-parent':'#'+$element[0].id,'class':aClass,'data-target':'#nav-aside-collapse-'+i,'data-index':i}) $a.attr({
'href': 'javascript:;',
'data-toggle': 'collapse',
'data-parent': '#' + $element[0].id,
'class': aClass,
'data-target': '#nav-aside-collapse-' + i,
'data-index': i
})
.append('<span class="ion-chevron-right">'); .append('<span class="ion-chevron-right">');
$ul.attr({'id':'nav-aside-collapse-'+i,'class':ulClass}); $ul.attr({'id': 'nav-aside-collapse-' + i, 'class': ulClass});
} }
}); });
}; };
...@@ -54,10 +63,10 @@ var commonApp = function () { ...@@ -54,10 +63,10 @@ var commonApp = function () {
}*/ }*/
$element.click(function () { $element.click(function () {
var $body = $('body'); var $body = $('body');
if($body.hasClass('dk-nav-aside-narrow')){ if ($body.hasClass('dk-nav-aside-narrow')) {
$body.removeClass('dk-nav-aside-narrow'); $body.removeClass('dk-nav-aside-narrow');
//localStorage.removeItem('navAsideStatus'); //localStorage.removeItem('navAsideStatus');
}else{ } else {
$body.addClass('dk-nav-aside-narrow'); $body.addClass('dk-nav-aside-narrow');
//localStorage.setItem('navAsideStatus',true); //localStorage.setItem('navAsideStatus',true);
} }
...@@ -70,7 +79,7 @@ var commonApp = function () { ...@@ -70,7 +79,7 @@ var commonApp = function () {
* @param $element * @param $element
* @param callback(isNormalScreen,$element) * @param callback(isNormalScreen,$element)
*/ */
var _fullScreen = function ($element,callback) { var _fullScreen = function ($element, callback) {
var isNormalScreen = function () { var isNormalScreen = function () {
return !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement; return !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement;
}, },
...@@ -78,27 +87,27 @@ var commonApp = function () { ...@@ -78,27 +87,27 @@ var commonApp = function () {
// 触发全屏切换 // 触发全屏切换
$element.click(function () { $element.click(function () {
if(fullscreenEnabled) { if (fullscreenEnabled) {
// 全屏 // 全屏
if(isNormalScreen()) { if (isNormalScreen()) {
var element = document.documentElement; var element = document.documentElement;
if(element.requestFullscreen) { if (element.requestFullscreen) {
element.requestFullscreen(); element.requestFullscreen();
} else if(element.mozRequestFullScreen) { } else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen(); element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) { } else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen(); element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) { } else if (element.msRequestFullscreen) {
element.msRequestFullscreen(); element.msRequestFullscreen();
} }
} }
// 取消全屏 // 取消全屏
else{ else {
if(document.exitFullscreen) { if (document.exitFullscreen) {
document.exitFullscreen(); document.exitFullscreen();
} else if(document.mozCancelFullScreen) { } else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen(); document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) { } else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen(); document.webkitExitFullscreen();
} }
} }
...@@ -107,8 +116,8 @@ var commonApp = function () { ...@@ -107,8 +116,8 @@ var commonApp = function () {
// 监听全屏事件 // 监听全屏事件
var callbackFun = function (event) { var callbackFun = function (event) {
if(typeof callback == "function"){ if (typeof callback == "function") {
callback(isNormalScreen(),$element); callback(isNormalScreen(), $element);
} }
}; };
document.onwebkitfullscreenchange = callbackFun; document.onwebkitfullscreenchange = callbackFun;
...@@ -124,33 +133,6 @@ var commonApp = function () { ...@@ -124,33 +133,6 @@ var commonApp = function () {
var _tools = {}; var _tools = {};
/** /**
* 获取url参数
* @param name
* @returns {null}
*/
_tools.getUrlParam = function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
};
/**
* 滚动条美化
* @param ele = '.slimscroll',width = 'px',height='px'
* @returns {{}}
*/
_tools.beautifyScroll = function (ele,w,h) {
$(ele).slimScroll({
color: '#999',
size: '5px',
width: w,
height: h,
alwaysVisible: true,
allowPageScroll: true
});
};
/**
* 获取表单数据 * 获取表单数据
* @param $form jquery对象 * @param $form jquery对象
* @returns {{}} * @returns {{}}
...@@ -171,12 +153,10 @@ var commonApp = function () { ...@@ -171,12 +153,10 @@ var commonApp = function () {
return o; return o;
}; };
return { return {
init:_init, init: _init,
tools:_tools tools: _tools
} }
}(); }();
window.commonApp = commonApp;
})();
/* 模块2 */
\ No newline at end of file \ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!