fixed: 运行cms页面出不来
@ -28,7 +28,10 @@
|
||||
<groupId>org.noear</groupId>
|
||||
<artifactId>solon-lib</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.noear</groupId>
|
||||
<artifactId>solon-view-enjoy</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.noear</groupId>
|
||||
<artifactId>solon-logging-logback</artifactId>
|
||||
@ -157,6 +160,10 @@
|
||||
<artifactId>httpmime</artifactId>
|
||||
<version>4.4.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.zaxxer</groupId>
|
||||
<artifactId>HikariCP</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@ -1,18 +1,23 @@
|
||||
package vip.fuck.sm.plugins.cms;
|
||||
|
||||
import com.jfinal.kit.PropKit;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.core.AppContext;
|
||||
import org.noear.solon.core.Plugin;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
import org.noear.solon.core.Props;
|
||||
import org.noear.solon.web.staticfiles.StaticConfig;
|
||||
import org.noear.solon.web.staticfiles.StaticMappings;
|
||||
import org.noear.solon.web.staticfiles.repository.ClassPathStaticRepository;
|
||||
import org.noear.solon.web.staticfiles.repository.FileStaticRepository;
|
||||
|
||||
|
||||
public class CmsPlugin implements Plugin {
|
||||
@Override
|
||||
public void start(AppContext context) throws Throwable {
|
||||
System.out.println("cms.test.plugins");
|
||||
context.beanBuilderAdd(RouteMapping.class, (clz, bw, anno) -> {
|
||||
if (context.app() != null) {
|
||||
context.app().router().add(bw);
|
||||
}
|
||||
});
|
||||
context.cfg().loadAdd("app-cms-config.yml");
|
||||
context.beanScan(CmsPlugin.class);
|
||||
StaticMappings.add(CommonAttribute.CMS_ADMIN_STAITC_REQ_PATH,
|
||||
new ClassPathStaticRepository(CommonAttribute.CMS_ADMIN_STAITC_CLASSPATH));
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ public final class CommonAttribute {
|
||||
public static final String GET="get";
|
||||
|
||||
/** 后台页面 */
|
||||
public static final String ADMIN_PATH="/admin/view/";
|
||||
public static final String ADMIN_PATH="/cms/admin/view/";
|
||||
|
||||
/** 后台错误页面 */
|
||||
public static final String ADMIN_ERROR_VIEW = ADMIN_PATH+"error/500.html";
|
||||
@ -47,7 +47,7 @@ public final class CommonAttribute {
|
||||
public static final String JOB_PROPERTIES = "job.properties";
|
||||
|
||||
/** 页面后缀 */
|
||||
public static final String VIEW_EXTENSION = ".html";
|
||||
public static final String VIEW_EXTENSION = ".shtm";
|
||||
|
||||
/** 参数分隔符 */
|
||||
public static final String URL_PARA_SEPARATOR = "-";
|
||||
@ -60,7 +60,9 @@ public final class CommonAttribute {
|
||||
|
||||
/** JSON时间格式 */
|
||||
public static final String JSON_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
||||
|
||||
public static final String CMS_ADMIN_STAITC_REQ_PATH = "/cms/admin/static/";
|
||||
public static final String CMS_ADMIN_STAITC_CLASSPATH = "/templates/cms/admin/static/";
|
||||
|
||||
/**
|
||||
* 不可实例化
|
||||
*/
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
package vip.fuck.sm.plugins.cms.config;
|
||||
|
||||
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
|
||||
import com.jfinal.plugin.activerecord.solon.annotation.Db;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.noear.solon.Solon;
|
||||
import org.noear.solon.annotation.Bean;
|
||||
import org.noear.solon.annotation.Configuration;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
import vip.fuck.sm.plugins.cms.entity._MappingKit;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@Configuration
|
||||
public class Configxv {
|
||||
@Bean(value = "cmsDb")
|
||||
public DataSource ca(@Inject("${cms.jdbc}")
|
||||
HikariDataSource dataSource) {
|
||||
return dataSource;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public void cx(@Db("cmsDb") ActiveRecordPlugin arp){
|
||||
|
||||
_MappingKit.mapping(arp);
|
||||
//启用开发或调试模式(可以打印sql)
|
||||
if (Solon.cfg().isDebugMode() || Solon.cfg().isFilesMode()) {
|
||||
arp.setDevMode(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package vip.fuck.sm.plugins.cms.config;
|
||||
|
||||
import org.noear.solon.core.route.RouterDefault;
|
||||
|
||||
public class MyRouter extends RouterDefault {
|
||||
}
|
||||
@ -9,13 +9,16 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Get;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import org.noear.solon.core.handle.ModelAndView;
|
||||
import vip.fuck.sm.plugins.cms.CommonAttribute;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Admin;
|
||||
import vip.fuck.sm.plugins.cms.entity.AdminRole;
|
||||
import vip.fuck.sm.plugins.cms.entity.Role;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -27,20 +30,20 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/admin")
|
||||
@Controller
|
||||
@Mapping("/admin/admin")
|
||||
public class AdminController extends BaseController {
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@Get
|
||||
@Mapping()
|
||||
public void index(){
|
||||
setListQuery();
|
||||
String name = getPara("name");
|
||||
String username = getPara("username");
|
||||
Integer pageNumber = getParaToInt("pageNumber");
|
||||
if(pageNumber==null){
|
||||
pageNumber = 1;
|
||||
}
|
||||
Integer pageNumber = getParaToInt("pageNumber",1);
|
||||
setAttr("page", new Admin().dao().findPage(name,username,pageNumber,PAGE_SIZE));
|
||||
setAttr("name", name);
|
||||
setAttr("username", username);
|
||||
|
||||
@ -12,10 +12,7 @@ import org.apache.commons.lang.ObjectUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.noear.solon.core.handle.Context;
|
||||
import org.noear.solon.core.handle.Cookie;
|
||||
import org.noear.solon.core.handle.SessionState;
|
||||
import org.noear.solon.core.handle.UploadedFile;
|
||||
import org.noear.solon.core.handle.*;
|
||||
import org.noear.solon.core.util.KeyValues;
|
||||
import org.noear.solon.core.util.MultiMap;
|
||||
import org.smartboot.http.server.HttpRequest;
|
||||
@ -152,7 +149,6 @@ public class BaseController {
|
||||
}
|
||||
|
||||
protected void renderJson(Object o) {
|
||||
// todo 是否返回json
|
||||
try {
|
||||
Context.current().render(o);
|
||||
} catch (Throwable e) {
|
||||
@ -212,13 +208,27 @@ public class BaseController {
|
||||
* @return 页面
|
||||
*/
|
||||
// @NotAction
|
||||
public String getView(String view){
|
||||
return CommonAttribute.ADMIN_PATH+view+CommonAttribute.VIEW_EXTENSION;
|
||||
public ModelAndView getView(String view){
|
||||
return new ModelAndView(CommonAttribute.ADMIN_PATH+view+CommonAttribute.VIEW_EXTENSION);
|
||||
}
|
||||
public void render(String path){
|
||||
//todo render page path
|
||||
|
||||
public void render(String view){
|
||||
try {
|
||||
Context.current().renderAndReturn(getView(view));
|
||||
} catch (Throwable e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void render(ModelAndView view){
|
||||
try {
|
||||
Context current = Context.current();
|
||||
current.render(view);
|
||||
} catch (Throwable e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected void setCookie(String name, String value ,int maxAge,String path){
|
||||
Context.current().cookieSet(name,
|
||||
value,
|
||||
|
||||
@ -2,8 +2,10 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.CacheUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
@ -15,7 +17,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/cache")
|
||||
@Controller
|
||||
@Mapping("/admin/cache")
|
||||
public class CacheController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -11,12 +11,14 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.BooleanUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.entity.Model;
|
||||
import vip.fuck.sm.plugins.cms.entity.ModelField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.PinYinUtils;
|
||||
|
||||
import java.util.*;
|
||||
@ -28,8 +30,8 @@ import java.util.*;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/category")
|
||||
|
||||
@Controller
|
||||
@Mapping("/admin/category")
|
||||
public class CategoryController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -7,9 +7,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Company;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@ -20,7 +22,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/company")
|
||||
@Controller
|
||||
@Mapping("/admin/company")
|
||||
public class CompanyController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -6,12 +6,14 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.BooleanUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.entity.ModelField;
|
||||
import vip.fuck.sm.plugins.cms.entity.Tag;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.PinYinUtils;
|
||||
|
||||
import java.util.*;
|
||||
@ -23,7 +25,8 @@ import java.util.*;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/content")
|
||||
@Controller
|
||||
@Mapping("/admin/content")
|
||||
public class ContentController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -2,8 +2,10 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.BackupUtils;
|
||||
|
||||
import java.util.Collections;
|
||||
@ -15,7 +17,8 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/database")
|
||||
@Controller
|
||||
@Mapping("/admin/database")
|
||||
public class DatabaseController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -2,9 +2,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Div;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.TableUtils;
|
||||
|
||||
import java.util.Date;
|
||||
@ -17,7 +19,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/div")
|
||||
@Controller
|
||||
@Mapping("/admin/div")
|
||||
public class DivController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -6,10 +6,12 @@ import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Div;
|
||||
import vip.fuck.sm.plugins.cms.entity.DivField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.DbUtils;
|
||||
|
||||
import java.util.Date;
|
||||
@ -23,7 +25,8 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/div_data")
|
||||
@Controller
|
||||
@Mapping("/admin/div_data")
|
||||
public class DivDataController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.CommonAttribute;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 错误
|
||||
@ -10,7 +12,8 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/error")
|
||||
@Controller
|
||||
@Mapping("/admin/error")
|
||||
public class ErrorController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -11,10 +11,12 @@ import com.jfinal.kit.PathKit;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import org.noear.solon.core.handle.UploadedFile;
|
||||
import vip.fuck.sm.plugins.cms.CommonAttribute;
|
||||
import vip.fuck.sm.plugins.cms.Config;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.ImageUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.SystemUtils;
|
||||
|
||||
@ -30,7 +32,8 @@ import java.util.UUID;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/file")
|
||||
@Controller
|
||||
@Mapping("/admin/file")
|
||||
public class FileController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.FriendLink;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -18,7 +20,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/friend_link")
|
||||
@Controller
|
||||
@Mapping("/admin/friend_link")
|
||||
public class FriendLinkController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -3,9 +3,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.BooleanUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Guestbook;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -17,7 +19,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/guestbook")
|
||||
@Controller
|
||||
@Mapping("/admin/guestbook")
|
||||
public class GuestbookController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -8,11 +8,13 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.apache.commons.lang.time.DateUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Config;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.CacheUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.HtmlUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.SystemUtils;
|
||||
@ -25,7 +27,8 @@ import java.util.*;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/html")
|
||||
@Controller
|
||||
@Mapping("/admin/html")
|
||||
public class HtmlController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -13,9 +13,11 @@ import org.apache.commons.lang.BooleanUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.apache.commons.lang.time.DateUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.entity.Admin;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@ -25,14 +27,15 @@ import java.util.Date;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/index")
|
||||
|
||||
@Mapping("/admin/index")
|
||||
@Controller
|
||||
public class IndexController extends BaseController {
|
||||
|
||||
|
||||
/**
|
||||
* 首页
|
||||
*/
|
||||
@Mapping()
|
||||
public void index() {
|
||||
//站点
|
||||
Integer siteId = getParaToInt("siteId");
|
||||
|
||||
@ -7,9 +7,13 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Get;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import org.noear.solon.annotation.Param;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Admin;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@ -19,12 +23,15 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/login")
|
||||
@Controller
|
||||
@Mapping("/admin/login")
|
||||
public class LoginController extends BaseController {
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*/
|
||||
@Get
|
||||
@Mapping()
|
||||
public void index() {
|
||||
String username = getPara("username");
|
||||
String password = getPara("password");
|
||||
@ -36,6 +43,7 @@ public class LoginController extends BaseController {
|
||||
/**
|
||||
* 登录
|
||||
*/
|
||||
@Mapping("login")
|
||||
public void login(){
|
||||
String username = getPara("username");
|
||||
String password = getPara("password");
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.entity.Admin;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 管理员退出
|
||||
@ -11,7 +13,8 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/logout")
|
||||
@Controller
|
||||
@Mapping("/admin/logout")
|
||||
public class LogoutController extends BaseController{
|
||||
|
||||
/**
|
||||
|
||||
@ -2,9 +2,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Menu;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
@ -17,7 +19,8 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/menu")
|
||||
@Controller
|
||||
@Mapping("/admin/menu")
|
||||
public class MenuController extends BaseController{
|
||||
|
||||
/**
|
||||
|
||||
@ -7,10 +7,12 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Model;
|
||||
import vip.fuck.sm.plugins.cms.entity.ModelField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -22,8 +24,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/model")
|
||||
|
||||
@Mapping("/admin/model")
|
||||
@Controller
|
||||
public class ModelController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -7,9 +7,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Nav;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
@ -23,8 +25,8 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/nav")
|
||||
|
||||
@Mapping("/admin/nav")
|
||||
@Controller
|
||||
public class NavController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -3,9 +3,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Admin;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -17,7 +19,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/profile")
|
||||
@Controller
|
||||
@Mapping("/admin/profile")
|
||||
public class ProfileController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ -3,12 +3,14 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Menu;
|
||||
import vip.fuck.sm.plugins.cms.entity.Role;
|
||||
import vip.fuck.sm.plugins.cms.entity.RoleSite;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -20,7 +22,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/role")
|
||||
@Controller
|
||||
@Mapping("/admin/role")
|
||||
public class RoleController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -7,10 +7,12 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Config;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Setup;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.CacheUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.SystemUtils;
|
||||
|
||||
@ -25,8 +27,8 @@ import java.util.Set;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/setup")
|
||||
|
||||
@Mapping("/admin/setup")
|
||||
@Controller
|
||||
public class SetupController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -3,11 +3,13 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Company;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.entity.Web;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.PinYinUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.TemplateUtils;
|
||||
|
||||
@ -21,7 +23,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/site")
|
||||
@Controller
|
||||
@Mapping("/admin/site")
|
||||
public class SiteController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Slide;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -18,7 +20,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/slide")
|
||||
@Controller
|
||||
@Mapping("/admin/slide")
|
||||
public class SlideController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -2,9 +2,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Tag;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -16,7 +18,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/tag")
|
||||
@Controller
|
||||
@Mapping("/admin/tag")
|
||||
public class TagController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -9,8 +9,10 @@ import com.jfinal.kit.PathKit;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.CommonAttribute;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.TemplateUtils;
|
||||
|
||||
import java.io.File;
|
||||
@ -22,8 +24,8 @@ import java.io.IOException;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/template")
|
||||
|
||||
@Mapping("/admin/template")
|
||||
@Controller
|
||||
public class TemplateController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -7,9 +7,11 @@ package vip.fuck.sm.plugins.cms.controller.admin;
|
||||
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Web;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@ -20,7 +22,8 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/web")
|
||||
@Controller
|
||||
@Mapping("/admin/web")
|
||||
public class WebController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.WechatMenu;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.WeixinUtils;
|
||||
|
||||
import java.util.*;
|
||||
@ -16,7 +18,8 @@ import java.util.*;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/wechat_menu")
|
||||
@Controller
|
||||
@Mapping("/admin/wechat_menu")
|
||||
public class WechatMenuController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -5,11 +5,12 @@ import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.controller.admin.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.entity.Div;
|
||||
import vip.fuck.sm.plugins.cms.entity.DivField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.FieldUtils;
|
||||
|
||||
import java.util.Date;
|
||||
@ -23,7 +24,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/div/div_field")
|
||||
@Mapping("/admin/div/div_field")
|
||||
public class DivFieldController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -6,11 +6,12 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.controller.admin.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.entity.Model;
|
||||
import vip.fuck.sm.plugins.cms.entity.ModelField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -23,7 +24,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/admin/model/model_field")
|
||||
@Mapping("/admin/model/model_field")
|
||||
public class ModelFieldController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.common;
|
||||
|
||||
import org.noear.solon.annotation.Controller;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.controller.admin.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
@RouteMapping(url = "/common/captcha")
|
||||
|
||||
@Mapping("/common/captcha")
|
||||
public class CaptchaController extends BaseController {
|
||||
|
||||
public void image(){
|
||||
|
||||
@ -2,12 +2,13 @@ package vip.fuck.sm.plugins.cms.controller.common;
|
||||
|
||||
|
||||
import com.jfinal.kit.PathKit;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.controller.admin.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@RouteMapping(url = "/common/down")
|
||||
@Mapping("/common/down")
|
||||
public class DownController extends BaseController {
|
||||
|
||||
public void file(){
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - Ajax
|
||||
@ -9,7 +10,7 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/ajax")
|
||||
@Mapping("/ajax")
|
||||
public class AjaxController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Model;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 栏目
|
||||
@ -11,7 +12,7 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/category")
|
||||
@Mapping("/category")
|
||||
public class CategoryController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -6,9 +6,10 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 内容
|
||||
@ -16,7 +17,7 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/content")
|
||||
@Mapping("/content")
|
||||
public class ContentController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -4,10 +4,11 @@ package vip.fuck.sm.plugins.cms.controller.front;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Config;
|
||||
import vip.fuck.sm.plugins.cms.entity.Div;
|
||||
import vip.fuck.sm.plugins.cms.entity.DivField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
import vip.fuck.sm.plugins.cms.util.DbUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.HtmlUtils;
|
||||
import vip.fuck.sm.plugins.cms.util.SystemUtils;
|
||||
@ -15,7 +16,7 @@ import vip.fuck.sm.plugins.cms.util.SystemUtils;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RouteMapping(url = "/api/dev/data")
|
||||
@Mapping("/api/dev/data")
|
||||
public class DevOpenController extends BaseController{
|
||||
|
||||
public void listByDivId(){
|
||||
|
||||
@ -3,10 +3,11 @@ package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Div;
|
||||
import vip.fuck.sm.plugins.cms.entity.DivField;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -18,7 +19,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/div")
|
||||
@Mapping("/div")
|
||||
public class DivController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ -2,10 +2,11 @@ package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.entity.Guestbook;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -16,7 +17,7 @@ import java.util.HashMap;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/guestbook")
|
||||
@Mapping("/guestbook")
|
||||
public class GuestbookController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 首页
|
||||
@ -9,14 +10,14 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/")
|
||||
@Mapping("/")
|
||||
public class IndexController extends BaseController {
|
||||
|
||||
/**
|
||||
* 首页
|
||||
*/
|
||||
public void index() {
|
||||
render("/templates/"+getCurrentTemplate()+"/index.html");
|
||||
render("/templates/"+getCurrentTemplate()+"/index.shtm");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 页面
|
||||
@ -9,7 +10,7 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/page")
|
||||
@Mapping("/page")
|
||||
public class PageController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 搜索
|
||||
@ -9,7 +10,7 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/search")
|
||||
@Mapping("/search")
|
||||
public class SearchController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
package vip.fuck.sm.plugins.cms.controller.front;
|
||||
|
||||
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.entity.Tag;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
/**
|
||||
* Controller - 标签
|
||||
@ -10,7 +11,7 @@ import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/tag")
|
||||
@Mapping("/tag")
|
||||
public class TagController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -3,10 +3,11 @@ package vip.fuck.sm.plugins.cms.controller.xcx;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.controller.front.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@ -18,7 +19,7 @@ import java.util.Map;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/xcx/category")
|
||||
@Mapping("/xcx/category")
|
||||
public class CategoryController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -3,10 +3,11 @@ package vip.fuck.sm.plugins.cms.controller.xcx;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.controller.front.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -17,7 +18,7 @@ import java.util.Map;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/xcx/content")
|
||||
@Mapping("/xcx/content")
|
||||
public class ContentController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -3,11 +3,12 @@ package vip.fuck.sm.plugins.cms.controller.xcx;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.noear.solon.annotation.Mapping;
|
||||
import vip.fuck.sm.plugins.cms.Feedback;
|
||||
import vip.fuck.sm.plugins.cms.controller.front.BaseController;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.entity.Slide;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@ -19,7 +20,7 @@ import java.util.Map;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@RouteMapping(url = "/xcx")
|
||||
@Mapping("/xcx")
|
||||
public class IndexController extends BaseController {
|
||||
|
||||
/**
|
||||
|
||||
@ -9,6 +9,10 @@ import com.jfinal.plugin.activerecord.Model;
|
||||
@SuppressWarnings({"serial", "unchecked"})
|
||||
public abstract class BaseAdmin<M extends BaseAdmin<M>> extends Model<M> implements IBean {
|
||||
|
||||
{
|
||||
use("cmsDb");
|
||||
}
|
||||
|
||||
public M setId(Integer id) {
|
||||
set("id", id);
|
||||
return (M)this;
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
package vip.fuck.sm.plugins.cms.routes;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Inherited
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ ElementType.TYPE })
|
||||
public @interface RouteMapping {
|
||||
String url();
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package vip.fuck.sm.plugins.cms.solon;
|
||||
|
||||
import org.noear.solon.core.BeanBuilder;
|
||||
import org.noear.solon.core.BeanWrap;
|
||||
import org.noear.solon.data.datasource.DsUtils;
|
||||
import vip.fuck.sm.plugins.cms.routes.RouteMapping;
|
||||
|
||||
public class DbBeanBuilderImpl implements BeanBuilder<RouteMapping> {
|
||||
public DbBeanBuilderImpl() {
|
||||
}
|
||||
|
||||
public void doBuild(Class<?> clz, BeanWrap bw, RouteMapping anno) throws Throwable {
|
||||
if (!clz.isInterface()) {
|
||||
DsUtils.observeDs(bw.context(), anno.url(), (dsWrap) -> {
|
||||
// this.create0(clz, dsWrap);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// private void create0(Class<?> clz, BeanWrap dsBw) {
|
||||
// Object raw = MybatisAdapterManager.get(dsBw).getMapper(clz);
|
||||
// dsBw.context().wrapAndPut(clz, raw);
|
||||
// }
|
||||
}
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="category_children_list")
|
||||
@Component("view:category_children_list")
|
||||
public class CategoryChildrenListDirective extends BaseDirective {
|
||||
|
||||
/** "栏目ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -19,7 +20,7 @@ import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="category")
|
||||
@Component("view:category")
|
||||
public class CategoryDirective extends BaseDirective {
|
||||
|
||||
/** "ID"参数名称 */
|
||||
|
||||
@ -8,6 +8,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -20,7 +21,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="category_parent_list")
|
||||
@Component("view:category_parent_list")
|
||||
public class CategoryParentListDirective extends BaseDirective {
|
||||
|
||||
/** "文章分类ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Category;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="category_root_list")
|
||||
@Component("view:category_root_list")
|
||||
public class CategoryRootListDirective extends BaseDirective {
|
||||
|
||||
/** 变量名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
|
||||
@ -18,7 +19,7 @@ import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="content")
|
||||
@Component("view:content")
|
||||
public class ContentDirective extends BaseDirective {
|
||||
|
||||
/** "ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="content_list")
|
||||
@Component("view:content_list")
|
||||
public class ContentListDirective extends BaseDirective {
|
||||
|
||||
/** "栏目ID"参数名称 */
|
||||
|
||||
@ -10,6 +10,7 @@ import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Content;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -20,7 +21,7 @@ import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="content_page")
|
||||
@Component("view:content_page")
|
||||
public class ContentPageDirective extends BaseDirective {
|
||||
|
||||
/** "栏目ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.FriendLink;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="friend_link_list")
|
||||
@Component("view:friend_link_list")
|
||||
public class FriendLinkListDirective extends BaseDirective {
|
||||
|
||||
/** "分组ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Menu;
|
||||
|
||||
@ -20,7 +21,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="menu_root_list")
|
||||
@Component("view:menu_root_list")
|
||||
public class MenuRootListDirective extends BaseDirective {
|
||||
|
||||
/** 变量名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Nav;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="nav_children_list")
|
||||
@Component("view:nav_children_list")
|
||||
public class NavChildrenListDirective extends BaseDirective {
|
||||
|
||||
/** "导航ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Nav;
|
||||
|
||||
@ -18,7 +19,7 @@ import vip.fuck.sm.plugins.cms.entity.Nav;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="nav")
|
||||
@Component("view:nav")
|
||||
public class NavDirective extends BaseDirective {
|
||||
|
||||
/** "ID"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Nav;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="nav_parent_list")
|
||||
@Component("view:nav_parent_list")
|
||||
public class NavParentListDirective extends BaseDirective {
|
||||
|
||||
/** "导航ID"参数名称 */
|
||||
|
||||
@ -8,6 +8,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Nav;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
@ -20,7 +21,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="nav_root_list")
|
||||
@Component("view:nav_root_list")
|
||||
public class NavRootListDirective extends BaseDirective {
|
||||
|
||||
/** 变量名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -20,7 +21,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="page")
|
||||
@Component("view:page")
|
||||
public class PageDirective extends BaseDirective {
|
||||
|
||||
/** "模式"参数名称 */
|
||||
|
||||
@ -8,6 +8,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
|
||||
@ -19,7 +20,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="site_list")
|
||||
@Component("view:site_list")
|
||||
public class SiteListDirective extends BaseDirective {
|
||||
|
||||
/** 变量名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.entity.Slide;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="slide_list")
|
||||
@Component("view:slide_list")
|
||||
public class SlideListDirective extends BaseDirective {
|
||||
|
||||
/** "分组ID"参数名称 */
|
||||
|
||||
@ -6,6 +6,7 @@ import com.jfinal.plugin.activerecord.Record;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
|
||||
import java.util.List;
|
||||
@ -15,7 +16,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="sql_list")
|
||||
@Component("view:sql_list")
|
||||
public class SqlListDirective extends BaseDirective {
|
||||
|
||||
/** "SQL"参数名称 */
|
||||
|
||||
@ -12,6 +12,7 @@ import com.jfinal.plugin.activerecord.Record;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
|
||||
/**
|
||||
@ -20,7 +21,7 @@ import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="sql_page")
|
||||
@Component("view:sql_page")
|
||||
public class SqlPageDirective extends BaseDirective {
|
||||
|
||||
/** "页码"参数名称 */
|
||||
|
||||
@ -9,6 +9,7 @@ package vip.fuck.sm.plugins.cms.template.directive;
|
||||
import com.jfinal.template.Env;
|
||||
import com.jfinal.template.io.Writer;
|
||||
import com.jfinal.template.stat.Scope;
|
||||
import org.noear.solon.annotation.Component;
|
||||
import vip.fuck.sm.plugins.cms.TemplateVariable;
|
||||
import vip.fuck.sm.plugins.cms.entity.Site;
|
||||
import vip.fuck.sm.plugins.cms.entity.Tag;
|
||||
@ -21,7 +22,7 @@ import java.util.List;
|
||||
*
|
||||
*
|
||||
*/
|
||||
@TemplateVariable(name="tag_list")
|
||||
@Component("view:tag_list")
|
||||
public class TagListDirective extends BaseDirective {
|
||||
|
||||
/** 变量名称 */
|
||||
|
||||
@ -249,10 +249,10 @@ public class HtmlUtils {
|
||||
model.put(Web.CURRENT_WEB, new Web().dao().findBySiteId(site.getId()));
|
||||
model.put(Company.CURRENT_COMPANY, new Company().dao().findBySiteId(site.getId()));
|
||||
if(StringUtils.isNotBlank(site.getPcTemplate())){
|
||||
generateCount += generate("templates/"+site.getPcTemplate()+"/index.html", PathKit.getWebRootPath()+"/index.html", model);
|
||||
generateCount += generate("templates/"+site.getPcTemplate()+"/index.shtm", PathKit.getWebRootPath()+"/index.shtm", model);
|
||||
}
|
||||
if(StringUtils.isNotBlank(site.getMobileTemplate())){
|
||||
generateCount += generate("templates/"+site.getMobileTemplate()+"/index.html", PathKit.getWebRootPath()+"/mobile/"+"/index.html", model);
|
||||
generateCount += generate("templates/"+site.getMobileTemplate()+"/index.shtm", PathKit.getWebRootPath()+"/mobile/"+"/index.shtm", model);
|
||||
}
|
||||
return generateCount;
|
||||
}
|
||||
@ -338,7 +338,7 @@ public class HtmlUtils {
|
||||
* @return 删除数量
|
||||
*/
|
||||
public static int deleteIndex() {
|
||||
return delete("index.html");
|
||||
return delete("index.shtm");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
solon.plugin: vip.fuck.sm.plugins.cms.CmsPlugin
|
||||
solon.plugin.priority: 999
|
||||
solon.plugin.priority: 0
|
||||
7
plugins/cms/src/main/resources/app-cms-config.yml
Normal file
@ -0,0 +1,7 @@
|
||||
cms:
|
||||
jdbc:
|
||||
schema: jfinal_project_center
|
||||
jdbcUrl: jdbc:mysql://jfinal_project_center:3306/jfinal_project_center?useSSL=false&useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
username: root
|
||||
password: 123456
|
||||
@ -1,12 +0,0 @@
|
||||
server.port: 8080
|
||||
|
||||
solon.app:
|
||||
name: 'demo-app'
|
||||
group: 'demo'
|
||||
|
||||
solon.logging:
|
||||
appender:
|
||||
console:
|
||||
level: INFO
|
||||
file:
|
||||
level: INFO
|
||||
@ -1,27 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="UTF-8">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>页面不存在 (404)</title>
|
||||
<style type="text/css">
|
||||
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
||||
div.dialog {
|
||||
width: 80%;
|
||||
padding: 1em 4em;
|
||||
margin: 4em auto 0 auto;
|
||||
border: 1px solid #ccc;
|
||||
border-right-color: #999;
|
||||
border-bottom-color: #999;
|
||||
}
|
||||
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="dialog">
|
||||
<h1>页面不存在</h1>
|
||||
<p>抱歉!您访问的页面出现不存在,请稍后重试或联系管理员。</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,28 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="UTF-8">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>系统错误 (500)</title>
|
||||
<style type="text/css">
|
||||
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
||||
div.dialog {
|
||||
width: 80%;
|
||||
padding: 1em 4em;
|
||||
margin: 4em auto 0 auto;
|
||||
border: 1px solid #ccc;
|
||||
border-right-color: #999;
|
||||
border-bottom-color: #999;
|
||||
}
|
||||
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="dialog">
|
||||
<h1>系统错误</h1>
|
||||
<p>抱歉!您的操作出现异常,请稍后重试或联系管理员。</p>
|
||||
<p><a href="javascript:;" onclick="history.back(); return false;">返回上一页</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
|
||||
<!--ehcache 页面缓存过滤器 -->
|
||||
<filter>
|
||||
<filter-name>PageCacheFilter</filter-name>
|
||||
<filter-class>com.cms.filter.PageCacheFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>cacheName</param-name>
|
||||
<param-value>PageCacheFilter</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>PageCacheFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- 权限 -->
|
||||
<filter>
|
||||
<filter-name>permissionFilter</filter-name>
|
||||
<filter-class>com.cms.filter.PermissionFilter</filter-class>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>permissionFilter</filter-name>
|
||||
<url-pattern>/admin/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- JFinal -->
|
||||
<filter>
|
||||
<filter-name>jfinal</filter-name>
|
||||
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>configClass</param-name>
|
||||
<param-value>com.cms.config.CmsConfig</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>jfinal</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<!-- 首页 -->
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<!-- session -->
|
||||
<session-config>
|
||||
<session-timeout>60</session-timeout>
|
||||
</session-config>
|
||||
</web-app>
|
||||
@ -1,190 +0,0 @@
|
||||
/* tab 1*/
|
||||
.double {
|
||||
line-height: 58px;
|
||||
}
|
||||
.title .glyphicon{
|
||||
padding: 3px;
|
||||
font-size: 13px;
|
||||
border-radius: 8px;
|
||||
color: #fff;
|
||||
|
||||
}
|
||||
.data span.arrowup {
|
||||
color: #d88918;
|
||||
}
|
||||
.data span.arrowdown {
|
||||
color: #6bb10a;
|
||||
}
|
||||
.item-blue .glyphicon{
|
||||
background-color: #39a9ea;
|
||||
}
|
||||
.item-green {
|
||||
line-height: 58px;
|
||||
}
|
||||
.item-green .glyphicon{
|
||||
background-color: #6bb10a;
|
||||
line-height: 12px;
|
||||
}
|
||||
.item-orange .glyphicon{
|
||||
background-color:#d88918;
|
||||
}
|
||||
.item-red .glyphicon{
|
||||
background-color: #f14f4f;
|
||||
}
|
||||
.chart .chart-box {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
/* 数据表格label */
|
||||
.content-wrapper .data-type {
|
||||
/*width: 90%;*/
|
||||
margin: 10px 5px;
|
||||
border:1px solid #d4d4d4;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.data-type .title,
|
||||
.data-type .data {
|
||||
padding: 3px 12px;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
overflow: hidden;
|
||||
height: 42px;
|
||||
}
|
||||
.data-type .title {
|
||||
line-height: 34px;
|
||||
border-right: 1px solid #d4d4d4;
|
||||
}
|
||||
|
||||
.data-type .data:last-child{
|
||||
border-right: 0;
|
||||
}
|
||||
.data-type .title{
|
||||
text-align: center;
|
||||
background: #ececec;
|
||||
}
|
||||
.data-type .data .line{
|
||||
vertical-align: middle;
|
||||
overflow: hidden;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
/* label行高度 */
|
||||
.data-type .data > label {
|
||||
line-height:36px;
|
||||
}
|
||||
.data-type .data > .form-group {
|
||||
line-height:36px;
|
||||
}
|
||||
.data-type .data.text {
|
||||
line-height:36px;
|
||||
}
|
||||
/* label行分隔符 */
|
||||
.data-type .data.border-right {
|
||||
border-right: 1px solid #d4d4d4;
|
||||
}
|
||||
|
||||
/* 表格双倍高度 */
|
||||
.data-type .title.rowHeight2x,
|
||||
.data-type .data.rowHeight2x {
|
||||
height:84px;
|
||||
}
|
||||
.data-type .title.rowHeight2x ,
|
||||
.data-type .data.rowHeight2x.text {
|
||||
line-height:78px;
|
||||
}
|
||||
/*.data-type .data.rowHeight2x > label {
|
||||
line-height:78px;
|
||||
}*/
|
||||
.data-type .title.editer,
|
||||
.data-type .data.editer {
|
||||
height:420px;
|
||||
}
|
||||
.data-type .title.editer {
|
||||
line-height:400px;
|
||||
}
|
||||
|
||||
/*清除parding*/
|
||||
.padding-clear {
|
||||
padding-right: 0px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
/* 文件上传 */
|
||||
/*a upload */
|
||||
.a-upload {
|
||||
padding: 4px 10px;
|
||||
height: 35px;
|
||||
line-height: 25px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
color: #888;
|
||||
background: #fafafa;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1
|
||||
}
|
||||
.a-upload input {
|
||||
position: absolute;
|
||||
font-size: 100px;
|
||||
right: 0;
|
||||
top: 0;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
cursor: pointer
|
||||
}
|
||||
.a-upload:hover {
|
||||
color: #444;
|
||||
background: #eee;
|
||||
border-color: #ccc;
|
||||
text-decoration: none
|
||||
}
|
||||
/**/
|
||||
#listTable td{
|
||||
vertical-align: middle;
|
||||
}
|
||||
.pic dl {
|
||||
float: left;
|
||||
position: relative;
|
||||
}
|
||||
.pic dl dd {
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
cursor: pointer;
|
||||
background: #666;
|
||||
color: #fff;
|
||||
padding: 2px;
|
||||
}
|
||||
.pic img {
|
||||
max-height: 100px;
|
||||
margin: 5px 0;
|
||||
margin-right: 5px;
|
||||
}
|
||||
/*header*/
|
||||
.dropdown-menu > li > a {
|
||||
margin: 0;
|
||||
padding: 7px 20px;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
margin-top: 0px;
|
||||
}
|
||||
/* tag */
|
||||
.labelS {
|
||||
padding: 5px 10px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 5px;
|
||||
border: 1px solid;
|
||||
border-radius: 5px;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
border-color:#6495ED;
|
||||
}
|
||||
.labelCheck{
|
||||
border-color: rgb(100, 149, 237);
|
||||
background-color: rgba(100, 149, 237, 0.19);
|
||||
}
|
||||
@ -1,175 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
.flex{ display: -webkit-box; display: -moz-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; }
|
||||
#app .layout{ border:1px solid #d7dde4; background:#f5f7f9; position:relative; border-radius:4px; overflow:hidden}
|
||||
|
||||
#app .layout-logo{ width:100px; height:30px; background:#5b6270; border-radius:3px; float:left; position:relative; top:15px; left:20px}
|
||||
|
||||
#app .layout-copy{ text-align:center; padding:10px 0 20px; color:#9ea7b4}
|
||||
|
||||
#app .layout-ceiling{ background:#464c5b; padding:10px 0; overflow:hidden}
|
||||
|
||||
#app .layout-ceiling-main{ float:right; margin-right:15px; }
|
||||
|
||||
#app .layout-ceiling-main a{ color:#9ba7b5}
|
||||
|
||||
#app .layout-breadcrumb{ padding:10px 15px 0}
|
||||
|
||||
#app .layout-content{ min-height:200px; margin:15px; overflow:hidden; background:#fff; border-radius:4px; margin-right: 0; }
|
||||
|
||||
#app .layout-content-main{ padding-left:10px; position: relative; width: 98.5%; }
|
||||
|
||||
#app .layout-copy{ text-align:center; padding:10px 0 20px; color:#9ea7b4}
|
||||
|
||||
#app .layout-menu-left{ background:#464c5b}
|
||||
|
||||
#app .layout-header{ height:40px; padding-left:15px; background:#fff; box-shadow:0 1px 1px rgba(0,0,0,.1)}
|
||||
|
||||
#app .layout-logo-left{ width:90%; height:30px; background:#5b6270; border-radius:3px; margin:15px auto}
|
||||
|
||||
#app .m-frame{ position: absolute; background-color: #fff; }
|
||||
|
||||
#app .m-tag-item{ display: inline-block}
|
||||
|
||||
#app .layout-header{ padding-left:15px; margin-bottom: 5px; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#table-list{ padding: 25px 25px 0 25px; }
|
||||
|
||||
#table-list .mp-search-wrapper{ float: right; margin-left: 12px; }
|
||||
|
||||
#table-list .mp-header-wrapper{ overflow: hidden; }
|
||||
|
||||
#table-list .mp-header-wrapper h1{ padding-left:15px; float: left; font-size: 18px; line-height: 24px; padding-bottom: 20px; font-weight: 400; color: #464c5b; }
|
||||
|
||||
|
||||
|
||||
.mp-form{ padding: 20px 20px 20px 0; }
|
||||
|
||||
.mp-form .ivu-tree li{ margin: 0; }
|
||||
|
||||
.mp-form .ivu-color-picker .ivu-select-dropdown{ left: -38px !important; }
|
||||
|
||||
.mp-form .mp-upload{ display: inline-block; }
|
||||
|
||||
.mp-form .demo-upload-list{ display: inline-block; width: 60px; height: 60px; text-align: center; line-height: 60px; border: 1px solid transparent; border-radius: 4px; overflow: hidden; background: #fff; position: relative; box-shadow: 0 1px 1px rgba(0,0,0,.2); margin-right: 4px; }
|
||||
|
||||
.mp-form .demo-upload-list img{ width: 100%; height: 100%; }
|
||||
|
||||
.mp-form .demo-upload-list-cover{ display: none; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,.6); }
|
||||
|
||||
.mp-form .demo-upload-list:hover .demo-upload-list-cover{ display: block; }
|
||||
|
||||
.mp-form .demo-upload-list-cover i{ color: #fff; font-size: 20px; cursor: pointer; margin: 0 2px; }
|
||||
|
||||
[v-cloak]{ display: none}
|
||||
|
||||
.mp-form .mp-upload-btn{ width:58px; height:58px; line-height:58px; }
|
||||
|
||||
.mp-form .add-submit-item .ivu-btn{ position: fixed; left: 0; bottom: 0; border-radius: 0; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.frameMove-enter-active{ animation-name: slideInLeft; animation-duration: 0.4s !important; }
|
||||
|
||||
.frameMove-leave-active{ animation-name: slideOutRight; animation-duration: 0.4s !important; }
|
||||
|
||||
.vertical-center-modal{ display: flex; align-items: center; justify-content: center; }
|
||||
|
||||
.vertical-center-modal .ivu-modal{ top: 0; }
|
||||
|
||||
.vertical-center-modal .ivu-modal-header{ z-index: 9; position: relative; }
|
||||
|
||||
.vertical-center-modal .ivu-modal-close{ z-index: 10; }
|
||||
|
||||
.layout-header{ height:40px; background:#fff; box-shadow:0 1px 1px rgba(0,0,0,.1); }
|
||||
|
||||
.wechat-reply-wrapper .fl{ float: left; }
|
||||
.wechat-reply-wrapper .fr{ float: right; }
|
||||
.wechat-reply-wrapper .clearfix:after{ content:"."; display:block; height:0; visibility:hidden; clear:both; }
|
||||
.wechat-reply-wrapper .ibox-title{ padding:15px; font-size: 16px; border-bottom: 1px solid #e7eaec; }
|
||||
.wechat-reply-wrapper .ibox-title p{ border-left: 2px solid #2494f2; text-indent: 8px; }
|
||||
.wechat-reply-wrapper .ibox-content{ padding: 15px; }
|
||||
.wechat-reply-wrapper .ibox-content .view-wrapper{ position: relative; width: 317px; background-image:url(../img/mobile_head.png); background-repeat: no-repeat; background-position: left top; background-color: #f5f5f5; }
|
||||
.wechat-reply-wrapper .ibox-content .view-wrapper .mobile-header{ position: absolute; left: 0; top: 36px; width: 100%; text-align: center; color: #fff; font-size: 16px; }
|
||||
.wechat-reply-wrapper .ibox-content .view-wrapper .view-body{ margin-top: 65px; background-color: #f5f5f5; height: 500px; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .time-wrapper{ margin-bottom: 10px; text-align: center; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .time-wrapper .time{ display: inline-block; color: #f5f5f5; display: inline-block; color: #f5f5f5; background: rgba(0,0,0,.3); padding: 3px 8px; border-radius: 3px; font-size: 12px; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item{ display: none; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item.show{ display: none; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item .avatar{ width: 40px; height: 40px; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item .avatar img{ max-width: 100%; height: auto; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content{ position: relative; max-width: 60%; min-height: 40px; margin-left: 15px; padding: 10px; border: 1px solid #ccc; word-break: break-all; word-wrap: break-word; line-height: 1.5; border-radius: 5px; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content .picbox{ max-width: 100%; }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content:before{ content: ''; position: absolute; left: -13px; top: 11px; display: block; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 10px solid #ccc; -webkit-transform: rotate(90deg); transform: rotate(90deg); }
|
||||
.wechat-reply-wrapper .view-wrapper .view-body .view-item .box-content:after{ content: ''; content: ''; position: absolute; left: -12px; top: 11px; display: block; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 10px solid #f5f5f5; -webkit-transform: rotate(90deg); transform: rotate(90deg); }
|
||||
.wechat-reply-wrapper .submit{text-align: center;}
|
||||
/* 图文 */
|
||||
.view-wrapper .view-body .view-item.news-box{ width: 100%; background-color: #fff; border-radius: 5px; }
|
||||
.view-wrapper .view-body .view-item .vn-content{ padding:0;}
|
||||
.view-wrapper .view-body .view-item .vn-content .vn-title{ line-height: 1.5; font-size: 16px; }
|
||||
.view-wrapper .view-body .view-item .vn-content .vn-time{ padding: 5px 0; font-size: 12px; color: #999; }
|
||||
.view-wrapper .view-body .view-item .vn-content .vn-picture{ width: 100%; height: 150px; background-size: cover; background-position: center center; border-radius: 5px 5px 0 0;}
|
||||
.view-wrapper .view-body .view-item .vn-content .vn-picture-info{ line-height: 22px; color: #7b7b7b; padding: 0; display: block; overflow: hidden; word-break: break-all; text-overflow: ellipsis; font-size: 12px; white-space: nowrap; }
|
||||
.view-wrapper .view-body .view-item .vn-more{ display: block; padding: 10px 0 0; border-top: 1px solid #dddddd; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
||||
.view-wrapper .view-body .view-item .vn-content .con-item-box{ position: relative; }
|
||||
.view-wrapper .view-body .view-item .vn-content .con-item-box .first-title{ width: 100%; height: 44px; line-height: 44px; font-size: 14px; position: absolute; left: 0; bottom: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; /*background: rgba(0,0,0,.8);*/ color: #fff; text-indent: 1em; }
|
||||
.view-wrapper .view-body .view-item .vn-content .con-item-list{ margin-top: 10px; margin:6px 10px 0 10px; border-top: 1px solid #FBFBFB; }
|
||||
.view-wrapper .view-body .view-item .vn-content .con-item-list .list-tit-info{ width: 70%; line-height: 1.5; word-wrap:break-word; }
|
||||
.view-wrapper .view-body .view-item .vn-content .con-item-list .list-pic{ width: 20%; min-height: 50px; background-size: cover; background-position: center center; }
|
||||
|
||||
|
||||
|
||||
/* 音乐 */
|
||||
.view-wrapper .view-body .view-item.music-box .box-content{ position: relative; width: 100%; background: #080; color: #fff; border-color: #080; }
|
||||
.view-wrapper .view-body .view-item.music-box .box-content p{ width: 75%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
||||
.view-wrapper .view-body .view-item.music-box .box-content .music-icon{ position: absolute; right: 11px; top: 50%; width: 30px; height: 30px; background: #0a0; text-align: center; line-height: 30px; margin-top: -15px; font-size: 16px; }
|
||||
|
||||
|
||||
.view-wrapper .view-body .view-item.music-box .box-content:after{ display: none; }
|
||||
.view-wrapper .view-body .view-item.music-box .box-content:before{ border-top: 10px solid #080; }
|
||||
/* 视频 */
|
||||
.view-wrapper .view-body .view-item.video-box{ width: 100%; background-color: #fff; border: 1px solid #ccc; border-radius: 5px; }
|
||||
.view-wrapper .view-body .view-item.video-box .vn-title{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
||||
|
||||
/* 右侧控制器 */
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper{ position: relative; width: 535px; height: 565px; padding: 0; margin-left: 20px; border: 1px solid #e2e2e2; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-title{ position: absolute; left: 71px; top: -12px; width: auto; padding: 0 10px; font-size: 20px; background-color: #fff; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body{ margin-top: 40px; padding: 0 10px; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group label{ font-weight: normal; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .tips:after{ content: '*'; color: red; position: absolute; margin-left: 4px; font-weight: bold; line-height: 1.8em; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .group-item{ position: relative; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .group-item .file-btn{ position: absolute; right: 15px; top: 0; display: block; width: 66px; border-radius: 6px; cursor: pointer; padding: .5rem; background-color: #18a689; color: #fff; text-align: center; height: 100%; line-height: 23px; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .form-group .group-item textarea{ resize: none; width: 100%; height: 100px; padding: 10px; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .tips-info{ padding-left: 100px; font-size: 12px; color: #737373; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .control-main .control-item{ display: none; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body .control-main .control-item.show{ display: block; }
|
||||
|
||||
/* 微信菜单定制 */
|
||||
.wechat-menu{ position: relative; }
|
||||
.wechat-menu ul{ padding: 0; }
|
||||
.wechat-menu .menu-footer{ position: absolute; left:0; bottom: -10px; width: 100%; padding-left: 43px; background: url("../img/mobile_foot.png") no-repeat 0 0; border-top: 1px solid #e7e7eb; }
|
||||
.wechat-menu .menu-footer span{display: block;}
|
||||
.wechat-menu .menu-footer .icon-add{ background: url(../img/index.png) 0 0 no-repeat; width: 14px; height: 14px; vertical-align: middle; display: inline-block; margin-top: -2px; border-bottom: none!important; }
|
||||
.wechat-menu .menu-footer li{ position: relative; -webkit-flex: 1; -moz-flex:1; -ms-flex: 1; flex: 1; height: 50px; line-height: 50px; text-align: center; cursor: pointer; list-style: none; border: 1px solid transparent; border-right: 1px solid #e7e7eb; }
|
||||
.wechat-menu .menu-footer .icon-sub{ background: url(../img/index.png) 0 -48px no-repeat; width: 7px; height: 7px; vertical-align: middle; display: inline-block; margin-right: 2px; margin-top: -2px; }
|
||||
.wechat-menu .menu-footer .sub-menu{ position: absolute; border-radius: 3px; border: 1px solid #d0d0d0; display: block; bottom: 60px; width: 100%; background-color: #fafafa; }
|
||||
.wechat-menu .menu-footer .sub-menu:after{ content: ''; position: absolute; width: 10px; height: 10px; background: #fafafa;-webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); bottom: -5px; border-bottom: 1px solid #d0d0d0; border-right: 1px solid #d0d0d0; left: 50%; margin-left: -5px; }
|
||||
.wechat-menu .menu-footer .sub-menu li{border-right: 0; border-bottom: 1px solid #d0d0d0;}
|
||||
.wechat-menu .menu-footer .sub-menu li:last-child{border-bottom: 0;}
|
||||
.wechat-menu .menu-footer .active{border:1px solid #44b549;}
|
||||
.wechat-menu .menu-footer .sub-menu li.active{border:1px solid #44b549 !important;}
|
||||
/* 右侧 */
|
||||
.wechat-menu .menu-control .popover-title{ padding: 8px 14px; margin: 0; font-size: 14px; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; border-radius: 5px 5px 0 0; font-weight: 400; }
|
||||
.wechat-menu .menu-control .popover-title a{ color: #06C; font-size: 12px; }
|
||||
.wechat-menu .menu-control .tips-txt{line-height: 40px; padding: 0 20px;}
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content{ padding: 0 20px; margin-top: 0; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content .radio{ display: inline-block !important; width: 45%; }
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content .menu-control-box {padding: 0 20px;}
|
||||
.wechat-reply-wrapper .ibox-content .control-wrapper .control-body.menu-content .menu-control-box .radio{ display: block!important; width: 100%; }
|
||||
.menu-control-box .item{ display: none; }
|
||||
.menu-control-box .show{ display: block; }
|
||||
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 208 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 231 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 12 KiB |