From bbbc6454000a1ad8344f7efe6858a32f72ee0784 Mon Sep 17 00:00:00 2001
From: MustangDeng <670124965@qq.com>
Date: Fri, 25 Mar 2022 10:47:01 +0800
Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pages/dataAcquisition/cumDeduct/index.js | 4 +-
.../pages/salaryItem/customSalaryItemSlide.js | 89 +++----------------
pc4mobx/hrmSalary/pages/salaryItem/index.js | 83 ++++++++++++-----
pc4mobx/hrmSalary/pages/salaryItem/options.js | 68 ++++++++++++++
pc4mobx/hrmSalary/stores/cumDeduct.js | 2 +-
pc4mobx/hrmSalary/stores/cumSituation.js | 2 +-
pc4mobx/hrmSalary/stores/otherDeduct.js | 2 +-
pc4mobx/hrmSalary/stores/salaryItem.js | 64 +++++++++++--
8 files changed, 203 insertions(+), 111 deletions(-)
create mode 100644 pc4mobx/hrmSalary/pages/salaryItem/options.js
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/cumDeduct/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/cumDeduct/index.js
index 765c6fbf..d64fde44 100644
--- a/pc4mobx/hrmSalary/pages/dataAcquisition/cumDeduct/index.js
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/cumDeduct/index.js
@@ -63,7 +63,7 @@ export default class CumDeduct extends React.Component {
width={200}
onChange={v => {
this.setState({monthValue: v})
- getTableDatas({ declareMonth: [v], taxAgentId })
+ getTableDatas({declareMonth: [v], taxAgentId})
}}
/>
@@ -85,7 +85,7 @@ export default class CumDeduct extends React.Component {
value={taxAgentId}
onChange={v => {
this.setState({taxAgentId: v})
- getTableDatas({ taxAgentId: v, declareMonth: [monthValue]})
+ getTableDatas({taxAgentId: v, declareMonth: [monthValue]})
}}
/>
diff --git a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js
index 230f59d9..828d1cfd 100644
--- a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js
+++ b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js
@@ -2,89 +2,23 @@ import React from 'react'
import { Row, Col, Switch, Radio } from 'antd'
import { WeaHelpfulTip, WeaSelect, WeaTextarea, WeaInput } from 'ecCom'
import "./index.less"
+import { roundingModeOptions, patternOptions, dataTypeOptions } from "./options"
-const roundingModeOptions = [
- {
- key: "1",
- selected: false,
- showname: "原始数据"
- },
- {
- key: "2",
- selected: false,
- showname: "四舍五入"
- },
- {
- key: "3",
- selected: false,
- showname: "向上舍入"
- },
- {
- key: "4",
- selected: false,
- showname: "向下舍入"
- }
-];
-
-const patternOptions = [
- {
- key: "0",
- showname: "0",
- selected: false
- },
- {
- key: "1",
- showname: "1",
- selected: false
- },
- {
- key: "2",
- showname: "2",
- selected: false
- },
- {
- key: "3",
- showname: "3",
- selected: false
- },
- {
- key: "4",
- showname: "4",
- selected: false
- },
- {
- key: "5",
- showname: "5",
- selected: false
- },
-]
export default class CustomSalaryItemSlide extends React.Component {
constructor(props) {
super(props)
- this.state = {
- request: {
- name: '',
- useDefault: 0,
- useInEmployeeSalary: 0,
- systemType:0,
- roundingMode: 0,
- pattern: 0,
- valueType: 1,
- description: ""
- }
- }
}
handleChange(params) {
- let request = {...this.state.request, ...params}
+ let request = {...this.props.request, ...params}
this.setState({request})
this.props.onChange(request)
}
render() {
- const { request } = this.state;
- const { name, useDefault, useInEmployeeSalary, roundingMode, pattern, valueType, description } = request;
+ const { request, editable } = this.props;
+ const { name, useDefault, useInEmployeeSalary, roundingMode, pattern, valueType, description, dataType } = request;
return (
@@ -92,13 +26,13 @@ export default class CustomSalaryItemSlide extends React.Component {
名称
- {this.handleChange({name: value})}}/>
+ {this.handleChange({name: value})}}/>
默认使用
- {this.handleChange({useDefault: value ? 1 : 0})}}/>
+ {this.handleChange({useDefault: value ? 1 : 0})}}/>
薪资档案引用
- {this.handleChange({useInEmployeeSalary: value})}}/>
+ {this.handleChange({useInEmployeeSalary: value})}}/>
字段类型
-
-
+ {this.handleChange({dataType: value})}} style={{width: "200px"}}/>
@@ -157,7 +90,7 @@ export default class CustomSalaryItemSlide extends React.Component {
取值方式
- {this.handleChange({valueType: e.target.value})}}>
+ {this.handleChange({valueType: e.target.value})}}>
输入
公式
@@ -167,14 +100,14 @@ export default class CustomSalaryItemSlide extends React.Component {
公式
-
+
备注
- {this.handleChange({description: value})}}/>
+ {this.handleChange({description: value})}}/>
diff --git a/pc4mobx/hrmSalary/pages/salaryItem/index.js b/pc4mobx/hrmSalary/pages/salaryItem/index.js
index 5ed76263..d556b0b0 100644
--- a/pc4mobx/hrmSalary/pages/salaryItem/index.js
+++ b/pc4mobx/hrmSalary/pages/salaryItem/index.js
@@ -28,8 +28,9 @@ export default class SalaryItem extends React.Component {
this.state = {
value: "",
selectedKey: "0",
- editSlideVisible: false,
- request: {}
+ editable: false,
+ isAdd: false,
+ searchValue: ""
}
columns.map(item => {
if(item.dataIndex == "refere") {
@@ -57,10 +58,11 @@ export default class SalaryItem extends React.Component {
doInit();
}
- onEditItem(record) {
- const { salaryItemStore: {getItemForm}} = this.props;
+ onEditItem(record, isedit) {
+ const { salaryItemStore: {getItemForm, setEditSlideVisible}} = this.props;
+ this.setState({editable: isedit, isAdd: false})
getItemForm(record.id)
- this.setState({editSlideVisible: true})
+ setEditSlideVisible(true)
}
// 增加编辑功能,重写columns绑定事件
@@ -72,7 +74,7 @@ export default class SalaryItem extends React.Component {
let valueSpan = record[newColumn.dataIndex + "span"] !== undefined ? record[newColumn.dataIndex + "span"] : record[newColumn.dataIndex];
switch(newColumn.dataIndex) {
case "name":
- return {this.onEditItem(record)}}>{text}
+ return {this.onEditItem(record, false)}}>{text}
case "useInEmployeeSalary":
return
case "useDefault":
@@ -86,10 +88,30 @@ export default class SalaryItem extends React.Component {
return newColumns;
}
+
+ onOperatesClick = (record, index, operate, flag) => {
+
+ switch(operate.index.toString()){
+ case '0': // 编辑
+ this.onEditItem(record, true);
+ break;
+ case "1": // 删除
+ const { salaryItemStore: {deleteItemRequest}} = this.props;
+ deleteItemRequest([record.id])
+ break;
+ }
+ };
+
+
+ handleSearch(value) {
+ const { salaryItemStore: {getTableDatas}} = this.props;
+ getTableDatas({name: value})
+ }
+
render() {
const { salaryItemStore } = this.props;
const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = salaryItemStore;
- const { systemItemVisible, setSystemItemVisible, deleteItemVisible, setDeleteItemVisible, deleteItemList } = salaryItemStore
+ const { systemItemVisible, setSystemItemVisible, deleteItemVisible, setDeleteItemVisible, deleteItemList, editSlideVisible, setEditSlideVisible, request } = salaryItemStore
if (!hasRight && !loading) { // 无权限处理
return renderNoright();
}
@@ -130,12 +152,14 @@ export default class SalaryItem extends React.Component {
];
const handleMenuClick = (e) => {
- const { salaryItemStore: {getSysItemList}} = this.props;
+ const { salaryItemStore: {getSysItemList, setEditSlideVisible, initRequest}} = this.props;
if(e.key == "1") {
getSysItemList({})
setSystemItemVisible(true)
} else if(e.key == "2") {
- this.setState({editSlideVisible: true})
+ this.setState({editable: true, isAdd: true})
+ initRequest()
+ setEditSlideVisible(true)
}
}
@@ -149,29 +173,43 @@ export default class SalaryItem extends React.Component {
const renderRightOperation = () => {
return (
新增
-
+ {this.setState({searchValue: value})}} onSearch={(value) => {this.handleSearch(value)}}/>
)
}
- const handleSlideSave = () => {
- const { salaryItemStore: {saveItem}} = this.props;
- saveItem(this.state.request);
+ const handleSlideSave = (continueFlag) => {
+ const { salaryItemStore: {saveItem, request}} = this.props;
+ saveItem(request, continueFlag);
}
const renderCustomOperate = () => {
return (
+
-
-
+ {
+ this.state.isAdd ?
+
+
+
:
+ this.state.editable ?
+
+
:
+ ""
+ }
+
)
}
const handleSaveSlideChange = (value) => {
- this.setState({request: value})
+ const { salaryItemStore:{setRequest}} = this.props;
+ setRequest(value)
}
+
+
+
return (
@@ -214,8 +251,8 @@ export default class SalaryItem extends React.Component {
{
- this.state.editSlideVisible &&
-
}
- content={ {handleSaveSlideChange(value)}}/>}
- onClose={() => this.setState({editSlideVisible: false})}
+ content={ {handleSaveSlideChange(value)}}/>}
+ onClose={() => setEditSlideVisible(false)}
showMask={true}
- closeMaskOnClick={() => this.setState({editSlideVisible: false})} />
+ closeMaskOnClick={() => setEditSlideVisible(false)} />
}
diff --git a/pc4mobx/hrmSalary/pages/salaryItem/options.js b/pc4mobx/hrmSalary/pages/salaryItem/options.js
new file mode 100644
index 00000000..3d9a3bb0
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryItem/options.js
@@ -0,0 +1,68 @@
+export const roundingModeOptions = [
+ {
+ key: 1,
+ selected: false,
+ showname: "原始数据"
+ },
+ {
+ key: 2,
+ selected: false,
+ showname: "四舍五入"
+ },
+ {
+ key: 3,
+ selected: false,
+ showname: "向上舍入"
+ },
+ {
+ key: 4,
+ selected: false,
+ showname: "向下舍入"
+ }
+];
+
+export const patternOptions = [
+ {
+ key: 0,
+ showname: "0",
+ selected: false
+ },
+ {
+ key: 1,
+ showname: "1",
+ selected: false
+ },
+ {
+ key: 2,
+ showname: "2",
+ selected: false
+ },
+ {
+ key: 3,
+ showname: "3",
+ selected: false
+ },
+ {
+ key: 4,
+ showname: "4",
+ selected: false
+ },
+ {
+ key: 5,
+ showname: "5",
+ selected: false
+ },
+]
+
+export const dataTypeOptions = [
+ {
+ key: "string",
+ showname: "字符",
+ selected: false
+ },
+ {
+ key: "number",
+ showname: "数值",
+ selected: false
+ }
+]
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/stores/cumDeduct.js b/pc4mobx/hrmSalary/stores/cumDeduct.js
index 906235f2..bd477794 100644
--- a/pc4mobx/hrmSalary/stores/cumDeduct.js
+++ b/pc4mobx/hrmSalary/stores/cumDeduct.js
@@ -65,7 +65,7 @@ export class CumDeductStore {
this.loading = true;
let requestParams = this.form.getFormParams() || {};
requestParams = {...requestParams, ...params}
- API.getCumDeductList(params).then(action(res => {
+ API.getCumDeductList(requestParams).then(action(res => {
if (res.status) { // 接口请求成功/失败处理
this.tableStore.getDatas(res.data.datas); // table 请求数据
} else {
diff --git a/pc4mobx/hrmSalary/stores/cumSituation.js b/pc4mobx/hrmSalary/stores/cumSituation.js
index 541f97a3..8acf3602 100644
--- a/pc4mobx/hrmSalary/stores/cumSituation.js
+++ b/pc4mobx/hrmSalary/stores/cumSituation.js
@@ -65,7 +65,7 @@ export class CumSituationStore {
this.loading = true;
let requestParams = this.form.getFormParams() || {};
requestParams = {...requestParams, ...params}
- API.getCumSituationList(params).then(action(res => {
+ API.getCumSituationList(requestParams).then(action(res => {
if (res.status) { // 接口请求成功/失败处理
this.tableStore.getDatas(res.data.datas); // table 请求数据
} else {
diff --git a/pc4mobx/hrmSalary/stores/otherDeduct.js b/pc4mobx/hrmSalary/stores/otherDeduct.js
index af63ad88..81b7ff44 100644
--- a/pc4mobx/hrmSalary/stores/otherDeduct.js
+++ b/pc4mobx/hrmSalary/stores/otherDeduct.js
@@ -65,7 +65,7 @@ export class OtherDeductStore {
this.loading = true;
let requestParams = this.form.getFormParams() || {};
requestParams = {...requestParams, ...params}
- API.getOtherDeductList(params).then(action(res => {
+ API.getOtherDeductList(requestParams).then(action(res => {
if (res.status) { // 接口请求成功/失败处理
this.tableStore.getDatas(res.data.datas); // table 请求数据
} else {
diff --git a/pc4mobx/hrmSalary/stores/salaryItem.js b/pc4mobx/hrmSalary/stores/salaryItem.js
index ad1c83b7..44bea2cf 100644
--- a/pc4mobx/hrmSalary/stores/salaryItem.js
+++ b/pc4mobx/hrmSalary/stores/salaryItem.js
@@ -17,6 +17,38 @@ export class SalaryItemStore {
@observable systemItemVisible = false;
@observable deleteTableStore = new TableStore(); // 批量删除
@observable deleteItemVisible = false; // 删除Modal
+ @observable editSlideVisible = false; // 新建修改设置
+ @observable request = {
+ name: '',
+ useDefault: 0,
+ useInEmployeeSalary: 0,
+ systemType:0,
+ roundingMode: 0,
+ pattern: 0,
+ valueType: 1,
+ dataType: "string",
+ description: ""
+ }
+
+
+ @action
+ initRequest = () => this.request = {
+ name: '',
+ useDefault: 0,
+ useInEmployeeSalary: 0,
+ systemType:0,
+ roundingMode: 0,
+ pattern: 0,
+ valueType: 1,
+ dataType: "string",
+ description: ""
+ }
+
+ @action
+ setRequest = request => this.request = request;
+
+ @action
+ setEditSlideVisible = editSlideVisible => this.editSlideVisible = editSlideVisible;
@action
setDeleteItemVisible = deleteItemVisible => this.deleteItemVisible = deleteItemVisible;
@@ -103,13 +135,25 @@ export class SalaryItemStore {
getItemForm = (id) => {
API.getItemForm(id).then(res => {
if(res.status) {
-
+ this.request = res.data
} else {
message.error(res.errormsg || '获取失败')
}
})
}
+ // 对象值转string
+ convertToString(data) {
+ alert("data1:" + JSON.stringify(data))
+ Object.keys(data).map(k => {
+ if(typeof(data[k]) == "number") {
+ data[k] = data[k].toString();
+ }
+ })
+ alert("data2:" + JSON.stringify(data))
+ return data;
+ }
+
//薪资项目-批量删除列表
@action
deleteItemList = (params) => {
@@ -130,6 +174,11 @@ export class SalaryItemStore {
message.warning("未选择任何条目");
return
}
+ this.deleteItemRequest(ids)
+ }
+
+ @action
+ deleteItemRequest = (ids) => {
API.deleteItem(ids).then(res => {
if(res.status) {
this.deleteItemVisible = false;
@@ -139,16 +188,21 @@ export class SalaryItemStore {
message.error(res.errormsg || "删除失败")
}
})
- }
+ }
//薪资项目-新增薪资项目
@action
- saveItem = (params) => {
+ saveItem = (params, continueFlag) => {
API.saveItem(params).then(res => {
if(res.status) {
- message.success("新增成功")
+ if(!continueFlag) {
+ this.editSlideVisible = false;
+ }
+ this.initRequest();
+ this.getTableDatas({});
+ message.success("保存成功")
} else {
- message.error(res.errormsg || "新增失败")
+ message.error(res.errormsg || "保存失败")
}
})
}