2020.02新版

This commit is contained in:
Blokura
2020-02-21 16:20:55 +08:00
parent 45e2415d71
commit a2f29a310b
755 changed files with 95144 additions and 0 deletions

4
user/assets/js/app.min.js vendored Normal file

File diff suppressed because one or more lines are too long

227
user/assets/js/config.json Normal file
View File

@@ -0,0 +1,227 @@
{
"dongxue": {
"qrWidth": "364",
"qrHeight": "364",
"foreground": "#E3D6C6",
"background": "#FFFFFF",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "#FFFFFF",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 270,
"qrTop": 340,
"url": "https://img.alicdn.com/imgextra/i2/2027555802/O1CN0178X3hU1sjMWfmkoh5_!!2027555802.png"
},
"pikaqiu": {
"qrWidth": "316",
"qrHeight": "316",
"foreground": "#FBCE29",
"background": "#FFFFFF",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "#FFFFFF",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 290,
"qrTop": 367,
"url": "https://img.alicdn.com/imgextra/i3/2027555802/O1CN01ETL8eZ1sjMWf7GHlX_!!2027555802.png"
},
"kanuobudingmao": {
"qrWidth": "316",
"qrHeight": "316",
"foreground": "#E1C6B1",
"background": "#FFFFFF",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "#E1C6B1",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 290,
"qrTop": 367,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01bFGxSs1sjMWcWW1uR_!!2027555802.png"
},
"niannianyouyu": {
"qrWidth": "370",
"qrHeight": "370",
"foreground": "#E62601",
"background": "#FFFFFF",
"imgWidth": 900,
"imgHeight": 1200,
"font": "60px '黑体'",
"fontColor": "#FFFFFF",
"recNameLeft": "",
"recNameTop": 255,
"qrLeft": 270,
"qrTop": 320,
"url": "https://img.alicdn.com/imgextra/i1/2027555802/O1CN01T0g4kQ1sjMWf7HUZP_!!2027555802.png"
},
"xiaohuangren": {
"qrWidth": "520",
"qrHeight": "520",
"foreground": "#F7D25D",
"background": "#FFFFFF",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 183,
"qrTop": 98,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN019MNjbn1sjMWe1zPkK_!!2027555802.png"
},
"qitao": {
"qrWidth": "520",
"qrHeight": "520",
"foreground": "#212121",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 93,
"qrTop": 98,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01vCBhEb1sjMWbLYdfv_!!2027555802.png"
},
"baobei": {
"qrWidth": "500",
"qrHeight": "500",
"foreground": "#A95B5E",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 200,
"qrTop": 370,
"url": "https://img.alicdn.com/imgextra/i3/2027555802/O1CN01ABc7nR1sjMWbLWQRm_!!2027555802.png"
},
"toushi": {
"qrWidth": "400",
"qrHeight": "400",
"foreground": "#FDA3B8",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 408,
"qrTop": 605,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01mO4EYP1sjMWeSZtzX_!!2027555802.png"
},
"gongzhu": {
"qrWidth": "520",
"qrHeight": "520",
"foreground": "#F36C79",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 185,
"qrTop": 370,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01LDfMYs1sjMWhTHmPR_!!2027555802.png"
},
"qiuzanzhu": {
"qrWidth": "460",
"qrHeight": "460",
"foreground": "#F36C79",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 220,
"qrTop": 425,
"url": "https://img.alicdn.com/imgextra/i2/2027555802/O1CN01EAhVdL1sjMWe1yXjJ_!!2027555802.png"
},
"huanyingdashang": {
"qrWidth": "510",
"qrHeight": "510",
"foreground": "#F00",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 195,
"qrTop": 625,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01Yuipi71sjMWhTI32u_!!2027555802.png"
},
"yinlian": {
"qrWidth": "330",
"qrHeight": "330",
"foreground": "#fff",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 190,
"qrTop": 180,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01DU5ECy1sjMWe205L5_!!2027555802.png"
},
"yitiji": {
"qrWidth": "380",
"qrHeight": "380",
"foreground": "#FB7C2F",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 260,
"qrTop": 190,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01B4y11v1sjMWeSGuWy_!!2027555802.png"
},
"maomi": {
"qrWidth": "480",
"qrHeight": "480",
"foreground": "#FDD699",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 210,
"qrTop": 150,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN017OCNEy1sjMWfe9Z3U_!!2027555802.png"
},
"longmao": {
"qrWidth": "464",
"qrHeight": "464",
"foreground": "#7394B6",
"background": "transparent",
"imgWidth": 900,
"imgHeight": 1200,
"font": "70px '黑体'",
"fontColor": "transparent",
"recNameLeft": "",
"recNameTop": 178,
"qrLeft": 218,
"qrTop": 214,
"url": "https://img.alicdn.com/imgextra/i4/2027555802/O1CN01Jb4sxE1sjMWWkB2GX_!!2027555802.png"
}
}

