ajax调用方法重构

This commit is contained in:
结发受长生 2018-05-08 21:29:14 +08:00
parent ff62d72b4f
commit 939deaef3d
4 changed files with 45 additions and 129 deletions

View File

@ -22,7 +22,7 @@
<div class="icon"><span class="icon-search"></span></div>
<div class="input-box"><input type="text" id="search-input" v-model="queryText" placeholder="站内搜索"/></div>
<!-- 搜索结果区 -->
<div id="search-result-box" v-show="queryText">
<div id="search-result-box" >
<ul class="search-result-list" v-if="searchResult.length">
<li v-for="(article,index) in searchResult" :key="index">
<a :href='article.url' class='search-result-title' target='_blank'>{{article.title}}</a>

View File

@ -44,10 +44,11 @@
width 300px
max-height 600px
overflow-y auto
background #eee
border 1px solid #333
background #f3f3f3
box-shadow: -2px 3px 9px 0px #939393;
border-radius 5px
word-break break-all
display none
padding 7px
ul
list-style none
@ -55,7 +56,7 @@
margin-top 0
a.search-result-title
color #3272b5
font-size 18px
font-size 16px
p.search-result
font-size 14px
margin 0.6em 0

View File

@ -709,6 +709,18 @@ var JELON = window.JELON || {};
$('JELON__previewBox').innerHTML = '';
}
};
var createSuccessCb = function(callback){
return function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
}
}
JL.Requests = {
getIssueNumberByLabel: function (label, callback) {
ajax({
@ -718,19 +730,8 @@ var JELON = window.JELON || {};
labels: [ label ],
rnd: Math.random()
},
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
createIssue: function (data, callback) {
@ -738,19 +739,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/repos/' + JL.options.owner + '/' + JL.options.repo + '/issues',
method: 'POST',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
getCommentListByIssueNumber: function (number, data, callback) {
@ -758,19 +748,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/repos/' + JL.options.owner + '/' + JL.options.repo + '/issues/' + number + '/comments',
method: 'GET',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
getReactionsByCommentId: function (id, data, callback) {
@ -781,19 +760,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/repos/' + JL.options.owner + '/' + JL.options.repo + '/issues/comments/' + id + '/reactions',
method: 'GET',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
editIssue: function (number, data, callback) {
@ -801,19 +769,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/repos/' + JL.options.owner + '/' + JL.options.owner + '/issues/' + number,
method: 'POST',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
markdown: function (data, callback) {
@ -821,12 +778,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/markdown',
method: 'POST',
data: data,
success: function (res) {
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: callback,
fail: callback
});
},
getAccessToken: function (data, callback) {
@ -838,19 +791,8 @@ var JELON = window.JELON || {};
'Accept': 'application/json'
},
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
getUserInfo: function (data, callback) {
@ -858,19 +800,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/user',
method: 'GET',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
createComment: function (number, data, callback) {
@ -878,19 +809,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/repos/' + JL.options.owner + '/' + JL.options.repo + '/issues/' + number + '/comments',
method: 'POST',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
},
createReaction: function (commentId, data, callback) {
@ -898,19 +818,8 @@ var JELON = window.JELON || {};
url: constants.API_HOST + '/repos/' + JL.options.owner + '/' + JL.options.repo + '/issues/comments/' + commentId + '/reactions',
method: 'POST',
data: data,
success: function (res) {
if (typeof res === 'string') {
if (window.JSON) {
res = JSON.parse(res);
} else {
res = eval('(' + res + ')');
}
}
callback && callback(res);
},
fail: function (err) {
callback && callback(err);
}
success: createSuccessCb(callback),
fail: callback
});
}
};

View File

@ -1,5 +1,6 @@
(function(){
var articleDatas = null;
var resultDiv = null;
new Vue({
el: "#search-box",
data: {
@ -27,12 +28,18 @@ new Vue({
url: item.getElementsByTagName("url")[0].innerHTML,
}
})
resultDiv = document.getElementById("search-result-box")
});
},
watch: {
queryText: function(newVal, oldVal) {
this.searchResult.length = 0;
if(!newVal || !newVal.trim() || !articleDatas) return
if(newVal && newVal.trim() && articleDatas) {
resultDiv.style.display = "block"
} else {
resultDiv.style.display = "none"
return
}
var keywords = newVal.trim().toLowerCase().split(/[\s\-]+/);
var _this = this;
articleDatas.forEach(function(article){
@ -76,7 +83,6 @@ new Vue({
end = content.length;
}
var matchContent = content.substring(start, end);
debugger
// 高亮关键字
keywords.forEach(function(keyword){
var keywordReg = new RegExp(keyword, "gi");