salary-management-front/pc4mobx/hrmSalary/pages/payroll/stepForm/showSettingForm.js

151 lines
6.8 KiB
JavaScript
Raw Normal View History

2022-03-18 14:16:52 +08:00
import React from 'react'
import { Row, Col, Upload, Icon, Radio, Switch } from 'antd'
import { WeaInput } from 'ecCom'
2022-04-13 16:56:31 +08:00
import { inject, observer } from 'mobx-react';
import BackgroundUpload from '../components/backgroundUpload'
2022-04-14 19:32:57 +08:00
import RequiredLabelTip from '../../../components/requiredLabelTip';
2022-03-18 14:16:52 +08:00
const Dragger = Upload.Dragger;
2022-04-13 16:56:31 +08:00
@inject('payrollStore')
@observer
2022-03-18 14:16:52 +08:00
export default class ShowSettingForm extends React.Component {
2022-04-13 16:56:31 +08:00
componentWillMount() {
const { payrollStore } = this.props;
const { initShowSettingForm } = payrollStore
initShowSettingForm(this.props.id)
}
// form 字段变化时的回调
handleChange(params) {
const { payrollStore: {salaryTemplateShowSet, setSalaryTemplateShowSet}} = this.props;
2022-04-14 19:32:57 +08:00
let request = {...salaryTemplateShowSet, ...params};
2022-04-13 16:56:31 +08:00
setSalaryTemplateShowSet(request);
}
// 工资单主题 插入变量
handleThemeNameCllck(param) {
const { payrollStore } = this.props;
const { salaryTemplateShowSet, setSalaryTemplateShowSet } = payrollStore;
let request= {...salaryTemplateShowSet};
request.theme = (request.theme ? request.theme : "") + param;
setSalaryTemplateShowSet(request);
}
2022-03-18 14:16:52 +08:00
render() {
2022-04-13 16:56:31 +08:00
const { payrollStore } = this.props;
const { salaryTemplateShowSet } = payrollStore;
const { salaryItemSet } = payrollStore
const { theme,
background,
textContent,
textContentPosition,
salaryItemNullStatus,
salaryItemZeroStatus
} = salaryTemplateShowSet
2022-03-18 14:16:52 +08:00
const dropProps = {
name: 'file',
2022-04-13 16:56:31 +08:00
action: '/api/doc/upload/uploadFile',
onChange(info) {
const { status } = info.file;
if (status !== 'uploading') {
console.log(info.file, info.fileList);
}
if (status === 'done') {
message.success(`${info.file.name} file uploaded successfully.`);
} else if (status === 'error') {
message.error(`${info.file.name} file upload failed.`);
}
},
onDrop(e) {
console.log('Dropped files', e.dataTransfer.files);
},
2022-03-18 14:16:52 +08:00
};
return (
<div className="showSettingForm">
<div className="settingItemWrapper">
<div className="itemTitle">主题及其他设置</div>
<div className="itemContent">
<Row className="formItem">
<Col span={12}>
<Row>
2022-04-14 19:32:57 +08:00
<Col span={8}>工资单主题<RequiredLabelTip /></Col>
2022-03-18 14:16:52 +08:00
<Col span={16}>
2022-04-13 16:56:31 +08:00
<WeaInput style={{width: "200px"}} value={theme} onChange={(value) => {this.handleChange({theme:value})}}/>
2022-03-18 14:16:52 +08:00
</Col>
</Row>
</Col>
<Col span={12}>
2022-06-07 09:08:36 +08:00
<span style={{float: "right"}}>
2022-03-18 14:16:52 +08:00
插入变量
2022-04-13 16:56:31 +08:00
<a onClick={() => {this.handleThemeNameCllck("${companyName}")}} className="themeFormalStr">公司名称</a>
<a onClick={() => {this.handleThemeNameCllck("${salaryMonth}")}} className="themeFormalStr">薪资所属月</a>
2022-06-07 09:08:36 +08:00
</span>
2022-03-18 14:16:52 +08:00
</Col>
</Row>
<Row className="formItem">
2022-04-18 09:31:06 +08:00
<Col span={4}>工资单背景</Col>
2022-03-18 14:16:52 +08:00
<Col span={20}>
2022-04-14 19:32:57 +08:00
<BackgroundUpload imageUrl={background} onChange={(value) => {this.handleChange({background: value})}}/>
2022-04-13 16:56:31 +08:00
{/* <Dragger {...dropProps} style={{width: "100px"}}>
2022-03-18 14:16:52 +08:00
<div style={{ padding: '55px 0' }}>
<Icon type="plus" />
</div>
2022-04-13 16:56:31 +08:00
</Dragger> */}
2022-03-18 14:16:52 +08:00
</Col>
</Row>
<Row className="formItem">
<Col span={4}>文本内容</Col>
<Col span={20}>
2022-04-13 16:56:31 +08:00
<WeaInput value={textContent} onChange={(value) => {this.handleChange({textContent: value})}}/>
2022-03-18 14:16:52 +08:00
</Col>
</Row>
2022-04-13 16:56:31 +08:00
<Row className="formItem">
<Col span={4}>文本内容位置</Col>
<Col span={20}>
<Radio.Group value={textContentPosition} onChange={(e) => {this.handleChange({textContentPosition: e.target.value})}}>
<Radio value={"1"}>薪资项目前</Radio>
<Radio value={"2"}>薪资项目后</Radio>
</Radio.Group>
</Col>
</Row>
2022-03-18 14:16:52 +08:00
<Row className="formItem">
<Col span={6}>薪资项为空时不显示</Col>
<Col span={18}>
2022-04-13 16:56:31 +08:00
<Switch checked={salaryItemNullStatus} onChange={(value) => {this.handleChange({salaryItemNullStatus: value})}}/>
2022-03-18 14:16:52 +08:00
</Col>
</Row>
<Row className="formItem">
<Col span={6}>薪资项为0时不显示</Col>
<Col span={18}>
2022-04-13 16:56:31 +08:00
<Switch checked={salaryItemZeroStatus} onChange={(value) => {this.handleChange({salaryItemZeroStatus: value})}}/>
2022-03-18 14:16:52 +08:00
</Col>
</Row>
</div>
</div>
<div className="settingItemWrapper">
<div className="itemTitle">薪资项目设置</div>
<div className="itemContent">
2022-04-13 16:56:31 +08:00
{
salaryItemSet.map(group => (
<div className="configItemWrapper">
<div className="configTitle">{group.groupName}</div>
<div className="configContent">
{group.items.map(item => (
<span className="editItem">{item.name}</span>
))}
</div>
</div>
))
}
2022-03-18 14:16:52 +08:00
</div>
</div>
</div>
)
}
}