120
user/assets/js/onecode.js Normal file
View File

@@ -0,0 +1,120 @@
var config;
// 生成收款码
function makeDiyBg(element, qrWidth, qrHeight, url, foreground, background, imgUrl, imgWidth, imgHeight, font, fontColor, recName, recNameLeft, recNameTop, qrLeft, qrTop) {
$(element).qrcode({
render: "canvas",
width: qrWidth,
height: qrHeight,
text: url,
foreground: foreground,
background: background
});
var canvas = document.getElementById('canvas');
canvas.width = imgWidth;
canvas.height = imgHeight;
var ctx = canvas.getContext("2d");
var img = new Image();
img.crossOrigin = "Anonymous"
img.src = imgUrl;
img.onload = function () {
// 生成背景图
var bg = ctx.createPattern(img, "no-repeat");
ctx.fillStyle = bg;
ctx.fillRect(0, 0, imgWidth, imgHeight);
// 生成收款名
ctx.textAlign = "center";
ctx.font = font;
ctx.fillStyle = fontColor;
if (recName) {
if (!recNameLeft) {
recNameLeft = imgWidth / 2;
}
ctx.fillText("扫码向 " + recName + " 付款", recNameLeft, recNameTop);
}
// 在canvas上生成二维码
var canvasOld = document.getElementsByTagName('canvas')[0];
ctx.drawImage(canvasOld, qrLeft, qrTop);
var image = new Image();
image.crossOrigin = "Anonymous"
image.src = canvas.toDataURL("image/png");
$("#endImg").attr("src", image.src);
$("#load").hide();
$("#qrcode").show();
}
}
function showQrCode(styleName){
$("#load").show();
$("#qrcode").hide();
$("#code").empty();
styleName = styleName || 'dongxue';
var qrWidth = config[styleName].qrWidth;
var qrHeight = config[styleName].qrHeight;
var foreground = config[styleName].foreground;
var background = config[styleName].background;
var imgWidth = config[styleName].imgWidth;
var imgHeight = config[styleName].imgHeight;
var font = config[styleName].font;
var fontColor = config[styleName].fontColor;
var recNameLeft = config[styleName].recNameLeft;
var recNameTop = config[styleName].recNameTop;
var qrLeft = config[styleName].qrLeft;
var qrTop = config[styleName].qrTop;
var nowUrl = config[styleName].url;
makeDiyBg("#code", qrWidth, qrHeight, $("#code_url").val(), foreground, background, nowUrl, imgWidth, imgHeight, font, fontColor, $("#recName").val(), recNameLeft, recNameTop, qrLeft, qrTop);
}
$(document).ready(function(){
var clipboard = new Clipboard('.copy-btn');
clipboard.on('success', function (e) {
layer.msg('复制成功!', {icon: 1});
});
clipboard.on('error', function (e) {
layer.msg('复制失败,请长按链接后手动复制', {icon: 2});
});
$("#editName").click(function(){
var codename=$("input[name='codename']").val();
var ii = layer.load(2, {shade:[0.1,'#fff']});
$.ajax({
type : "POST",
url : "ajax2.php?act=edit_codename",
data : {codename:codename},
dataType : 'json',
success : function(data) {
layer.close(ii);
if(data.code == 1){
layer.alert(data.msg, {icon: 1}, function(){window.location.reload()});
}else{
layer.alert(data.msg);
}
}
});
});
//点击按钮保存图片
$("#downImg").click(function () {
var img = document.getElementById('endImg');
var url = img.src;
var a = document.createElement('a');
var event = new MouseEvent('click');
a.download = '一码支付-' + document.getElementById("recName").value;
a.href = url;
a.dispatchEvent(event);
});
$("#styleName").change(function(){
$.cookie('styleName',$(this).val());
showQrCode($(this).val());
});
if($.cookie('styleName')){
$("#styleName").val($.cookie('styleName'));
}
$.ajax({
type: 'get',
url: "./assets/js/config.json",
dataType: "json",
async: true,
success: function (data) {
config = data;
$("#styleName").change();
}
})
})

