diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less b/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less index b0f3e1b0..27a9ee0a 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less @@ -168,6 +168,11 @@ } .categroyListWrapper { + .wea-search-group { + padding-left: 0; + padding-right: 0; + } + .titleNormalWrapper { display: flex; justify-content: space-between; @@ -180,6 +185,11 @@ } .titleWrapper { + span { + font-weight: 600; + color: #111; + } + i { font-size: 16px; color: #333; @@ -201,6 +211,16 @@ align-items: center; width: 100%; + .topTitle { + padding: 5px 12px; + margin-right: 10px; + } + + .active { + background: #e9f7ff; + color: #5d9cec; + } + .titleLeft { display: flex; align-items: center; @@ -236,11 +256,28 @@ .moveModalWrapper { .ant-radio-group { - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: repeat(3, 33.33%); .ant-radio-wrapper { - margin: 4px 16px; + margin: 4px 0; + } + } +} + +.salaryItemEditWrapper { + .wea-search-group { + padding: 0; + border: 1px solid #e5e5e5; + border-bottom: none; + + .wea-content { + padding: 0; + + .wea-form-item { + padding: 4px 16px; + border-bottom: 1px solid #e5e5e5; + } } } } diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js index e0b20c93..af75ac82 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerMovoTo.js @@ -24,7 +24,12 @@ class LedgerMovoTo extends Component { > item.showname === "未分类")} + detailtype={3} value={value} + onChange={onChangeMoveVal} + /> + item.showname !== "未分类")} detailtype={3} value={value} onChange={onChangeMoveVal} /> diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js new file mode 100644 index 00000000..fa968445 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js @@ -0,0 +1,57 @@ +/* + * Author: 黎永顺 + * name: 薪资账套-编辑薪资项目项 + * Description: + * Date: 2023/07/19 + */ +import React, { Component } from "react"; +import { WeaLocaleProvider, WeaSlideModal } from "ecCom"; +import SlideModalTitle from "../../../components/slideModalTitle"; +import SalaryItemForm from "../../salaryItem/salaryItemForm"; +import "./index.less"; + +const getLabel = WeaLocaleProvider.getLabel; + +class LedgerSalaryItemEditSlide extends Component { + constructor(props) { + super(props); + this.state = {}; + } + + handleChange = (params) => { + const request = { ...this.props.request, ...params }; + console.log(this.props.request, params); + this.props.onUpdateRequest(request); + }; + handleShowFormal = () => this.props.onEditFormnul(); + + render() { + return ( + + } + content={ +
+ { + this.props.visible && + + } +
+ } + /> + ); + } +} + +export default LedgerSalaryItemEditSlide; diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js index f6e4e295..3f743034 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js @@ -306,7 +306,7 @@ const TitleNormalComp = (props) => { const TitleComp = (props) => { const { onAddCategory, titleName, showOperateBtn } = props; return
- {titleName} +
{titleName}
{ showOperateBtn && diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js index 925e04e7..e33d7ce3 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js @@ -5,13 +5,25 @@ * Date: 2022/12/13 */ import React, { Component } from "react"; -import { WeaCheckbox, WeaHelpfulTip, WeaTable } from "ecCom"; +import { message } from "antd"; +import { WeaCheckbox, WeaHelpfulTip, WeaLocaleProvider, WeaTable } from "ecCom"; +import LedgerSalaryItemEditSlide from "./ledgerSalaryItemEditSlide"; +import { getSalaryFieldForm } from "../../../apis/fieldManage"; +import { commonEnumList } from "../../../apis/ruleconfig"; +import { saveItem } from "../../../apis/item"; + +const getLabel = WeaLocaleProvider.getLabel; class LedgerSalaryItemTable extends Component { constructor(props) { super(props); this.state = { - selectedRowKeys: [] + selectedRowKeys: [], + salaryItemPayload: { + visible: false, record: {}, + request: {}, isLedger: true, + userStatusList: [], loading: false + } }; } @@ -26,6 +38,7 @@ class LedgerSalaryItemTable extends Component { onHandleItemhide( _.map([...dataSource], item => { if (id === item.id || id === item.key) { + alert(1); return { ...item, itemHide: String(value) @@ -46,8 +59,62 @@ class LedgerSalaryItemTable extends Component { }) ); }; + /* + * Author: 黎永顺 + * Description: 编辑薪资项目 + * Params: + * Date: 2023/7/19 + */ + handleEditSalaryItem = async (record) => { + const { data: userStatusList } = await commonEnumList({ enumClass: "com.engine.salary.enums.sicategory.SharedTypeEnum" }); + getSalaryFieldForm({ id: record.salaryItemId }).then(({ status, data }) => { + if (status) { + this.setState({ + salaryItemPayload: { + ...this.state.salaryItemPayload, + visible: true, request: data, record, + userStatusList: _.map(userStatusList, it => ({ key: it.value.toString(), showname: it.defaultLabel })) + } + }); + } + }); + }; + /* + * Author: 黎永顺 + * Description: 保存薪资项目 + * Params: + * Date: 2023/7/19 + */ + handleSaveItem = () => { + const { salaryItemPayload } = this.state; + const { request, record } = salaryItemPayload; + this.setState({ + salaryItemPayload: { ...salaryItemPayload, loading: true } + }); + saveItem(request).then(({ status, errorMsg }) => { + if (status) { + message.success(getLabel(22619, "保存成功")); + this.setState({ + salaryItemPayload: { ...salaryItemPayload, loading: false, visible: false } + }); + const { id } = record; + const { hideDefault } = request; + this.handleChangeItem(hideDefault.toString(), id); + console.log(this.props, this.state); + //TODO:渲染列表数据 + } else { + this.setState({ + salaryItemPayload: { ...salaryItemPayload, loading: false } + }); + message.error(errorMsg || getLabel(22620, "保存失败")); + } + }).catch(() => this.setState({ + salaryItemPayload: { ...salaryItemPayload, loading: false } + })); + }; render() { + const { salaryItemPayload } = this.state; const { dataSource, onDropCategoryItem, @@ -77,18 +144,11 @@ class LedgerSalaryItemTable extends Component { 核算公式 } placement="bottom" width={200}/> , - dataIndex: "formulaContent", - key: "formulaContent", - render: (text, record) => { - if (record.canEdit) { - return ( - - onEditFormnul(record)}> {text} - - ); - } else { - return {text} ; - } + dataIndex: "valueType", + key: "valueType", + render: (_, record) => { + const { valueType } = record; + return {valueType === 1 ? "输入" : valueType === 2 ? "自定义公式" : valueType === 3 ? "SQL" : ""} ; } }, { @@ -116,26 +176,49 @@ class LedgerSalaryItemTable extends Component { title: "操作", dataIndex: "operate", key: "operate", - width: 100, + width: 120, render: (_, record) => ( - onMoveTo(record)}>移动到 + + this.handleEditSalaryItem(record)} + style={{ marginRight: 10 }}>编辑 + onMoveTo(record)}>移动到 + ) } ]; return ( - record.id || record.key} - rowSelection={rowSelection} - dataSource={dataSource} - columns={columns} - onRow={(record, index) => ({ - index, - moveRow: record - })} - pagination={false} - onDrop={onDropCategoryItem} - draggable={true} - /> + + record.id || record.key} + rowSelection={rowSelection} + dataSource={dataSource} + columns={columns} + onRow={(record, index) => ({ + index, + moveRow: record + })} + pagination={false} + onDrop={onDropCategoryItem} + draggable={true} + /> + { + this.setState({ + salaryItemPayload: { + ...salaryItemPayload, request + } + }); + }} + onEditFormnul={() => onEditFormnul(salaryItemPayload.record)} + onSave={this.handleSaveItem} + onClose={() => this.setState({ + salaryItemPayload: { + ...salaryItemPayload, visible: false + } + })} + /> + ); } } diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/index.js b/pc4mobx/hrmSalary/pages/ledgerPage/index.js index 65486005..9cef3433 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/index.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/index.js @@ -10,6 +10,7 @@ import { WeaInputSearch, WeaTop } from "ecCom"; import { Button } from "antd"; import LedgerTable from "./components/ledgerTable"; import LedgerSlide from "./components/ledgerSlide"; +import "./index.less"; @inject("taxAgentStore") @observer @@ -67,7 +68,7 @@ class Index extends Component { ]; return ( } iconBgcolor="#F14A2D" showDropIcon={false} diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/index.less b/pc4mobx/hrmSalary/pages/ledgerPage/index.less index 3f90918b..ee122e69 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/index.less +++ b/pc4mobx/hrmSalary/pages/ledgerPage/index.less @@ -1,3 +1,13 @@ +.ledgerOuter { + .wea-new-top { + .ant-col-10 { + span:nth-child(2) { + margin-top: -6px; + } + } + } +} + .ledgerWrapper { height: 100%; diff --git a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js index 05a3ba25..333991c6 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js @@ -18,12 +18,20 @@ class SalaryItemForm extends Component { componentDidMount() { const { salaryItemFieldsList } = this.state; - const { request, editable, record, isAdd, taxAgentAdminOption } = this.props; - const { systemType, sharedType, valueType } = request; + const { request, editable, record, isAdd = false, taxAgentAdminOption, isLedger = false } = this.props; + const { systemType = "", sharedType, valueType } = request; this.setState({ salaryItemFieldsList: _.map(salaryItemFieldsList, item => { const { key } = item; switch (key) { + case "useDefault": + case "sortedIndex": + case "description": + return { + ...item, + viewAttr: (!isLedger && ((editable && record.canEdit) || isAdd)) ? 2 : 1, + display: !isLedger + }; case "useInEmployeeSalary": return { ...item, @@ -44,16 +52,17 @@ class SalaryItemForm extends Component { display: (!_.isNil(sharedType) && sharedType.toString() === "1") && (!_.isNil(systemType) && systemType.toString() === "0"), options: taxAgentAdminOption }; + case "hideDefault": case "valueType": return { ...item, - viewAttr: isAdd ? 2 : 1 + viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1 }; case "formulaContent": return { ...item, - display: valueType === "2" || valueType === "3", - viewAttr: (editable && record.canEdit) || isAdd ? 2 : 1 + display: valueType && (valueType.toString() === "2" || valueType.toString() === "3"), + viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1 }; default: break; @@ -83,7 +92,7 @@ class SalaryItemForm extends Component { return { ...item }; }) }, () => { - if (key === "valueType") { + if (key === "valueType" && !this.props.isLedger) { onChangeFieldsItem({ formulaContent: "", formulaId: 0, valueType: v }); } else { onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary" || key === "hideDefault") ? Number(v) : v });