引入easyadmin'
@@ -1,8 +1,7 @@
|
||||
<IfModule mod_rewrite.c>
|
||||
Options +FollowSymlinks -Multiviews
|
||||
RewriteEngine On
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
|
||||
</IfModule>
|
||||
Options +FollowSymlinks -Multiviews
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
|
||||
</IfModule>
|
||||
@@ -14,6 +14,15 @@ namespace think;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
// 声明全局变量
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
define('ROOT_PATH', __DIR__ . DS . '..' . DS);
|
||||
|
||||
// 判断是否安装程序
|
||||
if (!is_file(ROOT_PATH . 'config' . DS . 'install' . DS . 'lock' . DS . 'install.lock')) {
|
||||
exit(header("location:/install.php"));
|
||||
}
|
||||
|
||||
// 执行HTTP应用并响应
|
||||
$http = (new App())->http;
|
||||
|
||||
|
||||
563
public/install.php
Normal file
@@ -0,0 +1,563 @@
|
||||
<?php
|
||||
|
||||
ini_set('display_errors', 'On');
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
use think\facade\Db;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
require __DIR__ . '/../vendor/topthink/framework/src/helper.php';
|
||||
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
define('ROOT_PATH', __DIR__ . DS . '..' . DS);
|
||||
define('INSTALL_PATH', ROOT_PATH . 'config' . DS . 'install' . DS);
|
||||
define('CONFIG_PATH', ROOT_PATH . 'config' . DS);
|
||||
|
||||
$currentHost = ($_SERVER['SERVER_PORT'] == 443 ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . '/';
|
||||
|
||||
function isReadWrite($file)
|
||||
{
|
||||
if (DIRECTORY_SEPARATOR == '\\') {
|
||||
return true;
|
||||
}
|
||||
if (DIRECTORY_SEPARATOR == '/' && @ ini_get("safe_mode") === false) {
|
||||
return is_writable($file);
|
||||
}
|
||||
if (!is_file($file) || ($fp = @fopen($file, "r+")) === false) {
|
||||
return false;
|
||||
}
|
||||
fclose($fp);
|
||||
return true;
|
||||
}
|
||||
|
||||
$errorInfo = null;
|
||||
if (is_file(INSTALL_PATH . 'lock' . DS . 'install.lock')) {
|
||||
$errorInfo = '已安装系统,如需重新安装请删除文件:/config/install/lock/install.lock';
|
||||
} elseif (!isReadWrite(ROOT_PATH . 'config' . DS)) {
|
||||
$errorInfo = ROOT_PATH . 'config' . DS . ':读写权限不足';
|
||||
} elseif (!isReadWrite(ROOT_PATH . 'runtime' . DS)) {
|
||||
$errorInfo = ROOT_PATH . 'runtime' . DS . ':读写权限不足';
|
||||
} elseif (!isReadWrite(ROOT_PATH . 'public' . DS)) {
|
||||
$errorInfo = ROOT_PATH . 'public' . DS . ':读写权限不足';
|
||||
} elseif (!checkPhpVersion('7.1.0')) {
|
||||
$errorInfo = 'PHP版本不能小于7.1.0';
|
||||
} elseif (!extension_loaded("PDO")) {
|
||||
$errorInfo = '当前未开启PDO,无法进行安装';
|
||||
}
|
||||
|
||||
// POST请求
|
||||
if (isAjax()) {
|
||||
$post = $_POST;
|
||||
|
||||
$cover = $post['cover'] == 1 ? true : false;
|
||||
$database = $post['database'];
|
||||
$hostname = $post['hostname'];
|
||||
$hostport = $post['hostport'];
|
||||
$dbUsername = $post['db_username'];
|
||||
$dbPassword = $post['db_password'];
|
||||
$prefix = $post['prefix'];
|
||||
$adminUrl = $post['admin_url'];
|
||||
$username = $post['username'];
|
||||
$password = $post['password'];
|
||||
|
||||
// 参数验证
|
||||
$validateError = null;
|
||||
|
||||
// 判断是否有特殊字符
|
||||
$check = preg_match('/[0-9a-zA-Z]+$/', $adminUrl, $matches);
|
||||
if (!$check) {
|
||||
$validateError = '后台地址不能含有特殊字符, 只能包含字母或数字。';
|
||||
$data = [
|
||||
'code' => 0,
|
||||
'msg' => $validateError,
|
||||
];
|
||||
die(json_encode($data));
|
||||
}
|
||||
|
||||
if (strlen($adminUrl) < 2) {
|
||||
$validateError = '后台的地址不能小于2位数';
|
||||
} elseif (strlen($password) < 5) {
|
||||
$validateError = '管理员密码不能小于5位数';
|
||||
} elseif (strlen($username) < 4) {
|
||||
$validateError = '管理员账号不能小于4位数';
|
||||
}
|
||||
if (!empty($validateError)) {
|
||||
$data = [
|
||||
'code' => 0,
|
||||
'msg' => $validateError,
|
||||
];
|
||||
die(json_encode($data));
|
||||
}
|
||||
|
||||
// DB类初始化
|
||||
$config = [
|
||||
'type' => 'mysql',
|
||||
'hostname' => $hostname,
|
||||
'username' => $dbUsername,
|
||||
'password' => $dbPassword,
|
||||
'hostport' => $hostport,
|
||||
'charset' => 'utf8',
|
||||
'prefix' => $prefix,
|
||||
'debug' => true,
|
||||
];
|
||||
Db::setConfig([
|
||||
'default' => 'mysql',
|
||||
'connections' => [
|
||||
'mysql' => $config,
|
||||
'install' => array_merge($config, ['database' => $database]),
|
||||
],
|
||||
]);
|
||||
|
||||
// 检测数据库连接
|
||||
if (!checkConnect()) {
|
||||
$data = [
|
||||
'code' => 0,
|
||||
'msg' => '数据库连接失败',
|
||||
];
|
||||
die(json_encode($data));
|
||||
}
|
||||
// 检测数据库是否存在
|
||||
if (!$cover && checkDatabase($database)) {
|
||||
$data = [
|
||||
'code' => 0,
|
||||
'msg' => '数据库已存在,请选择覆盖安装或者修改数据库名',
|
||||
];
|
||||
die(json_encode($data));
|
||||
}
|
||||
// 创建数据库
|
||||
createDatabase($database);
|
||||
// 导入sql语句等等
|
||||
$install = install($username, $password, array_merge($config, ['database' => $database]), $adminUrl);
|
||||
if ($install !== true) {
|
||||
$data = [
|
||||
'code' => 0,
|
||||
'msg' => '系统安装失败:' . $install,
|
||||
];
|
||||
die(json_encode($data));
|
||||
}
|
||||
$data = [
|
||||
'code' => 1,
|
||||
'msg' => '系统安装成功,正在跳转登录页面',
|
||||
'url' => $adminUrl,
|
||||
];
|
||||
die(json_encode($data));
|
||||
}
|
||||
|
||||
|
||||
function isAjax()
|
||||
{
|
||||
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function isPost()
|
||||
{
|
||||
return ($_SERVER['REQUEST_METHOD'] == 'POST' && checkurlHash($GLOBALS['verify'])
|
||||
&& (empty($_SERVER['HTTP_REFERER']) || preg_replace("~https?:\/\/([^\:\/]+).*~i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("~([^\:]+).*~", "\\1", $_SERVER['HTTP_HOST']))) ? 1 : 0;
|
||||
}
|
||||
|
||||
function checkPhpVersion($version)
|
||||
{
|
||||
$php_version = explode('-', phpversion());
|
||||
$check = strnatcasecmp($php_version[0], $version) >= 0 ? true : false;
|
||||
return $check;
|
||||
}
|
||||
|
||||
function checkConnect()
|
||||
{
|
||||
try {
|
||||
Db::query("select version()");
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function checkDatabase($database)
|
||||
{
|
||||
$check = Db::query("SELECT * FROM information_schema.schemata WHERE schema_name='{$database}'");
|
||||
if (empty($check)) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function createDatabase($database)
|
||||
{
|
||||
try {
|
||||
Db::execute("CREATE DATABASE IF NOT EXISTS `{$database}` DEFAULT CHARACTER SET utf8");
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function parseSql($sql = '', $to, $from)
|
||||
{
|
||||
list($pure_sql, $comment) = [[], false];
|
||||
$sql = explode("\n", trim(str_replace(["\r\n", "\r"], "\n", $sql)));
|
||||
foreach ($sql as $key => $line) {
|
||||
if ($line == '') {
|
||||
continue;
|
||||
}
|
||||
if (preg_match("/^(#|--)/", $line)) {
|
||||
continue;
|
||||
}
|
||||
if (preg_match("/^\/\*(.*?)\*\//", $line)) {
|
||||
continue;
|
||||
}
|
||||
if (substr($line, 0, 2) == '/*') {
|
||||
$comment = true;
|
||||
continue;
|
||||
}
|
||||
if (substr($line, -2) == '*/') {
|
||||
$comment = false;
|
||||
continue;
|
||||
}
|
||||
if ($comment) {
|
||||
continue;
|
||||
}
|
||||
if ($from != '') {
|
||||
$line = str_replace('`' . $from, '`' . $to, $line);
|
||||
}
|
||||
if ($line == 'BEGIN;' || $line == 'COMMIT;') {
|
||||
continue;
|
||||
}
|
||||
array_push($pure_sql, $line);
|
||||
}
|
||||
//$pure_sql = implode($pure_sql, "\n");
|
||||
$pure_sql = implode("\n",$pure_sql);
|
||||
$pure_sql = explode(";\n", $pure_sql);
|
||||
return $pure_sql;
|
||||
}
|
||||
|
||||
function install($username, $password, $config, $adminUrl)
|
||||
{
|
||||
$sqlPath = file_get_contents(INSTALL_PATH . 'sql' . DS . 'install.sql');
|
||||
$sqlArray = parseSql($sqlPath, $config['prefix'], 'ea_');
|
||||
Db::startTrans();
|
||||
try {
|
||||
foreach ($sqlArray as $vo) {
|
||||
Db::connect('install')->execute($vo);
|
||||
}
|
||||
Db::connect('install')
|
||||
->name('system_admin')
|
||||
->where('id', 1)
|
||||
->delete();
|
||||
Db::connect('install')
|
||||
->name('system_admin')
|
||||
->insert([
|
||||
'id' => 1,
|
||||
'username' => $username,
|
||||
'head_img' => '/static/admin/images/head.jpg',
|
||||
'password' => password($password),
|
||||
'create_time' => time(),
|
||||
]);
|
||||
|
||||
// 处理安装文件
|
||||
!is_dir(INSTALL_PATH) && @mkdir(INSTALL_PATH);
|
||||
!is_dir(INSTALL_PATH . 'lock' . DS) && @mkdir(INSTALL_PATH . 'lock' . DS);
|
||||
@file_put_contents(INSTALL_PATH . 'lock' . DS . 'install.lock', date('Y-m-d H:i:s'));
|
||||
@file_put_contents(CONFIG_PATH . 'app.php', getAppConfig($adminUrl));
|
||||
@file_put_contents(CONFIG_PATH . 'database.php', getDatabaseConfig($config));
|
||||
Db::commit();
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return $e->getMessage();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function password($value)
|
||||
{
|
||||
$value = sha1('blog_') . md5($value) . md5('_encrypt') . sha1($value);
|
||||
return sha1($value);
|
||||
}
|
||||
|
||||
function getAppConfig($admin)
|
||||
{
|
||||
$config = <<<EOT
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 应用设置
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
use think\\facade\Env;
|
||||
|
||||
return [
|
||||
// 应用地址
|
||||
'app_host' => Env::get('app.host', ''),
|
||||
// 应用的命名空间
|
||||
'app_namespace' => '',
|
||||
// 是否启用路由
|
||||
'with_route' => true,
|
||||
// 是否启用事件
|
||||
'with_event' => true,
|
||||
// 开启应用快速访问
|
||||
'app_express' => true,
|
||||
// 默认应用
|
||||
'default_app' => 'index',
|
||||
// 默认时区
|
||||
'default_timezone' => 'Asia/Shanghai',
|
||||
// 应用映射(自动多应用模式有效)
|
||||
'app_map' => [
|
||||
Env::get('easyadmin.admin', '{$admin}') => 'admin',
|
||||
],
|
||||
// 后台别名
|
||||
'admin_alias_name' => Env::get('easyadmin.admin', '{$admin}'),
|
||||
// 域名绑定(自动多应用模式有效)
|
||||
'domain_bind' => [],
|
||||
// 禁止URL访问的应用列表(自动多应用模式有效)
|
||||
'deny_app_list' => ['common'],
|
||||
// 异常页面的模板文件
|
||||
'exception_tmpl' => Env::get('app_debug') == 1 ? app()->getThinkPath() . 'tpl/think_exception.tpl' : app()->getBasePath() . 'common' . DIRECTORY_SEPARATOR . 'tpl' . DIRECTORY_SEPARATOR . 'think_exception.tpl',
|
||||
// 跳转页面的成功模板文件
|
||||
'dispatch_success_tmpl' => app()->getBasePath() . 'common' . DIRECTORY_SEPARATOR . 'tpl' . DIRECTORY_SEPARATOR . 'dispatch_jump.tpl',
|
||||
// 跳转页面的失败模板文件
|
||||
'dispatch_error_tmpl' => app()->getBasePath() . 'common' . DIRECTORY_SEPARATOR . 'tpl' . DIRECTORY_SEPARATOR . 'dispatch_jump.tpl',
|
||||
// 错误显示信息,非调试模式有效
|
||||
'error_message' => '页面错误!请稍后再试~',
|
||||
// 显示错误信息
|
||||
'show_error_msg' => false,
|
||||
// 静态资源上传到OSS前缀
|
||||
'oss_static_prefix' => Env::get('easyadmin.oss_static_prefix', 'static_easyadmin'),
|
||||
];
|
||||
|
||||
EOT;
|
||||
return $config;
|
||||
}
|
||||
|
||||
function getDatabaseConfig($data)
|
||||
{
|
||||
$config = <<<EOT
|
||||
<?php
|
||||
use think\\facade\Env;
|
||||
|
||||
return [
|
||||
// 默认使用的数据库连接配置
|
||||
'default' => Env::get('database.driver', 'mysql'),
|
||||
|
||||
// 自定义时间查询规则
|
||||
'time_query_rule' => [],
|
||||
|
||||
// 自动写入时间戳字段
|
||||
// true为自动识别类型 false关闭
|
||||
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
|
||||
'auto_timestamp' => true,
|
||||
|
||||
// 时间字段取出后的默认时间格式
|
||||
'datetime_format' => 'Y-m-d H:i:s',
|
||||
|
||||
// 数据库连接配置信息
|
||||
'connections' => [
|
||||
'mysql' => [
|
||||
// 数据库类型
|
||||
'type' => Env::get('database.type', 'mysql'),
|
||||
// 服务器地址
|
||||
'hostname' => Env::get('database.hostname', '{$data['hostname']}'),
|
||||
// 数据库名
|
||||
'database' => Env::get('database.database', '{$data['database']}'),
|
||||
// 用户名
|
||||
'username' => Env::get('database.username', '{$data['username']}'),
|
||||
// 密码
|
||||
'password' => Env::get('database.password', '{$data['password']}'),
|
||||
// 端口
|
||||
'hostport' => Env::get('database.hostport', '{$data['hostport']}'),
|
||||
// 数据库连接参数
|
||||
'params' => [],
|
||||
// 数据库编码默认采用utf8
|
||||
'charset' => Env::get('database.charset', 'utf8'),
|
||||
// 数据库表前缀
|
||||
'prefix' => Env::get('database.prefix', '{$data['prefix']}'),
|
||||
|
||||
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
|
||||
'deploy' => 0,
|
||||
// 数据库读写是否分离 主从式有效
|
||||
'rw_separate' => false,
|
||||
// 读写分离后 主服务器数量
|
||||
'master_num' => 1,
|
||||
// 指定从服务器序号
|
||||
'slave_no' => '',
|
||||
// 是否严格检查字段是否存在
|
||||
'fields_strict' => true,
|
||||
// 是否需要断线重连
|
||||
'break_reconnect' => false,
|
||||
// 监听SQL
|
||||
'trigger_sql' => true,
|
||||
// 开启字段缓存
|
||||
'fields_cache' => false,
|
||||
// 字段缓存路径
|
||||
'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
|
||||
],
|
||||
|
||||
// 更多的数据库配置信息
|
||||
],
|
||||
];
|
||||
|
||||
EOT;
|
||||
return $config;
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>安装EasyAdmin后台程序</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="static/plugs/layui-v2.5.6/css/layui.css?v=<?php echo time() ?>" media="all">
|
||||
<link rel="stylesheet" href="static/common/css/insatll.css?v=<?php echo time() ?>" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<h1><img src="static/common/images/logo-1.png"></h1>
|
||||
<h2>安装EasyAdmin后台系统</h2>
|
||||
<div class="content">
|
||||
<p class="desc">
|
||||
使用过程中遇到任何问题可参考
|
||||
<a href="http://easyadmin.99php.cn/docs" target="_blank">文档教程</a>
|
||||
<a href="https://jq.qq.com/?_wv=1027&k=5IHJawE">QQ交流群</a>
|
||||
</p>
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<?php if ($errorInfo): ?>
|
||||
<div class="error">
|
||||
<?php echo $errorInfo; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="bg">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库地址</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" name="hostname" autocomplete="off" lay-verify="required" lay-reqtext="请输入数据库地址" placeholder="请输入数据库地址" value="host.docker.internal">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库端口</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" name="hostport" autocomplete="off" lay-verify="required" lay-reqtext="请输入数据库端口" placeholder="请输入数据库端口" value="3306">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" name="database" autocomplete="off" lay-verify="required" lay-reqtext="请输入数据库名称" placeholder="请输入数据库名称" value="easyadmin">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据表前缀</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" name="prefix" autocomplete="off" lay-verify="required" lay-reqtext="请输入数据表前缀" placeholder="请输入数据表前缀" value="ea_">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库账号</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" name="db_username" autocomplete="off" lay-verify="required" lay-reqtext="请输入数据库账号" placeholder="请输入数据库账号" value="root">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">数据库密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" class="layui-input" name="db_password" autocomplete="off" lay-verify="required" lay-reqtext="请输入数据库密码" placeholder="请输入数据库密码">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">覆盖数据库</label>
|
||||
<div class="layui-input-block" style="text-align: left">
|
||||
<input type="radio" name="cover" value="1" title="覆盖">
|
||||
<input type="radio" name="cover" value="0" title="不覆盖" checked>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">后台的地址</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" id="admin_url" name="admin_url" autocomplete="off" lay-verify="required" lay-reqtext="请输入后台的地址" placeholder="为了后台安全,不建议将后台路径设置为admin" value="admin">
|
||||
<span class="tips">后台登录地址: <?php echo $currentHost; ?><span id="admin_name">admin</span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">管理员账号</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" name="username" autocomplete="off" lay-verify="required" lay-reqtext="请输入管理员账号" placeholder="请输入管理员账号" value="admin">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">管理员密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" class="layui-input" name="password" autocomplete="off" lay-verify="required" lay-reqtext="请输入管理员密码" placeholder="请输入管理员密码">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-normal <?php echo $errorInfo ? 'layui-btn-disabled' : '' ?>" lay-submit="" lay-filter="install">确定安装</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script src="static/plugs/layui-v2.5.6/layui.js?v=<?php echo time() ?>" charset="utf-8"></script>
|
||||
<script>
|
||||
layui.use(['form', 'layer'], function () {
|
||||
var $ = layui.jquery,
|
||||
form = layui.form,
|
||||
layer = layui.layer;
|
||||
|
||||
$("#admin_url").bind("input propertychange", function () {
|
||||
var val = $(this).val();
|
||||
$("#admin_name").text(val);
|
||||
});
|
||||
|
||||
form.on('submit(install)', function (data) {
|
||||
if ($(this).hasClass('layui-btn-disabled')) {
|
||||
return false;
|
||||
}
|
||||
var _data = data.field;
|
||||
var loading = layer.msg('正在安装...', {
|
||||
icon: 16,
|
||||
shade: 0.2,
|
||||
time: false
|
||||
});
|
||||
$.ajax({
|
||||
url: window.location.href,
|
||||
type: 'post',
|
||||
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
dataType: "json",
|
||||
data: _data,
|
||||
timeout: 60000,
|
||||
success: function (data) {
|
||||
layer.close(loading);
|
||||
if (data.code === 1) {
|
||||
layer.msg(data.msg, {icon: 1}, function () {
|
||||
window.location.href = location.protocol + '//' + location.host + '/' + data.url;
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, {icon: 2});
|
||||
}
|
||||
},
|
||||
error: function (xhr, textstatus, thrown) {
|
||||
layer.close(loading);
|
||||
layer.msg('Status:' + xhr.status + ',' + xhr.statusText + ',请稍后再试!', {icon: 2});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
1
public/static/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
!.gitignore
|
||||
0
public/static/addons/.keep
Normal file
30
public/static/addons/alisms/js/config.js
Normal file
@@ -0,0 +1,30 @@
|
||||
define(["jquery", "admin", "vue"], function ($, admin, Vue) {
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
|
||||
/**
|
||||
* 添加模板
|
||||
*/
|
||||
$('.add-template').on('click', function () {
|
||||
var dataKey = document.querySelectorAll("tr[data-key]"),
|
||||
key = 0;
|
||||
if (dataKey.length > 0) key = parseInt($(dataKey[dataKey.length - 1]).attr('data-key')) + 1;
|
||||
var html = ' <tr data-key="' + key + '">\n' +
|
||||
' <td><input type="text" name="name[' + key + ']" lay-verify="required" autocomplete="off" class="layui-input" value=""></td>\n' +
|
||||
' <td><input type="text" name="value[' + key + ']" lay-verify="required" autocomplete="off" class="layui-input" value=""></td>\n' +
|
||||
' <td><input type="text" name="remark[' + key + ']" lay-verify="required" autocomplete="off" class="layui-input" value=""></td>\n' +
|
||||
' <td><span class="layui-btn layui-btn-danger layui-btn-sm" delete-template="">删除</span></td>\n' +
|
||||
' </tr>';
|
||||
$('.template-list').append(html);
|
||||
});
|
||||
|
||||
$('body').on('click', '[delete-template]', function () {
|
||||
$(this).parent().parent().remove();
|
||||
});
|
||||
|
||||
admin.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
37
public/static/addons/alisms/js/record.js
Normal file
@@ -0,0 +1,37 @@
|
||||
define(["jquery", "admin",], function ($, admin) {
|
||||
|
||||
var init = {
|
||||
table_elem: 'currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: '/addons/alisms/record/index',
|
||||
delete_url: '/addons/alisms/record/del',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
admin.table.render({
|
||||
elem: '#' + init.table_elem,
|
||||
id: init.table_render_id,
|
||||
url: init.index_url,
|
||||
init: init,
|
||||
toolbar: ['refresh', 'delete'],
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID', sort: true, align: "center"},
|
||||
{field: 'phone', minWidth: 80, title: '发送手机', align: "center"},
|
||||
{field: 'content', minWidth: 80, title: '短信内容', align: "center"},
|
||||
{field: 'template', minWidth: 80, title: '短信模板', align: "center"},
|
||||
{field: 'result', minWidth: 80, title: '返回结果', align: "center"},
|
||||
{field: 'create_time', minWidth: 80, title: '发送时间', align: "center", search: 'range'},
|
||||
{
|
||||
width: 250, align: 'center', title: '操作', init: init, templet: admin.table.tool, operat: ['delete']
|
||||
}
|
||||
]],
|
||||
});
|
||||
|
||||
admin.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
25
public/static/admin/css/iconfont.css
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
@font-face {font-family: "iconfont";
|
||||
src: url('../fonts/iconfont/iconfont.eot?t=1487643189178'); /* IE9*/
|
||||
src: url('../fonts/iconfont/iconfont.eot?t=1487643189178#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url('../fonts/iconfont/iconfont.woff?t=1487643189178') format('woff'), /* chrome, firefox */
|
||||
url('../fonts/iconfont/iconfont.ttf?t=1487643189178') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
|
||||
url('../fonts/iconfont/iconfont.svg?t=1487643189178#iconfont') format('svg'); /* iOS 4.1- */
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
font-family:"iconfont" !important;
|
||||
font-size:16px;
|
||||
font-style:normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-max:before { content: "\e623"; }
|
||||
|
||||
.icon-restore:before { content: "\e624"; }
|
||||
|
||||
.icon-min:before { content: "\e625"; }
|
||||
|
||||
.icon-close:before { content: "\e626"; }
|
||||
|
||||
288
public/static/admin/css/login.css
Normal file
@@ -0,0 +1,288 @@
|
||||
|
||||
.demo {
|
||||
padding-top: 20px;
|
||||
text-align: center;
|
||||
color: #9abcda!important;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.main-body {
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
-moz-transform: translate(-50%, -50%);
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
-o-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item input {
|
||||
display: inline-block;
|
||||
width: 227px;
|
||||
height: 22px;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
font-size: 14px;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon-1 {
|
||||
background: url(../images/icon-login.png) no-repeat 1px 0;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon-2 {
|
||||
background: url(../images/icon-login.png) no-repeat -54px 0;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon-3 {
|
||||
background: url(../images/icon-login.png) no-repeat -106px 0;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon-4 {
|
||||
background: url(../images/icon-login.png) no-repeat 0 -43px;
|
||||
position: absolute;
|
||||
right: -10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon-5 {
|
||||
background: url(../images/icon-login.png) no-repeat -55px -43px;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon-6 {
|
||||
background: url(../images/icon-login.png) no-repeat 0 -93px;
|
||||
position: absolute;
|
||||
right: -10px;
|
||||
margin-top: 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.login-main .login-bottom .tip .icon-nocheck {
|
||||
display: inline-block;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 2px;
|
||||
border: solid 1px #9abcda;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
margin: 1px 8px 1px 1px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .tip .icon-check {
|
||||
margin: 0 7px 0 0;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border: none;
|
||||
background: url(../images/icon-login.png) no-repeat -111px -48px;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .icon {
|
||||
display: inline-block;
|
||||
width: 33px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item {
|
||||
width: 288px;
|
||||
height: 35px;
|
||||
border-bottom: 1px solid #dae1e6;
|
||||
margin-bottom: 35px;
|
||||
}
|
||||
|
||||
.login-main {
|
||||
width: 428px;
|
||||
position: relative;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.login-main .login-top {
|
||||
height: 117px;
|
||||
background-color: #148be4;
|
||||
border-radius: 12px 12px 0 0;
|
||||
font-family: SourceHanSansCN-Regular;
|
||||
font-size: 30px;
|
||||
font-weight: 400;
|
||||
font-stretch: normal;
|
||||
letter-spacing: 0;
|
||||
color: #fff;
|
||||
line-height: 117px;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
-webkit-transform: rotate(0);
|
||||
-moz-transform: rotate(0);
|
||||
-ms-transform: rotate(0);
|
||||
-o-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
|
||||
.login-main .login-top .bg1 {
|
||||
display: inline-block;
|
||||
width: 74px;
|
||||
height: 74px;
|
||||
background: #fff;
|
||||
opacity: .1;
|
||||
border-radius: 0 74px 0 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 43px;
|
||||
}
|
||||
|
||||
|
||||
.login-main .login-top .bg2 {
|
||||
display: inline-block;
|
||||
width: 94px;
|
||||
height: 94px;
|
||||
background: #fff;
|
||||
opacity: .1;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
right: -16px;
|
||||
top: -16px;
|
||||
}
|
||||
|
||||
.login-main .login-bottom {
|
||||
width: 428px;
|
||||
background: #fff;
|
||||
border-radius: 0 0 12px 12px;
|
||||
padding-bottom: 53px;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center {
|
||||
width: 288px;
|
||||
margin: 0 auto;
|
||||
padding-top: 40px;
|
||||
padding-bottom: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .tip {
|
||||
clear: both;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
width: 288px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
background: url(../images/loginbg.png) 0% 0% / cover no-repeat;
|
||||
position: static;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
input::-webkit-input-placeholder {
|
||||
color: #a6aebf;
|
||||
}
|
||||
|
||||
input::-moz-placeholder { /* Mozilla Firefox 19+ */
|
||||
color: #a6aebf;
|
||||
}
|
||||
|
||||
input:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
|
||||
color: #a6aebf;
|
||||
}
|
||||
|
||||
input:-ms-input-placeholder { /* Internet Explorer 10-11 */
|
||||
color: #a6aebf;
|
||||
}
|
||||
|
||||
input:-webkit-autofill { /* 取消Chrome记住密码的背景颜色 */
|
||||
-webkit-box-shadow: 0 0 0 1000px white inset !important;
|
||||
}
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .tip {
|
||||
clear: both;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
width: 288px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .tip .login-tip {
|
||||
font-family: MicrosoftYaHei;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
font-stretch: normal;
|
||||
letter-spacing: 0;
|
||||
color: #9abcda;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .tip .forget-password {
|
||||
font-stretch: normal;
|
||||
letter-spacing: 0;
|
||||
color: #1391ff;
|
||||
text-decoration: none;
|
||||
position: absolute;
|
||||
right: 62px;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .login-btn {
|
||||
width: 288px;
|
||||
height: 40px;
|
||||
background-color: #1E9FFF;
|
||||
border-radius: 16px;
|
||||
margin: 24px auto 0;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
letter-spacing: 0;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.login-main .login-bottom .center .item .validateImg {
|
||||
position: absolute;
|
||||
right: 1px;
|
||||
cursor: pointer;
|
||||
height: 36px;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
.footer {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
padding-bottom: 10px;
|
||||
text-shadow: #000 0.1em 0.1em 0.1em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.padding-5 {
|
||||
padding: 5px !important;
|
||||
}
|
||||
|
||||
.footer a, .footer span {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media screen and (max-width: 428px) {
|
||||
.login-main {
|
||||
width: 360px !important;
|
||||
}
|
||||
|
||||
.login-main .login-top {
|
||||
width: 360px !important;
|
||||
}
|
||||
|
||||
.login-main .login-bottom {
|
||||
width: 360px !important;
|
||||
}
|
||||
}
|
||||
521
public/static/admin/css/public.css
Normal file
@@ -0,0 +1,521 @@
|
||||
@import url("../../plugs/layui-v2.5.6/css/layui.css");
|
||||
@import url("../../plugs/font-awesome-4.7.0/css/font-awesome.min.css");
|
||||
@import url("../css/iconfont.css");
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
background: #f2f2f2;
|
||||
}
|
||||
|
||||
.layuimini-container {
|
||||
min-height: 250px;
|
||||
padding: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.layuimini-main {
|
||||
position: relative;
|
||||
padding: 15px 15px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #f2f2f2;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.layuimini-form .layui-form-item {
|
||||
position: relative;
|
||||
padding: 0 60px 0 0;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.layuimini-form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.easy-bg-white {
|
||||
background-color: #ffffff;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.hr-line {
|
||||
color: #fff;
|
||||
height: 1px;
|
||||
margin: 30px 0;
|
||||
background-color: #fff;
|
||||
border-top: 1px dashed #e7eaec;
|
||||
}
|
||||
|
||||
/**重写layui表格自适应*/
|
||||
.layuimini-container .layui-table-cell {
|
||||
height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/**数据表格-搜索表单样式*/
|
||||
.layuimini-container .table-search-fieldset {
|
||||
margin: 0;
|
||||
border: 1px solid #e6e6e6;
|
||||
padding: 10px 20px 5px 20px;
|
||||
color: #6b6b6b;
|
||||
}
|
||||
|
||||
.layuimini-container .table-search-fieldset input::-webkit-input-placeholder {
|
||||
color: #a9a9a9;
|
||||
}
|
||||
|
||||
.layuimini-container .table-search-fieldset input:-ms-input-placeholder {
|
||||
color: #a9a9a9;
|
||||
}
|
||||
|
||||
.layuimini-container .table-search-fieldset input::-ms-input-placeholder {
|
||||
color: #a9a9a9;
|
||||
}
|
||||
|
||||
/**图标选择器*/
|
||||
.layui-iconpicker-body.layui-iconpicker-body-page .hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**必填红点 */
|
||||
.layuimini-form > .layui-form-item .required:after {
|
||||
content: '*';
|
||||
color: red;
|
||||
position: absolute;
|
||||
margin-left: 4px;
|
||||
font-weight: bold;
|
||||
line-height: 1.8em;
|
||||
top: 6px;
|
||||
right: 5px;
|
||||
}
|
||||
|
||||
/*.layuimini-form>.layui-form-item>.layui-form-label {width:120px !important;}*/
|
||||
/*.layuimini-form>.layui-form-item>.layui-input-block {margin-left:150px !important;}*/
|
||||
.layuimini-form > .layui-form-item > .layui-input-block tip, .layuimini-form > .layui-form-item > .layui-inline tip {
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
line-height: 15px;
|
||||
font-size: 10px;
|
||||
color: #a29c9c;
|
||||
}
|
||||
|
||||
/** 按钮背景色 */
|
||||
.layuimini-container .layuimini-btn-primary {
|
||||
color: #fff;
|
||||
background-color: #2c3e50;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-btn-sm i {
|
||||
font-size: 12px !important;
|
||||
}
|
||||
|
||||
/**文件上传样式*/
|
||||
.layuimini-upload {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.layuimini-upload .layuimini-upload-btn {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.layuimini-upload-show {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.layuimini-upload-show li {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding: 5px 0 5px 0;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
border: 1px solid #e2e2e2;
|
||||
}
|
||||
|
||||
.layuimini-upload-show a img {
|
||||
height: 80px;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.layuimini-upload-show .uploads-delete-tip {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.bg-red {
|
||||
background-color: #e74c3c !important;
|
||||
}
|
||||
|
||||
.color-red {
|
||||
color: #e74c3c !important;
|
||||
}
|
||||
|
||||
.badge {
|
||||
display: inline-block;
|
||||
min-width: 10px;
|
||||
padding: 3px 7px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
line-height: 1;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
background-color: #777777;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/**vue隐藏样式*/
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**表格url样式*/
|
||||
.layuimini-table-url {
|
||||
background-color: #1497f3;
|
||||
color: #ffffff;
|
||||
border-radius: 3px;
|
||||
size: 8px !important;
|
||||
padding: 2px
|
||||
}
|
||||
|
||||
.layuimini-table-url:hover {
|
||||
background-color: #1497f3;
|
||||
color: #ffffff;
|
||||
border-radius: 3px;
|
||||
size: 8px !important;
|
||||
padding: 2px
|
||||
}
|
||||
|
||||
/**后台权限隐藏*/
|
||||
/*[auth] { display: none; }*/
|
||||
|
||||
.layui-form-label {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.layui-input-block {
|
||||
margin-left: 130px;
|
||||
min-height: 36px
|
||||
}
|
||||
|
||||
/**
|
||||
table样式
|
||||
*/
|
||||
.layuimini-container .layui-laypage .layui-laypage-curr .layui-laypage-em {
|
||||
border-radius: 30px !important;
|
||||
background-color: #1e9fff !important;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool {
|
||||
background-color: #ffffff;
|
||||
border-bottom: none !important;
|
||||
padding-bottom: 15px !important;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-view {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-box {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-page, .layui-table-total {
|
||||
border-width: 0px 0 0;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-box .layui-table-header th {
|
||||
font-weight: bold !important;
|
||||
color: #565656 !important;
|
||||
}
|
||||
|
||||
/**
|
||||
搜索
|
||||
*/
|
||||
.form-search .layui-btn {
|
||||
height: 32px;
|
||||
line-height: 28px;
|
||||
font-size: 12px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.form-search .layui-form-label {
|
||||
padding: 0 8px;
|
||||
height: 32px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.form-search .layui-input-inline {
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
.form-search .layui-input-inline input,
|
||||
.form-search .layui-input-inline select {
|
||||
width: 100%;
|
||||
height: 32px;
|
||||
padding: 2px 8px;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.form-search .layui-form-select dl {
|
||||
top: 31px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
按钮
|
||||
*/
|
||||
.layuimini-container .layui-btn-success {
|
||||
color: #fff;
|
||||
background-color: #4bb368;
|
||||
border-color: #4bb368;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-btn-danger {
|
||||
color: #fff;
|
||||
background-color: #f56c6c;
|
||||
border-color: #f56c6c;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool .layui-btn + .layui-btn {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool .layui-inline[lay-event] {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool .layui-inline .layui-icon {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool-self {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool {
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
/**
|
||||
开关
|
||||
*/
|
||||
.layuimini-container .layui-form-switch {
|
||||
border: 1px solid #f56d6d;
|
||||
background-color: #f56d6d;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-form-switch em {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-form-switch i {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-form-onswitch {
|
||||
border-color: #1f9fff;
|
||||
background-color: #1f9fff;
|
||||
}
|
||||
|
||||
/**
|
||||
下拉选择
|
||||
*/
|
||||
.layuimini-container .layui-form-select dl dd.layui-this {
|
||||
background-color: #1e9fff !important;
|
||||
}
|
||||
|
||||
/**
|
||||
弹出层样式
|
||||
*/
|
||||
.layui-layer-easy .layui-layer-title {
|
||||
background: #2c3e50 !important;
|
||||
color: #fff !important;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-title ~ .layui-layer-setwin {
|
||||
top: 0px;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-title ~ .layui-layer-setwin > a {
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.layui-layer-easy.layui-layer-border {
|
||||
border: none !important;
|
||||
box-shadow: 1px 1px 50px rgba(0, 0, 0, 0.3) !important;
|
||||
}
|
||||
|
||||
.layui-layer-easy.layui-layer-iframe {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-moves {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-btn {
|
||||
text-align: center !important;
|
||||
padding: 10px !important;
|
||||
background: #ecf0f1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-btn a {
|
||||
background-color: #95a5a6;
|
||||
border-color: #95a5a6;
|
||||
color: #fff !important;
|
||||
height: 31px;
|
||||
margin-top: 0;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-btn .layui-layer-btn0 {
|
||||
background-color: #1E9FFF;
|
||||
border-color: #1E9FFF;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-footer {
|
||||
padding: 8px 20px;
|
||||
background-color: #ecf0f1;
|
||||
height: auto;
|
||||
text-align: inherit !important;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin > a {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin > a cite {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin > a:after {
|
||||
content: "\e625";
|
||||
font-family: iconfont;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
text-decoration: inherit;
|
||||
position: absolute;
|
||||
font-size: 18px;
|
||||
color: #fff;
|
||||
margin: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin > a:hover {
|
||||
text-decoration: none !important;
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin > a:focus {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-min {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-min:after {
|
||||
content: "\e625";
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-max {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-max:after {
|
||||
content: "\e623";
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-maxmin {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-maxmin:after {
|
||||
content: "\e624";
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-close1:after {
|
||||
content: "\e626";
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-close2,
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-close2:hover {
|
||||
background: url('../libs/layer/dist/theme/default/icon.png') no-repeat -149px -31px !important;
|
||||
top: -30px;
|
||||
right: -30px;
|
||||
}
|
||||
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-close2:after,
|
||||
.layui-layer-easy .layui-layer-setwin .layui-layer-close2:hover:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layui-layer-content {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.layui-layer-easy-msg {
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.layui-layer-easy-tab .layui-layer-title .layui-this {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.layui-layer-easy-tab .layui-layer-content .layui-layer-tabmain {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.layuimini-form .layui-form-item {
|
||||
position: relative;
|
||||
padding: 0 30px 0 0;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.easyadmin-export-btn{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
资源加载锁
|
||||
*/
|
||||
.easy-load-lock {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.line-limit-length {
|
||||
width: 200px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
background: goldenrod;
|
||||
white-space: nowrap;
|
||||
}
|
||||
22
public/static/admin/css/welcome.css
Normal file
@@ -0,0 +1,22 @@
|
||||
.layui-card {border:1px solid #f2f2f2;border-radius:5px;}
|
||||
.icon {margin-right:10px;color:#1aa094;}
|
||||
.icon-cray {color:#ffb800!important;}
|
||||
.icon-blue {color:#1e9fff!important;}
|
||||
.icon-tip {color:#ff5722!important;}
|
||||
.layuimini-qiuck-module {text-align:center;margin-top: 10px}
|
||||
.layuimini-qiuck-module a i {display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s;}
|
||||
.layuimini-qiuck-module a cite {position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px;}
|
||||
.welcome-module {width:100%;height:210px;}
|
||||
.panel {background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}
|
||||
.panel-body {padding:10px}
|
||||
.panel-title {margin-top:0;margin-bottom:0;font-size:12px;color:inherit}
|
||||
.label {display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;margin-top: .3em;}
|
||||
.layui-red {color:red}
|
||||
.main_btn > p {height:40px;}
|
||||
.layui-bg-number {background-color:#F8F8F8;}
|
||||
.layuimini-notice:hover {background:#f6f6f6;}
|
||||
.layuimini-notice {padding:7px 16px;clear:both;font-size:12px !important;cursor:pointer;position:relative;transition:background 0.2s ease-in-out;}
|
||||
.layuimini-notice-title,.layuimini-notice-label {
|
||||
padding-right: 70px !important;text-overflow:ellipsis!important;overflow:hidden!important;white-space:nowrap!important;}
|
||||
.layuimini-notice-title {line-height:28px;font-size:14px;}
|
||||
.layuimini-notice-extra {position:absolute;top:50%;margin-top:-8px;right:16px;display:inline-block;height:16px;color:#999;}
|
||||
BIN
public/static/admin/fonts/iconfont/iconfont-1.eot
Normal file
83
public/static/admin/fonts/iconfont/iconfont-1.svg
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<!--
|
||||
2013-9-30: Created.
|
||||
-->
|
||||
<svg>
|
||||
<metadata>
|
||||
Created by iconfont
|
||||
</metadata>
|
||||
<defs>
|
||||
|
||||
<font id="iconfont" horiz-adv-x="1024" >
|
||||
<font-face
|
||||
font-family="iconfont"
|
||||
font-weight="500"
|
||||
font-stretch="normal"
|
||||
units-per-em="1024"
|
||||
ascent="896"
|
||||
descent="-128"
|
||||
/>
|
||||
<missing-glyph />
|
||||
|
||||
<glyph glyph-name="pageedit" unicode="" d="M313.291332 159.658536l207.526497 0 0-31.927153-207.526497 0 0 31.927153ZM313.291332 478.930069l383.125841 0 0-31.927153-383.125841 0 0 31.927153ZM313.291332 622.60226l383.125841 0 0-31.927153-383.125841 0 0 31.927153ZM313.291332 319.294302l207.526497 0 0-31.927153-207.526497 0 0 31.927153ZM185.582719 39.93171l0 654.506644c0 22.01234 17.896602 39.908942 39.908942 39.908942l590.652338 0c22.01234 0 39.908942-17.896602 39.908942-39.908942l0-199.544709 47.89073 0 0 199.544709c0 48.40443-39.395242 87.799672-87.799672 87.799672l-590.652338 0c-48.406476 0-87.799672-39.395242-87.799672-87.799672l0-654.506644c0-48.40443 39.393195-87.799672 87.799672-87.799672l199.544709 0 0 47.89073-199.544709 0C203.479321 0.022769 185.582719 17.919371 185.582719 39.93171zM974.711434 350.161311l-39.957037 39.971363-39.954991 39.940664c-7.357572 7.357572-19.284205 7.357572-26.641777 0L538.455535 100.371244c-2.112104-1.730411-3.748371-4.068665-4.589528-6.873548l-36.488029-121.394814c-1.544169-5.160533-0.016373-10.523681 3.538593-14.078647l0.989537-0.763386 0.77055-0.981351c3.554966-3.554966 8.902764-5.082762 14.062274-3.554966l121.394814 36.494169c2.844791 0.858554 5.213745 2.52552 6.938016 4.677533l329.638649 329.638649C982.061842 330.877105 982.061842 342.818065 974.711434 350.161311zM626.436332 15.207609l-95.197152-28.622898 28.622898 95.235015 255.020184 255.027347 66.596767-66.598814L626.436332 15.207609zM941.412027 330.190467l-46.611597-46.611597-66.590628 66.598814 46.605457 46.596248c3.677762 3.679809 9.641591 3.679809 13.319353 0.016373l26.892487-26.892487 26.384927-26.393113C945.090812 339.824895 945.090812 333.854926 941.412027 330.190467z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="page" unicode="" d="M809.021787-20.341025l-590.652338 0c-48.40443 0-87.799672 39.395242-87.799672 87.799672l0 654.506644c0 48.40443 39.395242 87.799672 87.799672 87.799672l590.652338 0c48.40443 0 87.799672-39.395242 87.799672-87.799672l0-654.506644C896.821459 19.054217 857.426217-20.341025 809.021787-20.341025zM218.36945 761.874233c-22.01234 0-39.908942-17.896602-39.908942-39.908942l0-654.506644c0-22.01234 17.896602-39.908942 39.908942-39.908942l590.652338 0c22.01234 0 39.908942 17.896602 39.908942 39.908942l0 654.506644c0 22.01234-17.896602 39.908942-39.908942 39.908942L218.36945 761.874233zM322.132698 187.185472l383.125841 0 0-31.927153-383.125841 0 0 31.927153ZM322.132698 506.457006l383.125841 0 0-31.927153-383.125841 0 0 31.927153ZM322.132698 650.129196l383.125841 0 0-31.927153-383.125841 0 0 31.927153ZM322.132698 346.821239l383.125841 0 0-31.927153-383.125841 0 0 31.927153Z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="menu" unicode="" d="M771.87584-5.65248l-111.3344 0c-61.47584 0-111.32928 49.83808-111.32928 111.32928l0 111.32928c0 61.48096 49.85344 111.32928 111.32928 111.32928l111.3344 0c61.48096 0 111.32928-49.84832 111.32928-111.32928l0-111.32928C883.20512 44.19072 833.3568-5.65248 771.87584-5.65248zM827.52512 217.0112c0 30.74048-24.91392 55.64928-55.64928 55.64928l-111.3344 0c-30.73536 0-55.66976-24.9088-55.66976-55.64928l0-111.32928c0-30.75072 24.9344-55.68 55.66976-55.68l111.3344 0c30.73536 0 55.64928 24.92928 55.64928 55.68L827.52512 217.0112zM771.87584 773.65248c61.48096 0 111.32928-49.84832 111.32928-111.32928l0-111.3344c0-61.48096-49.84832-111.32928-111.32928-111.32928l-111.3344 0c-61.47584 0-111.32928 49.8432-111.32928 111.32928L549.21216 662.3232c0 61.48096 49.85344 111.32928 111.32928 111.32928M827.52512 662.3232c0 30.74048-24.91392 55.66464-55.64928 55.66464l-111.3344 0c-30.73536 0-55.66976-24.91904-55.66976-55.66464l0-111.3344c0-30.74048 24.9344-55.66464 55.66976-55.66464l111.3344 0c30.73536 0 55.64928 24.92416 55.64928 55.66464L827.52512 662.3232zM326.53824-5.65248 215.2192-5.65248c-61.48608 0-111.3344 49.83808-111.3344 111.32928l0 111.32928c0 61.48096 49.84832 111.32928 111.3344 111.32928l111.31904 0c61.50144 0 111.34464-49.84832 111.34464-111.32928l0-111.32928C437.88288 44.19072 388.0448-5.65248 326.53824-5.65248zM382.21312 217.0112c0 30.74048-24.91392 55.64928-55.67488 55.64928L215.2192 272.66048c-30.7456 0-55.66976-24.9088-55.66976-55.64928l0-111.32928c0-30.75072 24.91904-55.68 55.66976-55.68l111.31904 0c30.76096 0 55.67488 24.92928 55.67488 55.68L382.21312 217.0112zM326.53824 773.65248c61.50144 0 111.34464-49.84832 111.34464-111.32928l0-111.3344c0-61.48096-49.8432-111.32928-111.34464-111.32928L215.2192 439.65952c-61.48608 0-111.3344 49.8432-111.3344 111.32928L103.8848 662.3232c0 61.48096 49.84832 111.32928 111.3344 111.32928M382.21312 662.3232c0 30.74048-24.91392 55.66464-55.67488 55.66464L215.2192 717.98784c-30.7456 0-55.66976-24.91904-55.66976-55.66464l0-111.3344c0-30.74048 24.91904-55.66464 55.66976-55.66464l111.31904 0c30.76096 0 55.67488 24.92416 55.67488 55.66464L382.21312 662.3232z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="menu3caidan3" unicode="" d="M201.447035 612.363058c-15.913435-15.913435-34.482349-23.86964-55.69958-23.86964s-39.778982 7.956206-55.691393 23.86964c-15.913435 15.913435-23.873734 34.478256-23.873734 55.695486 0 21.176298 7.960299 39.783075 23.873734 55.695486s34.474163 23.86964 55.691393 23.86964 39.786145-7.956206 55.69958-23.86964 23.865547-34.520211 23.865547-55.695486C225.312582 646.841314 217.36047 628.276493 201.447035 612.363058zM201.447035 325.927373c-15.913435-15.913435-34.482349-23.86964-55.69958-23.86964s-39.778982 7.956206-55.691393 23.86964c-15.913435 15.913435-23.873734 34.478256-23.873734 55.695486 0 21.176298 7.960299 39.783075 23.873734 55.695486 15.913435 15.913435 34.474163 23.86964 55.691393 23.86964s39.786145-7.956206 55.69958-23.86964c15.913435-15.913435 23.865547-34.520211 23.865547-55.695486C225.312582 360.405629 217.36047 341.840808 201.447035 325.927373zM201.447035 39.492712c-15.913435-15.911388-34.482349-23.871687-55.69958-23.871687s-39.778982 7.960299-55.691393 23.871687c-15.913435 15.913435-23.873734 34.478256-23.873734 55.695486 0 21.176298 7.960299 39.783075 23.873734 55.695486 15.913435 15.913435 34.474163 23.86964 55.691393 23.86964s39.786145-7.956206 55.69958-23.86964c15.913435-15.913435 23.865547-34.520211 23.865547-55.695486C225.312582 73.970968 217.36047 55.405123 201.447035 39.492712zM179.559539 701.873698c-9.276271 9.241478-20.546965 13.924127-33.812083 13.924127-13.256932 0-24.535813-4.682649-33.812083-13.924127-9.284457-9.283434-13.927197-20.596084-13.927197-33.815153 0-13.261025 4.64274-24.573675 13.927197-33.815153 9.276271-9.282411 20.555152-13.924127 33.812083-13.924127 13.265118 0 24.535813 4.641717 33.812083 13.924127 9.284457 9.241478 13.927197 20.554128 13.927197 33.815153C193.486736 681.277614 188.843996 692.591287 179.559539 701.873698zM179.559539 415.439036c-9.276271 9.241478-20.546965 13.924127-33.812083 13.924127-13.256932 0-24.535813-4.682649-33.812083-13.924127-9.284457-9.283434-13.927197-20.596084-13.927197-33.815153 0-13.261025 4.64274-24.573675 13.927197-33.815153 9.276271-9.282411 20.555152-13.924127 33.812083-13.924127 13.265118 0 24.535813 4.641717 33.812083 13.924127 9.284457 9.241478 13.927197 20.554128 13.927197 33.815153C193.486736 394.842952 188.843996 406.155603 179.559539 415.439036zM179.559539 129.003352c-9.276271 9.241478-20.546965 13.924127-33.812083 13.924127-13.256932 0-24.535813-4.682649-33.812083-13.924127-9.284457-9.283434-13.927197-20.596084-13.927197-33.815153 0-13.261025 4.64274-24.573675 13.927197-33.815153 9.276271-9.282411 20.555152-13.924127 33.812083-13.924127 13.265118 0 24.535813 4.641717 33.812083 13.924127 9.284457 9.241478 13.927197 20.554128 13.927197 33.815153C193.486736 108.407268 188.843996 119.720941 179.559539 129.003352zM941.40077 652.146133 336.704578 652.146133c-10.608615 0-15.913435 5.262864-15.913435 15.913435 0 10.608615 5.304819 15.913435 15.913435 15.913435l604.696192 0c10.608615 0 15.912411-5.304819 15.912411-15.913435C957.314205 657.407973 952.009386 652.146133 941.40077 652.146133zM941.40077 365.710448 336.704578 365.710448c-10.608615 0-15.913435 5.262864-15.913435 15.913435 0 10.608615 5.304819 15.913435 15.913435 15.913435l604.696192 0c10.608615 0 15.912411-5.304819 15.912411-15.913435C957.314205 370.973312 952.009386 365.710448 941.40077 365.710448zM941.40077 79.274764 336.704578 79.274764c-10.608615 0-15.913435 5.262864-15.913435 15.913435 0 10.608615 5.304819 15.913435 15.913435 15.913435l604.696192 0c10.608615 0 15.912411-5.304819 15.912411-15.913435C957.314205 84.537627 952.009386 79.274764 941.40077 79.274764z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="cart" unicode="" d="M235.097303 196.866982C247.384597 160.417152 286.382106 132.376068 324.772759 132.376068L861.658537 132.376068 880.429732 132.376068 885.649214 150.541854 1009.08775 580.154957C1021.388907 622.967661 993.187631 660.786325 949.051586 660.786325L424.585365 660.786325C410.791718 660.786325 399.609756 649.520738 399.609756 635.623932 399.609756 621.727125 410.791718 610.461538 424.585365 610.461538L949.051586 610.461538C959.924 610.461538 964.161052 604.779539 961.106394 594.148171L837.667859 164.535068 861.658537 182.700855 324.772759 182.700855C307.742153 182.700855 287.789837 197.047529 282.395194 213.050549L73.600164 832.433664C69.16437 845.592294 54.980454 852.636656 41.919502 848.167687 28.858551 843.698719 21.86648 829.408727 26.302275 816.250097L235.097303 196.866982ZM399.609756-6.017094C399.609756 49.570129 354.881911 94.632478 299.707317 94.632478 244.532723 94.632478 199.804878 49.570129 199.804878-6.017094 199.804878-61.604318 244.532723-106.666667 299.707317-106.666667 354.881911-106.666667 399.609756-61.604318 399.609756-6.017094ZM249.756098-6.017094C249.756098 21.776518 272.120021 44.307693 299.707317 44.307693 327.294613 44.307693 349.658537 21.776518 349.658537-6.017094 349.658537-33.810705 327.294613-56.341879 299.707317-56.341879 272.120021-56.341879 249.756098-33.810705 249.756098-6.017094ZM924.097562-6.017094C924.097562 49.570129 879.369715 94.632478 824.195121 94.632478 769.020529 94.632478 724.292683 49.570129 724.292683-6.017094 724.292683-61.604318 769.020529-106.666667 824.195121-106.666667 879.369715-106.666667 924.097562-61.604318 924.097562-6.017094ZM774.243902-6.017094C774.243902 21.776518 796.607825 44.307693 824.195121 44.307693 851.782419 44.307693 874.146342 21.776518 874.146342-6.017094 874.146342-33.810705 851.782419-56.341879 824.195121-56.341879 796.607825-56.341879 774.243902-33.810705 774.243902-6.017094Z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="refresh" unicode="" d="M936.571429 292.571429q0-2.857143-0.571429-4-36.571429-153.142857-153.142857-248.285714t-273.142857-95.142857q-83.428571 0-161.428571 31.428571t-139.142857 89.714286l-73.714286-73.714286q-10.857143-10.857143-25.714286-10.857143t-25.714286 10.857143-10.857143 25.714286l0 256q0 14.857143 10.857143 25.714286t25.714286 10.857143l256 0q14.857143 0 25.714286-10.857143t10.857143-25.714286-10.857143-25.714286l-78.285714-78.285714q40.571429-37.714286 92-58.285714t106.857143-20.571429q76.571429 0 142.857143 37.142857t106.285714 102.285714q6.285714 9.714286 30.285714 66.857143 4.571429 13.142857 17.142857 13.142857l109.714286 0q7.428571 0 12.857143-5.428571t5.428571-12.857143zm14.285714 457.142857l0-256q0-14.857143-10.857143-25.714286t-25.714286-10.857143l-256 0q-14.857143 0-25.714286 10.857143t-10.857143 25.714286 10.857143 25.714286l78.857143 78.857143q-84.571429 78.285714-199.428571 78.285714-76.571429 0-142.857143-37.142857t-106.285714-102.285714q-6.285714-9.714286-30.285714-66.857143-4.571429-13.142857-17.142857-13.142857l-113.714286 0q-7.428571 0-12.857143 5.428571t-5.428571 12.857143l0 4q37.142857 153.142857 154.285714 248.285714t274.285714 95.142857q83.428571 0 162.285714-31.714286t140-89.428571l74.285714 73.714286q10.857143 10.857143 25.714286 10.857143t25.714286-10.857143 10.857143-25.714286z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="car" unicode="" d="M845.590658 44.07917c-27.77253 0-49.455365 11.378142-62.705134 32.905434-10.428513 16.942881-15.715937 40.441061-15.715937 69.841671l0 42.915415L285.710161 189.741691l0-42.915415c0-29.153994-5.809309-52.780087-17.266245-70.223365-13.976316-21.277606-36.027541-32.523741-63.770396-32.523741-51.880601 0-84.10963 39.370683-84.10963 102.747105l0 42.915415L73.560366 189.741691c-16.765849 0-29.899984 13.148461-29.899984 29.93273L43.660382 394.470469c0 31.397081 12.18553 60.870346 34.311457 82.992179 22.127973 22.122857 51.610448 34.305317 83.017762 34.305317l0.741897 0 44.89142 179.101097c15.750729 63.952544 77.541027 112.224967 143.713123 112.224967l349.591073 0c66.172095 0 127.962393-48.272423 143.728472-112.286366l44.875047-179.039699 0.74292 0c31.407314 0 60.890812-12.183484 83.017762-34.305317 22.12695-22.121833 34.31248-51.595099 34.31248-82.992179l0-174.795025c0-16.784268-13.134135-29.93273-29.899984-29.93273l-50.664913 0 0-42.915415C926.038898 81.529107 896.717082 44.07917 845.590658 44.07917zM255.010975 220.4419l542.856775 0 0-73.614601c0-72.04792 34.670637-72.04792 47.722908-72.04792 17.308201 0 29.66053 6.082532 37.762045 18.59552 7.841595 12.109806 11.987009 30.592762 11.987009 53.452399l0 73.614601 80.563874 0 0.001023 174.028569c0 47.750537-38.863123 86.59831-86.631056 86.59831l-24.696472 0L813.863049 683.405067c-12.502755 50.759057-61.477166 88.989777-113.935935 88.989777L350.33604 772.394844c-52.458769 0-101.43318-38.23072-113.919563-88.928379l-50.730405-202.397686L160.990624 481.068779c-47.768957 0-86.631056-38.847773-86.631056-86.59831l0-174.028569 76.902484 0 0-73.614601c0-26.907836 6.939039-72.04792 53.410444-72.04792 33.401738 0 50.337455 24.240077 50.337455 72.04792L255.009951 220.4419zM847.566662 226.186741c-56.922431 0-103.233176 46.292326-103.233176 103.195314 0 56.901964 46.310745 103.195314 103.233176 103.195314 56.923454 0 103.234199-46.293349 103.234199-103.195314C950.799838 272.479067 904.490116 226.186741 847.566662 226.186741zM847.566662 401.878183c-39.994899 0-72.53399-32.521694-72.53399-72.496128 0-39.97341 32.53909-72.496128 72.53399-72.496128 39.995923 0 72.535013 32.521694 72.535013 72.496128C920.100652 369.356488 887.562585 401.878183 847.566662 401.878183zM198.5081 226.186741c-56.922431 0-103.233176 46.292326-103.233176 103.195314 0 56.901964 46.310745 103.195314 103.233176 103.195314 56.924477 0 103.236246-46.293349 103.236246-103.195314C301.744345 272.479067 255.432577 226.186741 198.5081 226.186741zM198.5081 401.878183c-39.994899 0-72.53399-32.521694-72.53399-72.496128 0-39.97341 32.53909-72.496128 72.53399-72.496128 39.996946 0 72.53706 32.521694 72.53706 72.496128C271.045159 369.356488 238.505046 401.878183 198.5081 401.878183zM815.368332 506.502032 218.155579 506.502032l53.717436 215.46019c3.551896 12.935614 20.717857 26.114774 34.012651 26.114774l421.751556 0c13.295817 0 30.461779-13.180184 34.012651-26.115797l0.092098-0.350994L815.368332 506.502032zM257.447467 537.201218l518.628978 0-43.823088 175.785585c-1.12973 1.475608-3.938706 3.681856-5.594415 4.39203L306.863946 717.378833c-1.656733-0.709151-4.464685-2.916423-5.594415-4.39203L257.447467 537.201218z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="controls" unicode="" d="M146.285714 144.822857V859.428571a18.285714 18.285714 0 1 1-36.571428 0v-714.605714c-61.933714-8.923429-109.714286-62.189714-109.714286-126.537143 0-70.564571 57.417143-128 128-128s128 57.435429 128 128c0 64.347429-47.780571 117.613714-109.714286 126.537143zM128-73.142857c-50.413714 0-91.428571 41.014857-91.428571 91.428571s41.014857 91.428571 91.428571 91.428572 91.428571-41.014857 91.428571-91.428572-41.014857-91.428571-91.428571-91.428571zM530.285714 517.577143V859.428571a18.285714 18.285714 0 1 1-36.571428 0v-340.699428c-65.865143-7.241143-117.284571-63.195429-117.284572-130.944s51.419429-123.702857 117.284572-130.944V-91.428571a18.285714 18.285714 0 1 1 36.571428 0V257.993143c62.171429 10.550857 109.714286 64.658286 109.714286 129.792s-47.542857 119.241143-109.714286 129.792zM508.214857 292.571429c-52.498286 0-95.213714 42.715429-95.213714 95.213714s42.697143 95.213714 95.213714 95.213714S603.428571 440.283429 603.428571 387.785143 560.713143 292.571429 508.214857 292.571429zM1024 749.714286c0 70.564571-57.417143 128-128 128s-128-57.435429-128-128c0-64.347429 47.780571-117.613714 109.714286-126.537143V-91.428571a18.285714 18.285714 0 1 1 36.571428 0V623.177143c61.933714 8.923429 109.714286 62.189714 109.714286 126.537143z m-128-91.428572c-50.413714 0-91.428571 41.014857-91.428571 91.428572s41.014857 91.428571 91.428571 91.428571 91.428571-41.014857 91.428571-91.428571-41.014857-91.428571-91.428571-91.428572z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="set" unicode="" d="M588.288-63.488H432.128l-40.96 143.872-10.752 4.608-131.072-72.704L138.752 122.88l72.704 130.56-4.608 10.752-143.872 40.96V461.824l143.872 40.96 4.608 10.752-72.704 131.072 110.592 110.592 131.072-72.704 10.752 4.608 40.96 143.872h156.16l40.96-143.872 10.752-4.608 131.072 72.704 110.592-110.592L808.96 514.048l4.608-10.752 143.872-40.96v-156.16l-143.872-40.96-4.608-10.752 72.704-130.56-110.592-110.592-141.312 77.312 22.528 40.96 110.592-61.44 60.928 60.928-67.072 120.832 5.12 10.752c4.608 9.216 8.704 18.944 11.776 28.672l4.096 11.264 133.12 37.888V426.496l-133.12 37.888-4.096 11.264c-3.584 9.728-7.168 18.944-11.776 28.672l-5.12 10.752 67.072 120.832-60.928 61.44L642.048 629.76l-10.752 5.12c-9.216 4.608-18.944 8.704-28.672 11.776l-11.264 4.096-37.888 133.12H467.456l-37.888-133.12-11.264-4.096c-9.728-3.584-19.456-7.168-28.672-11.776L378.88 629.76 257.536 697.344 196.608 636.416l67.072-120.832-5.12-10.752c-4.608-9.728-8.704-18.944-11.776-28.672l-4.096-11.264-133.12-37.888v-86.016l133.12-37.888 4.096-11.264c3.584-9.728 7.168-18.944 11.776-28.672l5.12-10.752-67.072-120.832 60.928-60.928 120.832 67.072 10.752-5.12c9.216-4.608 18.944-8.704 28.672-11.776l11.264-4.096 37.888-133.12H552.96l29.184 101.376 45.056-12.8-38.912-135.68z m-77.824 239.616c-114.688 0-207.872 93.184-207.872 207.872 0 114.688 93.184 207.872 207.872 207.872 114.688 0 207.872-93.184 207.872-207.872-0.512-114.688-93.696-207.872-207.872-207.872z m0 356.352c-81.92 0-148.992-66.56-148.992-148.992 0-81.92 66.56-148.992 148.992-148.992 81.92 0 148.992 66.56 148.992 148.992C658.944 465.92 592.384 532.48 510.464 532.48z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="system" unicode="" d="M947.188 60.073l-50.079 35.055c-18.559 12.992-56.418 22.725-85.694 22.725H585.19v79.844h288.761c2.2 0 4 1.8 4 4V739.298c0 2.2-1.8 4-4 4H176.663c-2.2 0-4-1.8-4-4v-537.601c0-2.2 1.8-4 4-4h302.069v-79.844H212.585c-29.276 0-67.134-9.734-85.694-22.725l-50.079-35.055c-26.411-18.488-17.538-35.371 22.786-35.371h824.803c40.324 0 49.198 16.883 22.787 35.371zM427.175 404.992a16.001 16.001 0 0 0-27.018-4.917l-66.792 76.29-30.074-34.372a16.002 16.002 0 0 0-12.042-5.464h-38.742c-8.836 0-16 7.164-16 16s7.164 16 16 16h31.481l37.331 42.666a16 16 0 0 0 24.08 0.004l61.215-69.92 60.521 161.261a16 16 0 0 0 30.347-1.168l41.855-144.388c0.045-0.156 0.088-0.313 0.128-0.47l17.727-68.934 53.023 135.33a16.001 16.001 0 0 0 14.896 10.163h0.1a16 16 0 0 0 14.87-10.347l35.146-93.072 36.371 46.095a16 16 0 0 0 12.561 6.089H784.8c8.837 0 16-7.164 16-16s-7.163-16-16-16h-52.885l-49.098-62.224a16 16 0 1 0-27.529 4.259l-30.451 80.64-55.913-142.705a16 16 0 0 0-30.393 1.852l-29.996 116.649-28.371 97.873-52.989-141.19z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="menu1" unicode="" d="M384 416H192c-52.8 0-96 43.2-96 96V704c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96v-192c0-52.8-43.2-96-96-96zM192 736c-17.6 0-32-14.4-32-32v-192c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32V704c0 17.6-14.4 32-32 32H192zM832 416H640c-52.8 0-96 43.2-96 96V704c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96v-192c0-52.8-43.2-96-96-96zM640 736c-17.6 0-32-14.4-32-32v-192c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32V704c0 17.6-14.4 32-32 32H640zM384-32H192c-52.8 0-96 43.2-96 96V256c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96v-192c0-52.8-43.2-96-96-96zM192 288c-17.6 0-32-14.4-32-32v-192c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32V256c0 17.6-14.4 32-32 32H192zM832-32H640c-52.8 0-96 43.2-96 96V256c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96v-192c0-52.8-43.2-96-96-96zM640 288c-17.6 0-32-14.4-32-32v-192c0-17.6 14.4-32 32-32h192c17.6 0 32 14.4 32 32V256c0 17.6-14.4 32-32 32H640z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="IDcard" unicode="" d="M547.84 271.36c-4.096 26.624-22.528 70.656-72.704 89.088h-1.024c-5.12 2.048-8.192 3.072-12.288 4.096 3.072 4.096 5.12 8.192 7.168 12.288 4.096 3.072 7.168 6.144 11.264 12.288 9.216 14.336 18.432 44.032 11.264 65.536-1.024 3.072-3.072 7.168-5.12 10.24-2.048 27.648-12.288 51.2-29.696 68.608-18.432 18.432-43.008 28.672-71.68 28.672s-53.248-10.24-71.68-28.672c-17.408-17.408-27.648-41.984-29.696-69.632-2.048-3.072-3.072-6.144-4.096-9.216-8.192-22.528 2.048-52.224 11.264-65.536 3.072-4.096 6.144-8.192 10.24-11.264 2.048-4.096 5.12-9.216 7.168-13.312-1.024-1.024-2.048-1.024-4.096-2.048l-7.168-2.048c-50.176-17.408-68.608-56.32-72.704-83.968v-6.144c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6V271.36c2.048 11.264 10.24 30.72 37.888 40.96l7.168 2.048c20.48 7.168 47.104 15.36 51.2 41.984l2.048 13.312-9.216 9.216c-8.192 8.192-14.336 17.408-19.456 26.624l-4.096 10.24-7.168 2.048c-2.048 5.12-5.12 14.336-5.12 18.432l6.144 5.12v11.264c0 18.432 6.144 33.792 15.36 43.008 8.192 8.192 20.48 13.312 34.816 13.312s26.624-4.096 34.816-13.312c9.216-9.216 15.36-24.576 15.36-43.008v-12.288l7.168-5.12c0-4.096-2.048-12.288-4.096-17.408l-7.168-2.048-5.12-11.264c-6.144-12.288-14.336-21.504-19.456-26.624l-11.264-11.264 4.096-15.36c7.168-22.528 31.744-32.768 57.344-40.96 24.576-9.216 33.792-27.648 37.888-39.936v-2.048c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v1.024h2.048zM609.28 475.136H768c16.384 0 29.696 13.312 29.696 29.696 0 16.384-13.312 29.696-29.696 29.696H609.28c-16.384 0-29.696-13.312-29.696-29.696 0-16.384 13.312-29.696 29.696-29.696zM609.28 365.568H768c16.384 0 29.696 13.312 29.696 29.696 0 16.384-13.312 29.696-29.696 29.696H609.28c-16.384 0-29.696-13.312-29.696-29.696 0-16.384 13.312-29.696 29.696-29.696zM609.28 257.024H768c16.384 0 29.696 13.312 29.696 29.696 0 16.384-13.312 29.696-29.696 29.696H609.28c-16.384 0-29.696-13.312-29.696-29.696 0-16.384 13.312-29.696 29.696-29.696zM894.976 400.384m-35.84 0a35.84 35.84 0 1 1 71.68 0 35.84 35.84 0 1 1-71.68 0ZM815.104 686.08H225.28c-63.488 0-115.712-52.224-115.712-115.712v-343.04c0-63.488 52.224-115.712 115.712-115.712h589.824c63.488 0 115.712 52.224 115.712 115.712v78.848c0 19.456-16.384 35.84-35.84 35.84s-35.84-16.384-35.84-35.84v-78.848c0-24.576-19.456-44.032-44.032-44.032H225.28c-24.576 0-44.032 19.456-44.032 44.032V570.368c0 24.576 19.456 44.032 44.032 44.032h589.824c24.576 0 44.032-19.456 44.032-44.032v-76.8c0-19.456 16.384-35.84 35.84-35.84s35.84 16.384 35.84 35.84v76.8c0 64.512-52.224 115.712-115.712 115.712z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="books" unicode="" d="M256 731.428571h585.142857c24.393143 0 24.393143-36.571429 0-36.571428a54.857143 54.857143 0 0 1 0-109.714286c24.393143 0 24.393143-36.571429 0-36.571428H256a91.428571 91.428571 0 0 0 0 182.857142z m-73.142857-256h566.857143a91.428571 91.428571 0 1 0 0-182.857142H182.857143c-24.393143 0-24.393143 36.571429 0 36.571428a54.857143 54.857143 0 0 1 0 109.714286c-24.393143 0-24.393143 36.571429 0 36.571428z m73.142857-256h585.142857c24.393143 0 24.393143-36.571429 0-36.571428a54.857143 54.857143 0 0 1 0-109.714286c24.393143 0 24.393143-36.571429 0-36.571428H256a91.428571 91.428571 0 1 0 0 182.857142z m0 475.428572a54.857143 54.857143 0 0 1 0-109.714286h512a91.026286 91.026286 0 0 0-18.285714 54.857143c0 20.589714 6.802286 39.570286 18.285714 54.857143H256z m18.285714-310.857143c0-20.589714-6.802286-39.570286-18.285714-54.857143h493.714286a54.857143 54.857143 0 0 1 0 109.714286H256c11.483429-15.286857 18.285714-34.267429 18.285714-54.857143zM256 182.857143a54.857143 54.857143 0 0 1 0-109.714286h512a91.026286 91.026286 0 0 0-18.285714 54.857143c0 20.589714 6.802286 39.570286 18.285714 54.857143H256z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="computer" unicode="" d="M937.3-4.4H541.7V178.1c0 16.5-13.5 30-30 30H126V402h161.8l46.6-80.8c3.5-6 8.8-10.4 14.8-12.8l0.6-0.3c14.7-7.5 32.9-1.6 40.3 13.1l129.7 254.5 92.9-160.9c0.3-0.6 0.7-1.2 1.1-1.7C618.7 403 629.1 396 641 396h261v-188H699c-16.5 0-30-13.5-30-30s13.5-30 30-30h203c33 0 60 27 60 59.9V771.4c0 33-27 59.9-60 59.9H126c-33 0-60-27-60-59.9V208c0-33 27-59.9 60-59.9h355.7v-152.5h-389c-13.6 0-24.7-11.1-24.7-24.7V-40c0-13.6 11.1-24.7 24.7-24.7h844.7c13.6 0 24.7 11.1 24.7 24.7v10.9c-0.1 13.6-11.2 24.7-24.8 24.7zM902 771.4V456H658.4L544.5 653.2c-8.2 14.2-26.4 19.2-40.7 11.1-5.2-2.8-9.7-7.1-12.6-12.8L360.7 395.6l-29.3 50.7c-0.7 1.3-1.5 2.4-2.4 3.5-5.5 7.4-14.2 12.2-24.1 12.2H126V771.4h776z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="setup" unicode="" d="M448 448h149.333333v-149.333333h-149.333333zM903.573333 373.333333L713.109333 702.954667H332.224L141.76 373.333333l190.464-329.621333h380.885333L903.573333 373.333333zM812.437333 703.189333H712.96l49.685333-86.122666h99.52L1003.029333 373.333333 762.837333-42.368H282.496L42.304 373.333333 282.496 789.034667h480.341333l49.6-85.845334z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="Biohazzard" unicode="" d="M512 558.08c44.373333 0 85.333333 17.066667 116.053333 51.2 3.413333 3.413333 6.826667 10.24 3.413334 13.653333 0 6.826667-3.413333 10.24-10.24 13.653334-71.68 30.72-150.186667 30.72-218.453334 0-6.826667-3.413333-10.24-6.826667-10.24-13.653334s0-10.24 3.413334-13.653333c30.72-34.133333 71.68-51.2 116.053333-51.2zM778.24 343.04c-40.96-10.24-78.506667-37.546667-98.986667-75.093333-20.48-34.133333-27.306667-78.506667-17.066666-119.466667 0-6.826667 6.826667-10.24 10.24-13.653333h6.826666c3.413333 0 6.826667 0 10.24 3.413333 61.44 44.373333 98.986667 112.64 109.226667 184.32 0 6.826667 0 10.24-6.826667 13.653333-3.413333 6.826667-10.24 6.826667-13.653333 6.826667zM334.506667 138.24c3.413333-3.413333 6.826667-3.413333 10.24-3.413333h6.826666c6.826667 3.413333 10.24 6.826667 10.24 13.653333 10.24 40.96 3.413333 81.92-17.066666 119.466667s-58.026667 64.853333-98.986667 75.093333c-6.826667 0-10.24 0-17.066667-3.413333s-6.826667-10.24-6.826666-13.653334c13.653333-78.506667 54.613333-143.36 112.64-187.733333zM1006.933333 308.906667c-17.066667 81.92-71.68 153.6-143.36 194.56-20.48 10.24-40.96 20.48-61.44 27.306666 6.826667 23.893333 6.826667 44.373333 6.826667 68.266667 0 85.333333-34.133333 163.84-95.573333 221.866667-6.826667 6.826667-13.653333 6.826667-20.48 0s-10.24-10.24-6.826667-17.066667c13.653333-27.306667 20.48-54.613333 20.48-85.333333 0-109.226667-88.746667-197.973333-194.56-197.973334S317.44 609.28 317.44 718.506667c0 27.306667 6.826667 58.026667 20.48 85.333333 3.413333 6.826667 0 17.066667-6.826667 20.48-6.826667 3.413333-17.066667 3.413333-20.48 0-61.44-58.026667-98.986667-139.946667-98.986666-225.28 0-23.893333 3.413333-44.373333 6.826666-68.266667-20.48-6.826667-40.96-17.066667-61.44-27.306666C85.333333 462.506667 34.133333 390.826667 13.653333 308.906667c-3.413333-6.826667 3.413333-17.066667 10.24-20.48 6.826667-3.413333 17.066667 0 20.48 6.826666 17.066667 23.893333 37.546667 44.373333 61.44 58.026667 30.72 17.066667 61.44 27.306667 95.573334 27.306667 68.266667 0 133.12-37.546667 167.253333-98.986667 54.613333-95.573333 20.48-215.04-71.68-269.653333-23.893333-13.653333-51.2-23.893333-81.92-23.893334-6.826667 0-13.653333-6.826667-17.066667-13.653333s3.413333-17.066667 10.24-17.066667c40.96-13.653333 71.68-17.066667 102.4-17.066666 51.2 0 102.4 13.653333 150.186667 40.96 20.48 10.24 37.546667 23.893333 54.613333 40.96 17.066667-17.066667 34.133333-30.72 54.613334-40.96 71.68-40.96 160.426667-51.2 238.933333-27.306667 6.826667 3.413333 13.653333 10.24 10.24 17.066667 0 6.826667-6.826667 13.653333-17.066667 13.653333-30.72 3.413333-58.026667 10.24-81.92 23.893333-92.16 54.613333-126.293333 174.08-71.68 269.653334 34.133333 61.44 98.986667 98.986667 167.253334 98.986666 34.133333 0 68.266667-10.24 95.573333-27.306666 23.893333-13.653333 44.373333-34.133333 61.44-58.026667 3.413333-6.826667 13.653333-10.24 20.48-6.826667 10.24 6.826667 13.653333 17.066667 13.653333 23.893334zM512 315.733333c-27.306667 0-51.2 23.893333-51.2 51.2S484.693333 418.133333 512 418.133333s51.2-23.893333 51.2-51.2S539.306667 315.733333 512 315.733333zM512 366.933333m-17.066667 0a17.066667 17.066667 0 1 1 34.133334 0 17.066667 17.066667 0 1 1-34.133334 0Z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="ios-checkbox-outline" unicode="" d="M832 768H192c-35.4 0-64-28.6-64-64v-640c0-35.4 28.6-64 64-64h640c35.4 0 64 28.6 64 64V704c0 35.4-28.6 64-64 64z m8-696c0-8.8-7.2-16-16-16H200c-8.8 0-16 7.2-16 16V696c0 8.8 7.2 16 16 16h624c8.8 0 16-7.2 16-16v-624zM727.2 510.2L692 546.4c-1.4 1.6-3.6 2.4-5.6 2.4-2.2 0-4.2-0.8-5.6-2.4l-244-245.8-88.8 88.8c-1.6 1.6-3.6 2.4-5.6 2.4-2 0-4-0.8-5.6-2.4l-35.6-35.6c-3.2-3.2-3.2-8.2 0-11.4l112-112c7.2-7.2 16-11.4 23.4-11.4 10.6 0 19.8 7.8 23.2 11h0.2l267.4 268.8c2.8 3.4 2.8 8.4-0.2 11.4z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="icon_computer" unicode="" d="M672 64h-320c-19.2 0-32-12.8-32-32s12.8-32 32-32h320c19.2 0 32 12.8 32 32s-12.8 32-32 32zM896 768H128c-38.4 0-64-25.6-64-64v-512c0-38.4 25.6-64 64-64h768c38.4 0 64 25.6 64 64V704c0 38.4-25.6 64-64 64zM544 640h128c19.2 0 32-12.8 32-32s-12.8-32-32-32h-128c-19.2 0-32 12.8-32 32s12.8 32 32 32zM448 352c0-19.2-12.8-32-32-32h-192c-19.2 0-32 12.8-32 32v256c0 19.2 12.8 32 32 32h192c19.2 0 32-12.8 32-32v-256z m288-32h-192c-19.2 0-32 12.8-32 32s12.8 32 32 32h192c19.2 0 32-12.8 32-32s-12.8-32-32-32z m64 128h-256c-19.2 0-32 12.8-32 32s12.8 32 32 32h256c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
<glyph glyph-name="shanchu" unicode="" d="M938.666667 533.333333H85.333333a42.666667 42.666667 0 0 0 0 85.333334h853.333334a42.666667 42.666667 0 0 0 0-85.333334zM810.666667 533.333333H213.333333v42.666667A277.333333 277.333333 0 0 0 490.666667 853.333333h42.666666a277.333333 277.333333 0 0 0 277.333334-277.333333z m-507.306667 85.333334h417.28A192 192 0 0 1 533.333333 768h-42.666666a192 192 0 0 1-187.306667-149.333333zM768-85.333333H256a128 128 0 0 0-128 128V618.666667h768v-576a128 128 0 0 0-128-128zM213.333333 533.333333v-490.666666a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V533.333333zM373.333333 85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667V405.333333a42.666667 42.666667 0 0 0 85.333333 0v-277.333333a42.666667 42.666667 0 0 0-42.666667-42.666667zM650.666667 85.333333a42.666667 42.666667 0 0 0-42.666667 42.666667V405.333333a42.666667 42.666667 0 0 0 85.333333 0v-277.333333a42.666667 42.666667 0 0 0-42.666666-42.666667z" horiz-adv-x="1024" />
|
||||
|
||||
|
||||
|
||||
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 31 KiB |
BIN
public/static/admin/fonts/iconfont/iconfont-1.ttf
Normal file
BIN
public/static/admin/fonts/iconfont/iconfont-1.woff
Normal file
BIN
public/static/admin/fonts/iconfont/iconfont.eot
Normal file
49
public/static/admin/fonts/iconfont/iconfont.svg
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
Created by FontForge 20120731 at Tue Feb 21 10:13:09 2017
|
||||
By admin
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="iconfont" horiz-adv-x="1024" >
|
||||
<font-face
|
||||
font-family="iconfont"
|
||||
font-weight="500"
|
||||
font-stretch="normal"
|
||||
units-per-em="1024"
|
||||
panose-1="2 0 6 3 0 0 0 0 0 0"
|
||||
ascent="896"
|
||||
descent="-128"
|
||||
x-height="792"
|
||||
bbox="44 -31 956 792"
|
||||
underline-thickness="0"
|
||||
underline-position="0"
|
||||
unicode-range="U+0078-E626"
|
||||
/>
|
||||
<missing-glyph
|
||||
/>
|
||||
<glyph glyph-name=".notdef"
|
||||
/>
|
||||
<glyph glyph-name=".notdef"
|
||||
/>
|
||||
<glyph glyph-name=".null" horiz-adv-x="0"
|
||||
/>
|
||||
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
|
||||
/>
|
||||
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
|
||||
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
|
||||
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
|
||||
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
|
||||
<glyph glyph-name="max" unicode=""
|
||||
d="M786 486q0 11 -8 18.5t-19 7.5h-554q-11 0 -19 -7.5t-8 -18.5v-350q0 -11 8 -19t19 -8h554q11 0 19 8t8 19v350zM741 154h-518v313h518v-313zM856 601h-554q-10 0 -16.5 -6.5t-6.5 -16t6.5 -16t16.5 -6.5h536v-331q0 -10 6.5 -16.5t16 -6.5t16 6.5t6.5 16.5v350
|
||||
q0 11 -8 18.5t-19 7.5z" />
|
||||
<glyph glyph-name="restore" unicode=""
|
||||
d="M866 586h-555q-11 0 -18.5 -8t-7.5 -19v-87h-93q-11 0 -18.5 -7.5t-7.5 -18.5v-350q0 -11 7.5 -19t18.5 -8h555q11 0 19 8t8 19v87h92q11 0 18.5 7.5t7.5 18.5v350q0 11 -7.5 19t-18.5 8zM729 114h-518v313h518v-313zM847 228h-73v218q0 11 -8 18.5t-19 7.5h-417v69h517
|
||||
v-313z" />
|
||||
<glyph glyph-name="min" unicode=""
|
||||
d="M773 192h-528q-9 0 -16 6.5t-7 15.5v0q0 10 7 16.5t16 6.5h528q9 0 15.5 -6.5t6.5 -16.5v0q0 -9 -6.5 -15.5t-15.5 -6.5z" />
|
||||
<glyph glyph-name="close" unicode=""
|
||||
d="M719 208l-175 174l174 175q7 6 7 15.5t-7 16t-16 6.5t-16 -7l-174 -174l-174 174q-7 7 -16.5 7t-15.5 -7v0q-7 -6 -7 -15.5t7 -15.5l174 -175l-174 -174q-7 -7 -7 -16.5t6.5 -16t16 -6.5t15.5 7l175 175l175 -175q6 -7 15.5 -7t15.5 7h1q6 6 6 15.5t-6 16.5z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/static/admin/fonts/iconfont/iconfont.ttf
Normal file
BIN
public/static/admin/fonts/iconfont/iconfont.woff
Normal file
BIN
public/static/admin/images/captcha.jpg
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
public/static/admin/images/head.jpg
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
public/static/admin/images/icon-login.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/static/admin/images/loginbg.png
Normal file
|
After Width: | Height: | Size: 671 KiB |
BIN
public/static/admin/images/upload-icons/doc.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/file.png
Normal file
|
After Width: | Height: | Size: 418 B |
BIN
public/static/admin/images/upload-icons/image.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
public/static/admin/images/upload-icons/mp3.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/mp4.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/pdf.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/ppt.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/txt.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/static/admin/images/upload-icons/visio.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/xls.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/static/admin/images/upload-icons/zip.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
143
public/static/admin/js/index.js
Normal file
@@ -0,0 +1,143 @@
|
||||
define(["jquery", "easy-admin", "echarts", "echarts-theme", "miniAdmin", "miniTab"], function ($, ea, echarts, undefined, miniAdmin, miniTab) {
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
var options = {
|
||||
iniUrl: ea.url('ajax/initAdmin'), // 初始化接口
|
||||
clearUrl: ea.url("ajax/clearCache"), // 缓存清理接口
|
||||
urlHashLocation: true, // 是否打开hash定位
|
||||
bgColorDefault: false, // 主题默认配置
|
||||
multiModule: true, // 是否开启多模块
|
||||
menuChildOpen: false, // 是否默认展开菜单
|
||||
loadingTime: 0, // 初始化加载时间
|
||||
pageAnim: true, // iframe窗口动画
|
||||
maxTabNum: 20, // 最大的tab打开数量
|
||||
};
|
||||
miniAdmin.render(options);
|
||||
|
||||
$('.login-out').on("click", function () {
|
||||
ea.request.get({
|
||||
url: 'login/out',
|
||||
prefix: true,
|
||||
}, function (res) {
|
||||
ea.msg.success(res.msg, function () {
|
||||
window.location = ea.url('login/index');
|
||||
})
|
||||
});
|
||||
});
|
||||
},
|
||||
welcome: function () {
|
||||
|
||||
miniTab.listen();
|
||||
|
||||
/**
|
||||
* 查看公告信息
|
||||
**/
|
||||
$('body').on('click', '.layuimini-notice', function () {
|
||||
var title = $(this).children('.layuimini-notice-title').text(),
|
||||
noticeTime = $(this).children('.layuimini-notice-extra').text(),
|
||||
content = $(this).children('.layuimini-notice-content').html();
|
||||
var html = '<div style="padding:15px 20px; text-align:justify; line-height: 22px;border-bottom:1px solid #e2e2e2;background-color: #2f4056;color: #ffffff">\n' +
|
||||
'<div style="text-align: center;margin-bottom: 20px;font-weight: bold;border-bottom:1px solid #718fb5;padding-bottom: 5px"><h4 class="text-danger">' + title + '</h4></div>\n' +
|
||||
'<div style="font-size: 12px">' + content + '</div>\n' +
|
||||
'</div>\n';
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '系统公告' + '<span style="float: right;right: 1px;font-size: 12px;color: #b1b3b9;margin-top: 1px">' + noticeTime + '</span>',
|
||||
area: '300px;',
|
||||
shade: 0.8,
|
||||
id: 'layuimini-notice',
|
||||
btn: ['查看', '取消'],
|
||||
btnAlign: 'c',
|
||||
moveType: 1,
|
||||
content: html,
|
||||
success: function (layero) {
|
||||
var btn = layero.find('.layui-layer-btn');
|
||||
btn.find('.layui-layer-btn0').attr({
|
||||
href: 'https://gitee.com/zhongshaofa/layuimini',
|
||||
target: '_blank'
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 报表功能
|
||||
*/
|
||||
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
|
||||
var optionRecords = {
|
||||
title: {
|
||||
text: '访问统计'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '邮件营销',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
data: [120, 132, 101, 134, 90, 230, 210]
|
||||
},
|
||||
{
|
||||
name: '联盟广告',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
data: [220, 182, 191, 234, 290, 330, 310]
|
||||
},
|
||||
{
|
||||
name: '视频广告',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
data: [150, 232, 201, 154, 190, 330, 410]
|
||||
},
|
||||
{
|
||||
name: '直接访问',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
data: [320, 332, 301, 334, 390, 330, 320]
|
||||
},
|
||||
{
|
||||
name: '搜索引擎',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
data: [820, 932, 901, 934, 1290, 1330, 1320]
|
||||
}
|
||||
]
|
||||
};
|
||||
echartsRecords.setOption(optionRecords);
|
||||
window.addEventListener("resize", function () {
|
||||
echartsRecords.resize();
|
||||
});
|
||||
},
|
||||
editAdmin: function () {
|
||||
ea.listen();
|
||||
},
|
||||
editPassword: function () {
|
||||
ea.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
48
public/static/admin/js/login.js
Normal file
@@ -0,0 +1,48 @@
|
||||
define(["easy-admin"], function (ea) {
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
|
||||
if (top.location !== self.location) {
|
||||
top.location = self.location;
|
||||
}
|
||||
|
||||
$('.bind-password').on('click', function () {
|
||||
if ($(this).hasClass('icon-5')) {
|
||||
$(this).removeClass('icon-5');
|
||||
$("input[name='password']").attr('type', 'password');
|
||||
} else {
|
||||
$(this).addClass('icon-5');
|
||||
$("input[name='password']").attr('type', 'text');
|
||||
}
|
||||
});
|
||||
|
||||
$('.icon-nocheck').on('click', function () {
|
||||
if ($(this).hasClass('icon-check')) {
|
||||
$(this).removeClass('icon-check');
|
||||
} else {
|
||||
$(this).addClass('icon-check');
|
||||
}
|
||||
});
|
||||
|
||||
$('.login-tip').on('click', function () {
|
||||
$('.icon-nocheck').click();
|
||||
});
|
||||
|
||||
ea.listen(function (data) {
|
||||
data['keep_login'] = $('.icon-nocheck').hasClass('icon-check') ? 1 : 0;
|
||||
return data;
|
||||
}, function (res) {
|
||||
ea.msg.success(res.msg, function () {
|
||||
window.location = ea.url('index');
|
||||
})
|
||||
}, function (res) {
|
||||
ea.msg.error(res.msg, function () {
|
||||
$('#refreshCaptcha').trigger("click");
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
42
public/static/admin/js/mall/cate.js
Normal file
@@ -0,0 +1,42 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'mall.cate/index',
|
||||
add_url: 'mall.cate/add',
|
||||
edit_url: 'mall.cate/edit',
|
||||
delete_url: 'mall.cate/delete',
|
||||
export_url: 'mall.cate/export',
|
||||
modify_url: 'mall.cate/modify',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
ea.table.render({
|
||||
init: init,
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID'},
|
||||
{field: 'sort', width: 80, title: '排序', edit: 'text'},
|
||||
{field: 'title', minWidth: 80, title: '分类名称'},
|
||||
{field: 'image', minWidth: 80, title: '分类图片', search: false, templet: ea.table.image},
|
||||
{field: 'remark', minWidth: 80, title: '备注信息'},
|
||||
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
{width: 250, title: '操作', templet: ea.table.tool}
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
ea.listen();
|
||||
},
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
83
public/static/admin/js/mall/goods.js
Normal file
@@ -0,0 +1,83 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'mall.goods/index',
|
||||
add_url: 'mall.goods/add',
|
||||
edit_url: 'mall.goods/edit',
|
||||
delete_url: 'mall.goods/delete',
|
||||
export_url: 'mall.goods/export',
|
||||
modify_url: 'mall.goods/modify',
|
||||
stock_url: 'mall.goods/stock',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
ea.table.render({
|
||||
init: init,
|
||||
toolbar: ['refresh',
|
||||
[{
|
||||
text: '添加',
|
||||
url: init.add_url,
|
||||
method: 'open',
|
||||
auth: 'add',
|
||||
class: 'layui-btn layui-btn-normal layui-btn-sm',
|
||||
icon: 'fa fa-plus ',
|
||||
extend: 'data-full="true"',
|
||||
}],
|
||||
'delete', 'export'],
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID'},
|
||||
{field: 'sort', width: 80, title: '排序', edit: 'text'},
|
||||
{field: 'cate.title', minWidth: 80, title: '商品分类'},
|
||||
{field: 'title', minWidth: 80, title: '商品名称'},
|
||||
{field: 'logo', minWidth: 80, title: '分类图片', search: false, templet: ea.table.image},
|
||||
{field: 'market_price', width: 100, title: '市场价', templet: ea.table.price},
|
||||
{field: 'discount_price', width: 100, title: '折扣价', templet: ea.table.price},
|
||||
{field: 'total_stock', width: 100, title: '库存统计'},
|
||||
{field: 'stock', width: 100, title: '剩余库存'},
|
||||
{field: 'virtual_sales', width: 100, title: '虚拟销量'},
|
||||
{field: 'sales', width: 80, title: '销量'},
|
||||
{field: 'status', title: '状态', width: 85, selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
{
|
||||
width: 250,
|
||||
title: '操作',
|
||||
templet: ea.table.tool,
|
||||
operat: [
|
||||
[{
|
||||
text: '编辑',
|
||||
url: init.edit_url,
|
||||
method: 'open',
|
||||
auth: 'edit',
|
||||
class: 'layui-btn layui-btn-xs layui-btn-success',
|
||||
extend: 'data-full="true"',
|
||||
}, {
|
||||
text: '入库',
|
||||
url: init.stock_url,
|
||||
method: 'open',
|
||||
auth: 'stock',
|
||||
class: 'layui-btn layui-btn-xs layui-btn-normal',
|
||||
}],
|
||||
'delete']
|
||||
}
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
ea.listen();
|
||||
},
|
||||
stock: function () {
|
||||
ea.listen();
|
||||
},
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
64
public/static/admin/js/system/admin.js
Normal file
@@ -0,0 +1,64 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.admin/index',
|
||||
add_url: 'system.admin/add',
|
||||
edit_url: 'system.admin/edit',
|
||||
delete_url: 'system.admin/delete',
|
||||
modify_url: 'system.admin/modify',
|
||||
export_url: 'system.admin/export',
|
||||
password_url: 'system.admin/password',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
|
||||
ea.table.render({
|
||||
init: init,
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID'},
|
||||
{field: 'sort', width: 80, title: '排序', edit: 'text'},
|
||||
{field: 'username', minWidth: 80, title: '登录账户'},
|
||||
{field: 'head_img', minWidth: 80, title: '头像', search: false, templet: ea.table.image},
|
||||
{field: 'phone', minWidth: 80, title: '手机'},
|
||||
{field: 'login_num', minWidth: 80, title: '登录次数'},
|
||||
{field: 'remark', minWidth: 80, title: '备注信息'},
|
||||
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
{
|
||||
width: 250,
|
||||
title: '操作',
|
||||
templet: ea.table.tool,
|
||||
operat: [
|
||||
'edit',
|
||||
[{
|
||||
text: '设置密码',
|
||||
url: init.password_url,
|
||||
method: 'open',
|
||||
auth: 'password',
|
||||
class: 'layui-btn layui-btn-normal layui-btn-xs',
|
||||
}],
|
||||
'delete'
|
||||
]
|
||||
}
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
ea.listen();
|
||||
},
|
||||
password: function () {
|
||||
ea.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
90
public/static/admin/js/system/auth.js
Normal file
@@ -0,0 +1,90 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.auth/index',
|
||||
add_url: 'system.auth/add',
|
||||
edit_url: 'system.auth/edit',
|
||||
delete_url: 'system.auth/delete',
|
||||
export_url: 'system.auth/export',
|
||||
modify_url: 'system.auth/modify',
|
||||
authorize_url: 'system.auth/authorize',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
ea.table.render({
|
||||
init: init,
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID'},
|
||||
{field: 'sort', width: 80, title: '排序', edit: 'text'},
|
||||
{field: 'title', minWidth: 80, title: '权限名称'},
|
||||
{field: 'remark', minWidth: 80, title: '备注信息'},
|
||||
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
{
|
||||
width: 250,
|
||||
title: '操作',
|
||||
templet: ea.table.tool,
|
||||
operat: [
|
||||
'edit',
|
||||
[{
|
||||
text: '授权',
|
||||
url: init.authorize_url,
|
||||
method: 'open',
|
||||
auth: 'authorize',
|
||||
class: 'layui-btn layui-btn-normal layui-btn-xs',
|
||||
}],
|
||||
'delete'
|
||||
]
|
||||
}
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
ea.listen();
|
||||
},
|
||||
authorize: function () {
|
||||
var tree = layui.tree;
|
||||
|
||||
ea.request.get(
|
||||
{
|
||||
url: window.location.href,
|
||||
}, function (res) {
|
||||
res.data = res.data || [];
|
||||
tree.render({
|
||||
elem: '#node_ids',
|
||||
data: res.data,
|
||||
showCheckbox: true,
|
||||
id: 'nodeDataId',
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
ea.listen(function (data) {
|
||||
var checkedData = tree.getChecked('nodeDataId');
|
||||
var ids = [];
|
||||
$.each(checkedData, function (i, v) {
|
||||
ids.push(v.id);
|
||||
if (v.children !== undefined && v.children.length > 0) {
|
||||
$.each(v.children, function (ii, vv) {
|
||||
ids.push(vv.id);
|
||||
});
|
||||
}
|
||||
});
|
||||
data.node = JSON.stringify(ids);
|
||||
return data;
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
23
public/static/admin/js/system/config.js
Normal file
@@ -0,0 +1,23 @@
|
||||
define(["jquery", "easy-admin", "vue"], function ($, ea, Vue) {
|
||||
|
||||
var form = layui.form;
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
upload_type: upload_type
|
||||
}
|
||||
});
|
||||
|
||||
form.on("radio(upload_type)", function (data) {
|
||||
app.upload_type = this.value;
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
35
public/static/admin/js/system/log.js
Normal file
@@ -0,0 +1,35 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.log/index',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
var util = layui.util;
|
||||
ea.table.render({
|
||||
init: init,
|
||||
toolbar: ['refresh'],
|
||||
cols: [[
|
||||
{field: 'id', width: 80, title: 'ID', search: false},
|
||||
{field: 'month', title: '日志月份', hide: true, search: 'time', timeType: 'month', searchValue: util.toDateString(new Date(), 'yyyy-MM')},
|
||||
{field: 'admin.username', minWidth: 80, title: '后台用户', search: false},
|
||||
{field: 'method', minWidth: 80, title: '请求方法'},
|
||||
{field: 'url', minWidth: 80, title: '路由地址'},
|
||||
{field: 'title', minWidth: 80, title: '日志标题'},
|
||||
{field: 'content', minWidth: 80, title: '操作内容'},
|
||||
{field: 'ip', minWidth: 80, title: 'IP地址'},
|
||||
{field: 'useragent', minWidth: 80, title: 'useragent'},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
};
|
||||
|
||||
return Controller;
|
||||
});
|
||||
195
public/static/admin/js/system/menu.js
Normal file
@@ -0,0 +1,195 @@
|
||||
define(["jquery", "easy-admin", "treetable", "iconPickerFa", "autocomplete"], function ($, ea) {
|
||||
|
||||
var table = layui.table,
|
||||
treetable = layui.treetable,
|
||||
iconPickerFa = layui.iconPickerFa,
|
||||
autocomplete = layui.autocomplete;
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.menu/index',
|
||||
add_url: 'system.menu/add',
|
||||
delete_url: 'system.menu/delete',
|
||||
edit_url: 'system.menu/edit',
|
||||
modify_url: 'system.menu/modify',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
|
||||
var renderTable = function () {
|
||||
layer.load(2);
|
||||
treetable.render({
|
||||
treeColIndex: 1,
|
||||
treeSpid: 0,
|
||||
homdPid: 99999999,
|
||||
treeIdName: 'id',
|
||||
treePidName: 'pid',
|
||||
url: ea.url(init.index_url),
|
||||
elem: init.table_elem,
|
||||
id: init.table_render_id,
|
||||
toolbar: '#toolbar',
|
||||
page: false,
|
||||
skin: 'line',
|
||||
|
||||
// @todo 不直接使用ea.table.render(); 进行表格初始化, 需要使用 ea.table.formatCols(); 方法格式化`cols`列数据
|
||||
cols: ea.table.formatCols([[
|
||||
{type: 'checkbox'},
|
||||
{field: 'title', width: 250, title: '菜单名称', align: 'left'},
|
||||
{field: 'icon', width: 80, title: '图标', templet: ea.table.icon},
|
||||
{field: 'href', minWidth: 120, title: '菜单链接'},
|
||||
{
|
||||
field: 'is_home',
|
||||
width: 80,
|
||||
title: '类型',
|
||||
templet: function (d) {
|
||||
if (d.pid === 99999999) {
|
||||
return '<span class="layui-badge layui-bg-blue">首页</span>';
|
||||
}
|
||||
if (d.pid === 0) {
|
||||
return '<span class="layui-badge layui-bg-gray">模块</span>';
|
||||
} else {
|
||||
return '<span class="layui-badge-rim">菜单</span>';
|
||||
}
|
||||
}
|
||||
},
|
||||
{field: 'status', title: '状态', width: 85, templet: ea.table.switch},
|
||||
{field: 'sort', width: 80, title: '排序', edit: 'text'},
|
||||
{
|
||||
width: 200,
|
||||
title: '操作',
|
||||
templet: ea.table.tool,
|
||||
operat: [
|
||||
[{
|
||||
text: '添加下级',
|
||||
url: init.add_url,
|
||||
method: 'open',
|
||||
auth: 'add',
|
||||
class: 'layui-btn layui-btn-xs layui-btn-normal',
|
||||
extend: 'data-full="true"',
|
||||
}, {
|
||||
text: '编辑',
|
||||
url: init.edit_url,
|
||||
method: 'open',
|
||||
auth: 'edit',
|
||||
class: 'layui-btn layui-btn-xs layui-btn-success',
|
||||
extend: 'data-full="true"',
|
||||
}],
|
||||
'delete'
|
||||
]
|
||||
}
|
||||
]], init),
|
||||
done: function () {
|
||||
layer.closeAll('loading');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
renderTable();
|
||||
|
||||
$('body').on('click', '[data-treetable-refresh]', function () {
|
||||
renderTable();
|
||||
});
|
||||
|
||||
$('body').on('click', '[data-treetable-delete]', function () {
|
||||
var tableId = $(this).attr('data-treetable-delete'),
|
||||
url = $(this).attr('data-url');
|
||||
tableId = tableId || init.table_render_id;
|
||||
url = url != undefined ? ea.url(url) : window.location.href;
|
||||
var checkStatus = table.checkStatus(tableId),
|
||||
data = checkStatus.data;
|
||||
if (data.length <= 0) {
|
||||
ea.msg.error('请勾选需要删除的数据');
|
||||
return false;
|
||||
}
|
||||
var ids = [];
|
||||
$.each(data, function (i, v) {
|
||||
ids.push(v.id);
|
||||
});
|
||||
ea.msg.confirm('确定删除?', function () {
|
||||
ea.request.post({
|
||||
url: url,
|
||||
data: {
|
||||
id: ids
|
||||
},
|
||||
}, function (res) {
|
||||
ea.msg.success(res.msg, function () {
|
||||
renderTable();
|
||||
});
|
||||
});
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
ea.table.listenSwitch({filter: 'status', url: init.modify_url});
|
||||
|
||||
ea.table.listenEdit(init, 'currentTable', init.table_render_id, true);
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
iconPickerFa.render({
|
||||
elem: '#icon',
|
||||
url: PATH_CONFIG.iconLess,
|
||||
limit: 12,
|
||||
click: function (data) {
|
||||
$('#icon').val('fa ' + data.icon);
|
||||
},
|
||||
success: function (d) {
|
||||
console.log(d);
|
||||
}
|
||||
});
|
||||
autocomplete.render({
|
||||
elem: $('#href')[0],
|
||||
url: ea.url('system.menu/getMenuTips'),
|
||||
template_val: '{{d.node}}',
|
||||
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
|
||||
onselect: function (resp) {
|
||||
}
|
||||
});
|
||||
|
||||
ea.listen(function (data) {
|
||||
return data;
|
||||
}, function (res) {
|
||||
ea.msg.success(res.msg, function () {
|
||||
var index = parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(index);
|
||||
parent.$('[data-treetable-refresh]').trigger("click");
|
||||
});
|
||||
});
|
||||
},
|
||||
edit: function () {
|
||||
iconPickerFa.render({
|
||||
elem: '#icon',
|
||||
url: PATH_CONFIG.iconLess,
|
||||
limit: 12,
|
||||
click: function (data) {
|
||||
$('#icon').val('fa ' + data.icon);
|
||||
},
|
||||
success: function (d) {
|
||||
console.log(d);
|
||||
}
|
||||
});
|
||||
autocomplete.render({
|
||||
elem: $('#href')[0],
|
||||
url: ea.url('system.menu/getMenuTips'),
|
||||
template_val: '{{d.node}}',
|
||||
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
|
||||
onselect: function (resp) {
|
||||
}
|
||||
});
|
||||
|
||||
ea.listen(function (data) {
|
||||
return data;
|
||||
}, function (res) {
|
||||
ea.msg.success(res.msg, function () {
|
||||
var index = parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(index);
|
||||
parent.$('[data-treetable-refresh]').trigger("click");
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
69
public/static/admin/js/system/node.js
Normal file
@@ -0,0 +1,69 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.node/index',
|
||||
add_url: 'system.node/add',
|
||||
edit_url: 'system.node/edit',
|
||||
delete_url: 'system.node/delete',
|
||||
modify_url: 'system.node/modify',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
ea.table.render({
|
||||
init: init,
|
||||
search: false,
|
||||
page: false,
|
||||
toolbar: ['refresh',
|
||||
[{
|
||||
text: '更新节点',
|
||||
title: '确定更新新节点?',
|
||||
url: 'system.node/refreshNode?force=0',
|
||||
method: 'request',
|
||||
auth: 'refresh',
|
||||
class: 'layui-btn layui-btn-success layui-btn-sm',
|
||||
icon: 'fa fa-hourglass',
|
||||
extend: 'data-table="' + init.table_render_id + '"',
|
||||
}, {
|
||||
text: '强制更新节点',
|
||||
title: '该操作会覆盖已存在的节点信息。<br>确定强制更新节点?',
|
||||
url: 'system.node/refreshNode?force=1',
|
||||
method: 'request',
|
||||
auth: 'refresh',
|
||||
class: 'layui-btn layui-btn-sm layui-btn-normal',
|
||||
icon: 'fa fa-hourglass',
|
||||
extend: 'data-table="' + init.table_render_id + '"',
|
||||
}, {
|
||||
|
||||
text: '清除失效节点',
|
||||
title: '确定清除失效节点?',
|
||||
url: 'system.node/clearNode',
|
||||
method: 'request',
|
||||
auth: 'clear',
|
||||
class: 'layui-btn layui-btn-sm layui-btn-danger',
|
||||
icon: 'fa fa-trash-o',
|
||||
extend: 'data-table="' + init.table_render_id + '"',
|
||||
}
|
||||
]],
|
||||
cols: [[
|
||||
{field: 'node', minWidth: 200, align: 'left', title: '系统节点'},
|
||||
{field: 'title', minWidth: 80, title: '节点名称 <i class="table-edit-tips color-red">*</i>', edit: 'text'},
|
||||
{field: 'update_time', minWidth: 80, title: '更新时间', search: 'range'},
|
||||
{field: 'is_auth', title: '节点控制', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
ea.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
86
public/static/admin/js/system/quick.js
Normal file
@@ -0,0 +1,86 @@
|
||||
define(["jquery", "easy-admin", "iconPickerFa", "autocomplete"], function ($, ea) {
|
||||
|
||||
var iconPickerFa = layui.iconPickerFa,
|
||||
autocomplete = layui.autocomplete;
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.quick/index',
|
||||
add_url: 'system.quick/add',
|
||||
edit_url: 'system.quick/edit',
|
||||
delete_url: 'system.quick/delete',
|
||||
export_url: 'system.quick/export',
|
||||
modify_url: 'system.quick/modify',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
ea.table.render({
|
||||
init: init,
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID'},
|
||||
{field: 'sort', width: 80, title: '排序', edit: 'text'},
|
||||
{field: 'title', minWidth: 80, title: '权限名称'},
|
||||
{field: 'icon', width: 80, title: '图标', templet: ea.table.icon},
|
||||
{field: 'href', minWidth: 120, title: '快捷链接'},
|
||||
{field: 'remark', minWidth: 80, title: '备注信息'},
|
||||
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
{width: 250, title: '操作', templet: ea.table.tool, operat: ['edit', 'delete']}
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
iconPickerFa.render({
|
||||
elem: '#icon',
|
||||
url: PATH_CONFIG.iconLess,
|
||||
limit: 12,
|
||||
click: function (data) {
|
||||
$('#icon').val('fa ' + data.icon);
|
||||
},
|
||||
success: function (d) {
|
||||
console.log(d);
|
||||
}
|
||||
});
|
||||
autocomplete.render({
|
||||
elem: $('#href')[0],
|
||||
url: ea.url('system.menu/getMenuTips'),
|
||||
template_val: '{{d.node}}',
|
||||
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
|
||||
onselect: function (resp) {
|
||||
}
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
iconPickerFa.render({
|
||||
elem: '#icon',
|
||||
url: PATH_CONFIG.iconLess,
|
||||
limit: 12,
|
||||
click: function (data) {
|
||||
$('#icon').val('fa ' + data.icon);
|
||||
},
|
||||
success: function (d) {
|
||||
console.log(d);
|
||||
}
|
||||
});
|
||||
autocomplete.render({
|
||||
elem: $('#href')[0],
|
||||
url: ea.url('system.menu/getMenuTips'),
|
||||
template_val: '{{d.node}}',
|
||||
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
|
||||
onselect: function (resp) {
|
||||
}
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
46
public/static/admin/js/system/uploadfile.js
Normal file
@@ -0,0 +1,46 @@
|
||||
define(["jquery", "easy-admin"], function ($, ea) {
|
||||
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: 'system.uploadfile/index',
|
||||
add_url: 'system.uploadfile/add',
|
||||
edit_url: 'system.uploadfile/edit',
|
||||
delete_url: 'system.uploadfile/delete',
|
||||
modify_url: 'system.uploadfile/modify',
|
||||
export_url:'system.uploadfile/export',
|
||||
};
|
||||
|
||||
var Controller = {
|
||||
|
||||
index: function () {
|
||||
ea.table.render({
|
||||
init: init,
|
||||
cols: [[
|
||||
{type: "checkbox"},
|
||||
{field: 'id', width: 80, title: 'ID'},
|
||||
{field: 'upload_type', minWidth: 80, title: '存储位置', search: 'select', selectList: {'local': '本地', 'alioss': '阿里云', 'qnoss': '七牛云', ',txcos': '腾讯云'}},
|
||||
{field: 'url', minWidth: 80, search: false, title: '图片信息', templet: ea.table.image},
|
||||
{field: 'url', minWidth: 120, title: '保存地址', templet: ea.table.url},
|
||||
{field: 'original_name', minWidth: 80, title: '文件原名'},
|
||||
{field: 'mime_type', minWidth: 80, title: 'mime类型'},
|
||||
{field: 'file_ext', minWidth: 80, title: '文件后缀'},
|
||||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
||||
{width: 250, title: '操作', templet: ea.table.tool, operat: ['delete']}
|
||||
]],
|
||||
});
|
||||
|
||||
ea.listen();
|
||||
},
|
||||
add: function () {
|
||||
ea.listen();
|
||||
},
|
||||
edit: function () {
|
||||
ea.listen();
|
||||
},
|
||||
password: function () {
|
||||
ea.listen();
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
});
|
||||
83
public/static/common/css/insatll.css
Normal file
@@ -0,0 +1,83 @@
|
||||
body{
|
||||
text-align: center;
|
||||
}
|
||||
h1{
|
||||
margin-top: 20px;
|
||||
}
|
||||
h1 img{
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 28px;
|
||||
font-weight: normal;
|
||||
color: #3C5675;
|
||||
margin-bottom: 0
|
||||
}
|
||||
.content{
|
||||
margin-top: 20px;
|
||||
}
|
||||
.content p{
|
||||
margin: 20px;
|
||||
}
|
||||
.content form{
|
||||
margin:0 auto;
|
||||
width: 500px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.content form .bg{
|
||||
margin-top: 20px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 3px;
|
||||
padding: 14px 14px;
|
||||
box-shadow: 0 0 8px #cccccc;
|
||||
}
|
||||
.content form .layui-form-item:last-child{
|
||||
margin-bottom:0!important;
|
||||
}
|
||||
.content form .layui-btn{
|
||||
margin-top: 20px;
|
||||
}
|
||||
.content .layui-elem-field legend{
|
||||
font-size: 16px;
|
||||
color: #8a8a8a;
|
||||
}
|
||||
.content .tips{
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
font-size: 12px;
|
||||
color: #eca6a6
|
||||
}
|
||||
.content .admin-tips{
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
font-size: 12px;
|
||||
color: #eca6a6
|
||||
}
|
||||
.content .desc{
|
||||
font-size: 16px;
|
||||
color: #4E5465;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.content .desc a{
|
||||
color: #07adeb;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.content .desc a:first-child{
|
||||
margin-left: 10px;
|
||||
}
|
||||
.error{
|
||||
background: #D83E3E;
|
||||
color: #fff;
|
||||
padding: 15px 20px;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
@media screen and (max-width:768px) {
|
||||
.content form{
|
||||
width: 95%;
|
||||
}
|
||||
}
|
||||
755
public/static/common/css/welcome.css
Normal file
@@ -0,0 +1,755 @@
|
||||
/**
|
||||
content from file: common.css
|
||||
*/
|
||||
/****************** 系統配置 ******************/
|
||||
html, body, p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.container {
|
||||
max-width: 540px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 720px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.container {
|
||||
max-width: 960px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
max-width: 1140px
|
||||
}
|
||||
}
|
||||
|
||||
.float-left {
|
||||
float: left
|
||||
}
|
||||
|
||||
.float-right {
|
||||
float: right
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
i {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
border: none;
|
||||
background: white;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.s-flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.space-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.justify-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.cursor-p {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mt-15 {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.clearfix:after, .clearfix:before {
|
||||
content: " ";
|
||||
display: table
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
/****************** 头部 ******************/
|
||||
header {
|
||||
padding: 10px 16.8%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.logo-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 25px;
|
||||
font-weight: normal;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
}
|
||||
|
||||
header .right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.navbar {
|
||||
margin-right: 40px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.navbar-item {
|
||||
margin-left: 30px;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.navbar-item.active {
|
||||
color: #36C182;
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 2px solid #36C182;
|
||||
}
|
||||
|
||||
header .logo {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
header iframe {
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
border: none;
|
||||
padding: 10px 0 0;
|
||||
}
|
||||
|
||||
/****************** 捐赠 ******************/
|
||||
|
||||
.d-banner h1, .d-banner p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ewm-content img {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.ewm-content .ewm-item {
|
||||
width: 210px;
|
||||
margin-left: 15px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.sect-role {
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.table th,
|
||||
.table td {
|
||||
padding: 0.75rem;
|
||||
vertical-align: top;
|
||||
border-top: 1px solid #dee2e6;
|
||||
}
|
||||
|
||||
.table thead th {
|
||||
vertical-align: bottom;
|
||||
border-bottom: 2px solid #dee2e6;
|
||||
}
|
||||
|
||||
.table tbody + tbody {
|
||||
border-top: 2px solid #dee2e6;
|
||||
}
|
||||
|
||||
.table .table {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.table-sm th,
|
||||
.table-sm td {
|
||||
padding: 0.3rem;
|
||||
}
|
||||
|
||||
.table-bordered {
|
||||
border: 1px solid #dee2e6;
|
||||
}
|
||||
|
||||
.table-bordered th,
|
||||
.table-bordered td {
|
||||
border: 1px solid #dee2e6;
|
||||
}
|
||||
|
||||
.table-bordered thead th,
|
||||
.table-bordered thead td {
|
||||
border-bottom-width: 2px;
|
||||
}
|
||||
|
||||
.table-striped tbody tr:nth-of-type(odd) {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.table-hover tbody tr:hover {
|
||||
background-color: rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
|
||||
/****************** 底部 ******************/
|
||||
footer {
|
||||
background: #e4e4e4;
|
||||
padding: 15px 0;
|
||||
font-size: 14px;
|
||||
font-family: "Microsoft YaHei", sans-serif;
|
||||
font-weight: 400;
|
||||
color: rgb(60, 85, 93);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
footer p {
|
||||
margin: 10px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: rgb(60, 85, 93);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.protocol {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.beian-number {
|
||||
}
|
||||
|
||||
/**
|
||||
content from file: home.css
|
||||
*/
|
||||
.home-main {
|
||||
margin-top: 90px;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
padding-bottom: 140px;
|
||||
}
|
||||
|
||||
.title .logo {
|
||||
width: 116px;
|
||||
height: 151px;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.title .name {
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.title .desc {
|
||||
width: 729px;
|
||||
font-size: 22px;
|
||||
font-family: MicrosoftYaHei;
|
||||
font-weight: 400;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
margin: 0 auto 58px;
|
||||
}
|
||||
|
||||
.title .operation {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.title .operation button, .title .operation a {
|
||||
width: 123px;
|
||||
height: 47px;
|
||||
border: 1px solid rgb(0, 177, 236);
|
||||
border-radius: 24px;
|
||||
font-size: 16px;
|
||||
font-family: MicrosoftYaHei-Bold;
|
||||
font-weight: bold;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.title .operation .start {
|
||||
background: rgb(0, 177, 236);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.title .operation .icon-play {
|
||||
width: 10px;
|
||||
height: 12px;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.title .operation .download {
|
||||
color: #00b1ec;
|
||||
}
|
||||
|
||||
.title .operation .icon-download-green {
|
||||
width: 20px;
|
||||
height: 17px;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.title .operation .button-grya {
|
||||
background: #F3F3F3;
|
||||
font-size: 20px;
|
||||
font-family: MicrosoftYaHei;
|
||||
font-weight: 400;
|
||||
color: rgba(138, 138, 138, 1);
|
||||
border: none;
|
||||
}
|
||||
|
||||
.title .operation .button-grya .icon-gitee {
|
||||
width: 26px;
|
||||
height: 25px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.title .operation .button-grya .icon-github-big {
|
||||
width: 26px;
|
||||
height: 25px;
|
||||
margin-right: 3px;
|
||||
|
||||
}
|
||||
|
||||
.introduction {
|
||||
padding: 75px 0 110px;
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
.top {
|
||||
margin: 0 auto;
|
||||
max-width: 810px;
|
||||
}
|
||||
|
||||
.part-title {
|
||||
text-align: center;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.part-title .text {
|
||||
font-size: 32px;
|
||||
font-family: MicrosoftYaHei-Bold;
|
||||
font-weight: bold;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
}
|
||||
|
||||
.part-title .line {
|
||||
width: 50px;
|
||||
height: 2px;
|
||||
background: #36C182;
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.introduction .top .part-desc {
|
||||
width: 808px;
|
||||
font-size: 14px;
|
||||
font-family: MicrosoftYaHei;
|
||||
font-weight: 400;
|
||||
color: rgba(102, 102, 102, 1);
|
||||
line-height: 22px;
|
||||
text-align: center;
|
||||
margin-top: 22px;
|
||||
}
|
||||
|
||||
.introduction .bottom {
|
||||
max-width: 1100px;
|
||||
margin: 110px auto 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.introduction .bottom .item {
|
||||
width: 294px;
|
||||
margin-right: 108px;
|
||||
}
|
||||
|
||||
.introduction .bottom .item:nth-child(n+4) {
|
||||
margin-top: 90px;
|
||||
}
|
||||
|
||||
.introduction .bottom .item:nth-child(3n+3) {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.introduction .bottom .item-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.introduction .bottom .item-title i {
|
||||
width: 36px;
|
||||
height: 44px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.introduction .bottom .item-title span {
|
||||
font-size: 22px;
|
||||
font-family: MicrosoftYaHei, sans-serif, serif;
|
||||
font-weight: 400;
|
||||
color: rgb(0, 96, 128);
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
.introduction .bottom .item-desc {
|
||||
font-size: 14px;
|
||||
font-family: MicrosoftYaHei, sans-serif, serif;
|
||||
font-weight: 400;
|
||||
color: rgba(127, 127, 127, 1);
|
||||
line-height: 26px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.footer-nav-box {
|
||||
width: 28%;
|
||||
}
|
||||
|
||||
.footer-proto-box {
|
||||
width: 58%;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.footer-nav-box {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.footer-proto-box {
|
||||
width: 95%;
|
||||
}
|
||||
}
|
||||
|
||||
.site-footer ul, .site-footer li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.site-footer a {
|
||||
color:rgb(60, 85, 93);
|
||||
line-height: 1.6em;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.case {
|
||||
max-width: 80%;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
padding: 75px 0 110px;
|
||||
}
|
||||
|
||||
.case .top {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.case a {
|
||||
margin: 20px 15px 0;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.case a,
|
||||
.case img {
|
||||
vertical-align: middle;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.case img {
|
||||
transition: all 0.3s ease;
|
||||
max-width: 140px;
|
||||
max-height: 90px;
|
||||
}
|
||||
|
||||
.case img:hover {
|
||||
filter: none;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.case .case-links {
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.case .become-case {
|
||||
font-size: 0.9em;
|
||||
font-weight: 700;
|
||||
width: auto;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.case a.button,
|
||||
.case input.button {
|
||||
margin-top: 100px;
|
||||
padding: 0.65em 1.8em;
|
||||
border-radius: 2em;
|
||||
display: inline-block;
|
||||
background-color: #4fc08d;
|
||||
transition: all 0.15s ease;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #4fc08d;
|
||||
}
|
||||
|
||||
.case a.button.white,
|
||||
.case input.button.white {
|
||||
background-color: #fff;
|
||||
color: #42b983;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
content from file: icon-img.css
|
||||
*/
|
||||
.img-case {
|
||||
/*background: url("../images/case.png");*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.img-qrcode {
|
||||
/*background: url("../images/qrcode.png");*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.img-name {
|
||||
background: url("../images/logo-3.png") no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.img-logo-header {
|
||||
background: url("../images/logo-1.png");
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.img-logo-big {
|
||||
/*background: url("../images/big-logo.png");*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.img-computer {
|
||||
/*background: url("../images/computer.png") repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-github-big {
|
||||
background: url("../images/icon-github-big.png");
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-github-small {
|
||||
/*background: url("../images/icon-github-small.png");*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-address {
|
||||
/*background: url("../images/icon-address.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-email {
|
||||
/*background: url("../images/icon-position.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-download-green {
|
||||
background: url("../images/icon-download-green.png");
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-play {
|
||||
background: url("../images/icon-play.png");
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-gitee {
|
||||
background: url("../images/icon-gitee.png") no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-intro-six {
|
||||
/*background: url("../images/intro-six.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-intro-five {
|
||||
/*background: url("../images/intro-five.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-intro-four {
|
||||
/*background: url("../images/intro-four.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-intro-three {
|
||||
/*background: url("../images/intro-three.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-intro-two {
|
||||
/*background: url("../images/intro-two.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.icon-intro-seven {
|
||||
/*background: url("../images/intro-three.png") no-repeat;*/
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
/**
|
||||
content from file: team.css
|
||||
*/
|
||||
.banner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
background: gray;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.banner-desc {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.banner-desc p:first-child {
|
||||
font-size: 36px;
|
||||
font-family: SourceHanSansCN-Bold;
|
||||
font-weight: bold;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.banner-desc p:last-child {
|
||||
font-size: 24px;
|
||||
font-family: SourceHanSansCN-Normal;
|
||||
font-weight: 400;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.team-main .content {
|
||||
margin-left: 26.5%;
|
||||
display: flex;
|
||||
padding: 50px 0 100px;
|
||||
}
|
||||
|
||||
.qrcode-box {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
padding: 20px;
|
||||
background: #fafafa;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
|
||||
.img-qrcode {
|
||||
width: 151px;
|
||||
height: 152px;
|
||||
}
|
||||
|
||||
.qrcode-box p {
|
||||
font-size: 14px;
|
||||
font-family: MicrosoftYaHei;
|
||||
font-weight: 400;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.info-box {
|
||||
margin-left: 50px;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
display: flex;
|
||||
align-items: start;
|
||||
width: 480px;
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px dotted #cfcfcf;
|
||||
}
|
||||
|
||||
.info-item + .info-item {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.info-item .avatar {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.info-item .detail {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.info-item .detail p {
|
||||
font-size: 14px;
|
||||
font-family: MicrosoftYaHei;
|
||||
font-weight: 400;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
|
||||
}
|
||||
|
||||
.info-item .detail p + p {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.info-item .detail p i {
|
||||
width: 14px;
|
||||
height: 13px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.info-item .detail p.name {
|
||||
font-size: 20px;
|
||||
font-family: MicrosoftYaHei;
|
||||
font-weight: 400;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
line-height: 36px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
1
public/static/common/images/error.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1587611578518" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12472" width="1000" height="1000" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M480 64C217.6 64 0 281.6 0 544s217.6 480 480 480 480-217.6 480-480S742.4 64 480 64z m204.8 614.4c19.2 19.2 19.2 44.8 0 64-19.2 19.2-44.8 19.2-64 0L486.4 608 345.6 748.8c-19.2 19.2-51.2 19.2-70.4 0-19.2-19.2-19.2-51.2 0-70.4L416 537.6 281.6 403.2c-19.2-19.2-19.2-44.8 0-64 19.2-19.2 44.8-19.2 64 0L480 473.6l140.8-140.8c19.2-19.2 51.2-19.2 70.4 0 19.2 19.2 19.2 51.2 0 70.4L550.4 544l134.4 134.4z" fill="#ff8992" p-id="12473"></path></svg>
|
||||
|
After Width: | Height: | Size: 818 B |
BIN
public/static/common/images/favicon.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
public/static/common/images/github.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/static/common/images/icon-download-green.png
Normal file
|
After Width: | Height: | Size: 303 B |
BIN
public/static/common/images/icon-gitee.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
public/static/common/images/icon-github-big.png
Normal file
|
After Width: | Height: | Size: 661 B |
BIN
public/static/common/images/icon-play.png
Normal file
|
After Width: | Height: | Size: 209 B |
1
public/static/common/images/info.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1587611661267" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13699" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="1000"><defs><style type="text/css"></style></defs><path d="M512 4.12672c280.49408 0 507.87328 227.3792 507.87328 507.87328 0 280.49408-227.3792 507.87328-507.87328 507.87328C231.50592 1019.87328 4.12672 792.49408 4.12672 512 4.12672 231.50592 231.50592 4.12672 512 4.12672zM512 685.96736c-42.47552 0-76.91264 34.42688-76.91264 76.91264 0 42.47552 34.43712 76.91264 76.91264 76.91264 42.47552 0 76.91264-34.43712 76.91264-76.91264C588.91264 720.39424 554.47552 685.96736 512 685.96736zM509.78816 625.83808c36.58752 0 66.24256-29.66528 66.24256-66.24256l0-309.1456c0-36.58752-29.65504-66.24256-66.24256-66.24256-36.58752 0-66.24256 29.66528-66.24256 66.24256l0 309.1456C443.5456 596.18304 473.20064 625.83808 509.78816 625.83808z" p-id="13700" fill="#1E9FFF"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/static/common/images/logo-1.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/static/common/images/logo-2.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/static/common/images/logo-3.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
1
public/static/common/images/success.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1587611710727" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15245" width="1000" height="1000" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M512 39.384615C250.092308 39.384615 39.384615 250.092308 39.384615 512s210.707692 472.615385 472.615385 472.615385 472.615385-210.707692 472.615385-472.615385S773.907692 39.384615 512 39.384615z m263.876923 354.461539L474.584615 699.076923c-11.815385 11.815385-31.507692 11.815385-43.323077 0L265.846154 531.692308c-11.815385-11.815385-11.815385-31.507692 0-43.323077l43.323077-43.323077c11.815385-11.815385 31.507692-11.815385 43.323077 0l86.646154 88.615384c7.876923 7.876923 21.661538 7.876923 29.538461 0L689.230769 305.230769c11.815385-11.815385 31.507692-11.815385 43.323077 0l43.323077 43.323077c13.784615 11.815385 13.784615 31.507692 0 45.292308z" p-id="15246" fill="#18bc9c"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
41
public/static/config-admin.js
Normal file
@@ -0,0 +1,41 @@
|
||||
var BASE_URL = document.scripts[document.scripts.length - 1].src.substring(0, document.scripts[document.scripts.length - 1].src.lastIndexOf("/") + 1);
|
||||
window.BASE_URL = BASE_URL;
|
||||
require.config({
|
||||
urlArgs: "v=" + CONFIG.VERSION,
|
||||
baseUrl: BASE_URL,
|
||||
paths: {
|
||||
"jquery": ["plugs/jquery-3.4.1/jquery-3.4.1.min"],
|
||||
"jquery-particleground": ["plugs/jq-module/jquery.particleground.min"],
|
||||
"echarts": ["plugs/echarts/echarts.min"],
|
||||
"echarts-theme": ["plugs/echarts/echarts-theme"],
|
||||
"easy-admin": ["plugs/easy-admin/easy-admin"],
|
||||
"layuiall": ["plugs/layui-v2.5.6/layui.all"],
|
||||
"layui": ["plugs/layui-v2.5.6/layui"],
|
||||
"miniAdmin": ["plugs/lay-module/layuimini/miniAdmin"],
|
||||
"miniMenu": ["plugs/lay-module/layuimini/miniMenu"],
|
||||
"miniTab": ["plugs/lay-module/layuimini/miniTab"],
|
||||
"miniTheme": ["plugs/lay-module/layuimini/miniTheme"],
|
||||
"miniTongji": ["plugs/lay-module/layuimini/miniTongji"],
|
||||
"treetable": ["plugs/lay-module/treetable-lay/treetable"],
|
||||
"tableSelect": ["plugs/lay-module/tableSelect/tableSelect"],
|
||||
"iconPickerFa": ["plugs/lay-module/iconPicker/iconPickerFa"],
|
||||
"autocomplete": ["plugs/lay-module/autocomplete/autocomplete"],
|
||||
"vue": ["plugs/vue-2.6.10/vue.min"],
|
||||
"ckeditor": ["plugs/ckeditor4/ckeditor"],
|
||||
}
|
||||
});
|
||||
|
||||
// 路径配置信息
|
||||
var PATH_CONFIG = {
|
||||
iconLess: BASE_URL + "plugs/font-awesome-4.7.0/less/variables.less",
|
||||
};
|
||||
window.PATH_CONFIG = PATH_CONFIG;
|
||||
|
||||
// 初始化控制器对应的JS自动加载
|
||||
if ("undefined" != typeof CONFIG.AUTOLOAD_JS && CONFIG.AUTOLOAD_JS) {
|
||||
require([BASE_URL + CONFIG.CONTROLLER_JS_PATH], function (Controller) {
|
||||
if (eval('Controller.' + CONFIG.ACTION)) {
|
||||
eval('Controller.' + CONFIG.ACTION + '()');
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
|
||||
|
||||
.left-bottom-options{
|
||||
position: fixed;
|
||||
left: 20px;
|
||||
bottom: 60px;
|
||||
background: rgba(0,0,0,0.4);
|
||||
color: #fff;
|
||||
font-size: 35px;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
|
||||
.main-container {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.layui-table img {
|
||||
max-width: 60px;
|
||||
max-height: 60px;
|
||||
}
|
||||
|
||||
.table-card-box{
|
||||
margin-top: 15px;
|
||||
background-color: #eee;
|
||||
padding: 15px 5px;
|
||||
}
|
||||
|
||||
.table-card-item{
|
||||
|
||||
margin-top: 5px;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.table-card-item img{
|
||||
max-width: 60px;
|
||||
max-height: 60px;
|
||||
}
|
||||
|
||||
.table-card-item .item-title{
|
||||
padding: 5px;
|
||||
font-size: 16px;
|
||||
width: 20%;
|
||||
}
|
||||
.table-card-item .item-value{
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
background-color: #fff;
|
||||
min-width: 80%;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
}
|
||||
.layui-form-radio{
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
.quick-input-item{
|
||||
width: 120px;
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.quick-input-item.sm-quick-input-item .layui-btn{
|
||||
line-height: 24px;
|
||||
height: 24px;
|
||||
font-size: 12px;
|
||||
padding: 0 12px;
|
||||
|
||||
}
|
||||
|
||||
.quick-input-item.sm-quick-input-item .layui-input{
|
||||
line-height: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ul-flex{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
|
||||
.upload-img{
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 768px){
|
||||
.layui-body{
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.layui-layout-admin .layui-footer{
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.layui-layout-admin .layui-logo{
|
||||
width: 115px;
|
||||
}
|
||||
|
||||
.layui-layout-admin .layui-side{
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
height: 100%;
|
||||
position: unset;
|
||||
}
|
||||
|
||||
.layui-layer-content .layui-hide-xs{
|
||||
display: unset !important;
|
||||
}
|
||||
|
||||
.layui-nav-tree{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
.pagination {
|
||||
display: inline-block;
|
||||
padding-left: 0;
|
||||
margin: 20px 0;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.pagination > li {
|
||||
display: inline;
|
||||
}
|
||||
.pagination > li > a,
|
||||
.pagination > li > span {
|
||||
position: relative;
|
||||
float: left;
|
||||
padding: 6px 12px;
|
||||
margin-left: -1px;
|
||||
line-height: 1.42857143;
|
||||
color: #337ab7;
|
||||
text-decoration: none;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
.pagination > li:first-child > a,
|
||||
.pagination > li:first-child > span {
|
||||
margin-left: 0;
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
.pagination > li:last-child > a,
|
||||
.pagination > li:last-child > span {
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
.pagination > li > a:hover,
|
||||
.pagination > li > span:hover,
|
||||
.pagination > li > a:focus,
|
||||
.pagination > li > span:focus {
|
||||
z-index: 2;
|
||||
color: #23527c;
|
||||
background-color: #eee;
|
||||
border-color: #ddd;
|
||||
}
|
||||
.pagination > .active > a,
|
||||
.pagination > .active > span,
|
||||
.pagination > .active > a:hover,
|
||||
.pagination > .active > span:hover,
|
||||
.pagination > .active > a:focus,
|
||||
.pagination > .active > span:focus {
|
||||
z-index: 3;
|
||||
color: #fff;
|
||||
cursor: default;
|
||||
background-color: #337ab7;
|
||||
border-color: #337ab7;
|
||||
}
|
||||
.pagination > .disabled > span,
|
||||
.pagination > .disabled > span:hover,
|
||||
.pagination > .disabled > span:focus,
|
||||
.pagination > .disabled > a,
|
||||
.pagination > .disabled > a:hover,
|
||||
.pagination > .disabled > a:focus {
|
||||
color: #777;
|
||||
cursor: not-allowed;
|
||||
background-color: #fff;
|
||||
border-color: #ddd;
|
||||
}
|
||||
.pagination-lg > li > a,
|
||||
.pagination-lg > li > span {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.3333333;
|
||||
}
|
||||
.pagination-lg > li:first-child > a,
|
||||
.pagination-lg > li:first-child > span {
|
||||
border-top-left-radius: 6px;
|
||||
border-bottom-left-radius: 6px;
|
||||
}
|
||||
.pagination-lg > li:last-child > a,
|
||||
.pagination-lg > li:last-child > span {
|
||||
border-top-right-radius: 6px;
|
||||
border-bottom-right-radius: 6px;
|
||||
}
|
||||
.pagination-sm > li > a,
|
||||
.pagination-sm > li > span {
|
||||
padding: 5px 10px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.pagination-sm > li:first-child > a,
|
||||
.pagination-sm > li:first-child > span {
|
||||
border-top-left-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
}
|
||||
.pagination-sm > li:last-child > a,
|
||||
.pagination-sm > li:last-child > span {
|
||||
border-top-right-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
@@ -1,349 +0,0 @@
|
||||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||
|
||||
/* Document
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Correct the line height in all browsers.
|
||||
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||
*/
|
||||
|
||||
html {
|
||||
line-height: 1.15; /* 1 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/* Sections
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the margin in all browsers.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the `main` element consistently in IE.
|
||||
*/
|
||||
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the font size and margin on `h1` elements within `section` and
|
||||
* `article` contexts in Chrome, Firefox, and Safari.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
/* Grouping content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in Firefox.
|
||||
* 2. Show the overflow in Edge and IE.
|
||||
*/
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; /* 1 */
|
||||
height: 0; /* 1 */
|
||||
overflow: visible; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/* Text-level semantics
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the gray background on active links in IE 10.
|
||||
*/
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove the bottom border in Chrome 57-
|
||||
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none; /* 1 */
|
||||
text-decoration: underline; /* 2 */
|
||||
text-decoration: underline dotted; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||
* all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
/* Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the border on images inside links in IE 10.
|
||||
*/
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
/* Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Change the font styles in all browsers.
|
||||
* 2. Remove the margin in Firefox and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit; /* 1 */
|
||||
font-size: 100%; /* 1 */
|
||||
line-height: 1.15; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overflow in IE.
|
||||
* 1. Show the overflow in Edge.
|
||||
*/
|
||||
|
||||
button,
|
||||
input { /* 1 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||
* 1. Remove the inheritance of text transform in Firefox.
|
||||
*/
|
||||
|
||||
button,
|
||||
select { /* 1 */
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the inability to style clickable types in iOS and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner border and padding in Firefox.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore the focus styles unset by the previous rule.
|
||||
*/
|
||||
|
||||
button:-moz-focusring,
|
||||
[type="button"]:-moz-focusring,
|
||||
[type="reset"]:-moz-focusring,
|
||||
[type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the padding in Firefox.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
padding: 0.35em 0.75em 0.625em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the text wrapping in Edge and IE.
|
||||
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||
* 3. Remove the padding so developers are not caught out when they zero out
|
||||
* `fieldset` elements in all browsers.
|
||||
*/
|
||||
|
||||
legend {
|
||||
box-sizing: border-box; /* 1 */
|
||||
color: inherit; /* 2 */
|
||||
display: table; /* 1 */
|
||||
max-width: 100%; /* 1 */
|
||||
padding: 0; /* 3 */
|
||||
white-space: normal; /* 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||
*/
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the default vertical scrollbar in IE 10+.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in IE 10.
|
||||
* 2. Remove the padding in IE 10.
|
||||
*/
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||
*/
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the odd appearance in Chrome and Safari.
|
||||
* 2. Correct the outline style in Safari.
|
||||
*/
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
outline-offset: -2px; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner padding in Chrome and Safari on macOS.
|
||||
*/
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||
* 2. Change font properties to `inherit` in Safari.
|
||||
*/
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button; /* 1 */
|
||||
font: inherit; /* 2 */
|
||||
}
|
||||
|
||||
/* Interactive
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||
*/
|
||||
|
||||
details {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the correct display in all browsers.
|
||||
*/
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Misc
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10+.
|
||||
*/
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
.sm-form .layui-form-label{
|
||||
width: 56px;
|
||||
padding: 9px 3px;
|
||||
}
|
||||
|
||||
.sm-form .layui-input-block{
|
||||
margin-left: 62px;
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
@media screen and (max-width: 768px){
|
||||
|
||||
}
|
||||
.layui-nav-tree .layui-nav-item a:hover{
|
||||
background-color: #6699CC;
|
||||
}
|
||||
|
||||
.layui-bg-black{
|
||||
background-color: #66CCFF !important;
|
||||
}
|
||||
|
||||
.layui-nav-tree .layui-nav-child dd.layui-this,
|
||||
.layui-nav-tree .layui-nav-child dd.layui-this a,
|
||||
.layui-nav-tree .layui-this,
|
||||
.layui-nav-tree .layui-this > a,
|
||||
.layui-nav-tree .layui-this > a:hover{
|
||||
background-color: #6699CC;
|
||||
}
|
||||
|
||||
.layui-layout-admin .layui-logo{
|
||||
color: #fff;
|
||||
line-height: 45px;
|
||||
}
|
||||
|
||||
.layui-layout-admin .layui-header{
|
||||
background-color: #39BDFF;
|
||||
}
|
||||
|
||||
.layui-nav {
|
||||
background-color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-header{
|
||||
height: 45px;
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-item{
|
||||
line-height: 45px;
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-item a {
|
||||
color: #FFFFFF;
|
||||
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-child a {
|
||||
color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-nav .layui-this::after,
|
||||
.layui-nav-bar,
|
||||
.layui-nav-tree .layui-nav-itemed::after {
|
||||
background-color: #CCFFFF;
|
||||
}
|
||||
|
||||
.layui-tab-brief > .layui-tab-title .layui-this{
|
||||
color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-tab-brief > .layui-tab-more li.layui-this::after, .layui-tab-brief > .layui-tab-title .layui-this::after{
|
||||
border-color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-btn{
|
||||
background-color: #66CCFF;
|
||||
}
|
||||
.layui-form-radio > i:hover, .layui-form-radioed > i{
|
||||
color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-elem-quote{
|
||||
border-color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-laydate td.layui-this{
|
||||
background-color: #66CCFF !important;
|
||||
}
|
||||
|
||||
.layui-form-checkbox[lay-skin="primary"]:hover i{
|
||||
border-color: #66CCFF;
|
||||
}
|
||||
.layui-form-checked[lay-skin="primary"] i{
|
||||
border-color: #66CCFF !important;
|
||||
background-color: #66CCFF !important;
|
||||
}
|
||||
|
||||
.layui-form-select dl dd.layui-this{
|
||||
background-color: #66CCFF;
|
||||
}
|
||||
|
||||
|
||||
.layui-form-label{
|
||||
width: unset;
|
||||
padding: 3px 3px;
|
||||
float: unset;
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.layui-input-block{
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.layui-form-pane .layui-form-label{
|
||||
float: left;
|
||||
font-weight: normal;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.layui-nav-tree .layui-nav-item a{
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.layui-nav-tree{
|
||||
width: 140px;
|
||||
}
|
||||
.layui-layout-admin .layui-side{
|
||||
width: 140px;
|
||||
top: 45px;
|
||||
}
|
||||
.layui-layout-admin .layui-footer{
|
||||
left: 140px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
.layui-layout-admin .layui-body{
|
||||
top: 45px;
|
||||
}
|
||||
|
||||
.layui-side-scroll{
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.layui-body{
|
||||
left: 140px;
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-child dd.layui-this a, .layui-nav-child dd.layui-this{
|
||||
background-color: #19B3FF;
|
||||
}
|
||||
|
||||
.layui-nav-tree .layui-nav-bar{
|
||||
background-color: #66CCFF;
|
||||
}
|
||||
|
||||
.layui-form-label .layui-word-aux{
|
||||
font-size: 12px;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,180 +0,0 @@
|
||||
function randomString(len) {
|
||||
len = len || 32;
|
||||
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
|
||||
var maxPos = $chars.length;
|
||||
var pwd = '';
|
||||
for (i = 0; i < len; i++) {
|
||||
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
|
||||
}
|
||||
return pwd;
|
||||
}
|
||||
|
||||
function renderUpload(target, params) {
|
||||
|
||||
if (typeof params == "undefined") {
|
||||
params = {}
|
||||
}
|
||||
if (typeof params.upload == "undefined") {
|
||||
var upload = layui.upload
|
||||
} else {
|
||||
var upload = params.upload
|
||||
}
|
||||
|
||||
if (typeof params.type == 'undefined') {
|
||||
var type = target
|
||||
} else {
|
||||
var type = params.type
|
||||
}
|
||||
|
||||
if(typeof window.uploadAddressPrefix == 'undefined'){
|
||||
window.uploadAddressPrefix = '/api/'
|
||||
}
|
||||
|
||||
if (typeof params.url == 'undefined') {
|
||||
var url = window.uploadAddressPrefix + 'File/save'
|
||||
} else {
|
||||
var url = params.url
|
||||
}
|
||||
if (typeof params.accept == 'undefined') {
|
||||
var accept = 'images'
|
||||
} else {
|
||||
var accept = params.accept
|
||||
}
|
||||
if (typeof params.acceptMime == 'undefined') {
|
||||
var acceptMime = 'image/png,image/jpeg,image/gif'
|
||||
} else {
|
||||
var acceptMime = params.acceptMime
|
||||
}
|
||||
if (typeof params.isRenderInputAndShow == 'undefined') {
|
||||
var isRenderInputAndShow = true
|
||||
} else {
|
||||
var isRenderInputAndShow = params.isRenderInputAndShow
|
||||
}
|
||||
if (typeof params.done == 'undefined') {
|
||||
var done = function (result) {
|
||||
layer.close(window.uploading)
|
||||
if (result.code == 0) {
|
||||
layer.msg('上传成功');
|
||||
if (isRenderInputAndShow) {
|
||||
$('.cancle-' + target).show()
|
||||
$('.input-' + target).val(result.data.save_name);
|
||||
$('.preview-' + target).attr('src', result.data.src).show();
|
||||
}
|
||||
} else {
|
||||
layer.msg(result.msg)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var done = params.done
|
||||
}
|
||||
|
||||
if (typeof params.exts == 'undefined') {
|
||||
var exts = ''
|
||||
} else {
|
||||
var exts = params.exts
|
||||
}
|
||||
|
||||
if (accept == 'video') {
|
||||
if (exts.length == 0) {
|
||||
exts = 'mp4'
|
||||
}
|
||||
}
|
||||
|
||||
if (isRenderInputAndShow) {
|
||||
if ($('.input-' + target).val().length == '') {
|
||||
$('.cancle-' + target).hide()
|
||||
} else {
|
||||
$('.cancle-' + target).show()
|
||||
}
|
||||
$('.cancle-' + target).click(function () {
|
||||
$('.input-' + target).val('');
|
||||
$('.preview-' + target).hide();
|
||||
$(this).hide()
|
||||
})
|
||||
}
|
||||
|
||||
return upload.render({
|
||||
elem: '.upload-' + target,
|
||||
url: url,
|
||||
data: {
|
||||
type: type,
|
||||
},
|
||||
accept: accept,
|
||||
acceptMime: acceptMime,
|
||||
before: function () {
|
||||
window.uploading = layer.load()
|
||||
},
|
||||
done: done,
|
||||
error: function () {
|
||||
layer.close(window.uploading)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const loading = {};
|
||||
loading.index = 0;
|
||||
loading.show = function () {
|
||||
if (loading.index != 0) {
|
||||
layer.close(loading.index)
|
||||
}
|
||||
|
||||
loading.index = layer.load()
|
||||
}
|
||||
|
||||
loading.hide = function () {
|
||||
layer.close(loading.index);
|
||||
loading.index = 0;
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$('[data-href]').click(function () {
|
||||
var item = this;
|
||||
|
||||
loading.show()
|
||||
|
||||
var href = $(item).data('href')
|
||||
|
||||
location.href = href
|
||||
})
|
||||
})
|
||||
|
||||
function isPC() {
|
||||
var userAgentInfo = navigator.userAgent;
|
||||
var Agents = ["Android", "iPhone",
|
||||
"SymbianOS", "Windows Phone",
|
||||
"iPad", "iPod"];
|
||||
var flag = true;
|
||||
for (var v = 0; v < Agents.length; v++) {
|
||||
if (userAgentInfo.indexOf(Agents[v]) > 0) {
|
||||
flag = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
$.upost = function (url, data, callback) {
|
||||
|
||||
if (typeof data == 'function') {
|
||||
callback = data;
|
||||
data = {};
|
||||
}
|
||||
loading.show();
|
||||
$.post(url, data, function (result) {
|
||||
|
||||
if (result.code == 500) {
|
||||
|
||||
loading.hide();
|
||||
|
||||
layer.msg(result.msg)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
callback(result)
|
||||
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
/**
|
||||
|
||||
@Name: layuiNetCompany - 大气风格的网络公司企业模版
|
||||
@Author: xuxingyu
|
||||
@Copyright: layui.com
|
||||
|
||||
*/
|
||||
|
||||
layui.define(['jquery', 'element', 'carousel', 'laypage'], function(exports){
|
||||
var $ = layui.jquery
|
||||
,element = layui.element
|
||||
,carousel = layui.carousel
|
||||
,laypage = layui.laypage;
|
||||
|
||||
//轮播渲染
|
||||
carousel.render({
|
||||
elem: '#banner'
|
||||
,width: '100%'
|
||||
,height: '898px'
|
||||
,arrow: 'always'
|
||||
});
|
||||
|
||||
//滚动监听
|
||||
$(window).scroll(function() {
|
||||
var scr=$(document).scrollTop();
|
||||
scr > 0 ? $(".nav").addClass('scroll') : $(".nav").removeClass('scroll');
|
||||
});
|
||||
|
||||
//轮播文字
|
||||
$(function(){
|
||||
$('.banner').children('.title').addClass('active');
|
||||
})
|
||||
|
||||
//导航切换
|
||||
var btn = $('.nav').find('.nav-list').children('button')
|
||||
,spa = btn.children('span')
|
||||
,ul = $('.nav').find('.nav-list').children('.layui-nav');
|
||||
btn.on('click', function(){
|
||||
if(!$(spa[0]).hasClass('spa1')){
|
||||
spa[0].className = 'spa1';
|
||||
spa[1].style.display = 'none';
|
||||
spa[2].className = 'spa3';
|
||||
$('.nav')[0].style.height = 90 + ul[0].offsetHeight + 'px';
|
||||
}else{
|
||||
spa[0].className = '';
|
||||
spa[1].style.display = 'block';
|
||||
spa[2].className = '';
|
||||
$('.nav')[0].style.height = 80 + 'px';
|
||||
}
|
||||
});
|
||||
|
||||
//关于内容
|
||||
$('.main-about').find('.aboutab').children('li').each(function(index){
|
||||
$(this).on('click', function(){
|
||||
$(this).addClass('layui-this').siblings().removeClass('layui-this');
|
||||
$('.aboutab').siblings().fadeOut("fast");
|
||||
$('.aboutab').siblings().eq(index).fadeIn("");
|
||||
});
|
||||
});
|
||||
|
||||
//动态分页
|
||||
laypage.render({
|
||||
elem: 'newsPage'
|
||||
,count: 50
|
||||
,theme: '#2db5a3'
|
||||
,layout: ['page', 'next']
|
||||
});
|
||||
|
||||
//案例分页
|
||||
laypage.render({
|
||||
elem: 'casePage'
|
||||
,count: 50
|
||||
,theme: '#2db5a3'
|
||||
,layout: ['page', 'next']
|
||||
});
|
||||
|
||||
//新闻字段截取
|
||||
$(function(){
|
||||
$(".main-news").find(".content").each(function(){
|
||||
var span = $(this).find(".detail").children("span")
|
||||
,spanTxt = span.html();
|
||||
if(document.body.clientWidth > 463){
|
||||
span.html(spanTxt);
|
||||
}else{
|
||||
span.html(span.html().substring(0, 42)+ '...')
|
||||
};
|
||||
$(window).resize(function(){
|
||||
if(document.body.clientWidth > 463){
|
||||
span.html(spanTxt);
|
||||
}else{
|
||||
span.html(span.html().substring(0, 42)+ '...')
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
exports('firm', {});
|
||||
});
|
||||
10598
public/static/lib/jquery/jquery-3.4.1.js
vendored
@@ -1 +0,0 @@
|
||||
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none}
|
||||
8
public/static/lib/quill/quill.min.js
vendored
@@ -1,947 +0,0 @@
|
||||
/*!
|
||||
* Quill Editor v1.3.6
|
||||
* https://quilljs.com/
|
||||
* Copyright (c) 2014, Jason Chen
|
||||
* Copyright (c) 2013, salesforce.com
|
||||
*/
|
||||
.ql-container {
|
||||
box-sizing: border-box;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
position: relative;
|
||||
}
|
||||
.ql-container.ql-disabled .ql-tooltip {
|
||||
visibility: hidden;
|
||||
}
|
||||
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
|
||||
pointer-events: none;
|
||||
}
|
||||
.ql-clipboard {
|
||||
left: -100000px;
|
||||
height: 1px;
|
||||
overflow-y: hidden;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
}
|
||||
.ql-clipboard p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.ql-editor {
|
||||
box-sizing: border-box;
|
||||
line-height: 2.42;
|
||||
height: 100%;
|
||||
outline: none;
|
||||
overflow-y: auto;
|
||||
padding: 12px 15px;
|
||||
tab-size: 4;
|
||||
-moz-tab-size: 4;
|
||||
text-align: left;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.ql-editor > * {
|
||||
cursor: text;
|
||||
}
|
||||
.ql-editor p,
|
||||
.ql-editor ol,
|
||||
.ql-editor ul,
|
||||
.ql-editor pre,
|
||||
.ql-editor blockquote,
|
||||
.ql-editor h1,
|
||||
.ql-editor h2,
|
||||
.ql-editor h3,
|
||||
.ql-editor h4,
|
||||
.ql-editor h5,
|
||||
.ql-editor h6 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
line-height: 3;
|
||||
}
|
||||
.ql-editor ol,
|
||||
.ql-editor ul {
|
||||
padding-left: 1.5em;
|
||||
line-height: 2.42;
|
||||
}
|
||||
.ql-editor ol > li,
|
||||
.ql-editor ul > li {
|
||||
list-style-type: none;
|
||||
}
|
||||
.ql-editor ul > li::before {
|
||||
content: '\2022';
|
||||
}
|
||||
.ql-editor ul[data-checked=true],
|
||||
.ql-editor ul[data-checked=false] {
|
||||
pointer-events: none;
|
||||
}
|
||||
.ql-editor ul[data-checked=true] > li *,
|
||||
.ql-editor ul[data-checked=false] > li * {
|
||||
pointer-events: all;
|
||||
}
|
||||
.ql-editor ul[data-checked=true] > li::before,
|
||||
.ql-editor ul[data-checked=false] > li::before {
|
||||
color: #777;
|
||||
cursor: pointer;
|
||||
pointer-events: all;
|
||||
}
|
||||
.ql-editor ul[data-checked=true] > li::before {
|
||||
content: '\2611';
|
||||
}
|
||||
.ql-editor ul[data-checked=false] > li::before {
|
||||
content: '\2610';
|
||||
}
|
||||
.ql-editor li::before {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
width: 1.2em;
|
||||
}
|
||||
.ql-editor li:not(.ql-direction-rtl)::before {
|
||||
margin-left: -1.5em;
|
||||
margin-right: 0.3em;
|
||||
text-align: right;
|
||||
}
|
||||
.ql-editor li.ql-direction-rtl::before {
|
||||
margin-left: 0.3em;
|
||||
margin-right: -1.5em;
|
||||
}
|
||||
.ql-editor ol li:not(.ql-direction-rtl),
|
||||
.ql-editor ul li:not(.ql-direction-rtl) {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
.ql-editor ol li.ql-direction-rtl,
|
||||
.ql-editor ul li.ql-direction-rtl {
|
||||
padding-right: 1.5em;
|
||||
}
|
||||
.ql-editor ol li {
|
||||
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
counter-increment: list-0;
|
||||
}
|
||||
.ql-editor ol li:before {
|
||||
content: counter(list-0, decimal) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-1 {
|
||||
counter-increment: list-1;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-1:before {
|
||||
content: counter(list-1, lower-alpha) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-1 {
|
||||
counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-2 {
|
||||
counter-increment: list-2;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-2:before {
|
||||
content: counter(list-2, lower-roman) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-2 {
|
||||
counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-3 {
|
||||
counter-increment: list-3;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-3:before {
|
||||
content: counter(list-3, decimal) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-3 {
|
||||
counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-4 {
|
||||
counter-increment: list-4;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-4:before {
|
||||
content: counter(list-4, lower-alpha) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-4 {
|
||||
counter-reset: list-5 list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-5 {
|
||||
counter-increment: list-5;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-5:before {
|
||||
content: counter(list-5, lower-roman) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-5 {
|
||||
counter-reset: list-6 list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-6 {
|
||||
counter-increment: list-6;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-6:before {
|
||||
content: counter(list-6, decimal) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-6 {
|
||||
counter-reset: list-7 list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-7 {
|
||||
counter-increment: list-7;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-7:before {
|
||||
content: counter(list-7, lower-alpha) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-7 {
|
||||
counter-reset: list-8 list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-8 {
|
||||
counter-increment: list-8;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-8:before {
|
||||
content: counter(list-8, lower-roman) '. ';
|
||||
}
|
||||
.ql-editor ol li.ql-indent-8 {
|
||||
counter-reset: list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-9 {
|
||||
counter-increment: list-9;
|
||||
}
|
||||
.ql-editor ol li.ql-indent-9:before {
|
||||
content: counter(list-9, decimal) '. ';
|
||||
}
|
||||
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
|
||||
padding-left: 3em;
|
||||
}
|
||||
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
|
||||
padding-left: 4.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 3em;
|
||||
}
|
||||
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 4.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
|
||||
padding-left: 6em;
|
||||
}
|
||||
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
|
||||
padding-left: 7.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 6em;
|
||||
}
|
||||
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 7.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
|
||||
padding-left: 9em;
|
||||
}
|
||||
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
|
||||
padding-left: 10.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 9em;
|
||||
}
|
||||
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 10.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
|
||||
padding-left: 12em;
|
||||
}
|
||||
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
|
||||
padding-left: 13.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 12em;
|
||||
}
|
||||
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 13.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
|
||||
padding-left: 15em;
|
||||
}
|
||||
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
|
||||
padding-left: 16.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 15em;
|
||||
}
|
||||
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 16.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
|
||||
padding-left: 18em;
|
||||
}
|
||||
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
|
||||
padding-left: 19.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 18em;
|
||||
}
|
||||
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 19.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
|
||||
padding-left: 21em;
|
||||
}
|
||||
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
|
||||
padding-left: 22.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 21em;
|
||||
}
|
||||
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 22.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
|
||||
padding-left: 24em;
|
||||
}
|
||||
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
|
||||
padding-left: 25.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 24em;
|
||||
}
|
||||
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 25.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
|
||||
padding-left: 27em;
|
||||
}
|
||||
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
|
||||
padding-left: 28.5em;
|
||||
}
|
||||
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 27em;
|
||||
}
|
||||
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
|
||||
padding-right: 28.5em;
|
||||
}
|
||||
.ql-editor .ql-video {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
.ql-editor .ql-video.ql-align-center {
|
||||
margin: 0 auto;
|
||||
}
|
||||
.ql-editor .ql-video.ql-align-right {
|
||||
margin: 0 0 0 auto;
|
||||
}
|
||||
.ql-editor .ql-bg-black {
|
||||
background-color: #000;
|
||||
}
|
||||
.ql-editor .ql-bg-red {
|
||||
background-color: #e60000;
|
||||
}
|
||||
.ql-editor .ql-bg-orange {
|
||||
background-color: #f90;
|
||||
}
|
||||
.ql-editor .ql-bg-yellow {
|
||||
background-color: #ff0;
|
||||
}
|
||||
.ql-editor .ql-bg-green {
|
||||
background-color: #008a00;
|
||||
}
|
||||
.ql-editor .ql-bg-blue {
|
||||
background-color: #06c;
|
||||
}
|
||||
.ql-editor .ql-bg-purple {
|
||||
background-color: #93f;
|
||||
}
|
||||
.ql-editor .ql-color-white {
|
||||
color: #fff;
|
||||
}
|
||||
.ql-editor .ql-color-red {
|
||||
color: #e60000;
|
||||
}
|
||||
.ql-editor .ql-color-orange {
|
||||
color: #f90;
|
||||
}
|
||||
.ql-editor .ql-color-yellow {
|
||||
color: #ff0;
|
||||
}
|
||||
.ql-editor .ql-color-green {
|
||||
color: #008a00;
|
||||
}
|
||||
.ql-editor .ql-color-blue {
|
||||
color: #06c;
|
||||
}
|
||||
.ql-editor .ql-color-purple {
|
||||
color: #93f;
|
||||
}
|
||||
.ql-editor .ql-font-serif {
|
||||
font-family: Georgia, Times New Roman, serif;
|
||||
}
|
||||
.ql-editor .ql-font-monospace {
|
||||
font-family: Monaco, Courier New, monospace;
|
||||
}
|
||||
.ql-editor .ql-size-small {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
.ql-editor .ql-size-large {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.ql-editor .ql-size-huge {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
.ql-editor .ql-direction-rtl {
|
||||
direction: rtl;
|
||||
text-align: inherit;
|
||||
}
|
||||
.ql-editor .ql-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
.ql-editor .ql-align-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
.ql-editor .ql-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
.ql-editor.ql-blank::before {
|
||||
color: rgba(0,0,0,0.6);
|
||||
content: attr(data-placeholder);
|
||||
font-style: italic;
|
||||
left: 15px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
}
|
||||
.ql-snow.ql-toolbar:after,
|
||||
.ql-snow .ql-toolbar:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: table;
|
||||
}
|
||||
.ql-snow.ql-toolbar button,
|
||||
.ql-snow .ql-toolbar button {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
height: 24px;
|
||||
padding: 3px 5px;
|
||||
width: 28px;
|
||||
}
|
||||
.ql-snow.ql-toolbar button svg,
|
||||
.ql-snow .ql-toolbar button svg {
|
||||
float: left;
|
||||
height: 100%;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:active:hover,
|
||||
.ql-snow .ql-toolbar button:active:hover {
|
||||
outline: none;
|
||||
}
|
||||
.ql-snow.ql-toolbar input.ql-image[type=file],
|
||||
.ql-snow .ql-toolbar input.ql-image[type=file] {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover,
|
||||
.ql-snow .ql-toolbar button:hover,
|
||||
.ql-snow.ql-toolbar button:focus,
|
||||
.ql-snow .ql-toolbar button:focus,
|
||||
.ql-snow.ql-toolbar button.ql-active,
|
||||
.ql-snow .ql-toolbar button.ql-active,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
|
||||
color: #06c;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover .ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover .ql-fill,
|
||||
.ql-snow.ql-toolbar button:focus .ql-fill,
|
||||
.ql-snow .ql-toolbar button:focus .ql-fill,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-fill,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
|
||||
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
|
||||
fill: #06c;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover .ql-stroke,
|
||||
.ql-snow .ql-toolbar button:hover .ql-stroke,
|
||||
.ql-snow.ql-toolbar button:focus .ql-stroke,
|
||||
.ql-snow .ql-toolbar button:focus .ql-stroke,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
|
||||
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
|
||||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
|
||||
stroke: #06c;
|
||||
}
|
||||
@media (pointer: coarse) {
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active),
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) {
|
||||
color: #444;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
|
||||
fill: #444;
|
||||
}
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
|
||||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
|
||||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
|
||||
stroke: #444;
|
||||
}
|
||||
}
|
||||
.ql-snow {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ql-snow * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ql-snow .ql-hidden {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-out-bottom,
|
||||
.ql-snow .ql-out-top {
|
||||
visibility: hidden;
|
||||
}
|
||||
.ql-snow .ql-tooltip {
|
||||
position: absolute;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
.ql-snow .ql-tooltip a {
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-flip {
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
.ql-snow .ql-formats {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ql-snow .ql-formats:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: table;
|
||||
}
|
||||
.ql-snow .ql-stroke {
|
||||
fill: none;
|
||||
stroke: #444;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.ql-snow .ql-stroke-miter {
|
||||
fill: none;
|
||||
stroke: #444;
|
||||
stroke-miterlimit: 10;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.ql-snow .ql-fill,
|
||||
.ql-snow .ql-stroke.ql-fill {
|
||||
fill: #444;
|
||||
}
|
||||
.ql-snow .ql-empty {
|
||||
fill: none;
|
||||
}
|
||||
.ql-snow .ql-even {
|
||||
fill-rule: evenodd;
|
||||
}
|
||||
.ql-snow .ql-thin,
|
||||
.ql-snow .ql-stroke.ql-thin {
|
||||
stroke-width: 1;
|
||||
}
|
||||
.ql-snow .ql-transparent {
|
||||
opacity: 0.4;
|
||||
}
|
||||
.ql-snow .ql-direction svg:last-child {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-direction.ql-active svg:last-child {
|
||||
display: inline;
|
||||
}
|
||||
.ql-snow .ql-direction.ql-active svg:first-child {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-editor h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.ql-snow .ql-editor h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.ql-snow .ql-editor h3 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
.ql-snow .ql-editor h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.ql-snow .ql-editor h5 {
|
||||
font-size: 0.83em;
|
||||
}
|
||||
.ql-snow .ql-editor h6 {
|
||||
font-size: 0.67em;
|
||||
}
|
||||
.ql-snow .ql-editor a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.ql-snow .ql-editor blockquote {
|
||||
border-left: 4px solid #ccc;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
padding-left: 16px;
|
||||
}
|
||||
.ql-snow .ql-editor code,
|
||||
.ql-snow .ql-editor pre {
|
||||
background-color: #f0f0f0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.ql-snow .ql-editor pre {
|
||||
white-space: pre-wrap;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
.ql-snow .ql-editor code {
|
||||
font-size: 85%;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.ql-snow .ql-editor pre.ql-syntax {
|
||||
background-color: #23241f;
|
||||
color: #f8f8f2;
|
||||
overflow: visible;
|
||||
}
|
||||
.ql-snow .ql-editor img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.ql-snow .ql-picker {
|
||||
color: #444;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
height: 24px;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ql-snow .ql-picker-label {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
padding-left: 8px;
|
||||
padding-right: 2px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.ql-snow .ql-picker-label::before {
|
||||
display: inline-block;
|
||||
line-height: 22px;
|
||||
}
|
||||
.ql-snow .ql-picker-options {
|
||||
background-color: #fff;
|
||||
display: none;
|
||||
min-width: 100%;
|
||||
padding: 4px 8px;
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ql-snow .ql-picker-options .ql-picker-item {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-label {
|
||||
color: #ccc;
|
||||
z-index: 2;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
|
||||
fill: #ccc;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
|
||||
stroke: #ccc;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
||||
display: block;
|
||||
margin-top: -1px;
|
||||
top: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
.ql-snow .ql-color-picker,
|
||||
.ql-snow .ql-icon-picker {
|
||||
width: 28px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-label,
|
||||
.ql-snow .ql-icon-picker .ql-picker-label {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-label svg,
|
||||
.ql-snow .ql-icon-picker .ql-picker-label svg {
|
||||
right: 4px;
|
||||
}
|
||||
.ql-snow .ql-icon-picker .ql-picker-options {
|
||||
padding: 4px 0px;
|
||||
}
|
||||
.ql-snow .ql-icon-picker .ql-picker-item {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-options {
|
||||
padding: 3px 5px;
|
||||
width: 152px;
|
||||
}
|
||||
.ql-snow .ql-color-picker .ql-picker-item {
|
||||
border: 1px solid transparent;
|
||||
float: left;
|
||||
height: 16px;
|
||||
margin: 2px;
|
||||
padding: 0px;
|
||||
width: 16px;
|
||||
}
|
||||
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
|
||||
position: absolute;
|
||||
margin-top: -9px;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
width: 18px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
|
||||
content: attr(data-label);
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header {
|
||||
width: 98px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
|
||||
content: 'Normal';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
|
||||
content: 'Heading 1';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
|
||||
content: 'Heading 2';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
|
||||
content: 'Heading 3';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
|
||||
content: 'Heading 4';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
|
||||
content: 'Heading 5';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
|
||||
content: 'Heading 6';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
|
||||
font-size: 2em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
|
||||
font-size: 1em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
|
||||
font-size: 0.83em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
|
||||
font-size: 0.67em;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font {
|
||||
width: 108px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
|
||||
content: 'Sans Serif';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
|
||||
content: 'Serif';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
|
||||
content: 'Monospace';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
|
||||
font-family: Georgia, Times New Roman, serif;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
|
||||
font-family: Monaco, Courier New, monospace;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size {
|
||||
width: 98px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
|
||||
content: 'Normal';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
|
||||
content: 'Small';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
|
||||
content: 'Large';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
|
||||
content: 'Huge';
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
|
||||
font-size: 10px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
|
||||
font-size: 18px;
|
||||
}
|
||||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
|
||||
font-size: 32px;
|
||||
}
|
||||
.ql-snow .ql-color-picker.ql-background .ql-picker-item {
|
||||
background-color: #fff;
|
||||
}
|
||||
.ql-snow .ql-color-picker.ql-color .ql-picker-item {
|
||||
background-color: #000;
|
||||
}
|
||||
.ql-toolbar.ql-snow {
|
||||
border: 1px solid #ccc;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
|
||||
padding: 8px;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-formats {
|
||||
margin-right: 15px;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker-label {
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker-options {
|
||||
border: 1px solid transparent;
|
||||
box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
|
||||
border-color: #ccc;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
|
||||
border-color: #ccc;
|
||||
}
|
||||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
|
||||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
|
||||
border-color: #000;
|
||||
}
|
||||
.ql-toolbar.ql-snow + .ql-container.ql-snow {
|
||||
border-top: 0px;
|
||||
}
|
||||
.ql-snow .ql-tooltip {
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 0px 0px 5px #ddd;
|
||||
color: #444;
|
||||
padding: 5px 12px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ql-snow .ql-tooltip::before {
|
||||
content: "Visit URL:";
|
||||
line-height: 26px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.ql-snow .ql-tooltip input[type=text] {
|
||||
display: none;
|
||||
border: 1px solid #ccc;
|
||||
font-size: 13px;
|
||||
height: 26px;
|
||||
margin: 0px;
|
||||
padding: 3px 5px;
|
||||
width: 170px;
|
||||
}
|
||||
.ql-snow .ql-tooltip a.ql-preview {
|
||||
display: inline-block;
|
||||
max-width: 200px;
|
||||
overflow-x: hidden;
|
||||
text-overflow: ellipsis;
|
||||
vertical-align: top;
|
||||
}
|
||||
.ql-snow .ql-tooltip a.ql-action::after {
|
||||
border-right: 1px solid #ccc;
|
||||
content: 'Edit';
|
||||
margin-left: 16px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
.ql-snow .ql-tooltip a.ql-remove::before {
|
||||
content: 'Remove';
|
||||
margin-left: 8px;
|
||||
}
|
||||
.ql-snow .ql-tooltip a {
|
||||
line-height: 26px;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
|
||||
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
|
||||
display: none;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-editing input[type=text] {
|
||||
display: inline-block;
|
||||
}
|
||||
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
|
||||
border-right: 0px;
|
||||
content: 'Save';
|
||||
padding-right: 0px;
|
||||
}
|
||||
.ql-snow .ql-tooltip[data-mode=link]::before {
|
||||
content: "Enter link:";
|
||||
}
|
||||
.ql-snow .ql-tooltip[data-mode=formula]::before {
|
||||
content: "Enter formula:";
|
||||
}
|
||||
.ql-snow .ql-tooltip[data-mode=video]::before {
|
||||
content: "Enter video:";
|
||||
}
|
||||
.ql-snow a {
|
||||
color: #06c;
|
||||
}
|
||||
.ql-container.ql-snow {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
10
public/static/plugs/ckeditor4/adapters/jquery.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
|
||||
ckeditor:function(g,e){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g)){var m=e;e=g;g=m}var k=[];e=e||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function d(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(d,100)},0)},null,null,9999);
|
||||
else{if(e.autoUpdateElement||"undefined"==typeof e.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)e.autoUpdateElementJquery=!0;e.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,e):CKEDITOR.inline(h,e);b.data("ckeditorInstance",c);c.on("instanceReady",function(e){var d=e.editor;setTimeout(function n(){if(d.element){e.removeListener();d.on("dataReady",function(){b.trigger("dataReady.ckeditor",[d])});d.on("setData",function(a){b.trigger("setData.ckeditor",
|
||||
[d,a.data])});d.on("getData",function(a){b.trigger("getData.ckeditor",[d,a.data])},999);d.on("destroy",function(){b.trigger("destroy.ckeditor",[d])});d.on("save",function(){a(h.form).submit();return!1},null,null,20);if(d.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){d.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",
|
||||
c)})}d.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[d]);g&&g.apply(d,[h]);l.resolve()}else setTimeout(n,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(e){if(arguments.length){var m=
|
||||
this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(e,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,e)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery);
|
||||
168
public/static/plugs/ckeditor4/build-config.js
Normal file
@@ -0,0 +1,168 @@
|
||||
/**
|
||||
* @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/license
|
||||
*/
|
||||
|
||||
/**
|
||||
* This file was added automatically by CKEditor builder.
|
||||
* You may re-use it at any time to build CKEditor again.
|
||||
*
|
||||
* If you would like to build CKEditor online again
|
||||
* (for example to upgrade), visit one the following links:
|
||||
*
|
||||
* (1) https://ckeditor.com/cke4/builder
|
||||
* Visit online builder to build CKEditor from scratch.
|
||||
*
|
||||
* (2) https://ckeditor.com/cke4/builder/3b54fd1f22dcd13ebe2a3f52d6f8cc05
|
||||
* Visit online builder to build CKEditor, starting with the same setup as before.
|
||||
*
|
||||
* (3) https://ckeditor.com/cke4/builder/download/3b54fd1f22dcd13ebe2a3f52d6f8cc05
|
||||
* Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
|
||||
*
|
||||
* NOTE:
|
||||
* This file is not used by CKEditor, you may remove it.
|
||||
* Changing this file will not change your CKEditor configuration.
|
||||
*/
|
||||
|
||||
var CKBUILDER_CONFIG = {
|
||||
skin: 'moono-lisa',
|
||||
preset: 'standard',
|
||||
ignore: [
|
||||
'.DS_Store',
|
||||
'.bender',
|
||||
'.editorconfig',
|
||||
'.gitattributes',
|
||||
'.gitignore',
|
||||
'.idea',
|
||||
'.jscsrc',
|
||||
'.jshintignore',
|
||||
'.jshintrc',
|
||||
'.mailmap',
|
||||
'.npm',
|
||||
'.travis.yml',
|
||||
'bender-err.log',
|
||||
'bender-out.log',
|
||||
'bender.ci.js',
|
||||
'bender.js',
|
||||
'dev',
|
||||
'gruntfile.js',
|
||||
'less',
|
||||
'node_modules',
|
||||
'package.json',
|
||||
'tests'
|
||||
],
|
||||
plugins : {
|
||||
'a11yhelp' : 1,
|
||||
'about' : 1,
|
||||
'basicstyles' : 1,
|
||||
'blockquote' : 1,
|
||||
'clipboard' : 1,
|
||||
'contextmenu' : 1,
|
||||
'elementspath' : 1,
|
||||
'enterkey' : 1,
|
||||
'entities' : 1,
|
||||
'filebrowser' : 1,
|
||||
'floatingspace' : 1,
|
||||
'format' : 1,
|
||||
'horizontalrule' : 1,
|
||||
'htmlwriter' : 1,
|
||||
'image' : 1,
|
||||
'indentlist' : 1,
|
||||
'link' : 1,
|
||||
'list' : 1,
|
||||
'magicline' : 1,
|
||||
'maximize' : 1,
|
||||
'pastefromgdocs' : 1,
|
||||
'pastefromword' : 1,
|
||||
'pastetext' : 1,
|
||||
'pastetools' : 1,
|
||||
'removeformat' : 1,
|
||||
'resize' : 1,
|
||||
'scayt' : 1,
|
||||
'showborders' : 1,
|
||||
'sourcearea' : 1,
|
||||
'specialchar' : 1,
|
||||
'stylescombo' : 1,
|
||||
'tab' : 1,
|
||||
'table' : 1,
|
||||
'tableselection' : 1,
|
||||
'tabletools' : 1,
|
||||
'toolbar' : 1,
|
||||
'undo' : 1,
|
||||
'uploadimage' : 1,
|
||||
'wsc' : 1,
|
||||
'wysiwygarea' : 1
|
||||
},
|
||||
languages : {
|
||||
'af' : 1,
|
||||
'ar' : 1,
|
||||
'az' : 1,
|
||||
'bg' : 1,
|
||||
'bn' : 1,
|
||||
'bs' : 1,
|
||||
'ca' : 1,
|
||||
'cs' : 1,
|
||||
'cy' : 1,
|
||||
'da' : 1,
|
||||
'de' : 1,
|
||||
'de-ch' : 1,
|
||||
'el' : 1,
|
||||
'en' : 1,
|
||||
'en-au' : 1,
|
||||
'en-ca' : 1,
|
||||
'en-gb' : 1,
|
||||
'eo' : 1,
|
||||
'es' : 1,
|
||||
'es-mx' : 1,
|
||||
'et' : 1,
|
||||
'eu' : 1,
|
||||
'fa' : 1,
|
||||
'fi' : 1,
|
||||
'fo' : 1,
|
||||
'fr' : 1,
|
||||
'fr-ca' : 1,
|
||||
'gl' : 1,
|
||||
'gu' : 1,
|
||||
'he' : 1,
|
||||
'hi' : 1,
|
||||
'hr' : 1,
|
||||
'hu' : 1,
|
||||
'id' : 1,
|
||||
'is' : 1,
|
||||
'it' : 1,
|
||||
'ja' : 1,
|
||||
'ka' : 1,
|
||||
'km' : 1,
|
||||
'ko' : 1,
|
||||
'ku' : 1,
|
||||
'lt' : 1,
|
||||
'lv' : 1,
|
||||
'mk' : 1,
|
||||
'mn' : 1,
|
||||
'ms' : 1,
|
||||
'nb' : 1,
|
||||
'nl' : 1,
|
||||
'no' : 1,
|
||||
'oc' : 1,
|
||||
'pl' : 1,
|
||||
'pt' : 1,
|
||||
'pt-br' : 1,
|
||||
'ro' : 1,
|
||||
'ru' : 1,
|
||||
'si' : 1,
|
||||
'sk' : 1,
|
||||
'sl' : 1,
|
||||
'sq' : 1,
|
||||
'sr' : 1,
|
||||
'sr-latn' : 1,
|
||||
'sv' : 1,
|
||||
'th' : 1,
|
||||
'tr' : 1,
|
||||
'tt' : 1,
|
||||
'ug' : 1,
|
||||
'uk' : 1,
|
||||
'vi' : 1,
|
||||
'zh' : 1,
|
||||
'zh-cn' : 1
|
||||
}
|
||||
};
|
||||
1267
public/static/plugs/ckeditor4/ckeditor.js
vendored
Normal file
29
public/static/plugs/ckeditor4/config.js
Normal file
@@ -0,0 +1,29 @@
|
||||
CKEDITOR.editorConfig = function (config) {
|
||||
config.language = 'zh-cn';
|
||||
config.image_previewText = ' ';
|
||||
config.height = 500;
|
||||
config.width = 'auto';
|
||||
config.toolbarGroups = [
|
||||
{name: 'document', groups: ['mode', 'document', 'doctools']},
|
||||
{name: 'styles', groups: ['Font', 'FontSize']},
|
||||
{name: 'colors'},
|
||||
{name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
|
||||
{name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align', 'bidi']},
|
||||
{name: 'insert'},
|
||||
{name: 'others'},
|
||||
{name: 'forms'},
|
||||
{name: 'links'},
|
||||
{name: 'clipboard', groups: ['clipboard', 'undo']},
|
||||
{ name: 'insert', groups: [ 'EasyImageUpload' ] },
|
||||
{name: 'tools'},
|
||||
];
|
||||
config.filebrowserImageUploadUrl = config.filebrowserImageUploadUrl || "/admin/ajax/uploadEditor";
|
||||
|
||||
config.removeButtons = 'Underline,Subscript,Superscript';
|
||||
|
||||
config.format_tags = 'p;h1;h2;h3;pre';
|
||||
|
||||
config.removeDialogTabs = 'image:advanced;link:advanced';
|
||||
|
||||
config.font_names = '微软雅黑/Microsoft YaHei;宋体/SimSun;新宋体/NSimSun;仿宋/FangSong;楷体/KaiTi;黑体/SimHei;' + config.font_names;
|
||||
};
|
||||
208
public/static/plugs/ckeditor4/contents.css
Normal file
@@ -0,0 +1,208 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
|
||||
body
|
||||
{
|
||||
/* Font */
|
||||
/* Emoji fonts are added to visualise them nicely in Internet Explorer. */
|
||||
font-family: sans-serif, Arial, Verdana, "Trebuchet MS", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-size: 12px;
|
||||
|
||||
/* Text color */
|
||||
color: #333;
|
||||
|
||||
/* Remove the background color to make it transparent. */
|
||||
background-color: #fff;
|
||||
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.cke_editable
|
||||
{
|
||||
font-size: 13px;
|
||||
line-height: 1.6;
|
||||
|
||||
/* Fix for missing scrollbars with RTL texts. (#10488) */
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
blockquote
|
||||
{
|
||||
font-style: italic;
|
||||
font-family: Georgia, Times, "Times New Roman", serif;
|
||||
padding: 2px 0;
|
||||
border-style: solid;
|
||||
border-color: #ccc;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.cke_contents_ltr blockquote
|
||||
{
|
||||
padding-left: 20px;
|
||||
padding-right: 8px;
|
||||
border-left-width: 5px;
|
||||
}
|
||||
|
||||
.cke_contents_rtl blockquote
|
||||
{
|
||||
padding-left: 8px;
|
||||
padding-right: 20px;
|
||||
border-right-width: 5px;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
color: #0782C1;
|
||||
}
|
||||
|
||||
ol,ul,dl
|
||||
{
|
||||
/* IE7: reset rtl list margin. (#7334) */
|
||||
*margin-right: 0px;
|
||||
/* Preserved spaces for list items with text direction different than the list. (#6249,#8049)*/
|
||||
padding: 0 40px;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6
|
||||
{
|
||||
font-weight: normal;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
hr
|
||||
{
|
||||
border: 0px;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
img.right
|
||||
{
|
||||
border: 1px solid #ccc;
|
||||
float: right;
|
||||
margin-left: 15px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
img.left
|
||||
{
|
||||
border: 1px solid #ccc;
|
||||
float: left;
|
||||
margin-right: 15px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
pre
|
||||
{
|
||||
white-space: pre-wrap; /* CSS 2.1 */
|
||||
word-wrap: break-word; /* IE7 */
|
||||
-moz-tab-size: 4;
|
||||
tab-size: 4;
|
||||
}
|
||||
|
||||
.marker
|
||||
{
|
||||
background-color: Yellow;
|
||||
}
|
||||
|
||||
span[lang]
|
||||
{
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
figure
|
||||
{
|
||||
text-align: center;
|
||||
outline: solid 1px #ccc;
|
||||
background: rgba(0,0,0,0.05);
|
||||
padding: 10px;
|
||||
margin: 10px 20px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
figure > figcaption
|
||||
{
|
||||
text-align: center;
|
||||
display: block; /* For IE8 */
|
||||
}
|
||||
|
||||
a > img {
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
border: none;
|
||||
outline: 1px solid #0782C1;
|
||||
}
|
||||
|
||||
/* Widget Styles */
|
||||
.code-featured
|
||||
{
|
||||
border: 5px solid red;
|
||||
}
|
||||
|
||||
.math-featured
|
||||
{
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 2px rgba(200, 0, 0, 1);
|
||||
background-color: rgba(255, 0, 0, 0.05);
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.image-clean
|
||||
{
|
||||
border: 0;
|
||||
background: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.image-clean > figcaption
|
||||
{
|
||||
font-size: .9em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.image-grayscale
|
||||
{
|
||||
background-color: white;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.image-grayscale img, img.image-grayscale
|
||||
{
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
|
||||
.embed-240p
|
||||
{
|
||||
max-width: 426px;
|
||||
max-height: 240px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.embed-360p
|
||||
{
|
||||
max-width: 640px;
|
||||
max-height: 360px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.embed-480p
|
||||
{
|
||||
max-width: 854px;
|
||||
max-height: 480px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.embed-720p
|
||||
{
|
||||
max-width: 1280px;
|
||||
max-height: 720px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.embed-1080p
|
||||
{
|
||||
max-width: 1920px;
|
||||
max-height: 1080px;
|
||||
margin:0 auto;
|
||||
}
|
||||
5
public/static/plugs/ckeditor4/lang/en.js
Normal file
5
public/static/plugs/ckeditor4/lang/zh-cn.js
Normal file
5
public/static/plugs/ckeditor4/lang/zh.js
Normal file
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.dialog.add("a11yHelp",function(f){function m(a){for(var b,c,h=[],d=0;d<g.length;d++)c=g[d],b=a/g[d],1<b&&2>=b&&(a-=c,h.push(e[c]));h.push(e[a]||String.fromCharCode(a));return h.join("+")}function t(a,b){var c=f.getCommandKeystroke(b,!0);return c.length?CKEDITOR.tools.array.map(c,m).join(" / "):a}var a=f.lang.a11yhelp,b=f.lang.common.keyboard,p=CKEDITOR.tools.getNextId(),q=/\$\{(.*?)\}/g,g=[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],e={8:b[8],9:a.tab,13:b[13],16:b[16],17:b[17],18:b[18],19:a.pause,
|
||||
20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:b[35],36:b[36],37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:b[46],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,
|
||||
122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};e[CKEDITOR.ALT]=b[18];e[CKEDITOR.SHIFT]=b[16];e[CKEDITOR.CTRL]=CKEDITOR.env.mac?b[224]:b[17];return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:f.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},
|
||||
html:function(){for(var b='\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+p+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+p+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",e=[],c=a.legend,h=c.length,d=0;d<h;d++){for(var f=c[d],g=[],r=f.items,m=r.length,n=0;n<m;n++){var k=r[n],l=CKEDITOR.env.edge&&k.legendEdge?k.legendEdge:k.legend,l=l.replace(q,t);l.match(q)||g.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",
|
||||
k.name).replace("%2",l))}e.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",f.name).replace("%2",g.join("")))}return b.replace("%1",e.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}],
|
||||
buttons:[CKEDITOR.dialog.cancelButton]}});
|
||||
@@ -0,0 +1,25 @@
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
|
||||
cs.js Found: 30 Missing: 0
|
||||
cy.js Found: 30 Missing: 0
|
||||
da.js Found: 12 Missing: 18
|
||||
de.js Found: 30 Missing: 0
|
||||
el.js Found: 25 Missing: 5
|
||||
eo.js Found: 30 Missing: 0
|
||||
fa.js Found: 30 Missing: 0
|
||||
fi.js Found: 30 Missing: 0
|
||||
fr.js Found: 30 Missing: 0
|
||||
gu.js Found: 12 Missing: 18
|
||||
he.js Found: 30 Missing: 0
|
||||
it.js Found: 30 Missing: 0
|
||||
mk.js Found: 5 Missing: 25
|
||||
nb.js Found: 30 Missing: 0
|
||||
nl.js Found: 30 Missing: 0
|
||||
no.js Found: 30 Missing: 0
|
||||
pt-br.js Found: 30 Missing: 0
|
||||
ro.js Found: 6 Missing: 24
|
||||
tr.js Found: 30 Missing: 0
|
||||
ug.js Found: 27 Missing: 3
|
||||
vi.js Found: 6 Missing: 24
|
||||
zh-cn.js Found: 30 Missing: 0
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","af",{title:"Toeganglikheid instruksies",contents:"Hulp inhoud. Druk ESC om toe te maak.",legend:[{name:"Algemeen",items:[{name:"Bewerker balk",legend:"Druk ${toolbarFocus} om op die werkbalk te land. Beweeg na die volgende en voorige wekrbalkgroep met TAB and SHIFT+TAB. Beweeg na die volgende en voorige werkbalkknop met die regter of linker pyl. Druk SPASIE of ENTER om die knop te bevestig."},{name:"Bewerker dialoog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
|
||||
{name:"Bewerkerinhoudmenu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
|
||||
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
|
||||
legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
|
||||
{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1",
|
||||
numpad2:"Nommerblok 2",numpad3:"Nommerblok 3",numpad4:"Nommerblok 4",numpad5:"Nommerblok 5",numpad6:"Nommerblok 6",numpad7:"Nommerblok 7",numpad8:"Nommerblok 8",numpad9:"Nommerblok 9",multiply:"Maal",add:"Plus",subtract:"Minus",decimalPoint:"Desimaalepunt",divide:"Gedeeldeur",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nommervergrendel",scrollLock:"Rolvergrendel",semiColon:"Kommapunt",equalSign:"Isgelykaan",comma:"Komma",dash:"Koppelteken",
|
||||
period:"Punt",forwardSlash:"Skuinsstreep",graveAccent:"Aksentteken",openBracket:"Oopblokhakkie",backSlash:"Trustreep",closeBracket:"Toeblokhakkie",singleQuote:"Enkelaanhaalingsteken"});
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","ar",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"عام",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
|
||||
{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
|
||||
{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"الاوامر",items:[{name:"تراجع",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:"نص غامق",legend:"Press ${bold}"},{name:"نص مائل",legend:"Press ${italic}"},{name:"نص تحته خط",legend:"Press ${underline}"},
|
||||
{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
|
||||
{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"هروب",pageUp:"اعلى الصفحة",pageDown:"اسفل الصفحة",leftArrow:"السهم الايسر",upArrow:"السهم العلوي",rightArrow:"السهم الأيمن",downArrow:"السهم السفلي",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
|
||||
numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"مضروب",add:"إضافة",subtract:"طرح",decimalPoint:"Decimal Point",divide:"تقسيم",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"الفاصلة المنقوطة",equalSign:'علامة "يساوي"',comma:"فاصلة",dash:"شرطة",period:"نقطة",forwardSlash:"Forward Slash",
|
||||
graveAccent:"Grave Accent",openBracket:"افتح القوس",backSlash:"Backslash",closeBracket:"اغلق القوس",singleQuote:"Single Quote"});
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","az",{title:"Əlillərə dəstək üzrə təlimat",contents:"Kömək. Pəncərəni bağlamaq üçün ESC basın.",legend:[{name:"Əsas",items:[{name:"Düzəliş edənin alətlər çubuğu",legend:"Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz."},{name:"Redaktorun pəncərəsi",legend:"Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz."},
|
||||
{name:"Redaktorun seçimlərin menyusu",legend:"Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın."},{name:"Düzəliş edənin siyahı qutusu",legend:"Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın."},
|
||||
{name:"Redaktor elementin cığır paneli",legend:"Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur."}]},{name:"Əmrlər",items:[{name:"Əmri geri qaytar",legend:"${undo} basın"},{name:"Geri əmri",legend:"${redo} basın"},{name:"Qalın əmri",legend:"${bold} basın"},{name:"Kursiv əmri",legend:"${italic} basın"},{name:"Altdan xətt əmri",legend:"${underline} basın"},
|
||||
{name:"Link əmri",legend:"${link} basın"},{name:"Paneli gizlət əmri",legend:"${toolbarCollapse} basın"},{name:"Əvvəlki fokus sahəsi seç əmrı",legend:"Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},{name:"Növbəti fokus sahəsi seç əmrı",legend:"Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},
|
||||
{name:"Hərtərəfli Kömək",legend:"${a11yHelp} basın"},{name:"Yalnız mətni əlavə et",legend:"${pastetext} basın",legendEdge:"Öncə ${pastetext}, sonra ${paste} basın"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Sola ox işarəsi",upArrow:"Yuxarı ox işarəsi",rightArrow:"Sağa ox işarəsi",downArrow:"Aşağı ox işarəsi",insert:"Insert",leftWindowKey:"Soldaki Windows düyməsi",rightWindowKey:"Sağdaki Windows düyməsi",selectKey:"Düyməni seçin",
|
||||
numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vurma",add:"Əlavə et",subtract:"Çıxma",decimalPoint:"Onluq kəsri tam ədəddən ayıran nöqtə",divide:"Bölüşdürmə",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Nöqtəli verqül",equalSign:"Barəbərlik işarəsi",
|
||||
comma:"Vergül",dash:"Defis",period:"Nöqtə",forwardSlash:"Çəp xətt",graveAccent:"Vurğu işarəsi",openBracket:"Açılan mötərizə",backSlash:"Tərs çəpəki xətt",closeBracket:"Bağlanan mötərizə",singleQuote:"Tək dırnaq"});
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","bg",{title:"Инструкции за достъпност",contents:"Съдържание на помощта. За да затворите този диалогов прозорец, натиснете ESC.",legend:[{name:"Общо",items:[{name:"Лента с инструменти за редактора",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Диалог на редактора",
|
||||
legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Контекстно меню на редактора",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
|
||||
{name:"Списъчно меню на редактора",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Лента с път на елемент на редактора",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
|
||||
{name:"Команди",items:[{name:"Команда за отмяна",legend:"Натисни ${undo}"},{name:"Команда за пренаправяне",legend:"Натисни ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
|
||||
{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
|
||||
leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
|
||||
f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
|
||||
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","ca",{title:"Instruccions d'Accessibilitat",contents:"Continguts de l'Ajuda. Per tancar aquest quadre de diàleg premi ESC.",legend:[{name:"General",items:[{name:"Editor de barra d'eines",legend:"Premi ${toolbarFocus} per desplaçar-se per la barra d'eines. Vagi en el següent i anterior grup de barra d'eines amb TAB i SHIFT+TAB. Vagi en el següent i anterior botó de la barra d'eines amb RIGHT ARROW i LEFT ARROW. Premi SPACE o ENTER per activar el botó de la barra d'eines."},
|
||||
{name:"Editor de quadre de diàleg",legend:"Dins d'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament."},
|
||||
{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."},
|
||||
{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"},
|
||||
{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ordre per accedir al següent espai enfocat",
|
||||
legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulació",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",pageUp:"Pàgina Amunt",
|
||||
pageDown:"Pàgina Avall",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9",
|
||||
multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat",
|
||||
singleQuote:"Cometa Simple"});
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","cs",{title:"Instrukce pro přístupnost",contents:"Obsah nápovědy. Pro uzavření tohoto dialogu stiskněte klávesu ESC.",legend:[{name:"Obecné",items:[{name:"Panel nástrojů editoru",legend:"Stiskněte${toolbarFocus} k procházení panelu nástrojů. Přejděte na další a předchozí skupiny pomocí TAB a SHIFT+TAB. Přechod na další a předchozí tlačítko panelu nástrojů je pomocí ŠIPKA VPRAVO nebo ŠIPKA VLEVO. Stisknutím mezerníku nebo klávesy ENTER tlačítko aktivujete."},{name:"Dialogové okno editoru",
|
||||
legend:"Uvnitř dialogového okna stiskněte TAB pro přesunutí na další prvek okna, stiskněte SHIFT+TAB pro přesun na předchozí prvek okna, stiskněte ENTER pro odeslání dialogu, stiskněte ESC pro jeho zrušení. Pro dialogová okna, která mají mnoho karet stiskněte ALT+F10 pro zaměření seznamu karet, nebo TAB, pro posun podle pořadí karet.Při zaměření seznamu karet se můžete jimi posouvat pomocí ŠIPKY VPRAVO a VLEVO."},{name:"Kontextové menu editoru",legend:"Stiskněte ${contextMenu} nebo klávesu APPLICATION k otevření kontextového menu. Pak se přesuňte na další možnost menu pomocí TAB nebo ŠIPKY DOLŮ. Přesuňte se na předchozí možnost pomocí SHIFT+TAB nebo ŠIPKY NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti menu. Podmenu současné možnosti otevřete pomocí MEZERNÍKU nebo ENTER či ŠIPKY DOLEVA. Kontextové menu uzavřete stiskem ESC."},
|
||||
{name:"Rámeček seznamu editoru",legend:"Uvnitř rámečku seznamu se přesunete na další položku menu pomocí TAB nebo ŠIPKA DOLŮ. Na předchozí položku se přesunete SHIFT+TAB nebo ŠIPKA NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti seznamu. Stiskněte ESC pro uzavření seznamu."},{name:"Lišta cesty prvku v editoru",legend:"Stiskněte ${elementsPathFocus} pro procházení lišty cesty prvku. Na další tlačítko prvku se přesunete pomocí TAB nebo ŠIPKA VPRAVO. Na předchozí tlačítko se přesunete pomocí SHIFT+TAB nebo ŠIPKA VLEVO. Stiskněte MEZERNÍK nebo ENTER pro vybrání prvku v editoru."}]},
|
||||
{name:"Příkazy",items:[{name:" Příkaz Zpět",legend:"Stiskněte ${undo}"},{name:" Příkaz Znovu",legend:"Stiskněte ${redo}"},{name:" Příkaz Tučné",legend:"Stiskněte ${bold}"},{name:" Příkaz Kurzíva",legend:"Stiskněte ${italic}"},{name:" Příkaz Podtržení",legend:"Stiskněte ${underline}"},{name:" Příkaz Odkaz",legend:"Stiskněte ${link}"},{name:" Příkaz Skrýt panel nástrojů",legend:"Stiskněte ${toolbarCollapse}"},{name:"Příkaz pro přístup k předchozímu prostoru zaměření",legend:"Stiskněte ${accessPreviousSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření před stříškou, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},
|
||||
{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"},{name:"Vložit jako čistý text",legend:"Stiskněte ${pastetext}",legendEdge:"Stiskněte ${pastetext} a pak ${paste}"}]}],tab:"Tabulátor",pause:"Pauza",capslock:"Caps lock",
|
||||
escape:"Escape",pageUp:"Stránka nahoru",pageDown:"Stránka dolů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7",
|
||||
numpad8:"Numerická klávesa 8",numpad9:"Numerická klávesa 9",multiply:"Numerická klávesa násobení",add:"Přidat",subtract:"Numerická klávesa odečítání",decimalPoint:"Desetinná tečka",divide:"Numerická klávesa dělení",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num lock",scrollLock:"Scroll lock",semiColon:"Středník",equalSign:"Rovnítko",comma:"Čárka",dash:"Pomlčka",period:"Tečka",forwardSlash:"Lomítko",graveAccent:"Přízvuk",openBracket:"Otevřená hranatá závorka",
|
||||
backSlash:"Obrácené lomítko",closeBracket:"Uzavřená hranatá závorka",singleQuote:"Jednoduchá uvozovka"});
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
CKEDITOR.plugins.setLang("a11yhelp","cy",{title:"Canllawiau Hygyrchedd",contents:"Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.",legend:[{name:"Cyffredinol",items:[{name:"Bar Offer y Golygydd",legend:"Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT+TAB. Symudwch i'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol."},{name:"Deialog y Golygydd",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
|
||||
{name:"Dewislen Cyd-destun y Golygydd",legend:"Pwyswch $ {contextMenu} neu'r ALLWEDD 'APPLICATION' i agor y ddewislen cyd-destun. Yna symudwch i'r opsiwn ddewislen nesaf gyda'r TAB neu'r SAETH I LAWR. Symudwch i'r opsiwn blaenorol gyda SHIFT+TAB neu'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC."},
|
||||
{name:"Blwch Rhestr y Golygydd",legend:"Tu mewn y blwch rhestr, ewch i'r eitem rhestr nesaf gyda TAB neu'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT+TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o'r rhestr. Pwyswch ESC i gau'r rhestr."},{name:"Bar Llwybr Elfen y Golygydd",legend:"Pwyswch ${elementsPathFocus} i fynd i'r bar llwybr elfennau. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT+TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd."}]},
|
||||
{name:"Gorchmynion",items:[{name:"Gorchymyn dadwneud",legend:"Pwyswch ${undo}"},{name:"Gorchymyn ailadrodd",legend:"Pwyswch ${redo}"},{name:"Gorchymyn Bras",legend:"Pwyswch ${bold}"},{name:"Gorchymyn italig",legend:"Pwyswch ${italig}"},{name:"Gorchymyn tanlinellu",legend:"Pwyso ${underline}"},{name:"Gorchymyn dolen",legend:"Pwyswch ${link}"},{name:"Gorchymyn Cwympo'r Dewislen",legend:"Pwyswch ${toolbarCollapse}"},{name:"Myned i orchymyn bwlch ffocws blaenorol",legend:"Pwyswch ${accessPreviousSpace} i fyned i'r \"blwch ffocws sydd methu ei gyrraedd\" cyn y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. AIladroddwch y cyfuniad allwedd i gyrraedd bylchau ffocws pell."},
|
||||
{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
|
||||
pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
|
||||
divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
|
||||