115
user/assets/js/qrlogin.js Normal file
View File

@@ -0,0 +1,115 @@
var interval1,interval2;
function setCookie(name,value)
{
var exp = new Date();
exp.setTime(exp.getTime() + 30*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
function getqrpic(force){
force = force || false;
cleartime();
var qrsig = getCookie('qrsig');
var qrimg = getCookie('qrimg');
if(qrsig!=null && qrimg!=null && force==false){
$('#qrimg').attr('qrsig',qrsig);
$('#qrimg').html('<img id="qrcodeimg" onclick="getqrpic(true)" src="data:image/png;base64,'+qrimg+'" title="点击刷新">');
if( /Android|SymbianOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Windows Phone|Midp/i.test(navigator.userAgent) && navigator.userAgent.indexOf("QQ/") == -1) {
$('#mobile').show();
}
interval1=setInterval(loginload,1000);
interval2=setInterval(qrlogin,3000);
}else{
var getvcurl='qrlogin.php?do=getqrpic&r='+Math.random(1);
$.get(getvcurl, function(d) {
if(d.saveOK ==0){
setCookie('qrsig',d.qrsig);
setCookie('qrimg',d.data);
$('#qrimg').attr('qrsig',d.qrsig);
$('#qrimg').html('<img id="qrcodeimg" onclick="getqrpic(true)" src="data:image/png;base64,'+d.data+'" title="点击刷新">');
if( /Android|SymbianOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Windows Phone|Midp/i.test(navigator.userAgent) && navigator.userAgent.indexOf("QQ/") == -1) {
$('#mobile').show();
}
interval1=setInterval(loginload,1000);
interval2=setInterval(qrlogin,3000);
}else{
alert(d.msg);
}
}, 'json');
}
}
function qrlogin(){
if ($('#login').attr("data-lock") === "true") return;
var qrsig=$('#qrimg').attr('qrsig');
var url = 'qrlogin.php?do=qrlogin&qrsig='+decodeURIComponent(qrsig)+'&r='+Math.random(1);
$.get(url, function(d) {
if(d.saveOK ==0){
$('#loginmsg').html('QQ已成功登录');
$('#login').hide();
$('#qrimg').hide();
$('#submit').hide();
$('#login').attr("data-lock", "true");
$.get("connect.php?act=qrlogin&r="+Math.random(1), function(arr) {
if(arr.code==0) {
layer.msg(arr.msg, {icon: 16,time: 10000,shade:[0.3, "#000"]});
setTimeout(function(){ window.location.href=arr.url }, 1000);
}else{
layer.alert(arr.msg);
}
}, 'json');
cleartime();
}else if(d.saveOK ==1){
getqrpic(true);
$('#loginmsg').html('请重新扫描二维码');
}else if(d.saveOK ==2){
$('#loginmsg').html('使用QQ手机版扫描二维码');
}else if(d.saveOK ==3){
$('#loginmsg').html('扫描成功,请在手机上确认授权登录');
}else if(d.saveOK ==4){
cleartime();
$('#loginmsg').html('QQ验证失败请解除登录异常后重试');
}else{
cleartime();
$('#loginmsg').html(d.msg);
}
}, 'json');
}
function loginload(){
if ($('#login').attr("data-lock") === "true") return;
var load=document.getElementById('loginload').innerHTML;
var len=load.length;
if(len>2){
load='.';
}else{
load+='.';
}
document.getElementById('loginload').innerHTML=load;
}
function cleartime(){
clearInterval(interval1);
clearInterval(interval2);
}
function mloginurl(){
var imagew = $('#qrcodeimg').attr('src');
imagew = imagew.replace(/data:image\/png;base64,/, "");
$('#mlogin').html("正在跳转...");
$.post("connect.php?act=qrcode&r="+Math.random(1),"image="+encodeURIComponent(imagew), function(arr) {
if(arr.code==0) {
$('#loginmsg').html('跳转到QQ登录后请返回此页面');
window.location.href='mqqapi://forward/url?version=1&src_type=web&url_prefix='+window.btoa(arr.url);
}else{
alert(arr.msg);
}
$('#mlogin').html("跳转QQ快捷登录");
}, 'json');
}
$(document).ready(function(){
getqrpic();
});

View File

@@ -0,0 +1,46 @@
// lazyload config
var jp_config = {
easyPieChart: [ './assets/vendor/jquery.easy-pie-chart/dist/jquery.easypiechart.fill.js'],
sparkline: [ './assets/vendor/jquery.sparkline/dist/jquery.sparkline.retina.js'],
plot: [ './assets/vendor/flot/jquery.flot.js',
'./assets/vendor/flot/jquery.flot.pie.js',
'./assets/vendor/flot/jquery.flot.resize.js',
'./assets/vendor/flot.tooltip/js/jquery.flot.tooltip.min.js',
'./assets/vendor/flot.orderbars/js/jquery.flot.orderBars.js',
'./assets/vendor/flot-spline/js/jquery.flot.spline.min.js'],
moment: [ './assets/vendor/moment/moment.js'],
screenfull: [ './assets/vendor/screenfull/dist/screenfull.min.js'],
slimScroll: [ './assets/vendor/slimscroll/jquery.slimscroll.min.js'],
sortable: [ './assets/vendor/html5sortable/jquery.sortable.js'],
nestable: [ './assets/vendor/nestable/jquery.nestable.js',
'./assets/vendor/nestable/jquery.nestable.css'],
filestyle: [ './assets/vendor/bootstrap-filestyle/src/bootstrap-filestyle.js'],
slider: [ './assets/vendor/bootstrap-slider/bootstrap-slider.js',
'./assets/vendor/bootstrap-slider/bootstrap-slider.css'],
chosen: [ './assets/vendor/chosen/chosen.jquery.min.js',
'./assets/vendor/bootstrap-chosen/bootstrap-chosen.css'],
TouchSpin: [ './assets/vendor/bootstrap-touchspin/dist/jquery.bootstrap-touchspin.min.js',
'./assets/vendor/bootstrap-touchspin/dist/jquery.bootstrap-touchspin.min.css'],
wysiwyg: [ './assets/vendor/bootstrap-wysiwyg/bootstrap-wysiwyg.js',
'./assets/vendor/bootstrap-wysiwyg/external/jquery.hotkeys.js'],
dataTable: [ './assets/vendor/datatables/media/js/jquery.dataTables.min.js',
'./assets/vendor/plugins/integration/bootstrap/3/dataTables.bootstrap.js',
'./assets/vendor/plugins/integration/bootstrap/3/dataTables.bootstrap.css'],
vectorMap: [ './assets/vendor/bower-jvectormap/jquery-jvectormap-1.2.2.min.js',
'./assets/vendor/bower-jvectormap/jquery-jvectormap-world-mill-en.js',
'./assets/vendor/bower-jvectormap/jquery-jvectormap-us-aea-en.js',
'./assets/vendor/bower-jvectormap/jquery-jvectormap-1.2.2.css'],
footable: [ './assets/vendor/footable/dist/footable.all.min.js',
'./assets/vendor/footable/css/footable.core.css'],
fullcalendar: [ './assets/vendor/moment/moment.js',
'./assets/vendor/fullcalendar/dist/fullcalendar.min.js',
'./assets/vendor/fullcalendar/dist/fullcalendar.css',
'./assets/vendor/fullcalendar/dist/fullcalendar.theme.css'],
daterangepicker:[ './assets/vendor/moment/moment.js',
'./assets/vendor/bootstrap-daterangepicker/daterangepicker.js',
'./assets/vendor/bootstrap-daterangepicker/daterangepicker-bs3.css'],
tagsinput: [ './assets/vendor/bootstrap-tagsinput/dist/bootstrap-tagsinput.js',
'./assets/vendor/bootstrap-tagsinput/dist/bootstrap-tagsinput.css']
};

19
user/assets/js/ui-jp.js Normal file
View File

@@ -0,0 +1,19 @@
+function ($) {
$(function(){
$("[ui-jq]").each(function(){
var self = $(this);
var options = eval('[' + self.attr('ui-options') + ']');
if ($.isPlainObject(options[0])) {
options[0] = $.extend({}, options[0]);
}
uiLoad.load(jp_config[self.attr('ui-jq')]).then( function(){
self[self.attr('ui-jq')].apply(self, options);
});
});
});
}(jQuery);

86
user/assets/js/ui-load.js Normal file
View File

@@ -0,0 +1,86 @@
/**
* 0.1.0
* Deferred load js/css file, used for ui-jq.js and Lazy Loading.
*
* @ flatfull.com All Rights Reserved.
* Author url: http://themeforest.net/user/flatfull
*/
var uiLoad = uiLoad || {};
(function($, $document, uiLoad) {
"use strict";
var loaded = [],
promise = false,
deferred = $.Deferred();
/**
* Chain loads the given sources
* @param srcs array, script or css
* @returns {*} Promise that will be resolved once the sources has been loaded.
*/
uiLoad.load = function (srcs) {
srcs = $.isArray(srcs) ? srcs : srcs.split(/\s+/);
if(!promise){
promise = deferred.promise();
}
$.each(srcs, function(index, src) {
promise = promise.then( function(){
return src.indexOf('.css') >=0 ? loadCSS(src) : loadScript(src);
} );
});
deferred.resolve();
return promise;
};
/**
* Dynamically loads the given script
* @param src The url of the script to load dynamically
* @returns {*} Promise that will be resolved once the script has been loaded.
*/
var loadScript = function (src) {
if(loaded[src]) return loaded[src].promise();
var deferred = $.Deferred();
var script = $document.createElement('script');
script.src = src;
script.onload = function (e) {
deferred.resolve(e);
};
script.onerror = function (e) {
deferred.reject(e);
};
$document.body.appendChild(script);
loaded[src] = deferred;
return deferred.promise();
};
/**
* Dynamically loads the given CSS file
* @param href The url of the CSS to load dynamically
* @returns {*} Promise that will be resolved once the CSS file has been loaded.
*/
var loadCSS = function (href) {
if(loaded[href]) return loaded[href].promise();
var deferred = $.Deferred();
var style = $document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = href;
style.onload = function (e) {
deferred.resolve(e);
};
style.onerror = function (e) {
deferred.reject(e);
};
$document.head.appendChild(style);
loaded[href] = deferred;
return deferred.promise();
}
})(jQuery, document, uiLoad);

20
user/assets/js/ui-nav.js Normal file
View File

@@ -0,0 +1,20 @@
+function ($) {
$(function(){
// nav
$(document).on('click', '[ui-nav] a', function (e) {
var $this = $(e.target), $active;
$this.is('a') || ($this = $this.closest('a'));
$active = $this.parent().siblings( ".active" );
$active && $active.toggleClass('active').find('> ul:visible').slideUp(200);
($this.parent().hasClass('active') && $this.next().slideUp(200)) || $this.next().slideDown(200);
$this.parent().toggleClass('active');
$this.next().is('ul') && e.preventDefault();
});
});
}(jQuery);

View File

@@ -0,0 +1,14 @@
+function ($) {
$(function(){
$(document).on('click', '[ui-toggle]', function (e) {
e.preventDefault();
var $this = $(e.target);
$this.attr('ui-toggle') || ($this = $this.closest('[ui-toggle]'));
var $target = $($this.attr('target')) || $this;
$target.toggleClass($this.attr('ui-toggle'));
});
});
}(jQuery);