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');
}
});