weaver_trunk_cli/pc4mobx/hrm/components/applicant/util.js

158 lines
3.8 KiB
JavaScript

import {
Row,
Col,
Button,
} from 'antd';
import {
WeaSwitch,
} from 'comsMobx';
import {
WeaFormItem,
WeaLocaleProvider,
} from 'ecCom';
const getLabel = WeaLocaleProvider.getLabel;
const downloadCvs2Img = (params) => {
const {
cvs,
title
} = params;
let $a = document.createElement('a');
$a.download = title + '.jpg';
$a.target = '_blank';
let url;
if (cvs) {
url = cvs.toDataURL("image/jpg");
}
if (url) $a.href = url;
if (typeof MouseEvent === 'function') {
var evt = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: false
});
$a.dispatchEvent(evt);
} else {
if (window.navigator.msSaveOrOpenBlob) {
var bstr = atob(url.split(',')[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
var blob = new Blob([u8arr]);
window.navigator.msSaveOrOpenBlob(blob, title + '.jpg');
} else {
var html = '' +
'<body style="margin:0;">' +
'<img src="' + url + '" style="max-width:100%;" title="" />' +
'</body>';
var tab = window.open();
tab.document.write(html);
}
}
}
const format = (fmt) => {
const date = new Date();
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
const getSearchsAd = (params) => {
const {
isFormInit,
conditions,
form
} = params;
let arr = [];
isFormInit && conditions.map((c, i) => {
c.items.map((field, index) => {
arr.push(<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@d7e446@${index}`} span={10} offset={1}>
<div style={{marginTop: 20}}>
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@p1po25@${index}`}
label={`${field.label}`}
labelCol={{span: 6}}
wrapperCol={{span: 18}}>
{<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@xeusul@${index}`} fieldConfig={field} form={form} formParams={form.getFormParams()} />}
</WeaFormItem>
</div>
</Col>)
})
})
return <Row ecId={`${this && this.props && this.props.ecId || ''}_Row@c0cjzg`}>{arr}</Row>;
}
const getButtonsAd = (params) => {
const {
form,
search,
cancel,
} = params;
let buttonsAd = [];
[0, 1, 2].map((v, i) => {
const name = (v == 0) ? getLabel(82529, '搜索') : (v == 1) ? getLabel(27088, '重置') : getLabel(32694, '取消');
buttonsAd.push(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@h4x0ik@${i}`} type={v==0 ? "primary" : ''} onClick={() => {v==1 ? form.reset() : v== 0 ? search() : cancel()}}>{name}</Button>);
});
return buttonsAd;
}
const tabs = {
getSearchsAd,
getButtonsAd,
}
import {
message,
} from 'antd';
const fetch = (params) => {
const {
name,
fetchParams = {},
logic,
Api,
} = params;
Api[name](fetchParams).then(cb => {
const {
api_status,
} = cb;
if (api_status) {
logic(cb);
} else {
message.error();
}
}).catch(error => {
message.error();
});
}
export {
downloadCvs2Img,
format,
tabs,
fetch,
}