dev2 #1

Open
panjunjie wants to merge 174 commits from dev2 into main
685 changed files with 68434 additions and 1 deletions
Showing only changes of commit 76adfec61d - Show all commits

1
.gitignore vendored
View File

@ -1,7 +1,6 @@
.DS_Store
node_modules
/dist
/admin/
# local env files
.env.local
.env.*.local

783
admin/config.js Normal file
View File

@ -0,0 +1,783 @@
if ('undefined' == typeof window.SS)
{
window.SS = {};
}
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
window.admin_url = window.admin_url || getUrlParam('admin_url');
window.base_url = window.admin_url;
window.api_url = window.api_url || getUrlParam('api_url')
if ('undefined' == typeof window.SYS)
{
window.SYS = {CONFIG:{}, URL:{}};
}
// 系统参数控制
window.SYSTEM = {
};
// 区分服务支持
window.SYSTEM.categoryInfo = {};
window.SYSTEM.category = {};
SYS.VER = typeof ver != "undefined" ? ver : Math.random();
SYS.DEBUG = 0;
SYS.CONFIG['index_url'] = base_url
SYS.CONFIG['base_url'] = base_url
SYS.CONFIG['edit_sign'] = api_url + '/mobile/account/user/editSign'
SYS.CONFIG['im_config'] = api_url + '/mobile/sns/im/getImConfig'
SYS.CONFIG['kefu_config'] = api_url + '/mobile/sns/im/getKefuConfig'
SYS.CONFIG['friend_info_lists'] = api_url + '/mobile/sns/userFriend/getFriendsInfo'
SYS.CONFIG['zonemsg_lists'] = api_url + '/mobile/sns/userZoneMessage/list'
SYS.CONFIG['msg_chat_lists'] = api_url + '/mobile/sns/userMessage/listChatMsg'
SYS.CONFIG['msg_chathistory_lists'] = api_url + '/mobile/sns/userMessage/listChatMsg'
//SYS.CONFIG['msg_chathistory_lists'] = api_url + '/im/iim/chatHistory/list'
SYS.CONFIG['msg_set_read'] = api_url + '/mobile/sns/userMessage/setRead'
SYS.CONFIG['zonemsg_add_msg'] = api_url + '/mobile/sns/zoneMessage/add'
SYS.CONFIG['msg_add'] = api_url + '/mobile/sns/userMessage/add'
SYS.CONFIG['upload'] = api_url + '/mobile/admin/oss/upload'
if ('undefined' == typeof window.SYS.CONFIG.static_url)
{
SYS.CONFIG['static_url'] = '/static'
}
if ('undefined' == typeof window.SYS.URL.upload)
{
SYS.URL['upload'] = api_url + '/mobile/admin/oss/upload'
}
var authorization_token = '';
if (localStorage.getItem("ukey")) {
authorization_token = localStorage.getItem("ukey");
}
SYS.URL['upload'] = SYS.URL['upload'] + '?perm_key=' + encodeURIComponent(authorization_token);
SYS.LD = {lang:'zh_CN', currency_id:86, symbol:'¥', symbol_right:'RMB'};
//扩展函数,需要放入lib
var __ = __ || function (str)
{
return str;
};
function sprintf () {
var regex = /%%|%(\d+$)?([\-+'#0 ]*)(\*\d+$|\*|\d+)?(?:\.(\*\d+$|\*|\d+))?([scboxXuideEfFgG])/g
var a = arguments
var i = 0
var format = a[i++]
var _pad = function (str, len, chr, leftJustify) {
if (!chr) {
chr = ' '
}
var padding = (str.length >= len) ? '' : new Array(1 + len - str.length >>> 0).join(chr)
return leftJustify ? str + padding : padding + str
}
var justify = function (value, prefix, leftJustify, minWidth, zeroPad, customPadChar) {
var diff = minWidth - value.length
if (diff > 0) {
if (leftJustify || !zeroPad) {
value = _pad(value, minWidth, customPadChar, leftJustify)
} else {
value = [
value.slice(0, prefix.length),
_pad('', diff, '0', true),
value.slice(prefix.length)
].join('')
}
}
return value
}
var _formatBaseX = function (value, base, prefix, leftJustify, minWidth, precision, zeroPad) {
// Note: casts negative numbers to positive ones
var number = value >>> 0
prefix = (prefix && number && {
'2': '0b',
'8': '0',
'16': '0x'
}[base]) || ''
value = prefix + _pad(number.toString(base), precision || 0, '0', false)
return justify(value, prefix, leftJustify, minWidth, zeroPad)
}
// _formatString()
var _formatString = function (value, leftJustify, minWidth, precision, zeroPad, customPadChar) {
if (precision !== null && precision !== undefined) {
value = value.slice(0, precision)
}
return justify(value, '', leftJustify, minWidth, zeroPad, customPadChar)
}
// doFormat()
var doFormat = function (substring, valueIndex, flags, minWidth, precision, type) {
var number, prefix, method, textTransform, value
if (substring === '%%') {
return '%'
}
// parse flags
var leftJustify = false
var positivePrefix = ''
var zeroPad = false
var prefixBaseX = false
var customPadChar = ' '
var flagsl = flags.length
var j
for (j = 0; j < flagsl; j++) {
switch (flags.charAt(j)) {
case ' ':
positivePrefix = ' '
break
case '+':
positivePrefix = '+'
break
case '-':
leftJustify = true
break
case "'":
customPadChar = flags.charAt(j + 1)
break
case '0':
zeroPad = true
customPadChar = '0'
break
case '#':
prefixBaseX = true
break
}
}
// parameters may be null, undefined, empty-string or real valued
// we want to ignore null, undefined and empty-string values
if (!minWidth) {
minWidth = 0
} else if (minWidth === '*') {
minWidth = +a[i++]
} else if (minWidth.charAt(0) === '*') {
minWidth = +a[minWidth.slice(1, -1)]
} else {
minWidth = +minWidth
}
// Note: undocumented perl feature:
if (minWidth < 0) {
minWidth = -minWidth
leftJustify = true
}
if (!isFinite(minWidth)) {
throw new Error('sprintf: (minimum-)width must be finite')
}
if (!precision) {
precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type === 'd') ? 0 : undefined
} else if (precision === '*') {
precision = +a[i++]
} else if (precision.charAt(0) === '*') {
precision = +a[precision.slice(1, -1)]
} else {
precision = +precision
}
// grab value using valueIndex if required?
value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++]
switch (type) {
case 's':
return _formatString(value + '', leftJustify, minWidth, precision, zeroPad, customPadChar)
case 'c':
return _formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad)
case 'b':
return _formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
case 'o':
return _formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
case 'x':
return _formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
case 'X':
return _formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
.toUpperCase()
case 'u':
return _formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
case 'i':
case 'd':
number = +value || 0
// Plain Math.round doesn't just truncate
number = Math.round(number - number % 1)
prefix = number < 0 ? '-' : positivePrefix
value = prefix + _pad(String(Math.abs(number)), precision, '0', false)
return justify(value, prefix, leftJustify, minWidth, zeroPad)
case 'e':
case 'E':
case 'f': // @todo: Should handle locales (as per setlocale)
case 'F':
case 'g':
case 'G':
number = +value
prefix = number < 0 ? '-' : positivePrefix
method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())]
textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2]
value = prefix + Math.abs(number)[method](precision)
return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform]()
default:
return substring
}
}
return format.replace(regex, doFormat)
}
function buildUlr(url, param) {
var LG = (function(lg){
var objURL=function(url){
this.ourl=url||window.location.href;
this.href="";//?前面部分
this.params={};//url参数对象
this.jing="";//#及后面部分
this.init();
}
//分析url,得到?前面存入this.href,参数解析为this.params对象#号及后面存入this.jing
objURL.prototype.init=function(){
var str=this.ourl;
var index=str.indexOf("#");
if(index>0){
this.jing=str.substr(index);
str=str.substring(0,index);
}
index=str.indexOf("?");
if(index>0){
this.href=str.substring(0,index);
str=str.substr(index+1);
var parts=str.split("&");
for(var i=0;i<parts.length;i++){
var kv=parts[i].split("=");
this.params[kv[0]]=kv[1];
}
}
else{
this.href=this.ourl;
this.params={};
}
}
//只是修改this.params
objURL.prototype.set=function(key,val){
this.params[key]=val;
}
//只是设置this.params
objURL.prototype.remove=function(key){
this.params[key]=undefined;
}
//根据三部分组成操作后的url
objURL.prototype.url=function(){
var strurl=this.href;
var objps=[];//这里用数组组织,再做join操作
for(var k in this.params){
if(this.params[k]){
objps.push(k+"="+this.params[k]);
}
}
if(objps.length>0){
strurl+="?"+objps.join("&");
}
if(this.jing.length>0){
strurl+=this.jing;
}
return strurl;
}
//得到参数值
objURL.prototype.get=function(key){
return this.params[key];
}
lg.URL=objURL;
return lg;
}(LG||{}));
var obj = new LG.URL(url);
for(var o in param){
obj.set(o, param[o]);
}
return obj.url();
}
function get_ext(filename){
var postf = '';
if (filename)
{
var index1=filename.lastIndexOf(".");
var index2=filename.length;
var postf=filename.substring(index1,index2);//后缀名
}
else
{
}
return postf;
}
function image_thumb(image_url, w, h) {
if ('undefined' == typeof w) {
w = 60;
}
if ('undefined' == typeof h) {
h = w;
}
var ext = get_ext(image_url);
if (image_url.indexOf('image.php') !== -1)
{
image_url = sprintf('%s!%sx%s%s', image_url, w, h, ext);
}
else
{
if (upload_type == 'default')
{
image_url = sprintf('%s!%sx%s%s', image_url, w, h, ext);
}
else if (upload_type == 'aliyun')
{
//将图自动裁剪成宽度为 100px高度为 100px 的效果图。 ?x-oss-process=image/resize,m_fill,h_100,w_100
//http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_mfit,h_100,w_100
//将图缩略成宽度为 100px高度为 100px按长边优先 image/resize,m_lfit,h_100,w_100
image_url = sprintf('%s?x-oss-process=image/resize,m_fill,h_%s,w_%s', image_url, w, h);
}
else if (upload_type == 'tengxun')
{
image_url = sprintf('%s?imageMogr2/crop/%sx%s/gravity/center', image_url, w, h);
}
else
{
image_url = sprintf('%s!%sx%s%s', image_url, w, h, ext);
}
}
return image_url;
}
img = image_thumb;
function number_format(number, decimals, dec_point, thousands_sep) {
// discuss at: http://phpjs.org/functions/number_format/
// original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// improved by: davook
// improved by: Brett Zamir (http://brett-zamir.me)
// improved by: Brett Zamir (http://brett-zamir.me)
// improved by: Theriault
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// bugfixed by: Michael White (http://getsprink.com)
// bugfixed by: Benjamin Lupton
// bugfixed by: Allan Jensen (http://www.winternet.no)
// bugfixed by: Howard Yeend
// bugfixed by: Diogo Resende
// bugfixed by: Rival
// bugfixed by: Brett Zamir (http://brett-zamir.me)
// revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// revised by: Luke Smith (http://lucassmith.name)
// input by: Kheang Hok Chin (http://www.distantia.ca/)
// input by: Jay Klehr
// input by: Amir Habibi (http://www.residence-mixte.com/)
// input by: Amirouche
// example 1: number_format(1234.56);
// returns 1: '1,235'
// example 2: number_format(1234.56, 2, ',', ' ');
// returns 2: '1 234,56'
// example 3: number_format(1234.5678, 2, '.', '');
// returns 3: '1234.57'
// example 4: number_format(67, 2, ',', '.');
// returns 4: '67,00'
// example 5: number_format(1000);
// returns 5: '1,000'
// example 6: number_format(67.311, 2);
// returns 6: '67.31'
// example 7: number_format(1000.55, 1);
// returns 7: '1,000.6'
// example 8: number_format(67000, 5, ',', '.');
// returns 8: '67.000,00000'
// example 9: number_format(0.9, 0);
// returns 9: '1'
// example 10: number_format('1.20', 2);
// returns 10: '1.20'
// example 11: number_format('1.20', 4);
// returns 11: '1.2000'
// example 12: number_format('1.2000', 3);
// returns 12: '1.200'
// example 13: number_format('1 000,50', 2, '.', ' ');
// returns 13: '100 050.00'
// example 14: number_format(1e-8, 8, '.', '');
// returns 14: '0.00000001'
number = (number + '')
.replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? '' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function(n, prec) {
var k = Math.pow(10, prec);
return '' + (Math.round(n * k) / k)
.toFixed(prec);
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n))
.split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '')
.length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1)
.join('0');
}
return s.join(dec);
}
function mf(number, decimals, dec_point, thousands_sep) {
//判断语言货币,修正 decimals
return number_format(number, decimals, dec_point, thousands_sep);
}
//商品状态
var StateCode = {};
var User_BindConnectModel = {};
;(function (factory) {
if (typeof define === "function" && define.amd) {
// AMD模式
define(factory);
} else {
// 全局模式
factory();
}
}(function () {
if ('undefined' == typeof window.SYS)
{
window.SYS = {};
}
SYS.VER = 'undefined' != typeof SYS.VER ? SYS.VER : '1.0.28';
SYS.DEBUG = 'undefined' != typeof SYS.DEBUG ? SYS.DEBUG : 0;
//尚未启用
if (window.localStorage)
{
var cache = localStorage.getItem("cache");
var cache_expire = localStorage.getItem("cache_expire");
}
else
{
}
SYS.CACHE = !SYS.DEBUG && ('undefined' != typeof SYS.CACHE ? SYS.CACHE : 0);
SYS.CACHE_EXPIRE = 3600 * 1;
SYS.VER_SHOP = 'undefined' != typeof SYS.VER_SHOP ? SYS.VER : '1.0.28';
SYS.VER_WAP = 'undefined' != typeof SYS.VER_WAP ? SYS.VER_WAP : '1.0.28';
SYS.VER_ADMIN = 'undefined' != typeof SYS.VER_ADMIN ? SYS.VER_ADMIN : '1.0.28';
SYS.SW_ENABLE = 'undefined' != typeof SYS.SW_ENABLE ? SYS.SW_ENABLE : 0;
SYS.HTTPS = 'undefined' != typeof SYS.HTTPS ? SYS.HTTPS : 0;
if (window.localStorage) {
var version = localStorage.getItem("version");
if (version)
{
SYS.VER = version;
}
} else {
}
SYS.STATIC_IMAGE_PATH = 'https://static.lancerdt.cn/xcxfile/appicon/';
SYS.AK_BROWSER = "Yi9XWlwa7sUGSuKGDiPBrS261bMeu6YF";
SYS.AK_MINIAPP = "uWq8fmHbdvzOqLZlU8QZvbugoDyPFUg6";
return SYS.CONFIG;
}));
// utils.js
if ('undefined' == typeof window.verifyUtils)
{
window.verifyUtils = {};
}
window.verifyUtils = {
smsTimer: function (that)
{
var self = this;
var wait = $(that).data('wait');
if (wait == 0)
{
$(that).removeAttr("disabled").val('重新获取验证码');
$(that).removeClass("disabled");
$(that).data('status', true);
$(that).data('wait', $(that).data('times'));
}
else
{
$(that).attr("disabled", true).val(wait + '秒后点此重发');
$(that).addClass("disabled");
$(that).data('wait', --wait);
setTimeout(function ()
{
self.smsTimer(that);
}, 1000)
}
},
countDown:function (that, times)
{
var self = this;
$(that).data('times', times);
$(that).data('wait', times);
if (typeof($(that).data('status')) === 'undefined' || $(that).data('status'))
{
$(that).data('status', false);
self.smsTimer(that);
}
},
imageVerifyCode : function (verify_code, key_obj)
{
$(verify_code).on('click', function()
{
var rand_key = Math.random();
var url = itemUtil.getUrl(SYS.URL.verify.image, {rand_key: rand_key});
$(verify_code).css("backgroundImage","url(" + url + ")");
$(key_obj).val(rand_key);
});
//$(this).css("backgroundImage","url(" + url + ")");
var rand_key = Math.random();
var url = itemUtil.getUrl(SYS.URL.verify.image, {rand_key: rand_key});
$(verify_code).css("background","url(" + url + ") no-repeat center");
$(verify_code).css("cursor", "pointer");
$(verify_code).css("backgroundSize", "cover");
$(key_obj).val(rand_key);
},
emailVerifyCode : function (email, that, captcha)
{
var self = this;
$(that).on('click', function()
{
let mv = '';
if (typeof(email) === 'object')
{
mv = $(email).val();
}
else
{
mv = email;
}
var url = itemUtil.getUrl(SYS.URL.verify.email, {rand_key: mv})
if (typeof(captcha) !== 'undefined')
{
url = url + '&captcha=' + captcha;
}
$.ajax({
type: "GET",
url: url,
data: {},
dataType: "jsonp",
jsonp: "jsonp_callback",
success: function(res){
if (200 == res.status)
{
//服务端返回times
var times = 60;
self.countDown(that, times);
}
else
{
if (typeof $.fancybox != 'undefined')
{
Public.tipMsg(res.msg);
}
else
{
alert(res.msg);
}
}
}
});
});
},
smsVerifyCode : function (mobile, that, image_key, image_value)
{
var self = this;
$(that).on('click', function()
{
let mv = '';
if (typeof(mobile) === 'object')
{
mv = '' + $('#user_intl').val() + $(mobile).val();
if (!$(mobile).val())
{
alert(__('请输入手机号码'));
return ;
}
}
else
{
mv = mobile;
if (!mv)
{
alert(__('请输入手机号码'));
return ;
}
}
var url = itemUtil.getUrl(SYS.URL.verify.mobile, {mobile: encodeURIComponent(mv)});
if (typeof(image_value) !== 'undefined')
{
url = url + '&image_value=' + $(image_value).val();;
}
if (typeof(image_key) !== 'undefined')
{
url = url + '&image_key=' + $(image_key).val();;
}
$.ajax({
type: "post",
url: url,
data: {},
dataType: "jsonp",
jsonp: "jsonp_callback",
success: function(res){
if (200 == res.status)
{
//服务端返回times
var times = 60;
self.countDown(that, times);
}
else
{
if (typeof $.fancybox != 'undefined')
{
Public.tipMsg(res.msg);
}
else
{
alert(res.msg);
}
}
}
});
});
}
};
function formatMoney(value, prefix, endfix) {
var num = new Number(value);
if(typeof prefix != 'undefined')
{
}
else
{
prefix = __("¥")
}
if(typeof endfix != 'undefined')
{
}
else
{
endfix = ""
}
return prefix + num.toFixed(2) + endfix
}
function payment_met_id(val, opt, row) {
var r = {
"1": "余额支付",
"2": "充值卡支付",
"3": "积分支付",
"4": "信用支付",
"5": "红包支付"
};
return r[val];
}
function trade_type_id(val, opt, row) {
var r = {
"1201": "购物",
"1202": "转账",
"1203": "充值",
"1204": "提现",
"1205": "销售",
"1206": "佣金"
};
return r[val];
}
function payment_type_id(val, opt, row) {
var r = {
"1301": "货到付款",
"1302": "在线支付",
"1303": "白条支付",
"1304": "现金支付",
"1305": "线下支付",
"": null
};
return r[val];
}

