feat: 初始化雄戈商城服务端代码与Webhook自动部署配置

这个提交包含在:
wikiboss
2026-09-12 16:40:24 +08:00
当前提交 e90ec58e61
共有 6438 个文件被更改,包括 1136083 次插入 和 0 次删除

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-----

查看文件

@@ -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();
}
});

查看文件

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

二进制文件未显示。

文件差异内容过多而无法显示 加载差异

查看文件

@@ -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

某些文件未显示,因为此 diff 中更改的文件太多 显示更多