diff --git a/pc4mobx/hrmSalary/apis/payroll.js b/pc4mobx/hrmSalary/apis/payroll.js
index 85680736..8d6e72fe 100644
--- a/pc4mobx/hrmSalary/apis/payroll.js
+++ b/pc4mobx/hrmSalary/apis/payroll.js
@@ -137,7 +137,14 @@ export const savePayroll = params => {
//工资单-编辑工资单
export const updatePayroll = params => {
- return WeaTools.callApi('/api/bs/hrmsalary/salaryBill/template/update', 'POST', params);
+ return fetch('/api/bs/hrmsalary/salaryBill/template/update', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ }).then(res => res.json())
}
diff --git a/pc4mobx/hrmSalary/components/progressModal/index.js b/pc4mobx/hrmSalary/components/progressModal/index.js
index 64ba0d3a..818ce3fb 100644
--- a/pc4mobx/hrmSalary/components/progressModal/index.js
+++ b/pc4mobx/hrmSalary/components/progressModal/index.js
@@ -6,7 +6,7 @@ export default class ProgressModal extends React.Component {
render() {
return (
-
{this.props.onCancel()}} footer={null}>
+ {this.props.onCancel()}} footer={null}>
diff --git a/pc4mobx/hrmSalary/pages/payroll/components/backgroundUpload.js b/pc4mobx/hrmSalary/pages/payroll/components/backgroundUpload.js
index 91e5ff7c..d66e626e 100644
--- a/pc4mobx/hrmSalary/pages/payroll/components/backgroundUpload.js
+++ b/pc4mobx/hrmSalary/pages/payroll/components/backgroundUpload.js
@@ -21,16 +21,13 @@ function beforeUpload(file) {
}
export default class BackgroundUpload extends React.Component {
- constructor(props) {
- super(props)
- this.state = {
- showOperate: false,
- visible: false
- }
- }
- componentWillMount() {
- this.props.imageUrl && this.setState({imageUrl: this.props.imageUrl})
- }
+ constructor(props) {
+ super(props)
+ this.state = {
+ showOperate: false,
+ visible: false
+ }
+ }
// 上传完成监听
handleChange = (info) => {
@@ -42,10 +39,7 @@ function beforeUpload(file) {
// 删除
handleDelete = () => {
- this.setState({
- imageUrl: null,
- })
- this.props.onChange && this.props.onChagne("");
+ this.props.onChange && this.props.onChange(null);
}
// 预览
@@ -61,11 +55,11 @@ function beforeUpload(file) {
showUploadList: false,
onChange: this.handleChange.bind(this)
};
- const imageUrl = this.state.imageUrl;
+ const { imageUrl } = this.props;
return (
{
- imageUrl ?
+ (imageUrl || imageUrl == "") ?
{this.setState({showOperate: true})}} onMouseLeave={() => {this.setState({showOperate: false})}}>

{
@@ -86,9 +80,6 @@ function beforeUpload(file) {
-
-
-
);
}
}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/payroll/index.js b/pc4mobx/hrmSalary/pages/payroll/index.js
index 1236a942..550f4b27 100644
--- a/pc4mobx/hrmSalary/pages/payroll/index.js
+++ b/pc4mobx/hrmSalary/pages/payroll/index.js
@@ -42,6 +42,7 @@ export default class Payroll extends React.Component {
templateCurrentId: "",
copyModalVisible: false
}
+ this.recordId = ""
columns.map(item => {
if(item.dataIndex == "cz") {
item.render = (text, record) => {
@@ -132,6 +133,10 @@ export default class Payroll extends React.Component {
// 模板列表编辑
handleTemplateListEdit(record) {
+ const { payrollStore } = this.props;
+ const { getPayrollShowForm } = payrollStore
+ this.recordId = record.id
+ getPayrollShowForm(record.id)
this.setState({templateCurrentId: record.id, selectedTab: 0},() => {
this.setState({editSlideVisible: true})
})
@@ -184,9 +189,24 @@ export default class Payroll extends React.Component {
// 预览
handlePreview() {
+ const { payrollStore : {templateBaseData, salaryTemplateShowSet, salaryItemSet}} = this.props;
+ window.localStorage.setItem("templateBaseData", JSON.stringify(templateBaseData))
+ window.localStorage.setItem("salaryTemplateShowSet", JSON.stringify(salaryTemplateShowSet))
+ window.localStorage.setItem("salaryItemSet", JSON.stringify(salaryItemSet))
window.open("/spa/hrmSalary/static/index.html#/main/hrmSalary/templatePreview")
}
+ // 更新保存
+ handleUpdateSave() {
+ const { payrollStore} = this.props;
+ const { fetchUpdatePayroll } = payrollStore;
+ fetchUpdatePayroll(this.recordId).then(() => {
+ this.setState({
+ editSlideVisi1le: false,
+ selectedTab: 0
+ })
+ })
+ }
render() {
const { payrollStore } = this.props;
@@ -280,6 +300,12 @@ export default class Payroll extends React.Component {
currentStep: this.state.currentStep + 1
})
}
+ // 上一步
+ const prevStep = () => {
+ this.setState({
+ currentStep: this.state.currentStep - 1
+ })
+ }
return (
@@ -338,7 +364,7 @@ export default class Payroll extends React.Component {
}
{
currentStep == 1 &&
-
+
@@ -360,7 +386,6 @@ export default class Payroll extends React.Component {
/>
}
-
{
this.state.editSlideVisible &&
{this.handleUpdateSave()}}
selectedTab={selectedTab}
subItemChange={
(item) => {this.setState({selectedTab: item.key})}
@@ -382,7 +408,7 @@ export default class Payroll extends React.Component {
}
content={
{
- selectedTab == 0 &&
+ selectedTab == 0 && {this.handleBaseInfoChange(request)}}/>
}
{
selectedTab == 1 &&
diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js
index 85d6bebe..6aa51ded 100644
--- a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js
+++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js
@@ -1,9 +1,10 @@
import React from 'react'
-import { Row, Col, Switch } from 'antd'
+import { Row, Col, Switch, Select } from 'antd'
import { WeaInput, WeaSelect } from 'ecCom'
import { inject, observer } from 'mobx-react';
import RequiredLabelTip from '../../../components/requiredLabelTip';
import "./index.less"
+const { Option } = Select
@inject('payrollStore')
@observer
@@ -21,9 +22,13 @@ export default class BaseInformForm extends React.Component {
const { getPayrollBaseForm} = payrollStore
getPayrollBaseForm(this.props.id).then(data => {
this.setState({
- inited: true,
options: data.salarySobOptions,
request: data.templateBaseData
+ }, () => {
+ this.setState({
+ inited: true,
+ })
+
})
})
}
@@ -49,8 +54,14 @@ export default class BaseInformForm extends React.Component {
薪资账套
+
{
- this.state.inited && {this.hanldeChange({salarySob: value})}}/>
+ this.state.inited && this.state.options.length > 0 &&
}
diff --git a/pc4mobx/hrmSalary/pages/payroll/templatePreview/computerTemplate/index.js b/pc4mobx/hrmSalary/pages/payroll/templatePreview/computerTemplate/index.js
index 9d00cb4f..1413baf7 100644
--- a/pc4mobx/hrmSalary/pages/payroll/templatePreview/computerTemplate/index.js
+++ b/pc4mobx/hrmSalary/pages/payroll/templatePreview/computerTemplate/index.js
@@ -1,35 +1,77 @@
import React from 'react'
import background from './background.png'
import { Row, Col } from 'antd'
+import moment from 'moment'
+import { inject, observer } from 'mobx-react';
+
+@inject('payrollStore')
+@observer
export default class ComputerTemplate extends React.Component {
+ constructor(props) {
+ super(props);
+ this.templateBaseData = {}
+ this.salaryItemSetStr = {}
+ this.salaryTemplateShowSet = []
+ }
+ componentWillMount() {
+ let templateBaseDataStr = window.localStorage.getItem("templateBaseData");
+ this.templateBaseData = JSON.parse(templateBaseDataStr)
+ let salaryTemplateShowSetStr = window.localStorage.getItem("salaryTemplateShowSet");
+ let salaryItemSetStr = window.localStorage.getItem("salaryItemSet");
+ this.salaryItemSet = JSON.parse(salaryItemSetStr)
+ this.salaryTemplateShowSet = JSON.parse(salaryTemplateShowSetStr)
+ }
+
render() {
const { isPC } = this.props;
return (
- 测试标题
+ {this.salaryTemplateShowSet.theme.replace("${companyName}", "上海泛微").replace("${salaryMonth}", moment(new Date()).format("YYYY-MM"))}
-

+

+
+
+
+ {
+ this.salaryTemplateShowSet.textContentPosition == 1 && this.salaryTemplateShowSet.textContent
+ }
-
-
- 员工信息
-
+ {
+ this.salaryItemSet.length > 0 &&
+ this.salaryItemSet.map(group => (
+
+
+ {group.groupName}
+
+
+
+ {
+ group.items && group.items.map(item => (
+
+
+ {item.name}
+ {item.salaryItemValue}
+
+
+ ))
+ }
+
+
+ ))
-
- 个税扣缴义务人
- 上海泛微
- 姓名
- 张三
- 部门
- 研发部
-
-
+ }
+
+
+
+ {
+ this.salaryTemplateShowSet.textContentPosition == 2 && this.salaryTemplateShowSet.textContent
+ }
)
diff --git a/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.js b/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.js
index ed6be8b5..1ea6dce8 100644
--- a/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.js
+++ b/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.js
@@ -4,7 +4,10 @@ import computer from './computer.png'
import './index.less'
import ComputerTemplate from './computerTemplate'
import PhoneTemplate from './phoneTemplate'
+import { inject, observer } from 'mobx-react';
+@inject('payrollStore')
+@observer
export default class TemplatePreview extends React.Component {
constructor(props) {
super(props)
@@ -13,6 +16,8 @@ export default class TemplatePreview extends React.Component {
}
}
+
+
handleSelectClick(selectKey) {
this.setState({selectKey})
}
@@ -34,7 +39,7 @@ export default class TemplatePreview extends React.Component {
{
- this.state.selectKey == "0" ?
:
+ this.state.selectKey == "0" ?
:
}
diff --git a/pc4mobx/hrmSalary/pages/payroll/templatePreview/phoneTemplate/index.js b/pc4mobx/hrmSalary/pages/payroll/templatePreview/phoneTemplate/index.js
index 9fdfab88..571d607d 100644
--- a/pc4mobx/hrmSalary/pages/payroll/templatePreview/phoneTemplate/index.js
+++ b/pc4mobx/hrmSalary/pages/payroll/templatePreview/phoneTemplate/index.js
@@ -2,8 +2,13 @@ import React from 'react'
import { Row, Col} from 'antd'
import background from '../computerTemplate/background.png'
import "../index.less"
+import { inject, observer } from 'mobx-react';
+
+@inject('payrollStore')
+@observer
export default class PhoneTemplate extends React.Component {
+
render() {
return (
diff --git a/pc4mobx/hrmSalary/stores/payroll.js b/pc4mobx/hrmSalary/stores/payroll.js
index dccf61e2..f6a26d89 100644
--- a/pc4mobx/hrmSalary/stores/payroll.js
+++ b/pc4mobx/hrmSalary/stores/payroll.js
@@ -133,7 +133,7 @@ export class payrollStore {
if(res.status) {
let response = res.data.salaryTemplateBaseSet
let templateBaseData = response.data
- templateBaseData.salarySob = templateBaseData.salarySob !== undefined ? templateBaseData.salarySob + "": null;
+ templateBaseData.salarySob = templateBaseData.salarySob != undefined ? templateBaseData.salarySob + "": null;
this.templateBaseData = templateBaseData // 基础信息表单数据
this.salarySobOptions = response.salarySobOptions ?
@@ -242,6 +242,28 @@ export class payrollStore {
})
}
+ // 工资单模板-更新工资单模板
+ @action
+ fetchUpdatePayroll = () => {
+ if(!(this.validateSalaryTemplateShowSet())) {
+ return false
+ }
+ let params = this.convertParams()
+ params.id = id
+ return new Promise((resolve, reject) => {
+ API.updatePayroll(params).then(res => {
+ if(res.status) {
+ message.success("保存成功");
+ this.getPayrollTemplateList();
+ resolve();
+ } else {
+ message.error(res.errormsg || "保存失败")
+ reject()
+ }
+ })
+ })
+ }
+
//工资单-获取薪资账套下拉列表
@action
getPayrollTemplateLedgerList = () => {