/*公共类*/
Ext.define('myUtil', {
statics: {
//store公用加载方法
storeLoadById: function (id) {
var store = Ext.getStore(id);
this.storeLoadByParams(store, null);
},
//store加载方法,带参数
storeLoadByParams: function (store, params) {
store.removeAll();
store.setProxy({
extraParams: params
});
this.storeLoad(store, true);
},
//加载stroe
storeLoad: function (store, isUp) {
var me = this;
if (store.getCount() < 1 || isUp) {
store.loadPage(1);
}
},
//list->info公用加载方法
showInfo: function (record, view, url, params, Summary) {
var me = this;
if (record.data.Summary) {
view.setData(record.data);
return;
}
Ext.Ajax.request({
url: url,
params: params,
success: function (result, request) {
result = Ext.decode(result.responseText);
record.set(result);
view.setData(record.data);
}
});
},
/*为Ext.Viewport添加一个消息提示组件*/
addMessage: function () {
Ext.Viewport.setMasked({
xtype: 'loadmask',
cls: 'message',
transparent: true,
indicator: false
});
this.hideMessage();
},
/*显示一个消息提示*/
showMessage: function (mes, autoHide) {
var me = this,
message = this.getMessage();
message.setMessage(mes);
message.show();
//是否自动关闭提示
if (autoHide) {
setTimeout(function () {
message.hide();
},
500);
}
},
/*隐藏消息提示*/
hideMessage: function () {
this.getMessage().hide();
},
//消息组件
getMessage: function () {
return Ext.Viewport.getMasked();
},
//向Viewport中push一个视图
ePop: function (xtype) {
var me = Ext.Viewport,
view = Ext.create(xtype);
//切换
me.animateActiveItem(view, {
type: 'slide',
direction: 'left'
});
},
//监控Viewport界面切换,切换时销毁旧视图
eActiveitemchange: function () {
var me = Ext.Viewport;
me.onAfter('activeitemchange',
function (t, value, oldValue, eOpts) {
if (oldValue) {
//强制销毁,防止销毁不完全引发错误
me.remove(oldValue, true);
}
});
},
//json数据转换成xml数据
iterateJson: function (json) {
var value = '',
arr = [];
for (var tag in json) {
value = json[tag];
if (Ext.isObject(value) || Ext.isArray(value)) {
value = this.iterateJson(value);
}
if (tag > -1) {
arr.push(value);
} else if (value != null && value != '') {
arr.push(this.format('<{0}>{1}</{0}>', tag, value));
}
}
return arr.join('');
},
//格式化字符串
format: function () {
return Ext.util.Format.format.apply(this, arguments);
},
//显示pick
showPick: function (xtype, params) {
var pick = Ext.create(xtype);
Ext.Viewport.add(pick);
pick.show(params);
},
//结束pick
endPick: function (xtype) {
var pick = Ext.Viewport.down(xtype);
if (pick) {
pick.endPick();
}
},
//重写ajax
overrideAjax: function () {
var me = this;
//开始加载
Ext.Ajax.on('beforerequest',
function (connection, options) {
if (!options.hidMessage) {
me.showMessage('正在努力加载中...');
}
});
//加载成功
Ext.Ajax.on('requestcomplete',
function (connection, options) {
me.hideMessage();
});
//加载失败
Ext.Ajax.on('requestexception',
function (connection, options) {
if (!options.hidMessage) {
me.showMessage('加载失败,请稍后再试...', true);
}
});
},
//重写Pick相关
overridePick: function () {
//汉化时间
Ext.apply(Ext.DateExtras.monthNames, ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]);
//汉化DatePicker控件
Ext.define("Ext.zh.DatePicker", {
override: "Ext.picker.Date",
config: {
yearFrom: 2000,
monthText: '月',
dayText: '日',
yearText: '年'
}
});
//汉化Picker控件
Ext.define("Ext.local_zh_cn.Picker", {
override: "Ext.picker.Picker",
config: {
doneButton: '确定',
cancelButton: '取消'
}
});
},
//安卓返回按钮
pGback: function () {
var cardPanel = Ext.getCmp('cardPanel');
var back = cardPanel.getNavigationBar().backButtonStack;
if (back.length > 1) {
cardPanel.Back();
this.isExit = false;
} else {
if (this.isExit) {
navigator.app.exitApp();
} else {
this.isExit = true;
cardPanel.showMessage('再按一次退出程序');
}
}
},
//上传图片
openFileSelector: function () {
/*
*图片选择方式
*PHOTOLIBRARY:从相册中选取
*CAMERA:调用摄像头
*AVEDPHOTOALBUM:左右不明
*/
var source = navigator.camera.PictureSourceType.PHOTOLIBRARY;
/*
*图片返回格式
*DATA_URL:64位字符串
*FILE_URI:返回文件路径
*NATIVE_URI:返回系统路径 iOS:eg. assets-library:// Android: content://
*/
var destinationType = navigator.camera.DestinationType.FILE_URI;
/*
*媒体类型
*PICTURE:图片
*VIDEO:视频 始终返回FILE_URI格式
*ALLMEDIA:支持任意文件选择
*/
var mediaType = navigator.camera.MediaType.PICTURE;
var options = {
quality: 50,
//图像质量[0-100]
destinationType: destinationType,
sourceType: source,
mediaType: mediaType
};
navigator.camera.getPicture(this.uploadFile, this.uploadBroken, options);
},
//图片选择失败
uploadBroken: function (message) {
this.showMessage(message, true);
},
//选择图片后上传
uploadFile: function (fileURI) {
var options = new FileUploadOptions();
options.fileKey = "userfile";
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.mimeType = "multipart/form-data";
options.chunkedMode = false;
ft = new FileTransfer();
var uploadUrl = encodeURI(config.imgUp);
this.showMessage('正在上传中,请等待...');
ft.upload(fileURI, uploadUrl, this.uploadSuccess, this.uploadFailed, options);
},
//文件上传成功
uploadSuccess: function (r) {
var res = Ext.decode(r.responseText);
this.showMessage(res.message, true);
},
//文件上传失败
uploadFailed: function (error) {
this.showMessage('图片上传失败...', true);
},
//app初始化执行
inIt: function () {
this.addMessage();
this.overrideAjax();
this.overridePick();
}
}
});

