import {
inject,
observer,
} from 'mobx-react';
import {
Row,
Col,
Spin,
Modal,
Button,
message,
} from 'antd'
import {
WeaTop,
WeaTab,
WeaTools,
WeaDialog,
WeaFormItem,
WeaRightMenu,
WeaSearchGroup,
WeaLocaleProvider,
WeaAlertPage,
} from 'ecCom'
import React from 'react'
import * as mobx from 'mobx'
import {
WeaSwitch
} from 'comsMobx';
import {
WeaTableNew
} from 'comsMobx';
import {
i18n
} from '../../public/i18n';
import {addContentPath} from '../../util/index.js'
import * as PublicFunc from '../../util/pulic-func';
import '../../style/systemCard.css';
const WeaTable = WeaTableNew.WeaTable;
const getLabel = WeaLocaleProvider.getLabel;
const confirm = Modal.confirm;
@inject('hrmSystemCard')
@observer
class SystemCard extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
this.init();
}
init() {
const {
hrmSystemCard,
id,
} = this.props;
const {
getHasRight,
} = hrmSystemCard;
getHasRight(id);
}
getViewCards() {
const {
hrmSystemCard
} = this.props;
const {
headerColumns
} = hrmSystemCard;
let arr = [];
for (let i = 0; i < headerColumns.length; i++) {
arr.push(
{headerColumns[i].label}
{headerColumns[i].num}
);
}
arr.push();
return {arr}
;
}
getPanelComponent() {
const {
hrmSystemCard
} = this.props;
const {
condition1,
form1
} = hrmSystemCard;
const {
isFormInit
} = form1;
let condition = condition1;
let form = form1;
let formParams = form1.getFormParams();
let arr = [];
isFormInit && condition.map(c => {
c.items.slice(0, 2).map((field, j) => {
arr.push(
);
})
})
return ( e.keyCode == 13 && e.target.tagName === "INPUT") && hrmSystemCard.getTableInfo()}
>{arr}
}
handleSearch() {
const {
hrmSystemCard
} = this.props;
hrmSystemCard.getTableInfo();
hrmSystemCard.hideSearchAd();
// hrmSystemCard.getHeaderColumn();
}
handleChange = (data) => {
const { hrmSystemCard:{handleCondition,form2} } = this.props;
if (data.userUsbType) {
handleCondition()
form2.updateFields({
usbstate:'0'
})
}
}
getSecSettingForm() {
const {
hrmSystemCard
} = this.props;
const {
condition2,
form2,
isSecSetting
} = hrmSystemCard;
const {
isFormInit
} = form2;
let condition = condition2;
let form = form2;
let formParams = form2.getFormParams();
let arr = [];
let userUsbType;
let usbstate;
let needauto;
if (formParams.userUsbType) userUsbType = formParams.userUsbType;
if (formParams.usbstate) usbstate = formParams.usbstate;
if (formParams.needauto) needauto = formParams.needauto;
isFormInit && condition.map((c, j) => {
let items = c.items;
for (let i = 0; i < items.length; i++) {
let field = items[i];
let domkey = (field.domkey)[0];
if (userUsbType == '6' && !['userUsbType','usbstate'].includes(domkey)) {
continue;
}
if(userUsbType === '7' && ['needauto', 'enableDate', 'enableUsbType', 'mobile', 'tokenKey', 'serial'].includes(domkey)) continue;
if(userUsbType == '901' &&usbstate=='0' && ['enableDate'].includes(domkey)) continue;
if (userUsbType == '901' && [ 'enableUsbType', 'mobile', 'tokenKey', 'serial'].includes(domkey)) continue;
if ((!userUsbType || userUsbType == '-1') && domkey !== 'userUsbType') continue;
if (userUsbType == '4' && (!usbstate || usbstate == '0' || usbstate == '2') && (domkey == 'tokenKey' || domkey == 'serial' || domkey == 'needauto' || domkey == 'enableDate' || domkey == 'enableUsbType')) continue;
if (userUsbType == '4' && usbstate == '1' && (!needauto || needauto == '0') && (domkey == 'tokenKey' || domkey == 'serial' || domkey == 'enableDate' || domkey == 'enableUsbType')) continue;
if (userUsbType == '4' && usbstate == '1' && needauto == '1' && (domkey == 'tokenKey' || domkey == 'serial')) continue;
if (userUsbType == '2' && (!usbstate || usbstate == '0' || usbstate == '2') && (domkey == 'tokenKey' || domkey == 'mobile' || domkey == 'needauto' || domkey == 'enableDate' || domkey == 'enableUsbType')) continue;
if (userUsbType == '2' && usbstate == '1' && (!needauto || needauto == '0') && (domkey == 'tokenKey' || domkey == 'mobile' || domkey == 'enableDate' || domkey == 'enableUsbType')) continue;
if (userUsbType == '2' && usbstate == '1' && needauto == '1' && (domkey == 'tokenKey' || domkey == 'mobile')) continue;
if (userUsbType == '3' && (!usbstate || usbstate == '0' || usbstate == '2') && (domkey == 'serial' || domkey == 'mobile' || domkey == 'needauto' || domkey == 'enableDate' || domkey == 'enableUsbType')) continue;
if (userUsbType == '3' && usbstate == '1' && (!needauto || needauto == '0') && (domkey == 'serial' || domkey == 'mobile' || domkey == 'enableDate' || domkey == 'enableUsbType')) continue;
if (userUsbType == '3' && usbstate == '1' && needauto == '1' && (domkey == 'serial' || domkey == 'mobile')) continue;
if (userUsbType == '901' && usbstate == '0' &&domkey == 'needauto' ) continue;
if ( userUsbType == '901'&&needauto=='0'&&domkey=='enableDate' ) continue;
if ((domkey == 'tokenKey' || domkey == 'serial' || domkey == 'mobile') && field.viewAttr !== 3) field.viewAttr = 3;
let dom;
if (domkey == 'serial') {
dom = this.getInputAndBtn(field, form, formParams);
} else if (domkey == 'tokenKey') {
dom = this.getInputAndBtn(field, form, formParams);
}else if(domkey == 'usbstate'||domkey == 'enableUsbType'){
let options = field.options;
if(formParams.userUsbType=='901'){
options = options.filter(d => d.key !== '2')
}
dom = ;
} else{
dom = ;
}
arr.push(
);
}
})
//将二次验证密码push到队列中
const {
isSecondaryVerifyUsed,
isSecondaryVerifySetted,
saveSecondaryPasswordSetting,
} = hrmSystemCard;
arr.push(
{isSecondaryVerifySetted ? getLabel('514132',"已设置") : i18n.label['514133']()}
{ isSecondaryVerifySetted &&
}
)
return {arr}
}
showConfirm = () => {
const {
hrmSystemCard
} = this.props, {
saveSecondaryPasswordSetting
} = hrmSystemCard;
confirm({
title: getLabel(131329, '信息确认'),
content: (
{getLabel('528277',"确定要停用该管理员的二次验证密码吗?")}
{getLabel('528278',"为确保账户安全,请及时重设密码!")}
),
okText: getLabel(33703, '确定'),
cancelText: getLabel(32694, '取消'),
onOk() {
saveSecondaryPasswordSetting(false);
},
onCancel() {
return false
},
});
}
getInputAndBtn(field, form, formParams) {
return (
)
}
secSettingFormVerify() {
const {
hrmSystemCard
} = this.props;
const {
form2,
isSecSetting
} = hrmSystemCard;
const userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
const isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
const isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器
let params = form2.getFormParams();
let userUsbType = params.userUsbType;
let usbstate = params.usbstate;
let mobile = params.mobile;
let tokenKey = params.tokenKey;
let serial = params.serial;
if (!isSecSetting) {
message.warning(i18n.message.noAvailableCheckMode());
return false;
}
if (!userUsbType || userUsbType == '-1') {
// message.warning('请选择辅助校验方式!');
// return false;
hrmSystemCard.save();
return
}
if (userUsbType == '4' && !mobile) {
message.warning(i18n.message.fillTelphoneNum());
return false;
}
if (userUsbType == '4' && mobile && mobile.length !== 11) {
message.warning(i18n.message.fillAvailableTelphoneNum());
return false;
}
if (userUsbType == '2' && !isIE) {
message.warning(i18n.message.htKey());
return false;
}
if (userUsbType == '2' && isIE && !serial) {
message.warning(i18n.message.fillUserKey());
return false;
}
if (userUsbType == '3' && !tokenKey) {
message.warning(i18n.message.bindToken());
return false;
}
if (userUsbType == '3' && tokenKey && (!this.isdigit(tokenKey) || tokenKey.length !== 10)) {
message.warning(i18n.message.tokenNumLen());
return false;
}
this.isTokenKeyUsed({
tokenKey: tokenKey
});
}
isdigit(s) {
var r, re;
re = /\d*/i; //\d表示数字,*表示匹配多个数字
r = s.match(re);
return (r == s) ? true : false;
}
//序列号是否被占用
isTokenKeyUsed(params) {
const {
hrmSystemCard
} = this.props;
const {userid} = hrmSystemCard
params.userid = userid
params.id = userid
WeaTools.callApi('/api/hrm/sysadmin/checkIsUsed', 'POST', params).then((data) => {
if (data.isUsed) {
let msg = i18n.message.tokenBinded().replace('{params}', data.lastname);
message.warning(msg);
// message.warning('令牌序列号已经绑定给' + data.lastname + ',不能重复绑定!');
} else {
hrmSystemCard.save();
}
})
}
//"用户密钥"和"令牌序列号"绑定
updateKey() {
const {
hrmSystemCard
} = this.props;
const {
form2
} = hrmSystemCard;
let needusb = (form2.getFormParams()).userUsbType;
if (needusb == "2") {
let returnstr = PublicFunc.getUserName() || '';
if (returnstr !== "") {
hrmSystemCard.setLoginId(returnstr);
}
} else if (needusb == "3") {
this.bindTokenKey();
}
}
bindTokenKey() {
const title = "";
let url = "/spa/hrm/index_mobx.html#/main/hrm/BindTokenKey?requestFrom=system&userid=" + this.props.params.hrmId;
const dialog = ecCom.WeaTools.createDialog({
title,
url,
style: {
width: 600,
height: 365
},
zIndex: 9999
});
dialog.show();
}
setSecurity() {
const {
hrmSystemCard
} = this.props;
let hrmId = this.props.params.hrmId || '';
hrmSystemCard.hrmId = hrmId;
let params = {
id: hrmId
};
hrmSystemCard.setDialogShow();
hrmSystemCard.getSecSettingCondition(params);
}
render() {
const {
hrmSystemCard
} = this.props;
const {
tabKey,
headerColumns,
tableStore,
isPanelShow,
isSecSettingShow,
hrmId,
hrmName,
hasRight,
loading,
hasTable,
} = hrmSystemCard;
const {
form1
} = hrmSystemCard;
const btn1 = [
(),
]
const btn2 = [
(),
(),
(),
];
const btn3 = [
(),
]
const dropMenuDatas = [{
key: '0',
content: i18n.label.securitySetting(),
icon:
}, {
key: '1',
content: i18n.button.save(),
icon:
}, ]
const dropMenuDatas1 = dropMenuDatas.slice(0, 1);
const dropMenuDatas2 = dropMenuDatas.slice(1, 2);
dropMenuDatas1.push({
icon: ,
content: i18n.button.log(),
key: 'showLog',
onClick: key => {
window.setLogViewProps({
logSmallType: i18n.smallType.HRM_RSOURCEMANAGER_SECURITYSETTING,
});
}
})
const tabName1 = [{
key: '0',
title: i18n.label.all()
}, {
key: '1',
title: i18n.label.today()
}, {
key: '2',
title: i18n.label.tswk()
}, {
key: '3',
title: i18n.label.tsmth()
}, {
key: '4',
title: i18n.label.tssn()
}, {
key: '5',
title: i18n.label.tsyr()
}, ]
const items = [{
com: (
)
}]
if (loading) {
return
}
if (!hasRight) {
return (
{getLabel(2012, '对不起,您暂时没有权限!')}
)
}
return (
(key === "0") && this.setSecurity()}
collectParams={{favname: i18n.label.sysManager(),favouritetype:5}}
>
}
iconBgcolor='#217346'
loading={true}
buttons={btn1}
showDropIcon={true}
dropMenuDatas={dropMenuDatas1}
onDropMenuClick={() => this.setSecurity()}
/>
hrmSystemCard.setShowSearchAd(bool)}
hideSearchAd={ () => hrmSystemCard.hideSearchAd() }
searchsAd={{form1.render()}
}
advanceHeight={94}
hasMask={false}
buttonsAd={btn2}
onSearch={() =>{
hrmSystemCard.getTableInfo()
// hrmSystemCard.getHeaderColumn();
} }
onChange={(key) =>{ console.log(key); hrmSystemCard.tabClick(key)}}
onSearchChange={v => hrmSystemCard.updateFormFields(v, '1')}
/>
{this.getViewCards()}
{hasTable && (
) }
{hrmSystemCard.hideDialog(); hrmSystemCard.reset()}}
buttons={btn3}
style={{width: '600px', height: '300px'}}
>
this.secSettingFormVerify()}>
{this.getSecSettingForm()}
)
}
}
export default SystemCard