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.

425 lines
14 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.

define(function(require, exports, module) {
var Window = require('system/views/pages/window');
var tpl = require('text!apps/edp/frs/frs004/QuickSetEtp.tpl');
require('css!./QuickSetEtp.css');
//var MSG = require('../../../../locale/{lang}/ssm_frs');
// _.extend(Store.MSG, MSG);
var _UiObjCode = '';
var _index = 0; //用于记录搜索行的index
var _textBoxCaption; //用于记录上次进行搜索的文本
/**
* [快速设置弹框]
* @param {[type]} dsRole 角色表数据源用于对角色ComBox进行赋值
*/
function QuickSetEtp(UiObjCode, callback) {
this.options = {
title: Store.MSG.FRS004_10, //快速设置
content: tpl,
width: 812,
height: 620,
modal: true,
closed: true,
closable: true,
draggable: false,
data: null
}
this.UiObjCode = UiObjCode;
_UiObjCode = UiObjCode;
this.callback = callback;
Window.call(this, this.options);
}
inherits(QuickSetEtp, Window);
QuickSetEtp.prototype.init = function() {
var self = this;
var mainGrid = {
opts: {
editable: true,
enableAddRow: false,
pageSize: 50
},
data: self.vFrsQuickSetRef,
actions: {}
}
var mainToolBar = {
opts: {},
data: [{
opCode: 'ok',
caption: Store.MSG.FRS004_06, //确认
hint: Store.MSG.FRS004_06, //确认
parentOp: '',
opClass: 'ok'
}, {
opCode: 'sort',
caption: Store.MSG.FRS004_07, //排序
hint: Store.MSG.FRS004_07,
parentOp: '',
opClass: 'list'
}, {
opCode: 'refresh',
caption: Store.MSG.FRS004_11, //刷新
hint: Store.MSG.FRS004_11,
parentOp: '',
opClass: 'refresh'
}, {
opCode: 'exit',
caption: Store.MSG.FRS004_09, //退出
hint: Store.MSG.FRS004_09,
parentOp: '',
opClass: 'cancel'
}],
actions: {
click: function(opCode) {
self.doOp(opCode);
}
}
}
this.register('grid', 'grid_main', mainGrid);
this.register('toolbar', 'toolbar_main', mainToolBar);
}
QuickSetEtp.prototype.doOp = function(opCode) {
switch (opCode) {
case 'refresh':
this.refresh();
break;
case 'ok':
this.sure();
break;
case 'sort':
this.sort();
break;
case 'exit':
this.close();
break;
}
};
/**
* 刷新事件
* @return {[type]} [description]
*/
QuickSetEtp.prototype.refresh = function() {
var self = this;
Store.messager.confirm(Store.MSG.FRS004_13, function(r) {
if (r) {
self.vFrsQuickSetRef.clear();
self.getDataSets(self);
}
});
};
/**
* 确定事件
* @return {[type]} [description]
*/
QuickSetEtp.prototype.sure = function() {
var self = this;
var allow = this.vFrsQuickSetRef.onBeforeDataSrcSave();
if (!allow) {
return;
}
//点击确定时,先进行排序,在将序号按照目前的顺序进行重新排序,防止出现重复序号或者间隔的序号
this.sort();
var rowDispIndex = 0;
var quickSetRows = this.vFrsQuickSetRef.rows;
_.each(quickSetRows, function(item, index) {
item.setColumnValue('DispIndex', rowDispIndex);
rowDispIndex++;
});
//将修改的数据插入到对应表中
var changedRows = this.vFrsQuickSetRef.getChanges();
var changeData = new Array();
changedRows.forEach(function(e) {
changeData.push(e.getData());
});
//save
var params = {
plugin: 'quickSetEtpSavePlugin',
pluginData: {
changedrows: changeData,
uiobjcode: _UiObjCode,
}
};
Store.services.executeplugin(params, function(isOk, result) {
if (isOk) {
Store.messager.tip(Store.MSG.FRS004_25); //保存成功。
if (self.callback) {
self.callback();
}
};
});
this.close();
};
/**
* 排序事件
* @return {[type]} [description]
*/
QuickSetEtp.prototype.sort = function() {
var self = this;
var rows = this.vFrsQuickSetRef.rows;
//提交编辑焦点
if (!self.widgets.grid_main.commitEditor()) {
return;
}
if (rows == null) return;
for (var i = rows.length; i > 0; i--) {
for (var j = 0; j < i - 1; j++) {
if (parseInt(rows[j]["DispIndex"]) >
parseInt(rows[j + 1]["DispIndex"])) {
var row = rows[j];
self.vFrsQuickSetRef.rows[j] = rows[j + 1];
self.vFrsQuickSetRef.rows[j + 1] = row;
}
}
}
//重置界面数据
self.widgets.grid_main.setData(self.vFrsQuickSetRef.rows);
};
//对视图灌入数据
QuickSetEtp.prototype.getDataSets = function(win) {
var self = win;
var params = {
plugin: 'quickSetEtpFrushPlugin',
pluginData: {
uiobjcode: _UiObjCode,
}
};
Store.services.executeplugin(params, function(isOk, result) {
if (isOk) {
self.vFrsQuickSetRef.loadData(result.data);
if (self.callback) {
self.callback();
}
};
});
}
QuickSetEtp.prototype.open = function() {
var self = this;
var code = "vFrsQuickSetRef;tEtpUIProp01";
var post_data = {
funcCode: '',
uiObjCodes: code
}
//获取所有的需要数据
Store.services.getUiObjSchema(post_data, function(isOk, data) {
if (isOk) {
var codes = code.split(';');
for (var c in codes) {
self[codes[c]] = new DataSource({
funcObjCode: codes[c]
});
self[codes[c]].initUIObj(data[codes[c]]);
if (0 < _.where(self[codes[c]].columns, {
'fieldName': 'UIObjCode'
}).length) {
self[codes[c]].fixQuery = {
UIObjCode: _UiObjCode
};
}
//设置快速设置界面不允许增加新行
self.vFrsQuickSetRef.allowInsert = false;
}
self.getDataSets(self);
Window.prototype.open.call(self);
}
});
}
//执行windows窗体上自定义按钮事件
QuickSetEtp.prototype.customerize = function() {
var self = this;
//首先刷新,否则分页记录条数不正确
// this.vFrsQuickSetRef.fixQuery['UIObjCode'] = _UiObjCode;
// this.vFrsQuickSetRef.search();
this.vFrsQuickSetRef.on('onDataColumnValidate', function(ds, args) {
var column = args.col;
if (column.fieldName == "DispIndex") {
var count = 0; //判断当前序号存在多少个
var quickFlag = false;
var fieldName = args.row.FieldName;
var newDispIndex = parseInt(args.value);
var oldDispIndex = parseInt(args.row._origin.DispIndex);
//用于标记目前是否存在该序号,如果存在进行操作,如果不存在则不修改其他序号
var quickSetDr = self.vFrsQuickSetRef;
var quickSetRows = quickSetDr.rows;
_.each(quickSetRows, function(item, index) {
var rowFieldName = item["FieldName"];
var rowDispIndex = item["DispIndex"];
if (rowFieldName != fieldName && rowDispIndex == newDispIndex) {
quickFlag = true;
}
if (rowFieldName != fieldName && rowDispIndex == oldDispIndex) {
count++;
}
});
if (!quickFlag) return;
//存在重复序号时的处理逻辑
if (count > 0) {
var dispIndex = newDispIndex;
_.each(quickSetRows, function(item, index) {
var rowFieldName = item["FieldName"];
var rowDispIndex = item["DispIndex"];
if (rowFieldName != fieldName && rowDispIndex >= newDispIndex) {
dispIndex++;
item.setColumnValue('DispIndex', dispIndex);
}
});
} else {
if (oldDispIndex < newDispIndex) {
_.each(quickSetRows, function(item, index) {
var rowFieldName = item["FieldName"];
var rowDispIndex = item["DispIndex"];
if (rowFieldName != fieldName && rowDispIndex > oldDispIndex && rowDispIndex <= newDispIndex) {
rowDispIndex--;
item.setColumnValue('DispIndex', rowDispIndex);
}
});
}
if (oldDispIndex > newDispIndex) {
_.each(quickSetRows, function(item, index) {
var rowFieldName = item["FieldName"];
var rowDispIndex = item["DispIndex"];
if (rowFieldName != fieldName && rowDispIndex >= newDispIndex && rowDispIndex < oldDispIndex) {
rowDispIndex++;
item.setColumnValue('DispIndex', rowDispIndex);
}
});
}
}
}
if (column.fieldName == "DefaultValue") {
//if (args.row._origin.DefaultValue == null) {
// Store.messager.tip(Store.MSG.FRS004_17); //初始默认值为空时,不允许设置默认值。
// args.isCancel = true;
//}
if (args.row._origin.DefaultValue != null && args.value == "") {
Store.messager.tip(Store.MSG.FRS004_16); //默认值不允许修改为空,请重新输入。
args.isCancel = true;
}
}
if (column.fieldName == "IsRequired") {
if (args.row._origin.IsRequired == "1" && args.value == "0") {
Store.messager.tip(Store.MSG.FRS004_18); //初始值为必填时,不允许修改为不必填。
args.row.setColumnValue('IsRequired', "1");
args.isCancel = true;
}
}
});
//搜索按钮事件
var textSearch = this.getElement('.searchDispName');
textSearch.textbox('textbox').bind('keydown', function(e) {
if (e.keyCode == 13) { // when press ENTER key, accept the inputed value.
search(textSearch, self);
textSearch.focus();
}
});
var btnSearch = this.getElement('.btnSearchDispName');
btnSearch.on('click', function(event) {
search(textSearch, self);
});
}
/**
* 搜索方法
* @param {[type]} textSearch [输入框]
* @param {[type]} self [弹框自身]
* @return {[type]} [description]
*/
function search(textSearch, self) {
var textBoxCaption = textSearch.val();
var curRow = self.vFrsQuickSetRef.currentRow;
var flag = 0; //标记是否找到匹配项,如果未找到,系统给出提示:“未找到任何显示标题包含({0})关键字,请重新输入”。
if (curRow != "") {
if (textBoxCaption !== "") {
if (_textBoxCaption != textBoxCaption) {
_index = 0;
}
var rows = self.vFrsQuickSetRef.rows;
if (rows === "") return;
for (var i = _index + 1; i < rows.length; i++) {
var dispName = rows[i]["DispName"];
if (dispName.indexOf(textBoxCaption) >= 0) {
self.vFrsQuickSetRef.moveTo(i);
_textBoxCaption = textBoxCaption;
_index = i;
flag = 1;
return;
}
}
for (var i = 0; i <= _index; i++) {
var dispName = rows[i]["DispName"];
if (dispName.indexOf(textBoxCaption) >= 0) {
self.vFrsQuickSetRef.moveTo(i);
_textBoxCaption = textBoxCaption;
_index = i;
flag = 1;
return;
}
}
if (flag == 0) {
textSearch.textbox('setValue', '')
Store.messager.tip(Store.format(Store.MSG.FRS004_15, textBoxCaption)); //没有找到包含({0})关键字的显示标题。
textSearch.focus();
return;
}
} else {
self.vFrsQuickSetRef.moveTo(0);
}
}
}
/**
* 获取本业务的层列明细表数据
* @param {[type]} code [数据源]
* @param {[type]} data [数据]
* @param {[type]} self [description]
* @param {Function} callback [description]
*/
return QuickSetEtp;
})