Skip to content

Commit d5a355f

Browse files
committed
添加二维码生成 网址生成短网址功能
1 parent 3bd17ee commit d5a355f

File tree

3 files changed

+93
-26
lines changed

3 files changed

+93
-26
lines changed

extension/manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "常用开发工具",
33
"description": "常用开发工具集合,哈希/加解密/编码转换/时间戳/二维码/拼音/IP查询/代码优化/Unicode/正则等...",
4-
"version": "0.0.2",
4+
"version": "0.0.3",
55
"author": "[email protected]",
66
"homepage_url": "https://github.com/baiy/chrome-tool",
77
"manifest_version": 2,

extension/statics/modules/chrome_tool_qrcode.js

+76-25
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
// 二维码工具
2-
layui.define(['chromeTool', 'jquery', 'chromeToolBase', 'element'], function (exports) {
2+
layui.define(['chromeTool', 'jquery', 'chromeToolBase', 'element', 'form'], function (exports) {
33
var $ = layui.$;
44

55
var chrome_tool_qrcode = function (tool_id) {
66
var tool = new layui.chromeToolBase(tool_id);
77
tool.getPageData = function (flag, key) {
88
var string = layui.chromeTool.clipboardPaste();
99
return tool.pageData(flag).get(key, function () {
10-
if (flag == 'generate') {
10+
if (flag === 'generate') {
1111
return {"generate_input_content": string};
1212
}
13-
if (flag == 'tab') {
13+
if (flag === 'tab') {
1414
return {"class_tab0": 'layui-this', 'class_div0': 'layui-show'};
1515
}
1616
return null;
@@ -26,48 +26,99 @@ layui.define(['chromeTool', 'jquery', 'chromeToolBase', 'element'], function (ex
2626
});
2727
var generate = $("#" + id + " .generate_tab");
2828

29-
// 网址二维码生成
29+
/** 二维码生成 **/
3030
generate.find(".submit_button").on("click", function () {
3131
var data = {
3232
"input_content": generate.find('.input_content').val(),
33-
"output_content": ""
33+
"output_content": "",
34+
"is_short_url": generate.find('.short_url').prop("checked"),
35+
"short_url": generate.find('.short_url').prop("checked"),
3436
};
35-
layui.use(['chrome_tool_library_qrcode'], function () {
37+
if(generate.find('.input_content').val() === '')
38+
{
39+
layui.chromeTool.msg("请输入内容");
40+
return;
41+
}
42+
var qrcode_generate = function (callbak) {
3643
generate.find(".output_content").html('');
37-
layui.chrome_tool_library_qrcode.generate(generate.find(".output_content")[0],data.input_content);
38-
setTimeout(function(){
39-
data.output_content = generate.find(".output_content").html();
40-
tool.pageData('generate').set(data);
41-
},2000)
42-
});
44+
if (data.is_short_url) {
45+
$.ajax({
46+
url: "http://api.t.sina.com.cn/short_url/shorten.json",
47+
data: {"source": "2815391962", "url_long": data.input_content},
48+
success: function(result){
49+
if(result[0]['url_short']){
50+
data.short_url = result[0]['url_short'];
51+
callbak();
52+
}
53+
else{
54+
layui.chromeTool.msg("短网址生成错误!");
55+
}
56+
},
57+
error:function(){
58+
layui.chromeTool.msg("短网址生成错误!");
59+
},
60+
dataType: "json"
61+
});
62+
}
63+
else{
64+
callbak();
65+
}
66+
};
67+
68+
qrcode_generate(function(){
69+
layui.use(['chrome_tool_library_qrcode'], function () {
70+
var content = data.is_short_url ? data.short_url : data.input_content;
71+
layui.chrome_tool_library_qrcode.generate(generate.find(".output_content")[0], content);
72+
setTimeout(function () {
73+
if(data.is_short_url)
74+
{
75+
var short_url_html = '<div style="margin-top:10px;text-align: center;font-weight: bold"><a href="'+data.short_url+'" target="_blank" title="'+data.input_content+'">短链接: '+data.short_url+'</a></div>';
76+
generate.find(".output_content").append(short_url_html);
77+
}
78+
data.output_content = generate.find(".output_content").html();
79+
tool.pageData('generate').set(data);
80+
}, 2000)
81+
});
82+
})
83+
84+
4385
});
86+
// 短链接
87+
layui.form.on('checkbox(short_url)', function (data) {
88+
if (data.elem.checked) {
89+
generate.find('.short_url_text').show();
90+
}
91+
else {
92+
generate.find('.short_url_text').hide();
93+
}
94+
});
95+
4496
var decoder = $("#" + id + " .decoder_tab");
4597
// 解码方法
46-
var qrcode_decoder = function(src,callback){
47-
var input_img = '<img src="'+src+'" style="width: 320px;">';
98+
var qrcode_decoder = function (src, callback) {
99+
var input_img = '<img src="' + src + '" style="width: 320px;">';
48100
decoder.find('.input_img').html(input_img);
49101
layui.use(['chrome_tool_library_qrcode'], function () {
50-
layui.chrome_tool_library_qrcode.decoder(decoder.find('.input_img img').attr('src'),function(data){
51-
if(data=="error decoding QR Code"){
102+
layui.chrome_tool_library_qrcode.decoder(decoder.find('.input_img img').attr('src'), function (data) {
103+
if (data == "error decoding QR Code") {
52104
layui.chromeTool.msg("该图片无法识别");
53105
return null;
54106
}
55-
callback(data,input_img);
107+
callback(data, input_img);
56108
});
57109

58110
});
59111
}
60-
// 网址二维码解码
112+
// 二维码解码
61113
decoder.find(".submit_button").on("click", function () {
62-
if(!decoder.find('.input_content').val())
63-
{
114+
if (!decoder.find('.input_content').val()) {
64115
layui.chromeTool.msg("填写图片地址以后再点击解析按钮");
65116
return null;
66117
}
67118
var data = {
68-
"input_content":decoder.find('.input_content').val()
119+
"input_content": decoder.find('.input_content').val()
69120
};
70-
qrcode_decoder(data.input_content,function(result,input_img){
121+
qrcode_decoder(data.input_content, function (result, input_img) {
71122
data.input_img = input_img;
72123
data.output_content = result;
73124
decoder.find(".output_content").val(data.output_content);
@@ -77,11 +128,11 @@ layui.define(['chromeTool', 'jquery', 'chromeToolBase', 'element'], function (ex
77128
});
78129
});
79130
// 图片上传解码
80-
decoder.find(".file_qrcode").change(function(){
131+
decoder.find(".file_qrcode").change(function () {
81132
var reader = new FileReader();
82133
reader.readAsDataURL($(this)[0].files[0]);
83-
reader.onload = function(e){
84-
qrcode_decoder(e.target.result,function(result,input_img){
134+
reader.onload = function (e) {
135+
qrcode_decoder(e.target.result, function (result, input_img) {
85136
var data = {};
86137
data.input_img = input_img;
87138
data.output_content = result;

extension/statics/modules/tool_tpl/qrcode.html

+16
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,23 @@
1414
</div>
1515
<div class="layui-form-item">
1616
<button class="layui-btn submit_button">生成</button>
17+
{{# if(d.getPageData('generate','is_short_url')){ }}
18+
<input type="checkbox" checked="checked" lay-filter="short_url" class="short_url" title="转短链接" lay-skin="primary">
19+
{{# } else { }}
20+
<input type="checkbox" lay-filter="short_url" class="short_url" title="转短链接" lay-skin="primary">
21+
{{# } }}
22+
1723
</div>
24+
{{# if(d.getPageData('generate','is_short_url')){ }}
25+
<blockquote class="layui-elem-quote short_url_text">
26+
短链接API由 <a href="http://t.cn/" target="_blank">t.cn</a> 提供
27+
</blockquote>
28+
{{# } else { }}
29+
<blockquote class="layui-elem-quote short_url_text" style="display: none">
30+
短链接API由 <a href="http://t.cn/" target="_blank">t.cn</a> 提供
31+
</blockquote>
32+
{{# } }}
33+
1834
</div>
1935
<div class="layui-col-xs6">
2036
<div class="layui-form-item output_content" style="padding-left: 40px">

0 commit comments

Comments
 (0)