weaver_trunk_cli/pc4mobx/hrm/components/card/SystemInfo.js

597 lines
21 KiB
JavaScript
Raw Normal View History

2023-09-22 14:01:42 +08:00
import { Button, Row, Col, Modal } from "antd";
import {
WeaTools,
WeaSearchGroup,
WeaRightMenu,
WeaFormItem,
WeaTop,
WeaCheckbox,
WeaSelect,
WeaDatePicker,
WeaDialog,
WeaAlertPage,
WeaLocaleProvider,
} from "ecCom";
import isEmpty from "lodash/isEmpty";
import forEach from "lodash/forEach";
import { WeaSwitch } from "comsMobx";
import { inject, observer } from "mobx-react";
import * as mobx from "mobx";
import moment from "moment";
import "../../style/systeminfo.less";
import InputBtn from "../../coms/inputBtn";
import TopButton from "../../coms/topButton";
import NeedAutoBtn from "../../coms/needAutoBtn";
import { i18n } from "../../public/i18n";
import {addContentPath} from '../../util/index.js'
const getKey = WeaTools.getKey;
const toJS = mobx.toJS;
const confirm = Modal.confirm;
const getLabel = WeaLocaleProvider.getLabel;
@inject("hrmSystemInfo")
@inject("hrmCard")
@observer
class HrmSystemInfo extends React.Component {
componentDidMount() {
const { hrmSystemInfo, hrmCard } = this.props;
hrmSystemInfo.init();
hrmSystemInfo.hrmId = this.props.params.hrmId || "";
hrmSystemInfo.getFormField();
hrmSystemInfo.getWeekInfo(new moment().format("YYYY-MM-DD"));
const dom = $(
'<Object id="htactx" name="htactx" classid="clsid:FB4EE423-43A4-4AA9-BDE9-4335A6D3C74E" codebase="HTActX.cab#version=1,0,0,1" style="HEIGHT: 0px; WIDTH: 0px"></Object>'
);
$(document.body).append(dom);
hrmCard.setTopButtons(this.getTopButtons);
hrmCard.setTopRightMenus(this.getRightMenu);
hrmCard.setTopShowDropIcon(true);
}
getSearchs = () => {
const { hrmSystemInfo } = this.props;
let {
isEditor,
checkValue,
inputVlaue,
pickerValue,
selectValue,
options,
formFields,
form,
} = hrmSystemInfo;
const formParams = hrmSystemInfo.getFormParams();
const userUsbType = formParams.userUsbType || "";
const usbState = formParams.usbstate || "";
const { date } = hrmSystemInfo;
const cancelSecondPwd = () => {
confirm({
title: i18n.confirm.defaultTitle(),
content: (
<div>
<div>{i18n.label["388923"]()}</div>
<div>{i18n.label["388924"]()}</div>
</div>
),
okText: i18n.button.ok(),
cancelText: i18n.button.cancel(),
width: 420,
onOk: () => {
form.updateFields({
useSecondaryPwd: {
value: "0",
},
});
},
});
};
const { isFormInit } = form;
let group = [];
let group1 = [];
let colIndex = 1;
isFormInit &&
formFields.forEach((c, i) => {
c.items.forEach((field, j) => {
let domkey = field.domkey[0] || "";
let hide = false;
let hideLabel = false;
let is901 = userUsbType == "901";
if (
userUsbType == "" &&
(domkey == "tokenKey" || domkey == "serial" || domkey == "usbstate")
)
hide = true;
if (
(userUsbType == "4" || userUsbType == "6") &&
(domkey == "tokenKey" || domkey == "serial")
)
hide = true;
if (userUsbType == "2" && domkey == "tokenKey") hide = true;
if (userUsbType == "3" && domkey == "serial") hide = true;
if (is901 && ["tokenKey", "serial"].indexOf(domkey) >= 0) {
hide = true;
}
if (!isEditor && (domkey == "password" || domkey == "password1"))
hide = true;
if (domkey === "validatecode") {
hide = isEditor ? false : true;
}
if (domkey == "startUsing") {
hide = true;
if (
isEditor &&
(userUsbType == "3" || userUsbType == "4") &&
usbState == "1"
) {
hide = false;
}
}
if (!hide) {
let dom;
if (isEditor && domkey == "tokenKey") {
hideLabel = true;
const key = getKey(field);
const bindObj = form.$(key);
dom = (
<div>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@msn9sk@${j}`}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@cmw0e7@${j}`} span={7}>
<span>{i18n.label.tokenNum()}: </span>
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@46ev1j@${j}`} span={17}>
<InputBtn ecId={`${this && this.props && this.props.ecId || ''}_InputBtn@rimd4i`}
btnText={i18n.label.binding()}
{...bindObj.bind()}
viewAttr={3}
onBtnClick={(v) => this.updateKey()}
/>
</Col>
</Row>
</div>
);
} else if (isEditor && domkey == "serial") {
hideLabel = true;
const key = getKey(field);
const bindObj = form.$(key);
dom = (
<div>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@khq2m4@${j}`}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@x3qzk4`} span={7}>
<span>{i18n.label.userKey()}: </span>
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@zm5n2j`} span={17}>
<InputBtn ecId={`${this && this.props && this.props.ecId || ''}_InputBtn@z4yita`}
btnText={i18n.label.binding()}
{...bindObj.bind()}
viewAttr={3}
onBtnClick={(v) => this.updateKey(v)}
/>
</Col>
</Row>
</div>
);
} else if (isEditor && domkey == "startUsing") {
hideLabel = true;
dom = (
<div>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@uicyvk`} style={{ lineHeight: "40px" }}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@a5uyo4`} span={6}>
<span>{i18n.label.autoEnable()}</span>
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@67onpo`} span={18}>
<WeaCheckbox ecId={`${this && this.props && this.props.ecId || ''}_WeaCheckbox@1mjy6m`}
display="switch"
value={checkValue}
onChange={this.onCheckChange}
/>
</Col>
</Row>
{checkValue && checkValue == "1" && (
<div>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@7yx7ts`} style={{ lineHeight: "40px" }}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@aas59z`} span={6}>
<span>{i18n.label.enableDate()}</span>
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@2on656`} span={18}>
<WeaDatePicker ecId={`${this && this.props && this.props.ecId || ''}_WeaDatePicker@wurx8j`}
noInput
startValue={new Date()}
viewAttr={3}
value={pickerValue}
onChange={this.onPickerChange}
/>
</Col>
</Row>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@8byq0n`} style={{ lineHeight: "40px" }}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@sbq3zd`} span={6}>
<span>{i18n.label.enableMode()}</span>
</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@4p0402`} span={18}>
<WeaSelect ecId={`${this && this.props && this.props.ecId || ''}_WeaSelect@qefxjy`}
options={options}
viewAttr={3}
value={selectValue}
onChange={this.onSelectChange}
/>
</Col>
</Row>
</div>
)}
</div>
);
} else if (domkey == "useSecondaryPwd") {
dom = (
<div className="wea-field-readonly">
{formParams.useSecondaryPwd === "1"
? i18n.label["15809"]()
: i18n.label["15808"]()}
</div>
);
} else {
dom = <WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@jwauuu`} fieldConfig={field} form={form} onChange={this.onChangeHandle}/>;
}
if (!isEditor) {
if (colIndex % 2 == 0) {
group1.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@ysix7b@${j}`}
underline
label={`${field.label}`}
labelCol={{ span: `${window.HrmLabelCol}` }}
wrapperCol={{ span: `${window.HrmWrapperCol}` }}
>
{dom}
</WeaFormItem>
);
} else {
group.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@4wy145@${j}`}
underline
hideLabel={hideLabel}
label={`${field.label}`}
labelCol={{ span: `${window.HrmLabelCol}` }}
wrapperCol={{ span: `${window.HrmWrapperCol}` }}
>
{dom}
</WeaFormItem>
);
}
colIndex++;
} else {
if (
domkey == "password" ||
domkey == "password1" ||
domkey == "seclevel"
) {
group1.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@yaigya@${j}`}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
wrapperCol={{ span: `${field.fieldcol}` }}
>
{dom}
</WeaFormItem>
);
} else if (domkey == "useSecondaryPwd") {
group1.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@bim9k6@${j}`}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
wrapperCol={{ span: `${field.fieldcol}` }}
>
<div>
<div
style={{
float: "left",
lineHeight: "30px",
marginRight: "30px",
}}
>
{formParams.useSecondaryPwd === "1"
? i18n.label["15809"]()
: i18n.label["15808"]()}
</div>
{formParams.useSecondaryPwd === "1" && (
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@4skmcr@${j}`}
style={{ float: "left" }}
type="primary"
onClick={() => cancelSecondPwd()}
>
{i18n.label["26471"]()}
</Button>
)}
</div>
</WeaFormItem>
);
} else if (domkey === "validatecode") {
group1.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@yec9mg@${j}`}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
wrapperCol={{ span: `${field.fieldcol}` }}
>
{dom}
<img
src={addContentPath(`/weaver/weaver.file.MakeValidateCode?isView=1&validatetype=0&validatenum=4&seriesnum_=${date}`)}
style={{
cursor: "pointer",
position: "absolute",
top: -5,
left: "105%",
}}
onClick={() => (hrmSystemInfo.date = new Date().getTime())}
/>
</WeaFormItem>
);
} else if ((is901 || userUsbType == "6") && domkey == "usbstate") {
let statesOptions = Array.from(field.options);
statesOptions.pop();
group.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@uzbtbc@${j}`}
hideLabel={hideLabel}
label={field.label}
labelCol={{ span: field.labelcol }}
wrapperCol={{ span: field.fieldcol }}
>
<WeaSelect ecId={`${this && this.props && this.props.ecId || ''}_WeaSelect@2tv9ju@${j}`}
options={statesOptions}
value={form.getFormParams().usbstate}
onChange={(v, showname) => {
this.changeUsbstate(v);
}}
/>
</WeaFormItem>
);
} else {
group.push(
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@jrrl9g@${j}`}
hideLabel={hideLabel}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
wrapperCol={{ span: `${field.fieldcol}` }}
>
{dom}
</WeaFormItem>
);
}
}
}
});
});
return (
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@qz8lpu`}>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@tnalgy`} span={12}>{group}</Col>
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@35m9rx`} span={12}>{group1}</Col>
</Row>
);
}
render() {
const { hrmSystemInfo } = this.props;
const { viewDate, isEditor, weekInfo, title, doSave } = hrmSystemInfo;
const formParams = hrmSystemInfo.getFormParams();
const { query } = this.props.location;
if (
!query.fromcard &&
window.location.href.indexOf("/spa/hrm/index_mobx.html") > -1
) {
document.title = i18n.label.sysInfo();
}
try{
let coms;
if(!query.fromcard){
coms = (
<WeaRightMenu ecId={`${this && this.props && this.props.ecId || ''}_WeaRightMenu@oipzs7`} datas={this.getRightMenu()}>
<WeaTop ecId={`${this && this.props && this.props.ecId || ''}_WeaTop@71juxj`}
title={title()}
icon={<i className="icon-coms-hrm" />}
iconBgcolor="#217346"
buttons={this.getTopButtons()}
buttonSpace={10}
showDropIcon={true}
dropMenuDatas={this.getRightMenu()}
>
<div className="hrm-my-card-basicInfo hrm-my-cardInfo wea-myhrm-systeminfo">
<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@67gu6q`}
needTigger={true}
title={i18n.label.sysInfo()}
showGroup={true}
>
{this.getSearchs()}
</WeaSearchGroup>
</div>
</WeaTop>
</WeaRightMenu>
)
}else{
coms = (
<div className="hrm-my-card-basicInfo hrm-my-cardInfo wea-myhrm-systeminfo">
<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@76xqqb`}
needTigger={true}
title={i18n.label.sysInfo()}
showGroup={true}
>
{this.getSearchs()}
</WeaSearchGroup>
</div>
)
}
return (
<React.Fragment ecId={`${this && this.props && this.props.ecId || ''}_undefined@we1g11`}>
<div
className="wea-myhrm-systeminfo wea-myhrm"
style={{ background: "#ffffff", minHeight: window.innerHeight - 146 }}
>
{coms}
</div>
</React.Fragment>
);
}catch(e){
return (
<WeaAlertPage ecId={`${this && this.props && this.props.ecId || ''}_WeaAlertPage@hex0bh`}>
<div style={{ color: '#000' }}>{i18n.message.authFailed()}</div>
</WeaAlertPage>
)
}
}
getTopButtons = () => {
const { hrmSystemInfo } = this.props;
const { isEditor, buttons } = hrmSystemInfo;
const save = (
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@xrophl`} type="primary" onClick={this.doSave}>
{i18n.button.save()}
</Button>
);
const back = (
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@qe01oj`} type="primary" onClick={this.backCard}>
{i18n.button.back()}
</Button>
);
const edit = (
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@g3eerr`} type="primary" onClick={this.edit}>
{i18n.button.modify()}
</Button>
);
const btns = [];
try{
if (isEditor) {
if (buttons && buttons.hasEdit) {
btns.push(save);
btns.push(back);
}
} else {
if (buttons && buttons.hasEdit) {
btns.push(edit);
}
}
}catch(e){}
return btns;
}
doSave = () => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.doSave();
}
edit = () => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.edit();
}
backCard = () => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.backCard();
}
updateKey = () => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.updateKey();
}
onPickerChange = (v) => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.onPickerChange(v);
}
onCheckChange = (v) => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.onCheckChange(v);
}
onSelectChange = (v) => {
const { hrmSystemInfo } = this.props;
hrmSystemInfo.onSelectChange(v);
}
getRightMenu = () => {
const { hrmSystemInfo } = this.props;
const { isEditor, buttons, hrmId } = hrmSystemInfo;
let arr = [];
try{
if (buttons && buttons.hasEdit) {
if (isEditor) {
arr = [
{
icon: <i className="icon-coms-common" />,
content: i18n.button.save(),
key: "save",
onClick: (key) => {
this.doSave();
},
},
{
icon: <i className="icon-coms-go-back" />,
content: i18n.button.back(),
key: "back",
onClick: (key) => {
this.backCard();
},
},
];
} else {
arr = [
{
icon: <i className="icon-coms-edit" />,
content: i18n.button.modify(),
key: "edit",
onClick: (key) => {
this.edit();
},
},
];
arr.push({
icon: <i className="icon-coms-Print-log" />,
content: i18n.button.log(),
key: "showLog",
onClick: (key) => {
window.setLogViewProps({
logSmallType: i18n.smallType.HRM_RSOURCE_CARD_SYSTEM,
targetId: hrmId,
});
},
});
}
}
}catch(e){}
return arr;
}
changeUsbstate = (v) => {
const {
hrmSystemInfo: { form },
} = this.props;
form.updateFields({
usbstate: {
value: v,
},
});
};
onChangeHandle = value => {
if(value.userUsbType && value.userUsbType.value == '6'){
const {
hrmSystemInfo: { form },
} = this.props;
form.updateFields({
usbstate: {
value: '1',
},
});
}
}
}
export default HrmSystemInfo;