You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

404 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
create by yangjinhua
date:2016-11-07
* 2017-10-09 zhangzemu ERPT-94 参照参数错误处理
*/
define(function(require, exports, module) {
var Window = require('../window/window');
var tpl = require('./refwindow.tpl');
var toolbarAdapter = require('../../../adapter/toolbarAdapter');
var GridAdapter = require('../../../adapter/datagridAdapter');
var PaginationAdapter = require('../../../adapter/paginationAdapter');
var QueryPanelAdapter = null;
var _totalRows = 0;
require('./refwindow.css');
function RefWindow(args) {
var self = this;
QueryPanelAdapter = require('../../../adapter/querypanelAdapter')
this.options = {
title: '参照窗体',
content: tpl,
width: 800,
height: 600,
top: window.screen.width > 1024 ? 100 : 20,
modal: true,
closed: true,
closable: true,
minimizable: false,
maximizable: false,
collapsible: false,
resizable: false,
draggable: true,
data: null,
onBeforeClose: function() {
if (!self.selectItem && self.args.callback) {
self.args.callback();
}
}
}
this.id = createGuid();
this.args = args;
this.paginited = false;
//判断是否多选
this.singleSelect = true;
if (this.args.rptRefType === '5') {
this.singleSelect = false;
}
this.pageSize = args.refWinPageSize || 15;
this.callback = args.callback;
Window.call(this, this.options);
}
inherits(RefWindow, Window);
RefWindow.prototype.init = function() {
}
RefWindow.prototype.initDataManager = function() {
var options = {
rptId: this.args.rptId,
rptFormatId: this.args.rptFormatId
};
this.dataManager = new DataManager(options);
}
RefWindow.prototype.customerize = function() {
// this.initToolbar();
this.initSchema();
this.setTitle();
this.doOp();
};
RefWindow.prototype.setTitle = function() {
var title = this.args.dispName || '参照窗体';
this.getElement('.fdpr-refwindow-title span:eq(0)').text(title);
};
/**
* 初始化toobar按钮
* @return {[type]} [description]
*/
RefWindow.prototype.initToolbar = function() {
var self = this;
this.toolbarArgs = {
pageId: self.id,
container: self.getElement('.fdpr-refwindow-tool'),
buttons: [
{
fieldname: 'refresh',
dispname: '刷新',
icon: 'icon-refresh',
class: '',
hint: '刷新',
opcode: 'refresh'
}],
menuButtons: [],
// menuButtons: [{
// fieldname: 'fitcolumnRef',
// dispname: '表格自适应',
// icon: 'icon-print',
// class: '',
// hint: '表格自适应',
// opcode: 'fitcolumnRef',
// subButtons: [{
// fieldname: 'fitcolumnautoRef',
// dispname: '自动铺满',
// icon: 'icon-print',
// class: '',
// hint: '自动铺满',
// opcode: 'fitcolumnautoRef'
// }, {
// fieldname: 'fitcolumnsetRef',
// dispname: '按后台设置',
// icon: 'icon-print',
// class: '',
// hint: '按后台设置',
// opcode: 'fitcolumnsetRef'
// }]
// }],
actions: {
click: function(opCode) {
if (opCode === 'refresh') {
self.getData({
pageIndex: 0,
isSearch: 1
});
}
// if (opCode === 'fitcolumnautoRef') {
// self.gridadp.fitColumns();
// if (!self.paginited) return;
// self.getData({
// pageIndex: 0,
// isSearch: 1
// });
// }
// if (opCode === 'fitcolumnsetRef') {
// self.gridadp.resetColumns()
// if (!self.paginited) return;
// self.getData({
// pageIndex: 0,
// isSearch: 1
// });
// }
}
}
};
this.toobar = new toolbarAdapter(this.toolbarArgs);
this.toobar.init();
};
/**
* 初始化gird列结构
* @return {[type]} [description]
*/
RefWindow.prototype.initSchema = function() {
var self = this;
this.schemeParams = {
'rptRefType': self.args.rptRefType,
'refObj': self.args.refObj,
'refWinQueryCols': self.args.refWinQueryCols,
'refWinDispCols': self.args.refWinDispCols,
'keyboardType': self.args.keyboardType
};
ER.services.refSchema(this.schemeParams, function(isok, data) {
if (isok) {
self.addQueryPanel(data);
self.addDataGrid(data);
}
});
};
/**
* 获取数据
* @param {[type]} options [description]
* @return {[type]} [description]
*/
RefWindow.prototype.getData = function(options) {
var self = this;
var searchParams = this.getSearchParams();
var isSearch = options.isSearch;
this.dataParams = {
'rptRefType': self.args.rptRefType,
'refObj': self.args.refObj,
'pageIndex': options.pageIndex,
'pageSize': self.pageSize,
'queryParams': {
'refQuery': {
'rptId': self.args.rptId,
'rptFormatId': self.args.rptFormatId,
'fieldName': self.args.fieldName
},
'colQuery': {
//参照窗体查询方案
}
}
};
this.dataParams['queryParams']['colQuery'] = searchParams;
ER.services.refSearch(this.dataParams, function(isok, data) {
if (isok) {
_totalRows = data.totalRows;
self.gridadp.loadData(data);
self.intiPagination(_totalRows);
//如果是刷新,则不重新加载分页器,只是重置页码
if (isSearch === 1) {
self.pagepanel.setRefreshPages(0, self.pageSize, _totalRows);
} else {
self.pagepanel.setRefreshPages(options.pageIndex, self.pageSize, _totalRows);
}
}
});
};
/**
* 初始化Grid高度
*/
RefWindow.prototype.initGridHeight = function() {
var toobarHeight = this.getElement('.fdpr-refwindow-tool').outerHeight(true);
var queryHeight = this.getElement('.fdpr-refwindow-querypanel').outerHeight(true);
// var paginationHeight = this.getElement('.fdpr-refwindow-pagination').outerHeight(true);
// var btnHeight = this.getElement('.fdpr-refwindow-btn').outerHeight(true);
var gridHeight = this.options.height - toobarHeight - queryHeight - 112;
// $('.fdpr-refwindow-datagrid').height(gridHeight);
return gridHeight;
};
/**
* 获取查询参数
* @return {[type]} [description]
*/
RefWindow.prototype.getSearchParams = function() {
return this.qpanel.getQueryParams();
};
/**
* 初始化分页器信息
* @param {[type]} 总条数 [description]
* @return {[type]} [description]
*/
RefWindow.prototype.intiPagination = function(_totalRows) {
var self = this;
if (this.paginited) {
return;
} else {
this.paginited = true;
}
this.paginationParams = {
pageSize: this.pageSize,
totalRows: _totalRows,
container: this.getElement('.fdpr-refwindow-pagination'),
actions: {
click: function(opcode, pageIndex) {
self.pageopRouter(opcode, pageIndex);
}
}
};
this.pagepanel = new PaginationAdapter(this.paginationParams);
}
/**
* 翻页按钮事件
* @param {[type]} 按钮编码 [description]
* @param {[type]} 当前页码从0开始 [description]
* @return {[type]} [description]
*/
RefWindow.prototype.pageopRouter = function(opcode, pageIndex) {
var self = this;
switch (opcode) {
case 'firstPage':
case 'prevPage':
case 'nextPage':
case 'lastPage':
case 'linkPage':
self.getData({
pageIndex: pageIndex,
isSearch: 0
});
break;
}
}
/**
* 初始化grid
* @param {[type]} 数据 [description]
*/
RefWindow.prototype.addDataGrid = function(data) {
var gridHeight = this.initGridHeight();
this.gridadp = new GridAdapter({
id: this.id,
name: '',
opts: {},
data: {
columns: data.columns
}
});
this.gridadp.makeGridRowStyler();
this.gridadp.makeGridProperties({
singleSelect: this.singleSelect,
height: gridHeight
});
this.gridadp.init(this.getElement('.fdpr-refwindow-datagrid'));
// this.gridadp.fitColumns();
};
/**
* 初始化查询panel
* @param {[type]} data [description]
*/
RefWindow.prototype.addQueryPanel = function(data) {
var refColumns = [];
var refWinQueryCols = this.args.refWinQueryCols;
if (refWinQueryCols !== null) {
refWinQueryCols = refWinQueryCols.toLowerCase();
_.each(data.columns, function(column, index) {
if (refWinQueryCols.indexOf(column.fieldName) >= 0) {
//参照窗体默认显示格式均为文本
column.dispStyle = '00';
refColumns.push(column);
}
});
}
this.qpanel = new QueryPanelAdapter({
pageId: this.id,
container: this.getElement('.fdpr-refwindow-querypanel'),
data: refColumns,
opts: {
needFilter: false,
selfWidth: true
}
});
}
RefWindow.prototype.doOp = function() {
var isHandled = false;
var self = this;
this.getElement('.fdpr-cancel').on('click', function() {
self.close();
})
this.getElement('.fdpr-refwindow-tool').on('click', function() {
self.getData({
pageIndex: 0,
isSearch: 1
});
})
this.getElement('.fdpr-sure').on('click', function() {
var rptRefType = self.args.rptRefType;
var rows = [];
var value = '';
if (rptRefType === '2') {
rows = self.gridadp.getSelected();
if (rows === null) {
self.close();
return;
}
value = rows[self.args.refField.toLowerCase()];
if(self.args.refFieldName) {
value = value + self.args.refSeparator + rows[self.args.refFieldName.toLowerCase()];
}
} else {
rows = self.gridadp.getSelections();
if (rows === null) {
self.close();
return;
}
if (rows.length === 1) {
value = rows[0][self.args.refField.toLowerCase()];
if(self.args.refFieldName) {
value = value + self.args.refSeparator + rows[0][self.args.refFieldName.toLowerCase()];
}
} else {
_.each(rows, function(row, index) {
value += row[self.args.refField.toLowerCase()] + ',';
});
value = value.substring(0, value.length - 1);
}
}
if (self.args.callback) {
self.args.callback(value);
}
self.close();
})
};
RefWindow.prototype.open = function() {
var self = this;
Window.prototype.open.call(self);
};
return RefWindow;
});