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 || "保存失败") } }) }