| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- Ext.QuickTips.init();
- Ext.define('erp.controller.pm.bom.CompareBom', {
- extend : 'Ext.app.Controller',
- views : [ 'pm.bom.CompareBom.Viewport', 'common.query.GridPanel', 'pm.bom.CompareBom.Form', 'core.trigger.DbfindTrigger',
- 'core.form.FtField', 'core.form.ConDateField', 'core.form.YnField', 'core.form.FtDateField',
- 'core.form.MonthDateField','core.form.FtFindField', 'core.grid.YnColumn', 'core.grid.TfColumn',
- 'core.form.ConMonthDateField' ],
- init : function() {
- this.control({
- 'erpQueryFormPanel button[name=confirm]' : {
- click : function(btn) {
- }
- },
- 'erpQueryGridPanel' : {
- itemclick : this.onGridItemClick
- },
- 'erpQueryFormPanel1 button[name=query]': {
- click : function(btn) {
- var grid = Ext.getCmp('querygrid');
- var form = Ext.getCmp('queryform');
- var values = '';
- Ext.each(form.items.items, function(f){
- if(f.logic != null && f.logic != ''){
- if(f.value != null&&f.value != ''){
- values = values+f.value+",";
- }
- }
- });
- values = values.substring(0,values.length-1);
- this.getGridColumnsAndStore(grid,values);
- }
- }
- });
- },
- onGridItemClick : function(selModel, record) {
- },
- getGridColumnsAndStore: function(grid,values){
- var me = this;
- Ext.Ajax.request({//拿到grid的columns
- url : basePath+"pm/bom/compareBom.action",
- params: {
- caller: caller,
- condition: values,
- bd_single:Ext.getCmp('bd_single').checked,
- bd_difbom:Ext.getCmp('bd_difbom').checked
- },
- method : 'post',
- callback : function(options,success,response){
- grid.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.exceptionInfo){
- showError(res.exceptionInfo);
- return;
- }
- if(res.columns){
- var limits = res.limits, limitArr = new Array();
- if(limits != null && limits.length > 0) {//权限外字段
- limitArr = Ext.Array.pluck(limits, 'lf_field');
- }
- Ext.each(res.columns, function(column, y){
- //power
- if(limitArr.length > 0 && Ext.Array.contains(limitArr, column.dataIndex)) {
- column.hidden = true;
- }
- //renderer
- //me.setRenderer(grid, column);
- //logictype
- //me.setLogicType(grid, column);
- });
- //data
- var data = [];
- if(!res.data || res.data.length == 2){
-
- } else {
- data = Ext.decode(res.data.replace(/,}/g, '}').replace(/,]/g, ']'));
- }
- //store
- var store = me.setStore(res.fields, data, grid.groupField, grid.necessaryField);
- //view
- if(grid.selModel.views == null){
- grid.selModel.views = [];
- }
- //dbfind
- if(res.dbfinds&&res.dbfinds.length > 0){
- grid.dbfinds = res.dbfinds;
- }
- //toolbar
- // me.setToolbar(grid, res.columns, res.necessaryField, limitArr);
- //reconfigure
- grid.reconfigure(store, res.columns);
- var form = Ext.ComponentQuery.query('form')[0];
- if(form){
- if(form.readOnly){
- grid.readOnly = true;//grid不可编辑
- }
- }
- } else {
- grid.hide();
- var form = Ext.ComponentQuery.query('form')[0];
- me.updateFormPosition(form);//字段较少时,修改form布局
- }
- }
- });
- },
- setStore: function(fields, data, groupField, necessaryField){
- if(!Ext.isChrome){
- Ext.each(fields, function(f){
- if(f.type == 'date'){
- f.dateFormat = 'Y-m-d H:m:s';
- }
- });
- }
- return Ext.create('Ext.data.Store', {
- fields: fields,
- data: data,
- groupField: groupField,
- getSum: function(records, field) {
- if (arguments.length < 2) {
- return 0;
- }
- var total = 0,
- i = 0,
- len = records.length;
- if(necessaryField) {
- for (; i < len; ++i) {//重写getSum,grid在合计时,只合计填写了必要信息的行
- var necessary = records[i].get(necessaryField);
- if(necessary != null && necessary != ''){
- total += records[i].get(field);
- }
- }
- } else {
- for (; i < len; ++i) {
- total += records[i].get(field);
- }
- }
- return total;
- },
- getCount: function() {
- if(necessaryField) {
- var count = 0;
- Ext.each(this.data.items, function(item){//重写getCount,grid在合计时,只合计填写了必要信息的行
- if(item.data[necessaryField] != null && item.data[necessaryField] != ''){
- count++;
- }
- });
- return count;
- }
- return this.data.items.length;
- }
- });
- },
- });
|