Files
ctms-client/apis/ctms/news.js
fm453 c62d15b288 首次完整推送,
V:1.20240808.006
2024-08-13 18:32:37 +08:00

209 lines
5.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from './_utils/request.js'
import apis from './apis.json'
import constant from './_utils/constant.js'
import storage from './_utils/storage.js'
export default {
//查询运单
search: function(formData = null, page = 0, psize = 0, ls = null) {
page = page || 1;
psize = psize || 10;
var data = {
'search[title]': formData.title,
'search[cid]': formData.cid,
page: page,
psize: psize, //分页数据大小
};
var url = apis.NewsSearch;
var header = {
'content-type': 'application/x-www-form-urlencoded'
};
return request({
'url': url,
'method': 'POST',
'data': data,
"headers": header,
'params': {}
}).then((res) => {
if (!res) {
storage.set(constant.newsList, {});
return false;
}
switch (res.code) {
default:
uni.showToast({
title: "没有查询到相关内容!",
icon: "fail"
});
break;
case 0:
var news = {};
var totalCount = 0;
storage.set(constant.newsList, news, 'page-' + page);
break;
case 200:
var news = res.data.news;
var totalCount = res.data.total;
storage.set(constant.newsList, totalCount, 'total');
storage.set(constant.newsList, news, 'page-' + page);
for (var x in news) {
var detail = news[x];
var id = detail.id;
storage.set(constant.newsDetail, detail, id);
}
break;
}
return res.data;
})
},
//列表,从本地缓存中加载
list: function(page = 0) {
//取缓存
var total = storage.get(constant.newsList, 'total');
if (total) {
var news = storage.get(constant.newsList, 'page-' + page);
if (news) {
return {
'total': total,
'news': news
}
}
}
return false;
},
//详情,网络更新
checkDetail: function(id) {
var data = {
id: id
};
var url = apis.NewsDetail;
return request({
'url': url,
'method': 'POST',
'data': data,
'params': {}
}).then((res) => {
if (res.code == 200) {
var detail = res.data;
storage.set(constant.newsDetail, detail, id);
return res;
} else {
uni.showToast({
title: "信息获取失败!",
icon: "fail"
});
}
})
},
//详情,从缓存中读取
detail: function(id) {
return storage.get(constant.newsDetail, id);
},
//AJAX操作
ajax: function(id, op) {
var data = {
id: id,
op: op,
};
var url = apis.NewsAjax;
return request({
'url': url,
'method': 'POST',
'data': data,
'params': {}
}).then((res) => {
if (res.code == 200) {
var detail = res.data;
storage.set(constant.newsDetail, detail, id);
return res;
}
})
},
// 取文章分类
cats: function() {
var url = apis.NewsCatList;
var header = {
'content-type': 'application/x-www-form-urlencoded'
};
return request({
'url': url,
'method': 'GET',
'data': {},
"headers": header,
'params': {}
}).then((res) => {
if (res.code == 200) {
var cats = res.data.cats;
return cats;
}
})
},
//标记文章浏览记录
viewed: function(id) {
var ls = constant.newsViewed;
var res = uni.getStorageSync(ls) || {};
if (!res[id]) {
res[id] = id;
uni.setStorageSync(ls, res);
this.ajax(id, 'view');
return true;
}
},
//标记文章状态(纯缓存记录)(id,内容IDop为具体操作-默认为取全部,type为状态类型)
mark: function(id, type = null, op = false) {
//不归入统一的缓存集合,以确保不在清除缓存时被误清除
if (!type) {
return false;
}
var ls, opp_set, opp_del;
switch (type) {
case 'reading':
//在读
ls = constant.newsReading;
opp_set = 'read';
opp_del = 'no_read';
break;
case 'liked':
//喜欢
ls = constant.newsLiked;
opp_set = 'like';
opp_del = 'no_like';
break;
}
var res = uni.getStorageSync(ls) || {};
if (!op) {
return res;
}
var data = res,
ret = false;
switch (op) {
case 'set':
if (id && !data[id]) {
data[id] = id;
uni.setStorageSync(ls, data);
ret = true;
this.ajax(id, opp_set);
}
break;
case 'get':
ret = data[id] || false;
break;
case 'del':
delete data[id];
uni.setStorageSync(ls, data);
ret = true;
this.ajax(id, opp_del);
break;
default:
ret = res;
}
return ret;
}
}