java 日程日历_日程日历示例 - voxer的个人空间 - OSCHINA - 中文开源技术交流社区...

这是用户利用do_Gridview和do_ListView及其它组件绘制的日历和任务,基本实现一个完整的在线日程管理功能

先看图,android和ios上的效果图如下:

b3b82372f4c9ce6b86084ed8376f1fcf.png

5ed158bd13edb031c714d3f5de32609a.png

我们可以看到通过deviceone平台可以实现跨平台的复杂ui,我们在IDE里可以看到用户拖拽了很多组件到设计区,通过设置属性,绑定数据动态变化日历里显示的日期。

f268c57803eb996209806044040885c0.png

用户同时也使用do_Http组件从后台获取日程安排的数据,在手机上添加日程安排可以通过网络同步到服务端。

代码封装在自己定义的js文件里:

var deviceone = require("deviceone");

var nf = deviceone.sm("do_Notification");

var cacher = deviceone.sm("do_DataCache");

var domain = "http://www.shenghuafood.com";

var access_token = '';

/**

* API 地址定义

*/

var api = {

login: domain + '/user/token/login',

articleView: domain + '/article/article/view',

articleList: domain + '/article/article/index',

calendarEvent: domain + '/calendar/event/events',

};

/**

* 正在加载UI

*/

var loading = function(id, y) {

id = id || '';

y  = y || 400;

var root = deviceone.ui("$");

return deviceone.ui(root.add('loading_' + id, "source://view/common/loading.ui", 0, y));

}

module.exports.loading = loading;

/**

* HTTP Post方法

*/

var post = function(uri, data, success, error, progressbar) {

var post = deviceone.mm('do_Http');

post.method = 'post';

post.timeout = 60000;

post.contentType = 'application/json';

post.setRequestHeader("Accept", 'application/json');

post.setRequestHeader("X-Auth-Token", cacher.loadData("access_token"));

post.url = api[uri];

post.body = data;

if(progressbar) {

progressbar.visible = true;

}

post.on("fail", function(data) {

if(progressbar) {

progressbar.visible = false;

}

if (typeof error == "function") {

error(data);

} else {

nf.toast(data.message);

}

}).on("success", function(data) {

if(progressbar) {

progressbar.visible = false;

}

if (typeof success == "function") {

success(data);

}

});

post.request();

};

module.exports.post = post;

/**

* HTTP Get方法

*/

var get = function(uri, data, success, fail, progressbar) {

var query = queryString(data);

var get = deviceone.mm("do_Http");

get.method = "get";

get.timeout = "60000";

get.contentType = "application/json";

get.setRequestHeader('Accept', 'application/json');

get.setRequestHeader('X-Auth-Token', cacher.loadData('access_token'));

get.url = api[uri] + '?' + query;

if(progressbar) {

progressbar.visible = true;

}

get.on("fail", function(data) {

if(progressbar) {

progressbar.visible = false;

}

if (typeof fail == "function") {

fail(data);

}

}).on("success", function(data) {

if(progressbar) {

progressbar.visible = false;

}

if (typeof success == "function") {

success(data);

}

});

get.request();

};

module.exports.get = get;

/**

* 对象转URL

*/

var queryString = function(obj, sep, eq, name) {

sep = sep || '&';

eq = eq || '=';

obj = obj === null ? undefined : obj;

var Euc = encodeURIComponent;

if (typeof obj === "object") return Object.keys(obj).map(function(k){

var ks = Euc(k) + eq;

if (Array.isArray(obj[k])) return obj[k].map(function(v){

return ks + Euc(v)

}).join(sep);

else return ks + Euc(obj[k]);

}).join(sep);

if (!name) return "";

return Euc(name) + eq + Euc(obj);

};

module.exports.queryString = queryString;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值