最新文章

  1. 《利用Python进行数据分析》第8章学习笔记
  2. Matlab的XTickLabel中数值带下标
  3. 用gameMaker做个小游戏
  4. Oracle 11gR2 Database和Active Data Guard迁移案例
  5. 新手学vim配置
  6. js主要知识轮廓笔记
  7. VB几种函数参数传递方法,Variant,数组,Optional,ParamArray
  8. alert 在手机浏览器会显示网址,怎么能去掉这个网址
  9. vim的配置文件参数
  10. pythonic-让python代码更高效
  11. BZOJ 3027 Sweets 生成函数,容斥
  12. DesignPatternPrinciple(设计模式原则)一
  13. MySQL在高版本需要指明是否进行SSL连接问题
  14. [转载]常见slave 延迟原因以及解决方法
  15. VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术
  16. STL:字符串用法详解
  17. Maven通俗讲解
  18. 【Android】Android 监听apk安装替换卸载广播
  19. [转]使用Cython来保护Python代码库
  20. Sql Server 生成连续时间段

热门文章

  1. 多目标线性规划求解方法及matlab实现
  2. TensoFlow的tf.reshape()
  3. 谈谈Android中的Rect类——奇葩的思维
  4. 编写高质量代码_改善C++程序的150个建议 读书笔记
  5. 备份一篇SVN的文章, 从搭建到主备库
  6. Java编程思想学习笔记——字符串
  7. BarTender表单的人性化设计—分组框
  8. Windbg在软件调试中的应用
  9. 【转】Java中的多线程学习大总结
  10. mysql主从复制-方案1