Based approach

Ext.define ( 'JsApp.com.Util', {
    / **
     * New View Display
     * title: title new interface display
     * xtype: new alias interface
     * /
    showCreatingView: function (title, xtype) {
        this.shrink. = formType 'Create';
        this.shrink
            .setConfig ({
                title: title,
                iconCls: 'User-FA FA FA-LG'
            })
            .animShow (Ext.create ({
                xtype: xtype
            }));
    },
    / **
     * the edit view
     * record: data on the editing interface
     * title: title is displayed on the editing interface
     * xtype: alias editing interface
     * datelist: time control
     * radiolist:radio集合
     */
    showEditingView: function (record, title, xtype, uneditname, datelist, radiolist) {
        var me = this,
            form = Ext.create({
                xtype: xtype
            });
        form.loadRecord(record);
        if (form.parentView == null) {
            form.parentView = record;
        }
        Ext.Array.each(uneditname, function (name) {
            form.getForm().findField(name).addPlugin("formfielduneditable");
        });
        me.shrink.formType = 'edit';
        me.shrink.setConfig({
            title: title,
            iconCls: 'fa fa-user'
        }).animShow(form);
        if (datelist.length > 0) {
            debugger;
            Ext.Array.each(datelist, function (date) {
                form.getForm().findField(date).setValue(me.renderDate(record.data[date]));
            });
        }
        if (radiolist.length > 0) {
            Ext.Array.each(radiolist, function (radio) {
                var radiofieldlist = form.query("radiofield[name=" + radio + "]");
                Ext.Array.each(radiofieldlist, function (radiofield) {
                    if (radiofield.inputValue == (record.data[radio] == false ? 0 : 1)) {
                        radiofield.setValue(true);
                    }
                });
            });
        }
    }
    / **
    * See Display view
    * record: a data editing interface
    * title: title is displayed on the editing interface
    * xtype: Alias editing interface
    * /
    showDetailView: function (Record, title, xtype) {
        var = Me the this,
            form = Ext.create ({
                xtype: xtype
            });
        me.shrink.formType = 'Detail';
        form.loadRecord (Record);
        IF (form.parentView == null) {
            form. Record = parentView;
        }
        me.shrink.setConfig ({
            title: title,
            iconCls: 'User-FA FA'
        .}) animShow (form);
    },
    / **
     * delete data
     * url: deleting data address
     * params: passing parameters
     * store: the data store interface
     * /
    DeleteRecords: function (URL, the params, Store) {
        Me = the this var;
        Ext.Ajax.request ({
            URL: URL,
            the params: the params,
            Success: function (Response, the opts) {
                Response = Ext.JSON.decode (response.responseText)
                me.toastNo (response.msg);
                store.reload ();
            },
            failure: function (Response, the opts) {
                me.toastNo ( 'operation failed');
            }
        });
    }
    / **
     * refresh of the screen
     * emptyname: emptied interleaved data frame
     * store: the data store interface
     * /
    viewRefresh: function (Store, emptyname) {
        var = Me the this,
            refs me.getReferences = ( ),
            paramHold = store.paramHold;
        Ext.Array.each (emptyname, function (name) {
            refs [name] .setValue ( '');
        });
        paramHold paramHold.clear && ();
        store.loadPage (. 1);
    }
    / *
     * query
     * page: Page
     * params: query parameters
     * store: data store
     * /
    Search: function (Page, the params, store) {
        Me = the this var,
            paramHold = store.paramHold;
        paramHold.clear ();
        IF (Ext.isObject (Page)) {
            the params = Page;
            Page store.currentPage =;
        }
        (! Ext.isNumber (Page)) {IF
            Page store.currentPage =;
        }
        the params || the params = {};
        paramHold.add (the params);
        store.loadPage (Page);
    },
    / *
     * grid to increase the dynamic data
     * store: the form data repository
     * dataname: store in the display field
     * model: display field mapping rule
     * /
    addgriddata: function (store, DataName, Model) {
        store.add (Ext.create (Model, DataName));
    },
    / *
     * verification data in the grid
     * form: Form Interface
     * store: a form of dynamically adding a data repository
     * fields: grid column names in the list
     * cells: grid column list number
     * grid: a list
     * /
    griddatavalidation: function (form, Store, Fields, cells, Grid) {
        var = store.data.items items;
        IF (form = null!) {
            IF (! form.isValid ()) {
                return to false;
            }
        }
        for (var I = 0; I <items.length; I ++) {
            for (var J = 0; J <fields.length; J ++) {
                var name = items [I ] .data [fields [j]] ;
                IF (name == "" || name == undefined) {
                    grid.getView () getCell (I, cells [J]) style.backgroundColor = '# ffb3a7';..
                    return to false;
                }
            }
        }
        return to true;
    } ,
    / *
     data collected in the grid *
     * store: data repository
     * fields: the need to organize the data names
     * /
    griddatacollection: function (store, Fields) {
        var = Me the this,
            items = store.data.items,
            List = new new the Array ();
        for (var I = 0; I <items.length; I ++) {
            var Data = {};
            var Sign = 0;
            for (var J = 0; J <fields.length; J ++) {
                var name = items [I] .data [Fields [J]];
                Data [Fields [J]] = name;
                Sign =. 1;
            }
            IF (Sign ! = 0) {
                list.push (data);
            }
        }
        return List;
    },
    / *
     * abs jumps back interface
     * controller: controller
     * record: parent data interface needs to be displayed
     * formview: parent interface alias
     * title: title
     * /
    showParentView: function (Controller, Record, FormView, title) {
        var = Me Controller,
            form = Ext.create ({
                xtype: FormView
            });
        form.loadRecord (Record);
        form.parentView = Record;
        me.shrink.setConfig ({
            title: title,
            iconCls: 'User-FA FA'
        .}) animShow (form);
    },
    / * *
   * data assignment
   * view: the need to assign the view
   field names need to assign: * names
   * the data: assignment data
   * unEditableNames: field name uneditable
   * EditableNames: field name editable
   * /
    windowAssignment: function (view, names , the Data, unEditableNames, editableNames) {
        Ext.Array.each (Names, function (name) {
            View.query ( 'TextField [name =' + name + ']') [0] .setValue (the Data [name]);
        });
        Ext.Array.each (unEditableNames, function (unEditableName) {
            View.query ( 'TextField [name =' + + unEditableName ']') [0] .setEditable (to false);
        });
        Ext.Array.each (editableNames, function (editableName) {
            View.query ( 'TextField [name =' + + editableName ']') [0] .setEditable (to true);
        });
    },
    / **
   * on the list of the data interface adjust the display
   * value: formatting data to be displayed
   * /
    showData: function (value) {
        IF (! = null value) {
            var = value.split DATAS ( ',');
            var _html = "";
            var length = DATAS .length - 1;
            if (length > 5) {
                length = 5;
            }
            for (var i = 0; i < length; i++) {
                _html += datas[i] + "</br>";
            }
            if (datas.length > 5) {
                _html = _html + "...";
            }
            else {
                _html = _html.substring(0, _html.length - 5);
            }
            return _html;
        }
        else {
            return "";
        }
    },
    //使用post方法导出
    downloadbypost: function (obj) {
        var me = this,
            fileUri = obj.Url,
            arrParams = obj.PostParams,
            path = Ext.getPath(obj.Url),
            oIpt;
        if (me.isNullOrWhiteSpace(fileUri)) {
            return;
        }
        //创建一个form元素
        var oForm = document.createElement("form");
        oForm.id = "forPost";
        oForm.method = "post";
        oForm.action = path;
        oForm.target = "_self";
        for (var tmpName in arrParams) {
            oIpt = document.createElement("input");
            oIpt.type = "hidden";
            oIpt.name = tmpName;
            oIpt.value = arrParams[tmpName];
            oForm.appendChild(oIpt);
        }
        document.body.appendChild (oForm);
        oForm.submit ();
        // delete the created form
        var oOldFrm = document.getElementById ( "Forpost");
        IF (oOldFrm) {
            document.body.removeChild (oOldFrm);
        }
    },
    / **
  * data export
  * store: interface Store
  * visibleColumns: to be exported columns
  * columns: All columns on the screen
  * identifier: interface identifier
  * title: export name
  * /
    export: function (Store, visibleColumns, the columns, identifier the, title, URL) {
        var = Me the this;
        for (var I = 0; I <columns.length; I ++) {
            var Item Columns = [I];
            if (!! item.isHidden () && item.text = ' operator') {
                visibleColumns [item.dataIndex] = item.Text;
            }
        }
        store.paramHold.params.identifier = identifier;
        store.paramHold.params.filename = + Ext.Date.format title (new new a Date (), 'Ym of-D') + "* .xls";
        store.paramHold.params.columns the JSON.stringify = (visibleColumns);
        me.downloadbypost ({the Url: URL, PostParams : store.paramHold.params});
    },
    getDate: function (value) {
        var time = value;
        // If time format is "2018-02-02 00:00:00" format, return date;
        // if time format "2018-02-02T00: 00: 00" format, return date;
        //if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(value) || /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(value)) {
        if (/^\d{4}-\d{2}-\d{2}T|\s\d{2}:\d{2}:\d{2}(?:\.\d{1,2})?$/.test(value)) {
            value = value.replace(/-/g, "/");
            value = value.replace("T", " ");
            value = value.split('.')[0];
            time = new Date(value);
        }
        //如果时间格式为"/Date(1517846400000)/"格式的话,返回日期;
        else if (Ext.isMSDate(value)) {
            var minValue = -62135596800000;
            var currentDate = parseInt(value.slice(6));
            if (minValue == currentDate) {
                return "";
            }

            = new new a Date Time (currentDate);
        }
        // else without processing directly returns;
        the else {
            return value;
        }
        return Time;
    },

    / **
    * If the date is the minimum time rendering, it is considered not a valid value.
    * @Param {String} avatar address value.
    * /
    RenderDate: function (value) {
        IF {(value = "" value = null &&!!)
            this.getDate Time = var (value);
            return Ext.Date.format (Time, 'Ym of-D');
        }
    },

    // convert the data into time format.
    renderDateTime: function (value) {
        var this.getDate Time = (value);
        return Ext.Date.format (Time, 'Ymd H: I: S');
    }
});

Guess you like

Origin blog.csdn.net/qq_20426717/article/details/90691575