feat: 初始化雄戈商城服务端代码与Webhook自动部署配置
8
public/.htaccess
普通文件
@@ -0,0 +1,8 @@
|
||||
<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>
|
||||
@@ -0,0 +1 @@
|
||||
RcqiHmSxV-kPoWvyz7VM5W9lz_liDRmsAPZteKO50i4.zf0hpbhGFjzuqWpvE7QpNVwKVtPtf20UYtlGCjljOvE
|
||||
二进制
public/app_cert/apiclient_cert.p12
普通文件
@@ -0,0 +1,25 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEITCCAwmgAwIBAgIUKbKS1MwGsLf/Qqm/77u+qU6REWQwDQYJKoZIhvcNAQEL
|
||||
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
|
||||
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
|
||||
Q0EwHhcNMjQwMzMwMDY1MTM5WhcNMjkwMzI5MDY1MTM5WjB7MRMwEQYDVQQDDAox
|
||||
NjcyMzk2NDc5MRswGQYDVQQKDBLlvq7kv6HllYbmiLfns7vnu58xJzAlBgNVBAsM
|
||||
Hui0teW3nui0pOm8jumFkuS4muaciemZkOWFrOWPuDELMAkGA1UEBhMCQ04xETAP
|
||||
BgNVBAcMCFNoZW5aaGVuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
||||
o7Tq13G1hJiROJie6GU1wTKpiyN1Gxyq+srmQA3PnvlEC2i+CJDBAaNhLarp1dbB
|
||||
6+aPvyZCB0ykE0/8X78AvJresBcJW45LJVPZrhI4fXkB4L/aU53lFZP1MdCqbQX9
|
||||
OKI5VNpIFzjWNprOCjxwbbnNKPXZ7BswoFOeX6/GrbsoSWVl36CYbUQBGSKqw7dA
|
||||
LpqN7AggPrkzpiBOeHZW/fENzOtEkI9MXBuEUDp0TYP/oUPy6LjjyXKtWudTC78j
|
||||
pqJdjsPCDwivK4jPG0m+EIUjJAG5M4eu9hjY9MvXkk4RSJh5lpiq3XxBWBZg+1Gg
|
||||
ERI1X4Y7VR4/nPGaUHFEGwIDAQABo4G5MIG2MAkGA1UdEwQCMAAwCwYDVR0PBAQD
|
||||
AgP4MIGbBgNVHR8EgZMwgZAwgY2ggYqggYeGgYRodHRwOi8vZXZjYS5pdHJ1cy5j
|
||||
b20uY24vcHVibGljL2l0cnVzY3JsP0NBPTFCRDQyMjBFNTBEQkMwNEIwNkFEMzk3
|
||||
NTQ5ODQ2QzAxQzNFOEVCRDImc2c9SEFDQzQ3MUI2NTQyMkUxMkIyN0E5RDMzQTg3
|
||||
QUQxQ0RGNTkyNkUxNDAzNzEwDQYJKoZIhvcNAQELBQADggEBAEx+QO9ZzaPc7Afg
|
||||
q+ut4fAipL46WoXhVr2AE/frycARtkI2o8OGr60iU5xZ+YUHU7wX+MZO79AT9ARw
|
||||
P+cFSBVEKdU3IAH80BTnSb5nUH19dkje4Kx+sej/WGXMSC6v04HgAmPz9lxOzXqg
|
||||
YxAy/CUvNMYjiw5j63aAyfY/TYFk7I1xa+saNJfolNcU9jsjJMYlJS6PEwi6CqZO
|
||||
ZA0UzYK/5sU0DvVn3zmoQfZJIRtZ/wGXTmry8o2En+a4hwZ5PQ6cgvzQFuSWEJBT
|
||||
L5Bd0pj32Io4Y4kQ1RQlz4aGX/AjeJV+1+JJHkx6//0zkysL6Ib+jnGMPkgiWkgv
|
||||
Dc38Sfc=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjtOrXcbWEmJE4
|
||||
mJ7oZTXBMqmLI3UbHKr6yuZADc+e+UQLaL4IkMEBo2EtqunV1sHr5o+/JkIHTKQT
|
||||
T/xfvwC8mt6wFwlbjkslU9muEjh9eQHgv9pTneUVk/Ux0KptBf04ojlU2kgXONY2
|
||||
ms4KPHBtuc0o9dnsGzCgU55fr8atuyhJZWXfoJhtRAEZIqrDt0Aumo3sCCA+uTOm
|
||||
IE54dlb98Q3M60SQj0xcG4RQOnRNg/+hQ/LouOPJcq1a51MLvyOmol2Ow8IPCK8r
|
||||
iM8bSb4QhSMkAbkzh672GNj0y9eSThFImHmWmKrdfEFYFmD7UaAREjVfhjtVHj+c
|
||||
8ZpQcUQbAgMBAAECggEAOHQDKBiGSBt0uNeotOtyBhW6ccjgcWEJdULS8/PPTTsY
|
||||
Q/by0XFZnX8B3AW8bYmJhhgUKg6/ZlT/n8lNdpcfYermMENBbtk7ALxRrL2LzXkV
|
||||
NLP0TjF89lv3ih4zJzWRhR4sNx6vDZMEDACGXPFKtAwGu8FMTSdzNVagns627OG4
|
||||
ZJRkBHtbrJ5eA8BzLlc1FD/plvnqVufB6WvvvkNrLyQ6/YyNP/UgO/SgFu/l1mTm
|
||||
4FHeQ7HpRD6iJSKkRgjD5zrtXoGzsUoqsh4NjHq/7Rfbc3UbsaJC+W93jBZMGlaY
|
||||
IfCtHN73ubDnlx/ddYmIZPJL9CSm7fujx3FlOu83AQKBgQDQJAL74ei0TA+38ccA
|
||||
nqBbzU78I4b/jJvUobddaqj0u42kU57LqxREf3bCd7obE9SeVsSD5nYmU73AFK9l
|
||||
3yAMGRLOOHuKf/6HfsKx2L5hQ3TDROOGydkxe7vgRXfolhZULzLYJ5oT1j3MPNO/
|
||||
DDoANgnz1NzHskIN3xhCFqy9CwKBgQDJWViHnSAC2Zd79552mJopNjHEc7xJjkvZ
|
||||
hXn3AoeXJu/wS6G2pda8ReNriR5s6LsZ0t8k0a/KKtsvvwz09b1WQv6EQ+WZHz1P
|
||||
UVSSZvhT7A7rHbrMBu32Uo22rHPUVf221yUeyb+9FL04NboyxfZj+S2Uv3x4OljG
|
||||
r2HDve5fMQKBgFI+aI9u7KyRgYSFnMS56VNdBODMiQNhZBHY9MOM6cYKdiWAhTal
|
||||
GxUV6K9e78LTSyhl0LDt17G9VTUY91WhnOAq6CtkViyb9s9DX1s28cMtDG48Qkt4
|
||||
ZsIOymYMDR1ycNBC9ixDObas6S5Suri69BAxSi125uZhoYgpp0Q2AXuRAoGAGr6M
|
||||
XM8JDnfagDPez3/rkifJqn949gg5mPX6wk2KtxAL9M4G99zFThK2Z3U6Hls3ZvG0
|
||||
hA56HA9fN9NXpD3z3T5e0jC2kYUtvphd9GhK+dK0FJTJWApfl0VV33q+k+isH5oq
|
||||
KxG/Lx1PGOVCCzZySMszO7vHi6ysWA+5m6dhvzECgYARE05Xh88whc1HBOkORt+Q
|
||||
z8NjEiaF3xYDWsFUNnvunPl/dycyFq+FkhRKSNYkpVRsxiThkTrAXNKl2kj7qxvJ
|
||||
eqFiHVA+q3BvJHUPvjMBFyHQow23xxjojf6/9i33rNVuzD92MB5DBEUHm8Fxdulk
|
||||
LWt98lTRs7IUa6eHJyzdkg==
|
||||
-----END PRIVATE KEY-----
|
||||
18
public/app_cert/证书使用说明.txt
普通文件
@@ -0,0 +1,18 @@
|
||||
欢迎使用微信支付!
|
||||
附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。
|
||||
证书属于敏感信息,请妥善保管不要泄露和被他人复制。
|
||||
不同开发语言下的证书格式不同,以下为说明指引:
|
||||
证书pkcs12格式(apiclient_cert.p12)
|
||||
包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
|
||||
部分安全性要求较高的API需要使用该证书来确认您的调用身份
|
||||
windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031)
|
||||
证书pem格式(apiclient_cert.pem)
|
||||
从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
|
||||
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
|
||||
您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
|
||||
证书密钥pem格式(apiclient_key.pem)
|
||||
从apiclient_cert.p12中导出密钥部分的文件,为pem格式
|
||||
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
|
||||
您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
|
||||
备注说明:
|
||||
由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
body {
|
||||
padding-top: 50px;
|
||||
/* Required padding for .navbar-fixed-top. Remove if using .navbar-static-top. Change if height of navigation changes. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
.img-addon {
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
.img-hover:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.display-1 {
|
||||
font-size: 44px;
|
||||
}
|
||||
.display-4 {
|
||||
font-size: 24px;
|
||||
line-height: 32px;
|
||||
}
|
||||
/* Home Page Carousel */
|
||||
header.carousel {
|
||||
height: 50%;
|
||||
}
|
||||
header.carousel .item,
|
||||
header.carousel .item.active,
|
||||
header.carousel .carousel-inner {
|
||||
height: 100%;
|
||||
}
|
||||
header.carousel .fill {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.error-404 {
|
||||
font-size: 100px;
|
||||
}
|
||||
/* Pricing Page Styles */
|
||||
.price {
|
||||
display: block;
|
||||
font-size: 50px;
|
||||
line-height: 50px;
|
||||
}
|
||||
.price sup {
|
||||
top: -20px;
|
||||
left: 2px;
|
||||
font-size: 20px;
|
||||
}
|
||||
.period {
|
||||
display: block;
|
||||
font-style: italic;
|
||||
}
|
||||
/* Footer Styles */
|
||||
/* Responsive Styles */
|
||||
@media (max-width: 991px) {
|
||||
.customer-img,
|
||||
.img-related {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.img-addon {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
header.carousel .carousel {
|
||||
height: 70%;
|
||||
}
|
||||
}
|
||||
.carousel-body {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 25%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
}
|
||||
.addonlist a > p {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
/* PC扫码支付 */
|
||||
.scanpay {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.scanpay-title {
|
||||
margin: 30px 0 15px 0;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
}
|
||||
.scanpay-qrcode {
|
||||
margin-bottom: 20px;
|
||||
position: relative;
|
||||
}
|
||||
.scanpay-qrcode img {
|
||||
width: 100%;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
.scanpay-qrcode .expired {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
opacity: .95;
|
||||
background: #fff url(../images/expired.png) center center no-repeat;
|
||||
}
|
||||
.scanpay-qrcode .paid {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
opacity: .95;
|
||||
background: #fff url(../images/paid.png) center center no-repeat;
|
||||
}
|
||||
.scanpay-screenshot {
|
||||
padding: 0;
|
||||
}
|
||||
.scanpay-screenshot img {
|
||||
width: 100%;
|
||||
}
|
||||
.scanpay-tips {
|
||||
height: 60px;
|
||||
padding: 8px 0 8px 125px;
|
||||
background: #00c800 url(../images/scan.png) 50px 12px no-repeat;
|
||||
background-size: 36px 36px;
|
||||
}
|
||||
.scanpay-tips p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
.scanpay-time {
|
||||
font-size: 14px;
|
||||
margin-bottom: 15px;
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 10px;
|
||||
font-weight: normal;
|
||||
display: none;
|
||||
}
|
||||
.scanpay-time span {
|
||||
color: red;
|
||||
}
|
||||
.scanpay-order {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.scanpay-order em {
|
||||
font-style: normal;
|
||||
color: #666;
|
||||
}
|
||||
.scanpay-order em.scanpay-price {
|
||||
color: #ff3333;
|
||||
font-weight: bold;
|
||||
}
|
||||
.scanpay-alipay .scanpay-tips {
|
||||
background-color: #4290e8;
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.scanpay {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
@media (max-height: 855px) and (min-width: 767px) {
|
||||
.scanpay {
|
||||
width: calc(130vh);
|
||||
min-width: 760px;
|
||||
}
|
||||
}
|
||||
.qrcode canvas,
|
||||
.qrcode img {
|
||||
width: 100%;
|
||||
}
|
||||
|
之后 宽度: | 高度: | 大小: 3.6 KiB |
|
之后 宽度: | 高度: | 大小: 4.6 KiB |
|
之后 宽度: | 高度: | 大小: 1.6 KiB |
|
之后 宽度: | 高度: | 大小: 1.7 KiB |
|
之后 宽度: | 高度: | 大小: 2.2 KiB |
|
之后 宽度: | 高度: | 大小: 922 B |
|
之后 宽度: | 高度: | 大小: 65 KiB |
|
之后 宽度: | 高度: | 大小: 21 KiB |
|
之后 宽度: | 高度: | 大小: 22 KiB |
@@ -0,0 +1,63 @@
|
||||
$(function () {
|
||||
|
||||
if ($('.carousel').length > 0) {
|
||||
$('.carousel').carousel({
|
||||
interval: 5000
|
||||
});
|
||||
}
|
||||
|
||||
if ($(".qrcode").length > 0) {
|
||||
$(".qrcode").qrcode({width: 250, height: 250, text: $(".qrcode").data("text")});
|
||||
}
|
||||
|
||||
var si, xhr;
|
||||
if (typeof queryParams != 'undefined') {
|
||||
var queryResult = function () {
|
||||
xhr && xhr.abort();
|
||||
xhr = $.ajax({
|
||||
url: "",
|
||||
type: "post",
|
||||
data: queryParams,
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
if (ret.code == 1) {
|
||||
var data = ret.data;
|
||||
if (typeof data.status != 'undefined') {
|
||||
var status = data.status;
|
||||
if (status == 'SUCCESS' || status == 'TRADE_SUCCESS') {
|
||||
$(".scanpay-qrcode .paid").removeClass("hidden");
|
||||
$(".scanpay-tips p").html("支付成功!<br><span>3</span>秒后将自动跳转...");
|
||||
|
||||
var sin = setInterval(function () {
|
||||
$(".scanpay-tips p span").text(parseInt($(".scanpay-tips p span").text()) - 1);
|
||||
}, 1000);
|
||||
|
||||
setTimeout(function () {
|
||||
clearInterval(sin);
|
||||
location.href = queryParams.returnurl;
|
||||
}, 3000);
|
||||
|
||||
clearInterval(si);
|
||||
} else if (status == 'REFUND' || status == 'TRADE_CLOSED') {
|
||||
$(".scanpay-tips p").html("请求失败!<br>请返回重新发起支付");
|
||||
clearInterval(si);
|
||||
} else if (status == 'NOTPAY' || status == 'TRADE_NOT_EXIST') {
|
||||
} else if (status == 'CLOSED' || status == 'TRADE_CLOSED') {
|
||||
$(".scanpay-tips p").html("订单已关闭!<br>请返回重新发起支付");
|
||||
clearInterval(si);
|
||||
} else if (status == 'USERPAYING' || status == 'WAIT_BUYER_PAY') {
|
||||
} else if (status == 'PAYERROR') {
|
||||
clearInterval(si);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
si = setInterval(function () {
|
||||
queryResult();
|
||||
}, 3000);
|
||||
queryResult();
|
||||
}
|
||||
|
||||
});
|
||||
34
public/assets/addons/epay/js/jquery.qrcode.min.js
vendored
普通文件
@@ -0,0 +1,34 @@
|
||||
/**
|
||||
* jQuery-qrcode
|
||||
* @url https://github.com/jeromeetienne/jquery-qrcode
|
||||
* @licence MIT
|
||||
*/
|
||||
|
||||
(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
|
||||
write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
|
||||
for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
|
||||
7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
|
||||
0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
|
||||
setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
|
||||
j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
|
||||
b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
|
||||
c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
|
||||
0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
|
||||
(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
|
||||
78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
|
||||
j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
|
||||
a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
|
||||
a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
|
||||
2)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
|
||||
LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
|
||||
this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
|
||||
[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
|
||||
116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
|
||||
43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
|
||||
3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
|
||||
55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
|
||||
45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
|
||||
(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
|
||||
correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
|
||||
j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
|
||||
d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;jQuery(a).appendTo(this)})}})(jQuery);
|
||||
@@ -0,0 +1,224 @@
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
padding-top: 50px; /* Required padding for .navbar-fixed-top. Remove if using .navbar-static-top. Change if height of navigation changes. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
|
||||
}
|
||||
|
||||
.img-addon {
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.img-hover:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.display-1 {
|
||||
font-size: 44px;
|
||||
}
|
||||
|
||||
.display-4 {
|
||||
font-size: 24px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
/* Home Page Carousel */
|
||||
|
||||
header.carousel {
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
header.carousel .item,
|
||||
header.carousel .item.active,
|
||||
header.carousel .carousel-inner {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
header.carousel .fill {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.error-404 {
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
/* Pricing Page Styles */
|
||||
|
||||
.price {
|
||||
display: block;
|
||||
font-size: 50px;
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
.price sup {
|
||||
top: -20px;
|
||||
left: 2px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.period {
|
||||
display: block;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Footer Styles */
|
||||
|
||||
footer {
|
||||
}
|
||||
|
||||
/* Responsive Styles */
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.customer-img,
|
||||
.img-related {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.img-addon {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
header.carousel .carousel {
|
||||
height: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
.carousel-body {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 25%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.addonlist a > p {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
/* PC扫码支付 */
|
||||
|
||||
.scanpay {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.scanpay-title {
|
||||
margin: 30px 0 15px 0;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.scanpay-qrcode {
|
||||
margin-bottom: 20px;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
|
||||
.expired {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
opacity: .95;
|
||||
background: #fff url(../images/expired.png) center center no-repeat;
|
||||
}
|
||||
|
||||
.paid {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
opacity: .95;
|
||||
background: #fff url(../images/paid.png) center center no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.scanpay-screenshot {
|
||||
padding: 0;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.scanpay-tips {
|
||||
height: 60px;
|
||||
padding: 8px 0 8px 125px;
|
||||
background: #00c800 url(../images/scan.png) 50px 12px no-repeat;
|
||||
background-size: 36px 36px;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
color: #fff;
|
||||
font-weight: 700
|
||||
}
|
||||
}
|
||||
|
||||
.scanpay-time {
|
||||
font-size: 14px;
|
||||
margin-bottom: 15px;
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 10px;
|
||||
font-weight: normal;
|
||||
display: none;
|
||||
|
||||
span {
|
||||
color: red;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.scanpay-order {
|
||||
margin-bottom: 5px;
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
color: #666;
|
||||
|
||||
&.scanpay-price {
|
||||
color: #ff3333;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.scanpay-alipay {
|
||||
.scanpay-tips {
|
||||
background-color: #4290e8;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.scanpay {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-height: 855px) and (min-width: 767px) {
|
||||
.scanpay {
|
||||
width: calc(~ '130vh');
|
||||
min-width: 760px;
|
||||
}
|
||||
}
|
||||
|
||||
.qrcode canvas, .qrcode img {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -0,0 +1,938 @@
|
||||
//grunt watch 实时编译
|
||||
|
||||
.sdtheme-body {
|
||||
#firstnav {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
//按钮
|
||||
button {
|
||||
border-radius: 6px;
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 6px;
|
||||
padding: 6px 20px !important;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #165DFF;
|
||||
border-color: #165DFF;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus,
|
||||
.btn-primary.focus {
|
||||
background: rgba(22, 93, 255, 0.5);
|
||||
border-color: rgba(22, 93, 255, 0.5);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.btn-success.btn-primary{
|
||||
color: #fff;
|
||||
background-color: #18bc9c;
|
||||
border-color: #18bc9c;
|
||||
|
||||
:hover,:focus,:focus {
|
||||
color: #fff;
|
||||
background-color: #128f76;
|
||||
border-color: #11866f;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-success:hover,
|
||||
.btn-success:focus,
|
||||
.btn-success.focus {
|
||||
//background: rgba(22, 93, 255, 0.5) !important;
|
||||
//border-color: rgba(22, 93, 255, 0.5) !important;
|
||||
//color: #fff !important;
|
||||
}
|
||||
|
||||
.btn-danger,
|
||||
.btn-more,
|
||||
.btn-recyclebin {
|
||||
//background: #F6F8FB !important;
|
||||
//color: #666 !important;
|
||||
//border-color: #F6F8FB !important;
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&.focus {
|
||||
//background: rgba(246, 248, 251, 0.5) !important;
|
||||
//border-color: rgba(246, 248, 251, 0.5) !important;
|
||||
//color: #165DFF !important;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu.text-left a,
|
||||
.dropdown-menu.text-left li {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.toolbar .dropdown {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
//分页
|
||||
.pagination>li>a {
|
||||
margin-left: 4px !important;
|
||||
border-color: transparent;
|
||||
background: #fff;
|
||||
border-radius: 6px !important;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
.jumpto {
|
||||
input {
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
|
||||
.btn {
|
||||
background: transparent;
|
||||
border-color: transparent;
|
||||
color: #666;
|
||||
box-shadow: none !important;
|
||||
padding: 7px 10px !important;
|
||||
|
||||
&:focus,
|
||||
&:active {
|
||||
color: #165DFF !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pagination>.active>a,
|
||||
.pagination>.active>span,
|
||||
.pagination>.active>a:hover,
|
||||
.pagination>.active>span:hover,
|
||||
.pagination>.active>a:focus,
|
||||
.pagination>.active>span:focus {
|
||||
background: transparent;
|
||||
border-color: #165DFF;
|
||||
color: #0054FE;
|
||||
border-radius: 6px !important;
|
||||
}
|
||||
|
||||
.pagination-detail {
|
||||
.dropdown-toggle {
|
||||
background: transparent;
|
||||
padding: 3px 15px;
|
||||
}
|
||||
}
|
||||
|
||||
//tab栏
|
||||
.panel-heading {
|
||||
background: #fff;
|
||||
border-radius: 6px !important;
|
||||
border: none !important;
|
||||
|
||||
.nav-tabs>li>a {
|
||||
background: #fff;
|
||||
min-width: 64px !important;
|
||||
text-align: center !important;
|
||||
border: none !important;
|
||||
color: #081615;
|
||||
font-weight: 700 !important;
|
||||
margin-right: 30px !important;
|
||||
}
|
||||
|
||||
.nav-tabs>li.active>a {
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
background: #165DFF;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//菜单模式2的tab栏
|
||||
#secondnav {
|
||||
.nav-tabs {
|
||||
box-shadow: 0px 4px 10px 0px rgba(78, 89, 105, 0.06);
|
||||
background: transparent;
|
||||
|
||||
>li {
|
||||
position: relative;
|
||||
margin: 0 !important;
|
||||
padding: 0 15px !important;
|
||||
border: none !important;
|
||||
border-width: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #D8D8D8;
|
||||
}
|
||||
|
||||
&:first-child::before,
|
||||
&:nth-child(2)::before,
|
||||
&.active::before,
|
||||
&.active+li::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
>a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: #F0F5FF;
|
||||
|
||||
>a {
|
||||
color: #165DFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//表格以及表格上的操作栏
|
||||
.pull-left {
|
||||
&:has(#toolbar) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
|
||||
>* {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
>a+a,
|
||||
>a+div,
|
||||
>div+a,
|
||||
>a+button,
|
||||
>button+a,
|
||||
>div+button,
|
||||
>button+div {
|
||||
margin-left: 10px !important;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
&.search {
|
||||
margin-right: 20px !important;
|
||||
}
|
||||
|
||||
&.columns {
|
||||
margin: 10px 0 !important;
|
||||
|
||||
* {
|
||||
border-color: transparent !important;
|
||||
border-radius: 4px !important;
|
||||
}
|
||||
|
||||
.btn-group,
|
||||
.btn {
|
||||
margin-left: 1px !important;
|
||||
}
|
||||
|
||||
.caret {
|
||||
border-width: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.columns-right {
|
||||
margin: 10px 0 !important;
|
||||
margin-left: 1px !important;
|
||||
|
||||
.btn {
|
||||
border-color: transparent !important;
|
||||
border-radius: 4px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.input-group {
|
||||
.input-group-btn {
|
||||
.form-control {
|
||||
border-top-left-radius: 6px;
|
||||
border-bottom-left-radius: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bootstrap-table {
|
||||
.table thead>tr>th {
|
||||
border-color: #F6F8FB;
|
||||
background: #F6F8FB;
|
||||
}
|
||||
|
||||
//斑马纹去掉
|
||||
.table-striped>tbody>tr:nth-of-type(odd) {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
tbody tr td {
|
||||
border-left-width: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
}
|
||||
|
||||
.table-hover>tbody>tr:hover {
|
||||
background: rgba(22, 93, 255, 0.05) !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//tag标签
|
||||
.searchit {
|
||||
|
||||
.label {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
font-size: 13px;
|
||||
line-height: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
//弹窗 弹出框
|
||||
.layui-layer-dialog,
|
||||
.layui-layer-iframe {
|
||||
.layui-layer-title {
|
||||
background: #F6F8FB !important;
|
||||
color: #333 !important;
|
||||
font-weight: 700 !important;
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
.layui-layer-setwin {
|
||||
.layui-layer-ico {
|
||||
&::after {
|
||||
color: #333 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.layui-layer-btn {
|
||||
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1) !important;
|
||||
background: transparent;
|
||||
|
||||
.layui-layer-btn0 {
|
||||
background: #165DFF !important;
|
||||
color: #fff !important;
|
||||
border-color: #165DFF !important;
|
||||
}
|
||||
|
||||
.layui-layer-btn1 {
|
||||
background: #F6F8FB !important;
|
||||
color: #666 !important;
|
||||
border-color: #E4E4E4 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sdtheme-hidden-userinfo .user-panel {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
//手机端
|
||||
@media (max-width: 767px) {
|
||||
|
||||
.content-wrapper,
|
||||
.right-side,
|
||||
.main-footer {
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//删除图标修改
|
||||
.layui-layer-ico3 {
|
||||
display: inline-flex !important;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
color: #fff !important;
|
||||
font: normal normal normal 12px/1 FontAwesome !important;
|
||||
background: none !important;
|
||||
background: #165DFF !important;
|
||||
|
||||
&::before {
|
||||
font-size: 18px !important;
|
||||
content: "\f12a" !important;
|
||||
}
|
||||
}
|
||||
|
||||
// 成功图标修改
|
||||
.layui-layer-ico1 {
|
||||
display: inline-flex !important;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
color: #fff !important;
|
||||
font: normal normal normal 12px/1 FontAwesome !important;
|
||||
background: none !important;
|
||||
background: #165DFF !important;
|
||||
|
||||
&::before {
|
||||
font-size: 18px !important;
|
||||
content: "\f00c" !important;
|
||||
}
|
||||
}
|
||||
|
||||
// 感叹号图标修改
|
||||
.layui-layer-ico0 {
|
||||
display: inline-flex !important;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
color: #fff !important;
|
||||
font: normal normal normal 12px/1 FontAwesome !important;
|
||||
background: none !important;
|
||||
background: #165DFF !important;
|
||||
|
||||
&::before {
|
||||
font-size: 18px !important;
|
||||
content: "\f058" !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 固定列隐藏右侧拖拽按钮(未实现)
|
||||
//.fixed-columns .fixed-table-body .btn-dragsort, .fixed-columns-right .fixed-table-body .btn-dragsort {
|
||||
// display: none;
|
||||
//}
|
||||
|
||||
// 表单按钮放到最右侧
|
||||
.bootstrap-table .form-commonsearch .row>.form-group:last-child {
|
||||
float: right;
|
||||
}
|
||||
|
||||
// 表格操作栏按钮变小
|
||||
.btn.btn-xs {
|
||||
padding: 1px 5px !important;
|
||||
}
|
||||
|
||||
// 表格头部状态栏边框
|
||||
.panel-intro {
|
||||
>.panel-heading .nav-tabs {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
border-bottom: 12px solid #F1F4F6 !important;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 6px 6px 0px 0px !important;
|
||||
padding-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
// 删除弹窗
|
||||
.layui-layer-fast.layui-layer-dialog {
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
|
||||
overflow: hidden;
|
||||
|
||||
min-width: 330px;
|
||||
|
||||
|
||||
.layui-layer-content .layui-layer-ico {
|
||||
position: absolute;
|
||||
top: 40px;
|
||||
left: 37px;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.layui-layer-btn,
|
||||
.sdtheme-body .layui-layer-iframe .layui-layer-btn {
|
||||
box-shadow: none !important;
|
||||
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
position: relative;
|
||||
bottom: 10px;
|
||||
}
|
||||
|
||||
.layui-layer-padding {
|
||||
padding: 40px 5px 30px 75px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.layui-layer-btn0 {
|
||||
position: relative;
|
||||
padding: 15px 30px;
|
||||
text-align: center;
|
||||
line-height: 5px;
|
||||
border-radius: 8px;
|
||||
|
||||
button {
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.layui-layer-btn1 {
|
||||
position: relative;
|
||||
padding: 15px 30px;
|
||||
text-align: center;
|
||||
line-height: 5px;
|
||||
border-radius: 8px;
|
||||
|
||||
button {
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.text-success {
|
||||
color: #165DFF;
|
||||
}
|
||||
|
||||
// 表格抖动
|
||||
.panel-body {
|
||||
|
||||
//margin-left: 10px !important;
|
||||
#toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
>.btn {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.btn-group {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.main-header .navbar {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.label-primary {
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.label-success {
|
||||
color: #18BC9C;
|
||||
background-color: rgba(24, 188, 156, 0.1);
|
||||
}
|
||||
|
||||
|
||||
.label-warning {
|
||||
color: #f39c12;
|
||||
background-color: rgba(243, 156, 18, 0.1)
|
||||
}
|
||||
|
||||
.label-danger {
|
||||
color: #f75444;
|
||||
background-color: rgba(247, 84, 68, 0.1)
|
||||
}
|
||||
|
||||
form .form-group .input-group-addon.no-border.no-padding {
|
||||
position: relative;
|
||||
left: 3px;
|
||||
}
|
||||
|
||||
.layui-layer-btn.layui-layer-footer {
|
||||
border-top: 1px solid #F6F8FB;
|
||||
}
|
||||
|
||||
.panel-intro>.panel-heading .nav-tabs>li>a:hover {
|
||||
color: #323638;
|
||||
background-color: #F4F4F5;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.panel-intro>.panel-heading .nav-tabs>li.active>a {
|
||||
color: #165DFF;
|
||||
}
|
||||
|
||||
|
||||
// 夜间模式还原部分css
|
||||
&.darktheme {
|
||||
|
||||
.sidebar a,
|
||||
.sidebar-menu li.treeview.treeview-open>a {
|
||||
color: #fff;
|
||||
background: #070707;
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
|
||||
.nav-tabs>li>a {
|
||||
color: #fff !important;
|
||||
background: #404040 !important;
|
||||
}
|
||||
|
||||
.nav-tabs>li.active>a {
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
background: #165DFF;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-default {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.bootstrap-table {
|
||||
.table thead>tr>th {
|
||||
border-color: rgb(38, 38, 38);
|
||||
background: #262626;
|
||||
}
|
||||
|
||||
//斑马纹去掉
|
||||
.table-striped>tbody>tr:nth-of-type(odd) {
|
||||
background: #404040;
|
||||
}
|
||||
|
||||
tbody tr td {
|
||||
border-left-width: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
}
|
||||
|
||||
.table-hover>tbody>tr:hover {
|
||||
background: rgba(38, 38, 38, 0.05) !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.form-commonsearch>div {
|
||||
background: #262626 !important;
|
||||
}
|
||||
|
||||
.panel-intro .panel-heading {
|
||||
border-bottom: 12px solid #262626 !important;
|
||||
}
|
||||
|
||||
.panel {
|
||||
background-color: #333333 !important;
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
background: #3A3A3A;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 白色主题
|
||||
body.sdtheme-white {
|
||||
|
||||
.wrapper,
|
||||
.main-header {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.main-sidebar,
|
||||
.main-header .logo {
|
||||
|
||||
color: #222;
|
||||
background: #fff;
|
||||
border-color: transparent !important;
|
||||
|
||||
&:hover {
|
||||
color: #222;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar-collapse {
|
||||
ul.treeview-menu {
|
||||
background: #F4F4F5!important;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar-menu li.treeview.active>a,
|
||||
.sidebar-menu li.treeview.treeview-open>a,
|
||||
.sidebar-menu>li>.treeview-menu {
|
||||
background: #fff;
|
||||
border-left-color: #fff;
|
||||
//margin-top: 5px;
|
||||
//background: #F8F8F8;
|
||||
}
|
||||
|
||||
&.sidebar-collapse .sidebar-menu>li>.treeview-menu{
|
||||
//margin-top: 0px;
|
||||
margin-left: 5px !important;
|
||||
left: 45px !important;
|
||||
}
|
||||
|
||||
|
||||
.treeview-menu>li>a,
|
||||
.sidebar a {
|
||||
color: #4E5969;
|
||||
}
|
||||
|
||||
|
||||
// 左侧菜单栏 hover active
|
||||
.sidebar-menu>li:hover>a,
|
||||
.sidebar-menu>li.active>a {
|
||||
padding-left: 5px;
|
||||
margin: 0 10px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
&.sidebar-collapse .sidebar-menu>li.active>a{
|
||||
margin: 5px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
|
||||
.sidebar-menu>li:hover>a {
|
||||
color: #323639 !important;
|
||||
background: #F4F4F5 !important;
|
||||
|
||||
i {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&.sidebar-collapse .sidebar-menu li:hover > a {
|
||||
color: #323639;
|
||||
background: #F4F4F5 ;
|
||||
}
|
||||
|
||||
.sidebar-menu>li.active>a {
|
||||
color: #165DFF !important;
|
||||
background: #F0F5FF !important;
|
||||
}
|
||||
|
||||
.treeview-menu>li.active>a {
|
||||
&:hover {
|
||||
color: #165DFF !important;
|
||||
}
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.treeview-menu>li>a:hover {
|
||||
color: #323639 !important;
|
||||
background: #F4F4F5;
|
||||
margin: 0 10px;
|
||||
border-radius: 8px;
|
||||
padding-left: 8px;
|
||||
|
||||
i {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.treeview-menu>li.active>a {
|
||||
color: #165DFF;
|
||||
|
||||
background: #F0F5FF;
|
||||
margin: 0 10px;
|
||||
border-radius: 8px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
|
||||
.treeview-menu>li.active>a {
|
||||
color: #165DFF;
|
||||
|
||||
background: #F0F5FF;
|
||||
margin: 0 10px;
|
||||
border-radius: 8px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
&.skin-black-blue .sidebar-menu .treeview-menu .treeview-menu > li > a {
|
||||
margin: 0 10px;
|
||||
border-radius: 8px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
&.skin-black-blue .sidebar-menu .treeview-menu .treeview-menu > li.active > a {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
&.skin-black-blue .sidebar-menu .treeview-menu .treeview-menu > li > a:hover {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
|
||||
&.skin-black-blue.sidebar-collapse .sidebar-menu .treeview-menu li.active > a {
|
||||
color: #165DFF !important;
|
||||
background: #F0F5FF !important;
|
||||
}
|
||||
|
||||
.main-header .navbar .nav>li>a:hover,
|
||||
.main-header .navbar .nav>li>a:active,
|
||||
.main-header .navbar .nav>li>a:focus,
|
||||
.main-header .navbar .nav .open>a,
|
||||
.main-header .navbar .nav .open>a:hover,
|
||||
.main-header .navbar .nav .open>a:focus,
|
||||
.main-header .navbar .nav>.active>a {
|
||||
color: #165DFF;
|
||||
background: #F0F5FF;
|
||||
}
|
||||
|
||||
&.skin-black-blue .main-header .logo:hover {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 767px) {
|
||||
&.skin-black-blue .main-header .navbar .sidebar-toggle {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
&.skin-black-blue .main-header .navbar {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
&.skin-black-blue .main-header .navbar {
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
// 侧边栏和顶部
|
||||
.logo {
|
||||
font-size: 22px !important;
|
||||
font-weight: 600 !important;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.main-sidebar,
|
||||
.logo {
|
||||
width: 200px;
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.content-wrapper,
|
||||
.right-side,
|
||||
.main-footer,
|
||||
.main-header .navbar {
|
||||
//margin-left: 200px;
|
||||
margin-left: 200px;
|
||||
// box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
|
||||
border-left: 1px solid #F1F4F6;
|
||||
}
|
||||
|
||||
.user-panel>.info,
|
||||
.user-panel>.info>a {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sidebar-menu>li>a {
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
|
||||
.sidebar-form {
|
||||
border-radius: 6px !important;
|
||||
overflow: hidden !important;
|
||||
border-color: #E4E4E4 !important;
|
||||
background: #fff !important;
|
||||
|
||||
}
|
||||
|
||||
.sidebar-form input[type="text"],
|
||||
.sidebar-form .btn {
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
.nav-addtabs>li .close-tab {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
right: 2px !important;
|
||||
margin-top: 0 !important;
|
||||
|
||||
&:hover {
|
||||
color: #165DFF !important;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-addtabs {
|
||||
>li {
|
||||
>a {
|
||||
padding: 0 20px !important;
|
||||
}
|
||||
|
||||
&.active {
|
||||
>a {
|
||||
color: #165DFF;
|
||||
background: #F0F5FF;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
>a {
|
||||
color: #165DFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.sidebar-menu li > a > .pull-right-container {
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
// 夜间模式还原部分css
|
||||
&.darktheme {
|
||||
&.skin-black-blue .main-header .logo:hover {
|
||||
background: #000;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.treeview-menu>li.active>a {
|
||||
&:hover {
|
||||
//color: #323639 !important;
|
||||
}
|
||||
|
||||
color: #165DFF !important;
|
||||
background: #F0F5FF;
|
||||
}
|
||||
|
||||
&.sidebar-collapse .sidebar-menu li:hover > a, body.darktheme.sidebar-collapse .sidebar-menu li.active > a {
|
||||
color: #165DFF !important;
|
||||
background: #F0F5FF;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 767px) {
|
||||
&.skin-black-blue .main-header .navbar {
|
||||
background-color: #0c0c0c;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1014
public/assets/addons/shopro/chat.html
普通文件
@@ -0,0 +1,409 @@
|
||||
/* 区域代理后台 - 统一 UI(与佣金明细页一致) */
|
||||
[v-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.ra-page {
|
||||
padding: 0 20px 30px;
|
||||
background: #f5f7fa;
|
||||
min-height: 100%;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.ra-page-card {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 16px 20px;
|
||||
margin-bottom: 12px;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.ra-page-header {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.ra-page-header .title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.ra-page-header .subtitle {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.ra-toolbar-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ra-stat-cards {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.ra-stat-card {
|
||||
flex: 1;
|
||||
min-width: 150px;
|
||||
padding: 16px 18px;
|
||||
border-radius: 8px;
|
||||
background: linear-gradient(135deg, #faf8ff 0%, #fff 100%);
|
||||
border: 1px solid #eee6ff;
|
||||
transition: box-shadow 0.2s ease, transform 0.2s ease;
|
||||
}
|
||||
|
||||
.ra-stat-card:hover {
|
||||
box-shadow: 0 4px 12px rgba(116, 56, 213, 0.08);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.ra-stat-card .head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.ra-stat-card .label {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.ra-stat-card .icon-wrap {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.ra-stat-card .value {
|
||||
font-size: 22px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.ra-stat-card.primary .icon-wrap { background: #f3ebff; color: #7438D5; }
|
||||
.ra-stat-card.warning .icon-wrap { background: #fdf6ec; color: #e6a23c; }
|
||||
.ra-stat-card.success .icon-wrap { background: #f0f9eb; color: #67c23a; }
|
||||
.ra-stat-card.danger .icon-wrap { background: #fef0f0; color: #f56c6c; }
|
||||
.ra-stat-card.info .icon-wrap { background: #ecf5ff; color: #409eff; }
|
||||
|
||||
.ra-stat-card.warning .value { color: #e6a23c; }
|
||||
.ra-stat-card.success .value { color: #67c23a; }
|
||||
.ra-stat-card.primary .value { color: #7438D5; }
|
||||
|
||||
.ra-section-title {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
margin-bottom: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.ra-section-title::before {
|
||||
content: '';
|
||||
width: 3px;
|
||||
height: 14px;
|
||||
border-radius: 2px;
|
||||
background: #7438D5;
|
||||
}
|
||||
|
||||
.ra-help-box {
|
||||
padding: 12px 16px;
|
||||
background: linear-gradient(135deg, #faf8ff 0%, #fff 100%);
|
||||
border: 1px solid #eee6ff;
|
||||
border-radius: 8px;
|
||||
font-size: 13px;
|
||||
line-height: 1.7;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.ra-help-box strong {
|
||||
color: #7438D5;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ra-btn-primary {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: #7438D5;
|
||||
color: #fff;
|
||||
padding: 0 16px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
border: none;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.ra-btn-primary:hover { opacity: 0.9; }
|
||||
|
||||
.ra-btn-view {
|
||||
color: #7438D5;
|
||||
cursor: pointer;
|
||||
margin-right: 10px;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.ra-btn-view:hover { opacity: 0.85; }
|
||||
|
||||
.ra-btn-danger {
|
||||
color: #f56c6c;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.ra-btn-danger:hover { opacity: 0.85; }
|
||||
|
||||
.ra-money-text {
|
||||
color: #e1212b;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ra-status-tag {
|
||||
display: inline-block;
|
||||
padding: 2px 10px;
|
||||
border-radius: 12px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.ra-status-tag.waiting { background: #fdf6ec; color: #e6a23c; }
|
||||
.ra-status-tag.settled { background: #f0f9eb; color: #67c23a; }
|
||||
.ra-status-tag.back { background: #fef0f0; color: #f56c6c; }
|
||||
|
||||
.ra-level-tag {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.ra-level-tag.l1 { background: #f3ebff; color: #7438D5; }
|
||||
.ra-level-tag.l2 { background: #ecf5ff; color: #409eff; }
|
||||
.ra-level-tag.l3 { background: #f0f9eb; color: #67c23a; }
|
||||
|
||||
.ra-rank-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border-radius: 6px;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
background: #f5f5f5;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.ra-rank-badge.top1 { background: #fff7e6; color: #fa8c16; }
|
||||
.ra-rank-badge.top2 { background: #f5f5f5; color: #8c8c8c; }
|
||||
.ra-rank-badge.top3 { background: #fff1e6; color: #d48806; }
|
||||
|
||||
.ra-commission-pill {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
border-radius: 14px;
|
||||
background: #f3ebff;
|
||||
color: #7438D5;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.ra-level-weight {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
background: #7438D5;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ra-grid-2 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
.ra-grid-2 { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
.ra-trend-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.ra-trend-item {
|
||||
display: grid;
|
||||
grid-template-columns: 90px 1fr 80px;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.ra-trend-item .day { color: #666; }
|
||||
|
||||
.ra-trend-bar-wrap {
|
||||
height: 8px;
|
||||
background: #f0f0f0;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ra-trend-bar {
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, #7438D5, #9b6de8);
|
||||
border-radius: 4px;
|
||||
transition: width 0.4s ease;
|
||||
}
|
||||
|
||||
.ra-trend-item .amount {
|
||||
text-align: right;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.ra-empty-hint {
|
||||
text-align: center;
|
||||
padding: 32px 16px;
|
||||
color: #999;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.ra-table-sub {
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.ra-action-group {
|
||||
display: inline-flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.ra-action-group .ra-btn-view,
|
||||
.ra-action-group .ra-btn-danger {
|
||||
margin-right: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.ra-action-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 10px;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.ra-action-btn:hover { opacity: 0.9; }
|
||||
|
||||
.ra-action-btn.pass { background: #0ACE97; color: #fff; }
|
||||
.ra-action-btn.reject { background: #f56c6c; color: #fff; }
|
||||
.ra-action-btn.edit { background: #f3ebff; color: #7438D5; }
|
||||
.ra-action-btn.disable { background: #fef0f0; color: #f56c6c; }
|
||||
.ra-action-btn.enable { background: #f0f9eb; color: #67c23a; }
|
||||
|
||||
.ra-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border-bottom: 1px solid #eee;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.ra-tab-item {
|
||||
padding: 14px 16px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
border-bottom: 2px solid transparent;
|
||||
margin-bottom: -1px;
|
||||
transition: color 0.2s ease;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.ra-tab-item:hover { color: #7438D5; }
|
||||
|
||||
.ra-tab-item.active {
|
||||
color: #7438D5;
|
||||
border-bottom-color: #7438D5;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ra-tab-badge {
|
||||
display: inline-block;
|
||||
min-width: 18px;
|
||||
padding: 0 6px;
|
||||
margin-left: 6px;
|
||||
line-height: 18px;
|
||||
border-radius: 9px;
|
||||
background: #f56c6c;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ra-user-cell {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ra-user-avatar {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
margin-right: 10px;
|
||||
flex-shrink: 0;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.ra-user-avatar .el-image {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
.ra-user-name {
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.ra-commission-custom {
|
||||
color: #7438D5;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.ra-commission-level {
|
||||
color: #666;
|
||||
}
|
||||
|
之后 宽度: | 高度: | 大小: 1.6 KiB |
|
之后 宽度: | 高度: | 大小: 1.4 KiB |
|
之后 宽度: | 高度: | 大小: 1.2 KiB |
|
之后 宽度: | 高度: | 大小: 1.2 KiB |
|
之后 宽度: | 高度: | 大小: 2.5 KiB |
|
之后 宽度: | 高度: | 大小: 1.8 KiB |
|
之后 宽度: | 高度: | 大小: 1.5 KiB |
|
之后 宽度: | 高度: | 大小: 3.4 KiB |
|
之后 宽度: | 高度: | 大小: 490 B |
|
之后 宽度: | 高度: | 大小: 146 KiB |
|
之后 宽度: | 高度: | 大小: 516 KiB |
|
之后 宽度: | 高度: | 大小: 447 KiB |
|
之后 宽度: | 高度: | 大小: 359 KiB |
|
之后 宽度: | 高度: | 大小: 333 B |
|
之后 宽度: | 高度: | 大小: 15 KiB |
|
之后 宽度: | 高度: | 大小: 1.9 KiB |
|
之后 宽度: | 高度: | 大小: 590 B |
|
之后 宽度: | 高度: | 大小: 1.9 KiB |
|
之后 宽度: | 高度: | 大小: 861 B |
|
之后 宽度: | 高度: | 大小: 1.4 KiB |
|
之后 宽度: | 高度: | 大小: 37 KiB |
|
之后 宽度: | 高度: | 大小: 1.3 KiB |
|
之后 宽度: | 高度: | 大小: 263 B |
|
之后 宽度: | 高度: | 大小: 123 B |
|
之后 宽度: | 高度: | 大小: 166 KiB |
|
之后 宽度: | 高度: | 大小: 461 B |
|
之后 宽度: | 高度: | 大小: 528 B |
|
之后 宽度: | 高度: | 大小: 506 B |
|
之后 宽度: | 高度: | 大小: 1.9 KiB |
|
之后 宽度: | 高度: | 大小: 491 B |
|
之后 宽度: | 高度: | 大小: 485 B |
|
之后 宽度: | 高度: | 大小: 520 B |
|
之后 宽度: | 高度: | 大小: 951 B |
|
之后 宽度: | 高度: | 大小: 493 B |
|
之后 宽度: | 高度: | 大小: 495 B |
|
之后 宽度: | 高度: | 大小: 1.6 KiB |
|
之后 宽度: | 高度: | 大小: 496 B |
|
之后 宽度: | 高度: | 大小: 507 B |
|
之后 宽度: | 高度: | 大小: 538 B |
|
之后 宽度: | 高度: | 大小: 458 B |
|
之后 宽度: | 高度: | 大小: 527 B |
|
之后 宽度: | 高度: | 大小: 551 B |
|
之后 宽度: | 高度: | 大小: 624 B |
|
之后 宽度: | 高度: | 大小: 1.7 KiB |
|
之后 宽度: | 高度: | 大小: 658 B |
|
之后 宽度: | 高度: | 大小: 1.5 KiB |
|
之后 宽度: | 高度: | 大小: 649 B |
|
之后 宽度: | 高度: | 大小: 1.4 KiB |
|
之后 宽度: | 高度: | 大小: 632 B |
|
之后 宽度: | 高度: | 大小: 1.4 KiB |
|
之后 宽度: | 高度: | 大小: 618 B |
|
之后 宽度: | 高度: | 大小: 1.6 KiB |
|
之后 宽度: | 高度: | 大小: 598 B |
|
之后 宽度: | 高度: | 大小: 2.0 KiB |
|
之后 宽度: | 高度: | 大小: 1.2 KiB |
|
之后 宽度: | 高度: | 大小: 1.7 KiB |
|
之后 宽度: | 高度: | 大小: 587 B |
|
之后 宽度: | 高度: | 大小: 1.2 KiB |
|
之后 宽度: | 高度: | 大小: 5.5 KiB |
|
之后 宽度: | 高度: | 大小: 6.1 KiB |
|
之后 宽度: | 高度: | 大小: 6.2 KiB |
|
之后 宽度: | 高度: | 大小: 5.8 KiB |
|
之后 宽度: | 高度: | 大小: 5.7 KiB |
|
之后 宽度: | 高度: | 大小: 6.4 KiB |
|
之后 宽度: | 高度: | 大小: 1.6 KiB |
|
之后 宽度: | 高度: | 大小: 695 B |
|
之后 宽度: | 高度: | 大小: 2.2 KiB |
|
之后 宽度: | 高度: | 大小: 1.2 KiB |
|
之后 宽度: | 高度: | 大小: 635 B |
|
之后 宽度: | 高度: | 大小: 6.7 KiB |
|
之后 宽度: | 高度: | 大小: 1.2 KiB |
|
之后 宽度: | 高度: | 大小: 655 B |
|
之后 宽度: | 高度: | 大小: 78 KiB |
|
之后 宽度: | 高度: | 大小: 40 KiB |
|
之后 宽度: | 高度: | 大小: 1.4 KiB |