227 lines
5.4 KiB
JavaScript
227 lines
5.4 KiB
JavaScript
|
|
import {
|
|||
|
|
WeaLocaleProvider,
|
|||
|
|
} from 'ecCom';
|
|||
|
|
import {
|
|||
|
|
Button,
|
|||
|
|
Modal,
|
|||
|
|
message
|
|||
|
|
} from 'antd';
|
|||
|
|
import {
|
|||
|
|
IEVersion
|
|||
|
|
} from '../util/pulic-func.js';
|
|||
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|||
|
|
const confirm = Modal.confirm;
|
|||
|
|
|
|||
|
|
export default class Base {
|
|||
|
|
get TOP_HRM() {
|
|||
|
|
return {
|
|||
|
|
showDropIcon: true,
|
|||
|
|
iconBgcolor: '#217346',
|
|||
|
|
icon: <i className='icon-coms-hrm'/>,
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
convertDatasToTopRightConf = (datas) => {
|
|||
|
|
let tConf, rConf;
|
|||
|
|
tConf = datas && datas.filter(data => {
|
|||
|
|
const {
|
|||
|
|
isTop,
|
|||
|
|
isBatch
|
|||
|
|
} = data;
|
|||
|
|
if (isTop === '1') {
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
if (isBatch === '1') {
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
rConf = datas;
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
tConf,
|
|||
|
|
rConf
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
get SEARCH_BUTTONS() {
|
|||
|
|
return [getLabel(82529, '搜索'), getLabel(27088, '重置'), getLabel(32694, '取消')];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
get SEARCH() {
|
|||
|
|
return{
|
|||
|
|
advanceHeight: 130,
|
|||
|
|
hasMask: false,
|
|||
|
|
keyParam: 'key',
|
|||
|
|
searchType: ['base', 'advanced'],
|
|||
|
|
onChange: key => this.setSelectedKey && this.setSelectedKey(key),
|
|||
|
|
setShowSearchAd: bool => this.setShowSearchAd && this.setShowSearchAd(bool),
|
|||
|
|
onSearch: () => this.onSearch && this.onSearch(),
|
|||
|
|
onSearchChange: val => this.onSearchChange && this.onSearchChange(val),
|
|||
|
|
buttonsAd: this.SEARCH_BUTTONS.map((name, index) => {
|
|||
|
|
const type = (index === 0) && "primary";
|
|||
|
|
let callback;
|
|||
|
|
if (index === 0) {
|
|||
|
|
callback = () => this.onSearch && this.onSearch();
|
|||
|
|
} else if (index === 1) {
|
|||
|
|
callback = () => this.tab && this.tab.form && this.tab.form.reset();
|
|||
|
|
} else {
|
|||
|
|
callback = () => this.setShowSearchAd && this.setShowSearchAd(false)
|
|||
|
|
}
|
|||
|
|
return <Button ecId={`${this && this.props && this.props.ecId || ''}_Button@xx3qf3@${index}`} type={type} onClick={() => callback()}>{name}</Button>
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
get TREE_ORG() {
|
|||
|
|
return {
|
|||
|
|
needSearch: true,
|
|||
|
|
noCache: true,
|
|||
|
|
isLoadAllSub: true,
|
|||
|
|
inputLeftDom: `<b>${getLabel(25332, '组织结构')}</b>`,
|
|||
|
|
treeNodeClick: (event, ids, nodeids, nodes) => this.handleOrgTreeNodeClick && this.handleOrgTreeNodeClick(event, ids, nodeids, nodes)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
get TABLE() {
|
|||
|
|
return {
|
|||
|
|
hasOrder: true,
|
|||
|
|
needScroll: true,
|
|||
|
|
getColumns: columns => this.reRenderColumns && this.reRenderColumns(columns),
|
|||
|
|
onOperatesClick: (record, rowIndex, operate) => this.onOperatesClick && this.onOperatesClick(record, rowIndex, operate)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
get DIALOG_HRM() {
|
|||
|
|
return {
|
|||
|
|
hasScroll: true,
|
|||
|
|
icon: 'icon-coms-hrm',
|
|||
|
|
iconBgcolor: '#217346',
|
|||
|
|
onCancel: () => this.closeDialog && this.closeDialog(),
|
|||
|
|
style: {
|
|||
|
|
width: 700,
|
|||
|
|
height: 350
|
|||
|
|
},
|
|||
|
|
moreBtn: {
|
|||
|
|
datas: []
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
get MONTHYEAR() {
|
|||
|
|
return {
|
|||
|
|
datas: [{
|
|||
|
|
key: '0',
|
|||
|
|
title: getLabel(26577, "年")
|
|||
|
|
}, {
|
|||
|
|
key: '1',
|
|||
|
|
title: getLabel(6076, '月')
|
|||
|
|
}],
|
|||
|
|
onMonthYearClick: key => this.handleMonthYearClick && this.handleMonthYearClick(key),
|
|||
|
|
onDatePickerChange: date => this.handleDatePickerChange && this.handleDatePickerChange(date),
|
|||
|
|
resetMonthYear: () => this.resetMonthYear && this.resetMonthYear(),
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @DateTime 2019-05-17
|
|||
|
|
* @param {Date} date 日期
|
|||
|
|
* @param {Boolen} onlyYear 是否只需要年份
|
|||
|
|
* @return {String} 2019、2019-05
|
|||
|
|
*/
|
|||
|
|
formatDate = (date, onlyYear) => {
|
|||
|
|
let pureDate;
|
|||
|
|
if (!date._d) {
|
|||
|
|
pureDate = date;
|
|||
|
|
} else {
|
|||
|
|
pureDate = date._d;
|
|||
|
|
}
|
|||
|
|
const year = pureDate.getFullYear();
|
|||
|
|
const month = pureDate.getMonth() + 1;
|
|||
|
|
if (onlyYear) {
|
|||
|
|
return year
|
|||
|
|
} else {
|
|||
|
|
return `${year}-${ (month < 10) ? `0${month}`: month}`
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @DateTime 2019-05-17
|
|||
|
|
* 概述:获取表单中所有需要校验的domkey。
|
|||
|
|
* @param {Array} conditions 表单的配置数据
|
|||
|
|
* @return {Array} 需要校验的domkey
|
|||
|
|
*/
|
|||
|
|
getAllNeedValidateFieldKey = (conditions) => {
|
|||
|
|
const allNeedValidateKeys = [];
|
|||
|
|
conditions && conditions.forEach(c => {
|
|||
|
|
c.items.forEach(item => {
|
|||
|
|
const {
|
|||
|
|
viewAttr,
|
|||
|
|
domkey
|
|||
|
|
} = item;
|
|||
|
|
|
|||
|
|
if (viewAttr === 3) {
|
|||
|
|
allNeedValidateKeys.push(domkey[0])
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
return allNeedValidateKeys;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @DateTime 2019-05-17
|
|||
|
|
* 概述:获取当前不需要校验的表单元素对应的key值集合,该函数配合getAllNeedValidateFieldKey一起使用。
|
|||
|
|
* @param {Array} allNeedValidateKeys 所有需要校验
|
|||
|
|
* @param {Array} needValidateKeys 当前需要校验
|
|||
|
|
* @return {Array} 当前不需要校验
|
|||
|
|
*/
|
|||
|
|
getNoNeedValidateKeys = (allNeedValidateKeys, needValidateKeys = []) => {
|
|||
|
|
const noNeedValidateKeys = allKeys.filter(key => !needValidateKeys.includes(key));
|
|||
|
|
return noNeedValidateKeys;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @DateTime 2019-05-18
|
|||
|
|
* @param {String} msg 提示信息
|
|||
|
|
* @param {Function} callback 回调函数
|
|||
|
|
*/
|
|||
|
|
showConfirm = (msg, callback) => {
|
|||
|
|
confirm({
|
|||
|
|
title: getLabel('131329', '信息确认'),
|
|||
|
|
content: msg,
|
|||
|
|
okText: getLabel('33703', '确定'),
|
|||
|
|
cancelText: getLabel('32694', '取消'),
|
|||
|
|
onOk() {
|
|||
|
|
callback && callback();
|
|||
|
|
},
|
|||
|
|
onCancel() {
|
|||
|
|
return false;
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @DateTime 2019-05-21
|
|||
|
|
* 概述:显示接口返回的错误信息
|
|||
|
|
* @param {String、Array} msgs 错误信息
|
|||
|
|
*/
|
|||
|
|
showErrorInfo = (msgs) => {
|
|||
|
|
if (typeof msgs === 'string') {
|
|||
|
|
message.warning(<div dangerouslySetInnerHTML = {{ __html: msgs }} />);
|
|||
|
|
} else {
|
|||
|
|
message.warning(<ul>{
|
|||
|
|
msgs.map(msg=><li>{msg}</li>)
|
|||
|
|
}</ul>);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @DateTime 2019-06-24
|
|||
|
|
* 概述:阻止冒泡
|
|||
|
|
*/
|
|||
|
|
stopBubble = (e) => {
|
|||
|
|
e.stopPropagation &&e.stopPropagation();
|
|||
|
|
e.preventDefault && e.preventDefault();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|