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.

214 lines
7.8 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.

/**
* 复制权限按钮弹框文件
* @description [description]
* @version 1.0
* @author yangjinhua
*/
define(function(require, exports, module) {
let Window = require('system/views/pages/window');
let tpl = require('text!apps/rht/cls/cls130101/ClsDivide.tpl');
let service = require('./cls130101service');
/**
* [复制权限弹框]
* @param {[type]} dsData 角色表数据源用于对角色ComBox进行赋值
*/
function ClsDivide(dsData, newClsCodeLen, preClsCode) {
let self = this
this.options = {
title: "转为非末级—添加新末级品类",
content: tpl,
width: 800,
height: 600,
modal: true,
closed: true,
closable: false,
draggable: true,
maximizable: false,
resizable: false,
id: 'ClsDivide' + (new Date()).getTime(),
data: null,
onBeforeClose: function(){
dsData.unmount(self)
}
}
this.dsData = dsData;
this.newClsCodeLen = newClsCodeLen;
this.preClsCode = preClsCode;
this.dsData.on('onFieldChanged', function(sendor, eventArgs){
let adapter = self.vm['ep_dsMaster'];
switch(eventArgs.col.fieldName) {
case 'IsLast' :
// 把默认不可编辑的禁掉
adapter.setEditorEditable('ClsCode', true);
adapter.setEditorEditable('ClsName', true);
adapter.setEditorEditable('IsLast', false);
adapter.setEditorEditable('PluCount', true);
break;
}
}, self);
Window.call(this, this.options);
}
inherits(ClsDivide, Window);
ClsDivide.prototype.init = function() {
let self = this;
let args = {
data: this.dsData,
opts: {
showSettingBtn: '0',
editable: true
},
//TODO 添加last panel enter action
actions: {
onLastPanelEneterd: function () {
let gridName = 'grid_dsMaster';
if (self.vm[gridName].actions.onActiveFirstCell) {
self.vm[gridName].actions.onActiveFirstCell();
}
}
}
};
self.register('editpanel', 'ep_dsMaster', args);
}
ClsDivide.prototype.open = function() {
Window.prototype.open.call(this);
this.dsData.setEditable(true);
//this.dsData.getColumn('IsLast').set('isEditable',false);
// let adapter = self.vm['ep_dsMaster'];
// adapter.setEditorEditable('IsLast', false);
let newRow = this.dsData.addRow();
newRow.setColumnText('IsLast', '1');
}
//执行windows窗体上自定义按钮事件
ClsDivide.prototype.customerize = function() {
let self = this;
let rows = null;
if (Store.logOn.userType === '0')
rows = this.dsData.rows;
else
rows = _.where(self.dsData.rows, {
'RightCtrlOrgCode': Store.logOn.rightCtrlOrgCode
});
//确定按钮事件
this.getElement('.btnOK').on('click', function(event) {
let currentRow = self.dsData.currentRow;
let clsCode = TypeUtil.toString(currentRow['ClsCode']);
let clsName = TypeUtil.toString(currentRow['ClsName']);
let clsType = TypeUtil.toString(currentRow['ClsType']);
let isExPluCode = TypeUtil.toString(currentRow['IsExPluCode']);
let exPluType = TypeUtil.toString(currentRow['ExPluType']);
let isBz = TypeUtil.toString(currentRow['IsBz']);
let isCurrDay = TypeUtil.toString(currentRow['IsCurrDay']);
let isSeason = TypeUtil.toString(currentRow['IsSeason']);
let cxPrecision = TypeUtil.toString(currentRow['CxPrecision']);
let cxCalcuType = TypeUtil.toString(currentRow['CxCalcuType']);
let remark = TypeUtil.toString(currentRow['Remark']);
let pluCount = TypeUtil.toString(currentRow['PluCount']);
let minMlRate = TypeUtil.toFloat(currentRow['MinMlRate']);
let maxMlRate = TypeUtil.toFloat(currentRow['MaxMlRate']);
let saleSeason = TypeUtil.toString(currentRow['SaleSeason']);
if(clsCode == '') {
Store.messager.err('品类编号不能为空!');
return false;
}
if(clsName == '') {
Store.messager.err('品类名称不能为空!');
return false;
}
// 品类编号需要满足特殊选项设置的长度,前缀为父级品类的编号
let pattern=eval('/^' + self.preClsCode + '[0-9a-zA-Z]{' + (self.newClsCodeLen-self.preClsCode.length) + '}$/');
if (!pattern.test(clsCode)) {
Store.messager.err('品类编号必须为数字或英文字母的组合,长度为' + self.newClsCodeLen + (self.preClsCode == '' ? '' : ',前缀为' + self.preClsCode));
return false;
}
let pattern = /[+ -''*|=,{};]/;
if(pattern.test(clsName)) {
Store.messager.err('品类编号不能包含+ -\'\'*|=,{};等非法字符!');
return false;
}
if(minMlRate < 0 || minMlRate > 100) {
Store.messager.err('最小毛利率应在0到100之间');
return false;
}
if(maxMlRate < 0 || maxMlRate > 100) {
Store.messager.err('最大毛利率应在0到100之间');
return false;
}
if(minMlRate > maxMlRate) {
Store.messager.err('最大毛利率应大于等于最小毛利率!');
return false;
}
let ret = service.ClsExists(clsCode, '');
if (ret.result != 1) {
Store.messager.err(ret.message);
return false;
}
if (ret.data == 1) {
Store.messager.err('品类编号已存在!');
return false;
}
ret = service.ClsExists('', clsName);
if (ret.result != 1) {
Store.messager.err(ret.message);
return false;
}
if (ret.data == 1) {
if (!Store.confirm("品类名称已存在,要继续吗?")) {
return false;
}
}
let clsData = clsCode + '#' + clsName;
let clsInfo = (clsType=='' ? '01' : clsType) + '#'
+ isExPluCode + '#'
+ (exPluType=='' ? '00' : exPluType) + '#'
+ isBz + '#'
+ isCurrDay + '#'
+ isSeason + '#'
+ (cxPrecision=='' ? '0' : cxPrecision) + '#'
+ (cxCalcuType=='' ? '0' : cxCalcuType) + '#'
+ remark + '#'
+ (pluCount=='' ? '0' : pluCount) + '#'
+ minMlRate + '#'
+ maxMlRate + '#'
+ (saleSeason=='' ? '1111' : saleSeason);
self.dsData.deleteRow(self.dsData.currentRow);
self.dsData.setEditable(false);
if (self.callback) {
self.callback(clsData, clsInfo);
}
self.close();
});
//取消按钮事件
this.getElement('.btnCancel').on('click', function(event) {
self.dsData.setEditable(false);
self.dsData.deleteRow(self.dsData.currentRow);
self.close();
});
}
return ClsDivide;
})