• sencha touch 我的公用类myUtil(废弃 仅参考)


      1 /*公共类*/
      2 Ext.define('myUtil', {
      3     statics: {
      4         //store公用加载方法
      5         storeLoadById: function (id) {
      6             var store = Ext.getStore(id);
      7             this.storeLoadByParams(store, null);
      8         },
      9         //store加载方法,带参数
     10         storeLoadByParams: function (store, params) {
     11             store.removeAll();
     12             store.setProxy({
     13                 extraParams: params
     14             });
     15             this.storeLoad(store, true);
     16         },
     17         //加载stroe
     18         storeLoad: function (store, isUp) {
     19             var me = this;
     20             if (store.getCount() < 1 || isUp) {
     21                 store.loadPage(1);
     22             }
     23         },
     24         //list->info公用加载方法
     25         showInfo: function (record, view, url, params, Summary) {
     26             var me = this;
     27             if (record.data.Summary) {
     28                 view.setData(record.data);
     29                 return;
     30             }
     31             Ext.Ajax.request({
     32                 url: url,
     33                 params: params,
     34                 success: function (result, request) {
     35                     result = Ext.decode(result.responseText);
     36                     record.set(result);
     37                     view.setData(record.data);
     38                 }
     39             });
     40         },
     41         /*为Ext.Viewport添加一个消息提示组件*/
     42         addMessage: function () {
     43             Ext.Viewport.setMasked({
     44                 xtype: 'loadmask',
     45                 cls: 'message',
     46                 transparent: true,
     47                 indicator: false
     48             });
     49             this.hideMessage();
     50         },
     51         /*显示一个消息提示*/
     52         showMessage: function (mes, autoHide) {
     53             var me = this,
     54             message = this.getMessage();
     55             message.setMessage(mes);
     56             message.show();
     57             //是否自动关闭提示
     58             if (autoHide) {
     59                 setTimeout(function () {
     60                     message.hide();
     61                 },
     62                 500);
     63             }
     64         },
     65         /*隐藏消息提示*/
     66         hideMessage: function () {
     67             this.getMessage().hide();
     68         },
     69         //消息组件
     70         getMessage: function () {
     71             return Ext.Viewport.getMasked();
     72         },
     73         //向Viewport中push一个视图
     74         ePop: function (xtype) {
     75             var me = Ext.Viewport,
     76             view = Ext.create(xtype);
     77             //切换
     78             me.animateActiveItem(view, {
     79                 type: 'slide',
     80                 direction: 'left'
     81             });
     82         },
     83         //监控Viewport界面切换,切换时销毁旧视图
     84         eActiveitemchange: function () {
     85             var me = Ext.Viewport;
     86             me.onAfter('activeitemchange',
     87             function (t, value, oldValue, eOpts) {
     88                 if (oldValue) {
     89                     //强制销毁,防止销毁不完全引发错误
     90                     me.remove(oldValue, true);
     91                 }
     92             });
     93         },
     94         //json数据转换成xml数据
     95         iterateJson: function (json) {
     96             var value = '',
     97             arr = [];
     98             for (var tag in json) {
     99                 value = json[tag];
    100                 if (Ext.isObject(value) || Ext.isArray(value)) {
    101                     value = this.iterateJson(value);
    102                 }
    103                 if (tag > -1) {
    104                     arr.push(value);
    105                 } else if (value != null && value != '') {
    106                     arr.push(this.format('<{0}>{1}</{0}>', tag, value));
    107                 }
    108             }
    109             return arr.join('');
    110         },
    111         //格式化字符串
    112         format: function () {
    113             return Ext.util.Format.format.apply(this, arguments);
    114         },
    115         //显示pick
    116         showPick: function (xtype, params) {
    117             var pick = Ext.create(xtype);
    118             Ext.Viewport.add(pick);
    119             pick.show(params);
    120         },
    121         //结束pick
    122         endPick: function (xtype) {
    123             var pick = Ext.Viewport.down(xtype);
    124             if (pick) {
    125                 pick.endPick();
    126             }
    127         },
    128         //重写ajax
    129         overrideAjax: function () {
    130             var me = this;
    131             //开始加载
    132             Ext.Ajax.on('beforerequest',
    133             function (connection, options) {
    134                 if (!options.hidMessage) {
    135                     me.showMessage('正在努力加载中...');
    136                 }
    137             });
    138             //加载成功
    139             Ext.Ajax.on('requestcomplete',
    140             function (connection, options) {
    141                 me.hideMessage();
    142             });
    143             //加载失败
    144             Ext.Ajax.on('requestexception',
    145             function (connection, options) {
    146                 if (!options.hidMessage) {
    147                     me.showMessage('加载失败,请稍后再试...', true);
    148                 }
    149             });
    150         },
    151         //重写Pick相关
    152         overridePick: function () {
    153             //汉化时间
    154             Ext.apply(Ext.DateExtras.monthNames, ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]);
    155             //汉化DatePicker控件
    156             Ext.define("Ext.zh.DatePicker", {
    157                 override: "Ext.picker.Date",
    158                 config: {
    159                     yearFrom: 2000,
    160                     monthText: '月',
    161                     dayText: '日',
    162                     yearText: '年'
    163                 }
    164             });
    165             //汉化Picker控件
    166             Ext.define("Ext.local_zh_cn.Picker", {
    167                 override: "Ext.picker.Picker",
    168                 config: {
    169                     doneButton: '确定',
    170                     cancelButton: '取消'
    171                 }
    172             });
    173         },
    174         //安卓返回按钮
    175         pGback: function () {
    176             var cardPanel = Ext.getCmp('cardPanel');
    177             var back = cardPanel.getNavigationBar().backButtonStack;
    178             if (back.length > 1) {
    179                 cardPanel.Back();
    180                 this.isExit = false;
    181             } else {
    182                 if (this.isExit) {
    183                     navigator.app.exitApp();
    184                 } else {
    185                     this.isExit = true;
    186                     cardPanel.showMessage('再按一次退出程序');
    187                 }
    188             }
    189         },
    190         //上传图片
    191         openFileSelector: function () {
    192             /*
    193             *图片选择方式
    194             *PHOTOLIBRARY:从相册中选取
    195             *CAMERA:调用摄像头
    196             *AVEDPHOTOALBUM:左右不明
    197             */
    198             var source = navigator.camera.PictureSourceType.PHOTOLIBRARY;
    199             /*
    200             *图片返回格式
    201             *DATA_URL:64位字符串
    202             *FILE_URI:返回文件路径
    203             *NATIVE_URI:返回系统路径 iOS:eg. assets-library://  Android: content://
    204             */
    205             var destinationType = navigator.camera.DestinationType.FILE_URI;
    206             /*
    207             *媒体类型
    208             *PICTURE:图片
    209             *VIDEO:视频 始终返回FILE_URI格式
    210             *ALLMEDIA:支持任意文件选择 
    211             */
    212             var mediaType = navigator.camera.MediaType.PICTURE;
    213             var options = {
    214                 quality: 50,
    215                 //图像质量[0-100]
    216                 destinationType: destinationType,
    217                 sourceType: source,
    218                 mediaType: mediaType
    219             };
    220             navigator.camera.getPicture(this.uploadFile, this.uploadBroken, options);
    221         },
    222         //图片选择失败 
    223         uploadBroken: function (message) {
    224             this.showMessage(message, true);
    225         },
    226         //选择图片后上传
    227         uploadFile: function (fileURI) {
    228             var options = new FileUploadOptions();
    229             options.fileKey = "userfile";
    230             options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
    231             options.mimeType = "multipart/form-data";
    232             options.chunkedMode = false;
    233             ft = new FileTransfer();
    234             var uploadUrl = encodeURI(config.imgUp);
    235             this.showMessage('正在上传中,请等待...');
    236             ft.upload(fileURI, uploadUrl, this.uploadSuccess, this.uploadFailed, options);
    237         },
    238         //文件上传成功
    239         uploadSuccess: function (r) {
    240             var res = Ext.decode(r.responseText);
    241             this.showMessage(res.message, true);
    242         },
    243         //文件上传失败
    244         uploadFailed: function (error) {
    245             this.showMessage('图片上传失败...', true);
    246         },
    247         //app初始化执行
    248         inIt: function () {
    249             this.addMessage();
    250             this.overrideAjax();
    251             this.overridePick();
    252         }
    253     }
    254 });
  • 相关阅读:
    Inno Setup 下载安装
    The things that I need to face one by one
    GDOI2021 反思总结
    番剧汇总
    matroid课堂笔记 in GDKOI
    多项式持续更新ing
    各大奆的被jc日常
    大事日表
    Important Thing in OI
    整除分块
  • 原文地址:https://www.cnblogs.com/mlzs/p/3302742.html
Copyright © 2020-2023  润新知