/*公共类*/
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();
}
}
});

sencha touch 我的公用类myUtil(废弃 仅参考)的更多相关文章

  1. sencha touch 百度地图扩展(2014-6-24)(废弃 仅参考)

    扩展代码如下: Ext.define('ux.BMap', { alternateClassName: 'bMap', extend: 'Ext.Container', xtype: 'bMap', ...

  2. sencha touch datepicker/datepickerfield(时间选择控件)扩展(废弃 仅参考)

    参考资料:https://market.sencha.com/extensions/datetimepicker 上面的扩展在2.2有些问题,参考源码重新写了一个 TimePicker: Ext.de ...

  3. sencha touch 自定义cardpanel控件 模仿改进NavigationView 灵活添加按钮组,导航栏,自由隐藏返回按钮(废弃 仅参考)

    最新版本我将会放在:http://www.cnblogs.com/mlzs/p/3382229.html这里的示例里面,这里不会再做更新 代码: /* *模仿且改进NavigationView *返回 ...

  4. sencha touch 类的使用

    sencha touch 有一套自己的类机制,可以以面向对象的方式去写代码,封装业务逻辑,sencha touch 的组件.插件.api等都建立在这一套类机制的上面 在实际开发中,我们需要遵循这一套机 ...

  5. Sencha Touch 2.2 Store Proxy 异常监控

    移动端到服务端通信往往会发生很多莫名的异常情况,如何有效的监控proxy异常,给用户友好的用户体验呢? Proxy给我提供了异常exception的监听事件,只需要监控该项目即可. Sencha To ...

  6. [Phonegap+Sencha Touch] 移动开发24 打包wp8.1的App,执行时输入框聚焦弹出软键盘之后,界面上移而不恢复原位的解决的方法

    这个现象仅仅出如今phonegap打包sencha touch的wp8.1程序会出现(仅wp8.1,wp8正常),其他js框架我測试了几个(app framework, jquery mobile), ...

  7. 第一步 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)

    参考资料: http://www.cnblogs.com/qqloving/archive/2013/04/25/3043606.html http://www.admin10000.com/docu ...

  8. sencha touch 入门系列 (七)sencha touch 类系统讲解(上)

    在mvc结构的基础上,sencha touch又使用了sencha公司为extjs4开发出来的类系统,在面向对象的编程语言中,类是对对象的定义,它描述了对象所包含的大量属性和方法. 跟面向对象语言类似 ...

  9. 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP

    参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用   经过差不多1 ...

随机推荐

  1. Redis 缓存 + Spring 的集成示例(转载)

    1. 依赖包安装 pom.xml 加入: <dependency> <groupId>org.springframework.data</groupId> < ...

  2. 【Php】数组遍历,foreach, each, trim()

    <?php $iplist = "122.224.251.154|192.168.2.138|192.168.2.12"; echo $_SERVER['REMOTE_ADD ...

  3. 大爱HTML5 9款超炫HTML5最新动画源码

    我们分享过很多漂亮的HTML5动画,包括CSS3菜单.HTML5 Canvas动画等.今天我们精选了9款非常不错的超炫HTML5最新动画及其源码,一起来看看. 1.HTML5可爱的404页面动画 很逗 ...

  4. c#解析XML文件来获得pascal_voc特定目标负样本

    近期在做船仅仅识别方面的事情,须要大量的负样本来训练adaboost分类器. 我从网上下载到一个pascal_voc的数据集.须要找到不包括船仅仅的那些复制出来. 数据集特点 对于每一个图片有一个xm ...

  5. UFLDL教程练习(exercise)答案(2)

    主成分分析与白化,这部分很简单,当然,其实是用Matlab比较简单,要是自己写SVD分解算法,足够研究好几个月的了.下面是我自己实现的练习答案,不保证完全正确,不过结果和网站上面给出的基本一致. 1. ...

  6. Window.Open()方法详细的参数说明及技巧。

    Window.Open()方法详细的参数说明及技巧. 一.window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法 ...

  7. php 区分0和空

    能够区分出来的有2,4,6 方法 public function test(){ $test=; if($test==''){ echo '<br />在php中1,0即为空'; //被输 ...

  8. npm install mongoose错误解决

    今天安装mongoose一直报错,上图 具体的错误记录: info it worked if it ends with ok verbose cli [ 'C:\\Program Files\\nod ...

  9. Lua中调用函数使用点号和冒号的区别

    1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(, ); mSprite:setPosition(, ); 对于初次接触 ...

  10. IT规划,是否一定要梳理流程

    IT规划,是面向企业业务的 IT战略规划,必然需要考虑业务的运营特点和需求.以往为企业提供IT规划咨询服务时,很多企业都提出,IT规划要满足业务的需求,那就要对业务足够熟 悉,而通过梳理流程能够达到这 ...