3328
admin/diy-pc/index.html Normal file

File diff suppressed because it is too large Load Diff

110
admin/diy-pc/items.html Normal file
View File

@ -0,0 +1,110 @@
<!DOCTYPE html>
<html lang="zh-CN" dropEffect="none" class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
<meta name="description" content="Qianyi Boostrap Admin Panel" />
<meta name="author" content="" />
<title>平台 管理中心 - lancerdt澜驰商城系统</title>
<!--<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Arimo:400,700,400italic">-->
<link rel="stylesheet" href="../static/css/zerocons/css/zerocons.css">
<link rel="stylesheet" href="../static/css/fontawesome/css/font-awesome.min.css">
<link rel="stylesheet" href="./static/admin/common/css/bootstrap.min.css">
<link rel="stylesheet" href="./static/admin/common/css/qianyi-core.min.css">
<link rel="stylesheet" href="./static/admin/common/css/qianyi-forms.min.css">
<link rel="stylesheet" href="./static/admin/common/css/qianyi-components.min.css">
<link rel="stylesheet" href="./static/admin/common/css/qianyi-skins.min.css">
<link rel="stylesheet" href="./static/admin/common/css/default.min.css">
<!-- <link rel="shortcut icon" href="../static/1618295612543845.ico" type="image/x-icon" />-->
<script type="text/javascript">
window.SYS = {CONFIG:{}, URL:{}};
window.zIndex = 2976;
SYS.CONFIG['static_url'] = '/diy-pc/static/admin'
SYS.LD = {lang:'zh_CN', currency_id:86, symbol:'¥', symbol_right:'RMB'};
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
api_url = getUrlParam('api_url');
</script>
<script type="text/javascript" src="../config.js"></script>
<script src="./static/admin/common/js/libs.min.js?self=false"></script>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="./static/admin/common/js/html5shiv.js"></script>
<script src="./static/admin/common/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="page-body skin-default user-info-navbar-skin-default"> <!-- navy watermelon facebook green-->
<link rel="stylesheet" href="./static/admin/common/ztree/css/zTreeStyle/zTreeStyle.css">
<script src="./static/admin/common/ztree/js/jquery.ztree.all-3.5.js"></script>
<div class="page-container"><!-- add class "sidebar-collapsed" to close sidebar by default, "chat-visible" to make chat appear always -->
<div class="main-content">
<div class="row" id="search_box">
<div class="col-sm-12">
<form id="grid-search-form">
<span id="user"></span>
<input type="text" id="product_name" name="product_name" class="ui-input form-control ui-input-ph" style="width: 180px;" placeholder="输入商品名称" autocomplete="off" >
<input type="text" id="product_id" name="product_id" class="ui-input form-control ui-input-ph" style="width: 160px;" placeholder="商品编号" autocomplete="off" >
<style>
.select2-container--bootstrap{
display: inline-block;
}
</style>
<!--
<select class="input_txt form-inline title-form form-control select2" style="width: 100px;display: inline-block;" id="brand_id" name="brand_id" placeholder="请输入品牌名称" >
<option value="0" selected>全部品牌</option>
</select>-->
<span ><span id="category_id"></span></span>
<a class="btn btn-default btn-single" data-color="blue" data-style="slide-left" id="search"><i class="fa fa-search" aria-hidden="true"></i> 查询</a>
</form>
</div>
</div>
<div class="wrapper">
<div class="grid-wrap">
<table id="grid"></table>
<div id="grid-pager"></div>
</div>
</div>
</div>
</div>
<script>
var header_auth_token = '';
if (localStorage.getItem("ukey")) {
header_auth_token = "Bearer " + localStorage.getItem("ukey");
}
</script>
<script src="./static/shop/default/js/product_item.js"></script>
<div class="page-loading-overlay">
<div class="loader-2"></div>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,113 @@
@charset "utf-8";
/*==================制作新皮肤从这里开始复制==================*/
/*基本重置*/
body{ _margin:0; }/*IE6 BUG*/
.ui_lock_scroll{ *overflow:hidden; }
.ui_lock_scroll body{ overflow:hidden; }
/*结构层*/
.ui_content,.ui_title,.ui_buttons input{ font:12px/1.333 tahoma,arial,\5b8b\4f53,sans-serif; }
table.ui_border,table.ui_dialog{ width:auto;border-spacing:0;*border-collapse:collapse; }
.ui_border td,.ui_dialog td{ padding:0; }
.ui_dialog{ background:#FFF; }
/*标题部分开始*/
.ui_title{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;cursor:move;background:#DDD;-moz-user-select:none;-webkit-user-select:none;padding:0 100px 0 0; }
.ui_title_buttons{ position:absolute;cursor:pointer;font-size:0;letter-spacing:-.5em; }
/*对齐自适应*/
.ui_main{ min-width:6em;min-width:0\9;text-align:center; }
.ui_content{ display:inline-block;*display:inline;zoom:1;text-align:left; font-size:14px; line-height: 1.8; }
.ui_content.ui_state_full{ display:block;width:100%;height:100%;margin:0;padding:0!important; }
.ui_content.ui_state_full iframe{ border-radius:0 0 2px 2px; }
.ui_loading{ width:96px;height:32px;text-align:left;text-indent:-9999em;overflow:hidden;background:url(../images/dialog/icons/loading.gif) no-repeat center center; }
.ui_icon_bg{ margin:20px 5px 20px 15px; }
.ui_icon{vertical-align: top;}
.ui_icon img{ width:48px; height:48px; }
/*标题纯CSS按钮开始 min 最小化max最大化res还原rese恢复close关闭*/
.ui_min,.ui_max,.ui_close,.ui_res{ position:relative;text-decoration:none;letter-spacing:normal;text-align:center;display:inline-block;*display:inline;zoom:1;vertical-align:top;font-family:tahoma,arial,\5b8b\4f53,sans-serif; }
.ui_min b,.ui_max b,.ui_res_t,.ui_res_b{ display:block;position:absolute;overflow:hidden;cursor:pointer; }
.ui_close{ font-weight:500;text-decoration:none;outline:0 none; }
.ui_close:hover{ text-decoration:none; }
/*Tips部分*/
.ui_state_tips .ui_main{ min-width:3em; }
.ui_state_tips .ui_content{ margin-top:-2px;padding:8px 10px!important; }
.ui_state_tips .ui_icon_bg{ margin:11px 0 6px 9px; width:28px; height:28px; }
.ui_state_tips .ui_title,.ui_state_tips .ui_title_buttons,.ui_res{ display:none; } /* 还原按钮也在这里隐藏,这样可节省代码,注间这段一定要写在上面那段代码的下面*/
#ldg_lockmask{ background:#000;filter:alpha(opacity=30);opacity:.3; }
/*==================制作新皮肤到这里结束复制==================*/
/*样式层开始*/
.ui_dialog{ border:1px solid #AAA; border-radius:5px;box-shadow:0 1px 6px rgba(0,0,0,.3);}
.ui_state_lock .ui_dialog{ box-shadow:0 3px 18px rgba(0,0,0,.3); }/*锁屏时遮罩*/
.ui_state_drag .ui_dialog,.ui_state_lock.ui_state_drag .ui_dialog { box-shadow:none; }/*拖动时隐藏阴影通过css3实现渐变动画*/
.ui_state_focus .ui_title{ color:#505050; }
.ui_lb,.ui_rb,.ui_lt,.ui_rt{ width:0;height:0;*width:1px;*height:1px; }/*隐藏边框*/
.ui_rb{ display:block;width:12px;height:12px;position:absolute;bottom:0;right:0;background:none; }/*重新显示右下角拖动,设为负值会造成浏览器显示滚动条*/
/*标题栏样式*/
.ui_title_bar{ position:relative;height:100%;border-bottom:1px solid #DDD; }
.ui_title{ font-size:14px;font-weight:bold;height:30px;line-height:30px;color:#666;
background: #fafafa;
background: -moz-linear-gradient(top, #fcfcfc, #f4f4f4);
background: -webkit-gradient(linear, 0 0, 0 100%, from(#fcfcfc), to(#f4f4f4));
background: -o-linear-gradient(top, #fcfcfc, #f4f4f4);
background: -ms-linear-gradient(top, #fcfcfc 0%,#f4f4f4 100%);
background: linear-gradient(top, #fcfcfc, #f4f4f4);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fcfcfc', endColorstr='#f4f4f4');
border-top:1px solid #f5f5f5;border-bottom:1px solid #f5f5f5;border-radius:2px 2px 0 0;padding-left:10px; }
.ui_state_drag .ui_title {
background: #fafafa;
background: -moz-linear-gradient(top, #f4f4f4, #fcfcfc);
background: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), to(#fcfcfc));
background: -o-linear-gradient(top, #f4f4f4, #fcfcfc);
background: -ms-linear-gradient(top, #f4f4f4 0%,#fcfcfc 100%);
background: linear-gradient(top, #f4f4f4, #fcfcfc);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f4f4', endColorstr='#fcfcfc');}
/*标题纯CSS按钮定位部分*/
.ui_title_buttons{ top:7px;right:5px; }
.ui_min,.ui_max,.ui_close,.ui_res{ color:#aaa;font-size:18px;width:20px;height:20px;line-height:18px; }
.ui_min_b{ top:10px;left:5px;width:10px;height:2px;border-bottom:2px solid #aaa; }
.ui_max_b{ top:5px;left:5px;width:10px;height:7px; }
.ui_res_t,.ui_res_b{ top:8px;left:3px;width:10px;height:5px; }
.ui_res_b{ top:4px;left:6px; }
.ui_res_t,.ui_res_b,.ui_max_b{ border:1px solid #aaa;border-top-width:3px; }
.ui_res_t{ background:#fafafa; }/*还原按钮底部框背景与标题背景融合*/
.ui_close{ vertical-align:baseline;_line-height:22px; }/*IE6关闭按钮垂直居中*/
.ui_close:hover,.ui_close:focus{ color:#bf160b; }
.ui_min:hover b,.ui_max:hover b,.ui_res:hover b{ border-color:#2492FF; }
/*按钮结构部分*/
.ui_buttons{ padding:4px 8px;text-align:right;white-space:nowrap;
border-top:1px solid #ececec;border-radius:0 0 2px 2px;
background: #fcfcfc;
background: -moz-linear-gradient(top, #fcfcfc, #f4f4f4);
background: -webkit-gradient(linear, 0 0, 0 100%, from(#fcfcfc), to(#f4f4f4));
background: -o-linear-gradient(top, #fcfcfc, #f4f4f4);
background: -ms-linear-gradient(top, #fcfcfc 0%,#f4f4f4 100%);
background: linear-gradient(top, #fcfcfc, #f4f4f4);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fcfcfc', endColorstr='#f4f4f4');}
.ui_buttons input::-moz-focus-inner{ border:0;padding:0;margin:0; }
.ui_buttons input{display:inline-block;*display:inline;zoom:1;margin-left:10px;padding:0 16px;height:24px;border:1px solid #c1c1c1;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,0.15);background: #ffffff;background: -moz-linear-gradient(top, #ffffff, #f4f4f4); background: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f4f4f4)); background: -o-linear-gradient(top, #ffffff, #f4f4f4);background: -ms-linear-gradient(top, #ffffff 0%,#f4f4f4 100%); background: linear-gradient(top, #ffffff, #f4f4f4); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f4f4f4');font:12px \5b8b\4f53;color:#555;vertical-align:middle;cursor:pointer;}
.ui_buttons input:hover{ filter:progid:DXImageTransform.Microsoft.Gradient(enabled=false);background:#f4f4f4;color:#555; }
.ui_buttons input:active{ background: #fbfbfb;background: -moz-linear-gradient(top, #e8e8e8, #fbfbfb); background: -webkit-gradient(linear, 0 0, 0 100%, from(#e8e8e8), to(#fbfbfb)); background: -o-linear-gradient(top, #e8e8e8, #fbfbfb);background: -ms-linear-gradient(top, #e8e8e8 0%,#fbfbfb 100%); background: linear-gradient(top, #e8e8e8, #fbfbfb); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e8e8e8', endColorstr='#fbfbfb');}
input.ui_state_highlight{ border:1px solid #3279a0;box-shadow:0 1px 1px rgba(0,0,0,0.3);background: #337fa9;background: -moz-linear-gradient(top, #4994be, #337fa9); background: -webkit-gradient(linear, 0 0, 0 100%, from(#4994be), to(#337fa9)); background: -o-linear-gradient(top, #4994be, #337fa9);background: -ms-linear-gradient(top, #4994be 0%,#337fa9 100%); background: linear-gradient(top, #4994be, #337fa9); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4994be', endColorstr='#337fa9');font-weight:bold;color:#fff;text-shadow:0 2px 2px rgba(0,0,0,0.22); }
input.ui_state_highlight:hover{ filter:progid:DXImageTransform.Microsoft.Gradient(enabled=false);background:#3286b4;color:#fff; }
input.ui_state_highlight:active{ background: #2b6c90;background: -moz-linear-gradient(top, #2b6c90, #4994be); background: -webkit-gradient(linear, 0 0, 0 100%, from(#2b6c90), to(#4994be)); background: -o-linear-gradient(top, #2b6c90, #4994be);background: -ms-linear-gradient(top, #2b6c90 0%,#4994be 100%); background: linear-gradient(top, #2b6c90, #4994be); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b6c90', endColorstr='#4994be'); }
/*Tips 部分开始*/
/*基本重置*/
.ui_state_tips ,.ui_state_tips .ui_inner,.ui_state_tips .ui_dialog,.ui_state_tips .ui_title_bar{ border:0 none;background:none;box-shadow:none;border-radius:0;filter:none; }
.ui_state_tips .ui_content{ font-weight:bold;font-size:14px;color:#323232;text-align:center; }
/*Tips(图片背景IE6也支持圆角) End*/
.ui_state_tips .ui_dialog,.ui_state_tips .ui_l,.ui_state_tips .ui_r{ background-image:url(../images/dialog/icons/gb_tip_layer.png);_background-image:url(../images/dialog/icons/gb_tip_layer_ie6.png);background-repeat:no-repeat; }/*共用背景图片*/
.ui_state_tips .ui_l{ background-position:-6px 0;width:5px; }/*左侧背景侧样式*/
.ui_state_tips .ui_r{ background-position:0 0;width:5px; }/*右侧背景样式*/
.ui_state_tips .ui_dialog{ background-position: 0 -54px;background-repeat:repeat-x;height:54px;overflow:hidden; }/*主体内容背景*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

View 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);

View File

@ -0,0 +1,192 @@
/**
* @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/4e3a4ca28d8cb0c407b480601a63d4b6
* Visit online builder to build CKEditor, starting with the same setup as before.
*
* (3) https://ckeditor.com/cke4/builder/download/4e3a4ca28d8cb0c407b480601a63d4b6
* 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: 'full',
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,
'bidi' : 1,
'blockquote' : 1,
'clipboard' : 1,
'colorbutton' : 1,
'colordialog' : 1,
'contextmenu' : 1,
'copyformatting' : 1,
'dialogadvtab' : 1,
'div' : 1,
'elementspath' : 1,
'enterkey' : 1,
'entities' : 1,
'filebrowser' : 1,
'find' : 1,
'flash' : 1,
'floatingspace' : 1,
'font' : 1,
'format' : 1,
'forms' : 1,
'horizontalrule' : 1,
'htmlwriter' : 1,
'iframe' : 1,
'image' : 1,
'indentblock' : 1,
'indentlist' : 1,
'justify' : 1,
'language' : 1,
'link' : 1,
'list' : 1,
'liststyle' : 1,
'magicline' : 1,
'maximize' : 1,
'newpage' : 1,
'pagebreak' : 1,
'pastefromgdocs' : 1,
'pastefromword' : 1,
'pastetext' : 1,
'pastetools' : 1,
'preview' : 1,
'print' : 1,
'removeformat' : 1,
'resize' : 1,
'save' : 1,
'scayt' : 1,
'selectall' : 1,
'showblocks' : 1,
'showborders' : 1,
'smiley' : 1,
'sourcearea' : 1,
'specialchar' : 1,
'stylescombo' : 1,
'tab' : 1,
'table' : 1,
'tableselection' : 1,
'tabletools' : 1,
'templates' : 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
}
};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,91 @@
/**
* @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,colorbutton,preview,templates,widget,basicstyles,blockquote,clipboard,panel,floatpanel,menu,contextmenu,resize,button,toolbar,elementspath,enterkey,entities,popup,filebrowser,floatingspace,font,justify,listblock,richcombo,format,horizontalrule,htmlwriter,wysiwygarea,image,multiimg,indent,indentlist,fakeobjects,link,list,magicline,maximize,pastetext,pastefromword,removeformat,showborders,sourcearea,specialchar,menubutton,scayt,stylescombo,tab,table,tabletools,undo,wsc';
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'fr';
// config.uiColor = '#AADC6E';
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
/* config.toolbar =
[
[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink','-','multiimg' ]
]
*/
// The toolbar groups arrangement, optimized for two toolbar rows.
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'links' },
{ name: 'others' },
{ name: 'insert' },
{ name: 'forms' },
{ name: 'tools' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'templates' },
{ name: 'widget' },
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'preview' }
];
// Remove some buttons provided by the standard plugins, which are
// not needed in the Standard(s) toolbar.
config.removeButtons = 'Underline,Subscript,Superscript';
// Set the most common block elements.
//config.format_tags = 'p;h1;h2;h3;pre';
config.filebrowserImageBrowseUrl = 'admin.php?ctl=Store_Media&met=index&typ=e&mdu=seller';
// config.filebrowserBrowseUrl = 'kcfinder/browse.php?type=files';
// config.filebrowserImageBrowseUrl = 'kcfinder/browse.php?type=images';
// config.filebrowserFlashBrowseUrl = 'kcfinder/browse.php?type=flash';
// config.filebrowserUploadUrl = 'kcfinder/upload.php?type=files';
// config.filebrowserImageUploadUrl = 'kcfinder/upload.php?type=images';
// config.filebrowserFlashUploadUrl = 'kcfinder/upload.php?type=flash';
// Simplify the dialog windows.
config.removeDialogTabs = 'image:advanced;link:advanced';
// BootstrapCK Skin Options
config.skin = 'bootstrapck';
config.height = '350px';
};
$(function () {
/*
//需要手动更新CKEDITOR字段
for ( instance in CKEDITOR.instances )
{
// When the CKEDITOR instance is created, fully initialized and ready for interaction.
// 当id为content的那个ckeditor被创建并初始化完成之后
CKEDITOR.instances[instance].on("instanceReady", function() {
// 保存按钮
this.addCommand("image", {
modes : {
wysiwyg : 1,
source : 1
},
exec : function(editor) {
// 获取到editor中的内容
var content = editor.document.getBody().getHtml();
alert(content);
}
});
});
}
*/
})

View 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;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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