Skip to content

Commit

Permalink
Merge pull request #16 from lhxcccccccccc/master
Browse files Browse the repository at this point in the history
fix: [Severless官网]应用页面v3接口适配
  • Loading branch information
lhxcccccccccc authored Jun 11, 2024
2 parents 4d03d08 + d6d4998 commit ea5928b
Show file tree
Hide file tree
Showing 8 changed files with 455 additions and 196 deletions.
487 changes: 331 additions & 156 deletions application.html

Large diffs are not rendered by default.

81 changes: 51 additions & 30 deletions component.html
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,11 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
<div class="right" style="width: 100%">
<p class="text" style="width: 100%">
{{if $value.published_at }}
<i class="fas fa-calendar"></i> {{$value.published_at}}&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
<i class="fas fa-calendar"></i> {{$value.published_at}}
{{ /if }}

{{if $value.published_at&&$value.version }}
&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
{{ /if }}

{{if $value.version }}
Expand Down Expand Up @@ -493,25 +497,37 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
downloadV3Plugin(name)
}

function onClick(value, key, package_type) {
var obj = {
package_type : package_type,
};
function onClick(value, key, package_type, name) {
var obj = {};
if (key==='category') {
obj[key] = value
if (getQueryVariable("provider")) {
obj['provider'] = getQueryVariable("provider")
}
if (getQueryVariable("package_type")) {
obj['package_type'] = getQueryVariable("package_type")
}
if (name) {// 添加一个category_name字段
obj['category_name'] = name
}
}

if (key==='provider') {
obj[key] = value
if (getQueryVariable("category")) {
obj['category'] = getQueryVariable("category")
}
if (getQueryVariable("category_name")) {// 添加一个category_name字段
obj['category_name'] = getQueryVariable("category_name")
}
if (package_type) {
obj['package_type'] = package_type
}
}

window.location.href = objectSerialize(obj)
}

function setBaseList(listData, idName, name) {
var attrString = "";
var keys = [{
Expand All @@ -526,7 +542,7 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
// console.log(item.id, item.name, item.package_type);
attrString = attrString +
`<li>
<a onclick="onClick('${item.id}', '${name}','${item.package_type}')" class="link ${item.id == decodeURI(getQueryVariable(name) || "-1")? "active": ""}">
<a onclick="onClick('${item.id}', '${name}','${item.package_type}', '${item.name}')" class="link ${item.id == decodeURI(getQueryVariable(name) || "-1")? "active": ""}">
<span>${item.name || "全部"}</span>
</a>
</li>`
Expand All @@ -547,9 +563,10 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
// 左侧内容主体区域
// V3: 搜索/获取 Package 信息
;(function getPackagesV3() {
var data = `type=Component&sort=${sort}`;
var data = `type=${V3_SEARCH_TYPE['Component']}&sort=${sort}`;
if ((getQueryVariable("category") || "-1") !== "-1") {
data = insertParam("category", getQueryVariable("category"), data);
// 如果是这个方法categrory传文字
data = insertParam("category", getQueryVariable("category_name"), data);
}
if (document.getElementById("searchdata").value) {
data = insertParam("search",document.getElementById("searchdata").value,data);
Expand All @@ -565,8 +582,8 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
item.delayTime = times[Math.floor(Math.random() * times.length)];
item.name = result[keys[i]].name;
item.download = result[keys[i]].download;
// item.published_at = result[keys[i]].version.published_at.split("T")[0]
item.published_at = ''
item.published_at = result[keys[i]].latest_create.split(" ")[0];
item.published_at_source = dateFunction(result[keys[i]].latest_create)
// item.version = result[keys[i]].version.tag_name;
item.version = '';
item.description = result[keys[i]].description;
Expand All @@ -577,8 +594,7 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
}
v3Total = keys.length
return ;
})
}
})}
)();
// V2: 获取 Package 信息
;(function getPackagesV2() {
Expand All @@ -598,7 +614,10 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
if ((getQueryVariable("provider") || "-1") !== "-1") {
data = insertParam("provider", getQueryVariable("provider"), data);
}

// 如果发现是type为v3接口新增类型,则不调用v2
if (getQueryVariable("package_type")==='v3') {
return ;
}

var base_url = BASE_V2_URL
_Post(base_url + "/package/search", data,
Expand All @@ -611,6 +630,7 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
item.name = result[keys[i]].package;
item.download = result[keys[i]].download;
item.published_at = result[keys[i]].version.published_at.split("T")[0]
item.published_at_source = dateFunction(result[keys[i]].version.published_at)
item.version = result[keys[i]].version.tag_name;
item.description = result[keys[i]].description;
item.zipball_url = result[keys[i]].version.zipball_url;
Expand All @@ -624,7 +644,7 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ

if(dataList && dataList.length > 0){
if(sort === 'time'){

dataList = dataList.sort((a, b) => compareTimeStrings(b.published_at_source ,a.published_at_source));
}else if (sort === 'download') { // 根据download字段排序
dataList = dataList.sort((a, b) => b.download - a.download);
}
Expand All @@ -641,18 +661,6 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
// 2. 调用V3接口 获取V3分类
function getCategory(){
var categoryList = []; // package_type
;(function getCategoryV2() {
_GetJSON("https://registry.devsapp.cn/common/category", function (tempData) {
for (var key in tempData) {
var obj = {}
var value = tempData[key]
obj["package_type"] = 'v2'
obj["id"] = key
obj['name'] = value
categoryList.push(obj)
}
});
})()
;(function getCategoryV3() {
var base_url = BASE_V3_URL;
_GetJSON(base_url + '/common/categories', function (tempData) {
Expand All @@ -666,14 +674,13 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
)
.map(obj => {
return {
'package_type':'v3',
// 'package_type':'v3',
'id': obj.id + '', // id属性转换为字符串
'name': obj.name
}
})

// categoryList.push({
// 'package_type':'v3',
// 'id': 2,
// 'name': 'Web 应用'
// })
Expand All @@ -686,6 +693,20 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ

});
})();

;(function getCategoryV2() {
_GetJSON("https://registry.devsapp.cn/common/category", function (tempData) {
for (var key in tempData) {
var obj = {}
var value = tempData[key]
// obj["package_type"] = 'v2'
obj["id"] = key
obj['name'] = value
categoryList.push(obj)
}
});
})()

// 渲染的方法: 渲染分类数据
setBaseList(categoryList, "categorylist", 'category');
}
Expand All @@ -707,7 +728,7 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
}
});
})();
;(function getCategoryV3() {
;(function getProviderV3() {
var base_url = BASE_V3_URL;
_GetJSON(base_url + '/common/providers', function (tempData) {
// 计算获取V3比V2多的云厂商item
Expand Down
6 changes: 5 additions & 1 deletion config/URL.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
// 正式线上
var BASE_V2_URL = 'https://registry.devsapp.cn'
var BASE_V3_URL = 'https://api.devsapp.cn/v3'
// 正式线上
var BASE_V3_URL = 'https://api.devsapp.cn/v3'
// 预发
// var BASE_V3_URL = 'https://pre-api.devsapp.cn/v3'
39 changes: 34 additions & 5 deletions details.html
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ <h2 class="breadd wow fadeInUp" id="title"></h2>

<div class="right-box" id="provider"></div>

<div class="product-information wow fadeInUp">
<div class="product-information wow fadeInUp" id="latest_container">
<div class="left-box">
<p class="text">更新时间:</p>
<p class="text">最新版本:</p>
Expand All @@ -275,7 +275,7 @@ <h2 class="breadd wow fadeInUp" id="title"></h2>
</div>
<div class="right-box" id="historyversion"></div>
</div>
<div class="product-information wow fadeInUp">
<div class="product-information wow fadeInUp" id="tagslist_container">
<div class="left-box">
<p class="text">标签</p>
</div>
Expand Down Expand Up @@ -423,7 +423,18 @@ <h4 class="lasthead">微信公众号</h4>
<script type="text/template" id="titleTpl" async>
{{name}}
<h4>
<i class="fas fa-calendar"></i> {{createTime}} / V{{version}}
{{if createTime }}
<i class="fas fa-calendar"></i> {{createTime}}
{{ /if }}

{{if createTime && version }}
/
{{ /if }}

{{if version }}
V{{version}}
{{ /if }}

{{if package_type === 'v2' }}
<a href="https://registry.devsapp.cn/simple/{{name}}/zipball/{{version}}" style="float: right;" class="download"><i class="fas fa-download">
下载 </i>
Expand Down Expand Up @@ -720,7 +731,20 @@ <h4 id="usename">
console.log('tempData')
console.log(tempData)
if (typeof tempData === 'string') {
renderTpl('titleTpl',
{
name: 'aliyun_oss_bucket',
createTime: undefined,
version: undefined,
package_type: 'v3'
},
'#title'
)
document.getElementById("mddata").innerHTML = tempData;
$("#tagslist_container").hide()
$('[role="tablist"]').hide()
$('.box-one').hide()
$('#latest_container').hide()
return
}
renderTpl('titleTpl',
Expand Down Expand Up @@ -772,12 +796,17 @@ <h4 id="usename">
'#rightupdatetime'
)

renderTpl('tagslistTpl',
if(tempData.tags){
renderTpl('tagslistTpl',
{
data: tempData.tags,
},
'#tagslist'
)
)
}else{
$("#tagslist_container").hide()
}


renderTpl('providerTpl', // 与tagslistTpl 使用同一个模版
{
Expand Down
2 changes: 2 additions & 0 deletions search.html
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,8 @@ <h5><a href="details.html?name={{$value.name}}&package_type={{$value.package_typ
getPackagesV2();

if(dataList && dataList.length > 0){
// @todo 增加去重,如果v2 v3存在相同name应用, 只展示v2应用
// 去重
renderTpl('searchTpl', { data: dataList }, '#itemlist')
}else{
renderTpl('searchTpl', { data: [] }, '#itemlist')
Expand Down
2 changes: 1 addition & 1 deletion services/downloadV3Plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function downloadV3Plugin(name) {
var url = base_url + '/packages/'+name+'/release/latest'
_Get(url, function (res) {
if (res.body==="未找到指定资源") {
console.log('未找到指定资源')
alert('未找到指定资源')
return;
}
var result = res.body||res.Response;
Expand Down
11 changes: 9 additions & 2 deletions services/getPackagesSearchForV3.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
// 调用V3版本 搜索接口
function getPackagesSearchForV3(dataString, callback) {
var base_url = BASE_V3_URL
var common_params = 'platform=3&page=-1'
if (dataString) {
dataString = dataString + '&platform=3'
dataString = dataString + '&'+ common_params
} else {
dataString = 'platform=3'
dataString = common_params;
}
var url = base_url + '/packages/releases?'+ dataString
_Get(url, function (result) {
callback && callback(result)
return ;
})
}
var V3_SEARCH_TYPE = {
Component:1, // 组件
Plugin: 2, // 插件
Project: 3, // 应用
Application: 3, // 应用
}
23 changes: 22 additions & 1 deletion static/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -442,4 +442,25 @@ var objectSerialize = function (obj) {
}
}
return `?${arrs.join('&')}`
}
}

// 处理带T的时间格式
function dateFunction(time) {
var zoneDate = new Date(time).toJSON();
var date = new Date(+new Date(zoneDate) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/,'');
return date;
}

// 时间字符串比较大小
function compareTimeStrings(timeStr1, timeStr2) {
const timestamp1 = Date.parse(timeStr1);
const timestamp2 = Date.parse(timeStr2);

if (timestamp1 > timestamp2) {
return 1;
} else if (timestamp1 < timestamp2) {
return -1;
} else {
return 0;
}
}

0 comments on commit ea5928b

Please sign in to comment.