From 28dd4faf13a5b1ae0de546de50f47eaaf4b99ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Thu, 9 Feb 2023 13:05:22 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/salaryItem/columns.js | 149 +++++++----------- .../pages/salaryItem/customSalaryItemSlide.js | 40 ++--- .../pages/salaryItem/deleteSalaryItemModal.js | 112 ------------- pc4mobx/hrmSalary/pages/salaryItem/index.js | 54 +------ 4 files changed, 82 insertions(+), 273 deletions(-) delete mode 100644 pc4mobx/hrmSalary/pages/salaryItem/deleteSalaryItemModal.js diff --git a/pc4mobx/hrmSalary/pages/salaryItem/columns.js b/pc4mobx/hrmSalary/pages/salaryItem/columns.js index 18538a8c..13ebd84a 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/columns.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/columns.js @@ -1,96 +1,65 @@ export const columns = [ - { - title: "名称", - dataIndex: 'title', - key: 'title', - }, - { - title: "属性", - dataIndex: 'title', - key: 'title', - }, - { - title: "类型", - dataIndex: 'title', - key: 'title', - }, - { - title: "薪资档案引用", - dataIndex: 'refere', - key: 'refere', - }, - { - title: "默认使用", - dataIndex: 'refere', - key: 'refere', - }, - { - title: "进位规则", - dataIndex: 'title', - key: 'title', - }, - { - title: "保留小数位", - dataIndex: 'title', - key: 'title', - }, - { - title: "取值方式", - dataIndex: 'title', - key: 'title', - }, - { - title: "备注", - dataIndex: 'title', - key: 'title', - }, - { - title: "操作", - dataIndex: 'cz', - key: 'cz', - } -] - -export const systemItemColumns = [ - { - title: "薪资项目", - dataIndex: 'title', - key: 'title' - }, - { - title: "属性", - dataIndex: 'title', - key: 'title' - }, - { - title: "类型", - dataIndex: 'title', - key: 'title' - }, - { - title: "舍入规则", - dataIndex: 'title', - key: 'title' - }, - { - title: "保留小数位", - dataIndex: 'title', - key: 'title' - }, - { - title: "取值方式", - dataIndex: 'title', - key: 'title' - } -] - -export const dataSource = [ - { - title: "测试" - } + { + title: "名称", + dataIndex: "title", + key: "title" + }, + { + title: "属性", + dataIndex: "title", + key: "title" + }, + { + title: "类型", + dataIndex: "title", + key: "title" + }, + { + title: "薪资档案引用", + dataIndex: "refere", + key: "refere" + }, + { + title: "默认使用", + dataIndex: "refere", + key: "refere" + }, + { + title: "进位规则", + dataIndex: "title", + key: "title" + }, + { + title: "保留小数位", + dataIndex: "title", + key: "title" + }, + { + title: "取值方式", + dataIndex: "title", + key: "title" + }, + { + title: "备注", + dataIndex: "title", + key: "title" + }, + { + title: "操作", + dataIndex: "cz", + key: "cz" + } +]; +export const salaryItemFields = [ + { + key: '', + label: '名称', + type: 'INPUT', + viewAttr: 3, + tip: '' + }, ]; - diff --git a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js index ae577236..2b153731 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js @@ -65,26 +65,26 @@ export default class CustomSalaryItemSlide extends React.Component { /> - {/**/} - {/* 薪资档案引用*/} - {/* */} - {/* {*/} - {/* this.handleChange({ useInEmployeeSalary: value ? 1 : 0 });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/**/} + + 薪资档案引用 + + { + this.handleChange({ useInEmployeeSalary: value ? 1 : 0 }); + }} + /> + + + 默认使用 diff --git a/pc4mobx/hrmSalary/pages/salaryItem/deleteSalaryItemModal.js b/pc4mobx/hrmSalary/pages/salaryItem/deleteSalaryItemModal.js deleted file mode 100644 index f35afea3..00000000 --- a/pc4mobx/hrmSalary/pages/salaryItem/deleteSalaryItemModal.js +++ /dev/null @@ -1,112 +0,0 @@ -import React from "react"; -import { WeaDialog, WeaInputSearch } from "ecCom"; -import { Button } from "antd"; -import { inject, observer } from "mobx-react"; -import CustomTable from "../../components/customTable"; - -@inject("salaryItemStore") -@observer -export default class DeleteSalaryItemModal extends React.Component { - - constructor(props) { - super(props); - this.state = { - selectedRowKeys: [], - searchValue: "" - }; - this.page = 1; - } - - componentWillMount() { - const { salaryItemStore: { listCanDelete } } = this.props; - listCanDelete(); - } - - getColumns() { - const { salaryItemStore } = this.props; - const { canDeleteList } = salaryItemStore; - let columns = canDeleteList.columns ? canDeleteList.columns : []; - columns = [...columns]; - return columns; - } - - // 分页 - handleDataPageChange(value) { - const { salaryItemStore: { listCanDelete } } = this.props; - this.page = value; - listCanDelete({ name: this.state.searchValue, current: value }); - } - - // 选择框选中事件 - onSelectChange(selectedRowKeys) { - this.setState({ selectedRowKeys }); - } - - handleSearchChange(value) { - this.setState({ searchValue: value }); - } - - // 搜索 - handleSearch(value) { - const { salaryItemStore: { listCanDelete } } = this.props; - listCanDelete({ name: value, current: this.page }); - } - - render() { - const { selectedRowKeys, searchValue } = this.state; - const { salaryItemStore } = this.props; - const { canDeleteList, modalLoading } = salaryItemStore; - - const rowSelection = { - selectedRowKeys, - onChange: this.onSelectChange.bind(this) - }; - - const handleDelete = () => { - const { salaryItemStore: { deleteItem } } = this.props; - deleteItem(this.state.selectedRowKeys); - }; - - return ( - { - this.props.onCancel(); - }} - buttons={[ - - ]} - style={{ width: "80vw" }} - > -
- { - this.handleSearchChange(value); - }} onSearch={(value) => { - this.handleSearch(value); - }}/> -
-
- { - this.handleDataPageChange(value); - }, - total: canDeleteList.total, - showTotal: (total) => `共 ${total} 条`, - current: canDeleteList.pageNum - }} - /> -
-
- ); - } -} diff --git a/pc4mobx/hrmSalary/pages/salaryItem/index.js b/pc4mobx/hrmSalary/pages/salaryItem/index.js index 7aeabf71..38e1eb8d 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/index.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/index.js @@ -8,7 +8,6 @@ import SystemSalaryItemModal from "./systemSalaryItemModal"; import { columns } from "./columns"; import SlideModalTitle from "../../components/slideModalTitle"; import CustomSalaryItemSlide from "./customSalaryItemSlide"; -import DeleteSalaryItemModal from "./deleteSalaryItemModal"; import CustomPaginationTable from "../../components/customPaginationTable"; import "../socialSecurityBenefits/programme/index.less"; @@ -210,20 +209,12 @@ export default class SalaryItem extends React.Component { } = this.props; const { userStatusList } = salaryFileStore; const { selectedRowKeys } = this.state; - const { - loading, - form, - doSearch, - setShowSearchAd, - deleteItemRequest, getTableDatas - } = salaryItemStore; + const { loading, deleteItemRequest, getTableDatas } = salaryItemStore; const { tableDataSource, tableColumns, systemItemVisible, setSystemItemVisible, - deleteItemVisible, - setDeleteItemVisible, editSlideVisible, setEditSlideVisible, request @@ -231,43 +222,13 @@ export default class SalaryItem extends React.Component { if (this.getColumns().length === 2) { // 无权限处理 return renderLoading(); } - const batchDelete = () => { - setDeleteItemVisible(true); - }; - - const rightMenu = [// 右键菜单 - // { - // key: "BTN_COLUMN", - // icon: , - // content: "显示列定制", - // onClick: this.showColumn - // }, - // { - // key: "BTN_DEL", - // icon: , - // content: "批量删除", - // onClick: batchDelete - // } - ]; - const collectParams = { // 收藏功能配置 - favname: "薪资项目管理", - favouritetype: 1, - objid: 0, - link: "wui/index.html#/ns_demo03/index", - importantlevel: 1 - }; - const adBtn = [ // 高级搜索内部按钮 - , - , - - ]; const handleMenuClick = (e) => { const { salaryItemStore: { getSysItemList, setEditSlideVisible, initRequest } } = this.props; - if (e.key == "1") { + if (e.key === "1") { getSysItemList({}); setSystemItemVisible(true); - } else if (e.key == "2") { + } else if (e.key === "2") { this.setState({ editable: true, isAdd: true }); initRequest(); setEditSlideVisible(true); @@ -381,8 +342,6 @@ export default class SalaryItem extends React.Component { icon={} // 左侧图标 iconBgcolor="#F14A2D" // 左侧图标背景色 showDropIcon={false} // 是否显示下拉按钮 - dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同) - dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能 > } - - { - deleteItemVisible && { - setDeleteItemVisible(false); - }}/> - } - { editSlideVisible && Date: Thu, 9 Feb 2023 14:27:03 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E=E7=BC=96=E8=BE=91=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/salaryItem/columns.js | 82 +++- .../pages/salaryItem/customSalaryItemSlide.js | 438 +++++++++--------- pc4mobx/hrmSalary/pages/salaryItem/index.js | 6 +- pc4mobx/hrmSalary/pages/salaryItem/index.less | 19 +- .../pages/salaryItem/salaryItemForm.js | 36 ++ 5 files changed, 356 insertions(+), 225 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js diff --git a/pc4mobx/hrmSalary/pages/salaryItem/columns.js b/pc4mobx/hrmSalary/pages/salaryItem/columns.js index 13ebd84a..ccf8083b 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/columns.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/columns.js @@ -1,3 +1,5 @@ +import { dataTypeOptions, patternOptions, roundingModeOptions } from "./options"; + export const columns = [ { title: "名称", @@ -52,13 +54,91 @@ export const columns = [ ]; export const salaryItemFields = [ { - key: '', + key: 'name', label: '名称', type: 'INPUT', viewAttr: 3, tip: '' }, + { + key: 'useInEmployeeSalary', + label: '薪资档案引用', + type: 'SWITCH', + viewAttr: 2, + tip: '提示:开启后,该薪资项目不可删除或设为无效,取值方式会默认置为输入' + }, + { + key: 'useDefault', + label: '默认使用', + type: 'SWITCH', + viewAttr: 2, + tip: '提示:开启后,每个薪资方案都有该薪资项目,可在具体薪资方案中删除' + }, + { + key: 'sharedType', + label: '可见性', + type: 'SELECT', + viewAttr: 2, + tip: '' + }, + { + key: 'taxAgentIds', + label: '可见性范围', + type: 'SELECT', + viewAttr: 2, + tip: '' + }, + { + key: 'dataType', + label: '字段类型', + type: 'SELECT', + viewAttr: 3, + options: dataTypeOptions, + tip: '' + }, + { + key: 'roundingMode', + label: '舍入规则', + type: 'SELECT', + viewAttr: 2, + options: roundingModeOptions, + tip: '' + }, + { + key: 'pattern', + label: '保留小数位', + type: 'SELECT', + viewAttr: 2, + options: patternOptions, + tip: '' + }, + { + key: 'valueType', + label: '取值方式', + type: 'RADIO', + viewAttr: 2, + tip: '' + }, + { + key: 'formulaContent', + label: '公式', + type: 'INPUT', + viewAttr: 2, + tip: '' + }, + { + key: 'description', + label: '备注', + type: 'TEXTAREA', + viewAttr: 2, + tip: '' + }, ]; +export const valTakeOptions=[ + {key: "1", showname: '输入'}, + {key: "2", showname: '公式'}, + {key: "3", showname: 'SQL'}, +] diff --git a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js index 2b153731..4260304f 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js @@ -3,6 +3,7 @@ import { Col, Row, Switch } from "antd"; import { WeaHelpfulTip, WeaInput, WeaSelect, WeaTextarea } from "ecCom"; import { dataTypeOptions, patternOptions, roundingModeOptions } from "./options"; import FormalFormModal from "./formalFormModal"; +import SalaryItemForm from "./salaryItemForm"; import "./index.less"; export default class CustomSalaryItemSlide extends React.Component { @@ -50,227 +51,228 @@ export default class CustomSalaryItemSlide extends React.Component { const { formalModalVisible } = this.state; return (
-
- - 名称 - - { - this.handleChange({ name: value }); - }} - /> - - - - 薪资档案引用 - - { - this.handleChange({ useInEmployeeSalary: value ? 1 : 0 }); - }} - /> - - - - - 默认使用 - - { - this.handleChange({ useDefault: value ? 1 : 0 }); - }} - /> - - - + + {/*
*/} + {/* */} + {/* 名称*/} + {/* */} + {/* {*/} + {/* this.handleChange({ name: value });*/} + {/* }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* 薪资档案引用*/} + {/* */} + {/* {*/} + {/* this.handleChange({ useInEmployeeSalary: value ? 1 : 0 });*/} + {/* }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* 默认使用*/} + {/* */} + {/* {*/} + {/* this.handleChange({ useDefault: value ? 1 : 0 });*/} + {/* }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} - { - (systemType == 0 || isAdd) && - - - - 可见性 - - { - let payload = {}; - (value === "0" || value === "") && (payload.taxAgentIds = ""); - payload.sharedType = value; - this.handleChange(payload); - }} - style={{ width: "200px" }} - /> - - - - - } - { - sharedType === "1" && - - - - 可见性范围 - - { - this.handleChange({ taxAgentIds: value }); - }} - /> - - - - - } - - - - 字段类型 - - { - this.handleChange({ dataType: value }); - }} - style={{ width: "200px" }} - /> - - - - - - - - 舍入规则 - - { - this.handleChange({ roundingMode: value }); - }} - /> - - - - - - 保留小数位 - - { - this.handleChange({ pattern: value }); - }} - value={pattern} - style={{ width: "200px" }} - /> - - - - + {/* {*/} + {/* (systemType == 0 || isAdd) &&*/} + {/* */} + {/* */} + {/* */} + {/* 可见性*/} + {/* */} + {/* {*/} + {/* let payload = {};*/} + {/* (value === "0" || value === "") && (payload.taxAgentIds = "");*/} + {/* payload.sharedType = value;*/} + {/* this.handleChange(payload);*/} + {/* }}*/} + {/* style={{ width: "200px" }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* }*/} + {/* {*/} + {/* sharedType === "1" &&*/} + {/* */} + {/* */} + {/* */} + {/* 可见性范围*/} + {/* */} + {/* {*/} + {/* this.handleChange({ taxAgentIds: value });*/} + {/* }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* }*/} + {/* */} + {/* */} + {/* */} + {/* 字段类型*/} + {/* */} + {/* {*/} + {/* this.handleChange({ dataType: value });*/} + {/* }}*/} + {/* style={{ width: "200px" }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* 舍入规则*/} + {/* */} + {/* {*/} + {/* this.handleChange({ roundingMode: value });*/} + {/* }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/* 保留小数位*/} + {/* */} + {/* {*/} + {/* this.handleChange({ pattern: value });*/} + {/* }}*/} + {/* value={pattern}*/} + {/* style={{ width: "200px" }}*/} + {/* />*/} + {/* */} + {/* */} + {/* */} + {/* */} - - 取值方式 - - { - this.handleChange({ - valueType: value, - formulaId: null, - formulaContent: "" - }); - }}/> - - - {(valueType == 2 || valueType == 3) && - - - {valueType == 2 ? "公式" : "SQL"} - - -
{ - if (this.props.record.canEdit || isAdd) { - editable && this.handleShowFormal(); - } - }}> - {formulaContent} -
- -
} + {/* */} + {/* 取值方式*/} + {/* */} + {/* {*/} + {/* this.handleChange({*/} + {/* valueType: value,*/} + {/* formulaId: null,*/} + {/* formulaContent: ""*/} + {/* });*/} + {/* }}/>*/} + {/* */} + {/* */} + {/* {(valueType == 2 || valueType == 3) &&*/} + {/* */} + {/* */} + {/* {valueType == 2 ? "公式" : "SQL"}*/} + {/* */} + {/* */} + {/* {*/} + {/* if (this.props.record.canEdit || isAdd) {*/} + {/* editable && this.handleShowFormal();*/} + {/* }*/} + {/* }}>*/} + {/* {formulaContent}*/} + {/*
*/} + {/* */} + {/* }*/} - - 备注 - - { - this.handleChange({ description: value }); - }} - /> - - -
+ {/* */} + {/* 备注*/} + {/* */} + {/* {*/} + {/* this.handleChange({ description: value });*/} + {/* }}*/} + {/* />*/} + {/* */} + {/* */} + {/*
*/} {formalModalVisible && + { + _.map(salaryItemFields, item => { + const { key, label, type, viewAttr, tip, options } = item; + return + { + type === "INPUT" ? : + type === "SWITCH" ? : + type === "SELECT" ? + : + type === "RADIO" ? : + type === "TEXTAREA" ? : null + } + ; + }) + } + + ); + } +} + +export default SalaryItemForm; From f61c4bfbb0bc95c5c01a9af0194ee888d8f57ecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Thu, 9 Feb 2023 17:24:51 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/salaryItem/columns.js | 2 +- .../pages/salaryItem/salaryItemForm.js | 68 ++++++++++++++++--- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/salaryItem/columns.js b/pc4mobx/hrmSalary/pages/salaryItem/columns.js index ccf8083b..a23f2db3 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/columns.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/columns.js @@ -85,7 +85,7 @@ export const salaryItemFields = [ key: 'taxAgentIds', label: '可见性范围', type: 'SELECT', - viewAttr: 2, + viewAttr: 3, tip: '' }, { diff --git a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js index c0b2fef1..2b3d8dcc 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js @@ -9,23 +9,69 @@ import { WeaCheckbox, WeaFormItem, WeaInput, WeaSearchGroup, WeaSelect, WeaTexta import { salaryItemFields, valTakeOptions } from "./columns"; class SalaryItemForm extends Component { + constructor(props) { + super(props); + this.state = { + salaryItemFieldsList: salaryItemFields + }; + } + + componentDidMount() { + const { salaryItemFieldsList } = this.state; + const { request, isAdd } = this.props; + const { systemType, sharedType, valueType } = request; + console.log(this.state.salaryItemFieldsList, this.props); + this.setState({ + salaryItemFieldsList: _.map(salaryItemFieldsList, item => { + const { key } = item; + switch (key) { + case "sharedType": + return { ...item, display: systemType.toString() === "0" || isAdd }; + case "taxAgentIds": + return { ...item, display: sharedType === "1" }; + case "formulaContent": + return { ...item, display: valueType === "2" || valueType === "3" }; + default: + break; + } + return { ...item }; + }) + }); + } + render() { - const { userStatusList } = this.props; + const { userStatusList, request } = this.props; + const { salaryItemFieldsList } = this.state; return ( { - _.map(salaryItemFields, item => { - const { key, label, type, viewAttr, tip, options } = item; - return + _.map(salaryItemFieldsList, item => { + const { key, label, type, viewAttr, tip, options, display = true } = item; + const value = request[key] ? request[key].toString() : ""; + return { - type === "INPUT" ? : - type === "SWITCH" ? : - type === "SELECT" ? - : - type === "RADIO" ? : - type === "TEXTAREA" ? : null + (type === "INPUT" && display) ? + + : + (type === "SWITCH" && display) ? + + + : + (type === "SELECT" && display) ? + + + : + (type === "RADIO" && display) ? + + + : + (type === "TEXTAREA" && display) ? + + : null } - ; + ; }) } From 7578c4b09e2f3e708dcf337adb1ed2fd80ec7834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Thu, 9 Feb 2023 19:34:40 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/salaryItem/customSalaryItemSlide.js | 17 +++-- pc4mobx/hrmSalary/pages/salaryItem/index.js | 8 +++ .../pages/salaryItem/salaryItemForm.js | 63 +++++++++++++++---- pc4mobx/hrmSalary/stores/salaryFile.js | 5 +- pc4mobx/hrmSalary/stores/salaryItem.js | 6 +- 5 files changed, 69 insertions(+), 30 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js index 4260304f..b12fedbc 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js @@ -1,7 +1,4 @@ import React from "react"; -import { Col, Row, Switch } from "antd"; -import { WeaHelpfulTip, WeaInput, WeaSelect, WeaTextarea } from "ecCom"; -import { dataTypeOptions, patternOptions, roundingModeOptions } from "./options"; import FormalFormModal from "./formalFormModal"; import SalaryItemForm from "./salaryItemForm"; import "./index.less"; @@ -15,21 +12,21 @@ export default class CustomSalaryItemSlide extends React.Component { }; } - handleChange(params) { + handleChange = (params) => { let request = { ...this.props.request, ...params }; this.props.onChange(request); - } + }; - handleShowFormal() { + handleShowFormal = () => { this.setState({ formalModalVisible: true }); - } + }; // 保存公式成功回调 - handleSaveFormal(data) { + handleSaveFormal = (data) => { this.handleChange({ formulaId: data.id, formulaContent: data.formula }); - } + }; render() { const { editable, request, isAdd, userStatusList, taxAgentAdminOption } = this.props; @@ -51,7 +48,7 @@ export default class CustomSalaryItemSlide extends React.Component { const { formalModalVisible } = this.state; return (
- + {/*
*/} {/* */} {/* 名称*/} diff --git a/pc4mobx/hrmSalary/pages/salaryItem/index.js b/pc4mobx/hrmSalary/pages/salaryItem/index.js index 2c834650..39d2649e 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/index.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/index.js @@ -291,6 +291,14 @@ export default class SalaryItem extends React.Component { // 新建和修改保存的回调 const handleSlideSave = (continueFlag) => { const { salaryItemStore: { saveItem, request, getTableDatas } } = this.props; + const { name, sharedType, taxAgentIds } = request; + if (!name || (sharedType === "1" && !taxAgentIds)) { + Modal.warning({ + title: "信息确认", + content: "必要信息不完整,红色*为必填项!" + }); + return; + } saveItem(request, continueFlag).then(() => { getTableDatas({ ...this.state.searchParams }).then(res => { this.setState({ diff --git a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js index 2b3d8dcc..6edcd68e 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js @@ -18,27 +18,60 @@ class SalaryItemForm extends Component { componentDidMount() { const { salaryItemFieldsList } = this.state; - const { request, isAdd } = this.props; + const { request, editable, record, isAdd, taxAgentAdminOption } = this.props; const { systemType, sharedType, valueType } = request; - console.log(this.state.salaryItemFieldsList, this.props); this.setState({ salaryItemFieldsList: _.map(salaryItemFieldsList, item => { const { key } = item; switch (key) { case "sharedType": - return { ...item, display: systemType.toString() === "0" || isAdd }; + return { + ...item, + viewAttr: (editable && record.canEdit) || isAdd ? 2 : 1, + display: systemType.toString() === "0" || isAdd + }; case "taxAgentIds": - return { ...item, display: sharedType === "1" }; + console.log('123',sharedType, !_.isNil(sharedType) && sharedType.toString() === "1"); + return { + ...item, + viewAttr: (editable && record.canEdit) || isAdd ? 3 : 1, + display: !_.isNil(sharedType) && sharedType.toString() === "1", + options: [{ key: "", showname: "" }, ...taxAgentAdminOption] + }; case "formulaContent": - return { ...item, display: valueType === "2" || valueType === "3" }; + return { + ...item, + display: valueType === "2" || valueType === "3", + viewAttr: (editable && record.canEdit) || isAdd ? 2 : 1 + }; default: break; } - return { ...item }; + return { + ...item, + viewAttr: (key === "name" && ((editable && record.canEdit) || isAdd)) ? 3 : (key !== "name" && ((editable && record.canEdit) || isAdd)) ? 2 : 1 + }; }) }); } + handleChangeSalaryFiledItems = (key, v) => { + const { onChangeFieldsItem } = this.props; + const { salaryItemFieldsList } = this.state; + this.setState({ + salaryItemFieldsList: _.map(salaryItemFieldsList, item => { + if (key === "sharedType" && item.key === "taxAgentIds") { + return { ...item, display: v === "1", viewAttr: 3 }; + } else if (key === "valueType" && item.key === "formulaContent") { + return { ...item, display: v === "2" || v === "3" }; + } + return { ...item }; + }) + }, () => { + onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary") ? Number(v) : v }); + }); + }; + render() { const { userStatusList, request } = this.props; const { salaryItemFieldsList } = this.state; @@ -47,28 +80,32 @@ class SalaryItemForm extends Component { { _.map(salaryItemFieldsList, item => { const { key, label, type, viewAttr, tip, options, display = true } = item; - const value = request[key] ? request[key].toString() : ""; + const value = !_.isNil(request[key]) ? request[key].toString() : ""; return { (type === "INPUT" && display) ? - : + this.handleChangeSalaryFiledItems(key, v)}/> : (type === "SWITCH" && display) ? - + this.handleChangeSalaryFiledItems(key, v)}/> : (type === "SELECT" && display) ? + viewAttr={viewAttr} onChange={v => this.handleChangeSalaryFiledItems(key, v)}/> : (type === "RADIO" && display) ? - + this.handleChangeSalaryFiledItems(key, v)}/> : (type === "TEXTAREA" && display) ? - + + this.handleChangeSalaryFiledItems(key, v)}/> : null } ; diff --git a/pc4mobx/hrmSalary/stores/salaryFile.js b/pc4mobx/hrmSalary/stores/salaryFile.js index 641eb9ab..a0e213c7 100644 --- a/pc4mobx/hrmSalary/stores/salaryFile.js +++ b/pc4mobx/hrmSalary/stores/salaryFile.js @@ -90,10 +90,7 @@ export class salaryFileStore { type === "archive" ? this.archiveStatusList = [{ key: "", showname: "" - }, ...data] : this.userStatusList = [{ - key: "", - showname: "" - }, ...data]; + }, ...data] : this.userStatusList = [...data]; } else { message.error(res.errormsg || "获取失败"); } diff --git a/pc4mobx/hrmSalary/stores/salaryItem.js b/pc4mobx/hrmSalary/stores/salaryItem.js index 3233c84e..0550868b 100644 --- a/pc4mobx/hrmSalary/stores/salaryItem.js +++ b/pc4mobx/hrmSalary/stores/salaryItem.js @@ -30,7 +30,7 @@ export class SalaryItemStore { valueType: 1, dataType: "number", description: "", - sharedType: "", + sharedType: "0", taxAgentIds: "" }; @@ -70,7 +70,7 @@ export class SalaryItemStore { valueType: "1", dataType: "number", description: "", - sharedType: "", + sharedType: "0", taxAgentIds: "" }; @@ -167,7 +167,7 @@ export class SalaryItemStore { if (res.status) { let data = res.data; Object.keys(data).map(key => { - if (data[key]) { + if (!_.isNil(data[key])) { data[key] = data[key].toString(); } }); From d60d3db99335b90a09c7c9111c2500b648965a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Fri, 10 Feb 2023 10:47:18 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fieldManagement/components/fieldSlide.js | 21 +- .../pages/fieldManagement/index.less | 13 +- .../pages/salaryItem/customSalaryItemSlide.js | 241 +----------------- pc4mobx/hrmSalary/pages/salaryItem/index.js | 14 +- .../pages/salaryItem/salaryItemForm.js | 37 ++- pc4mobx/hrmSalary/stores/salaryItem.js | 28 +- 6 files changed, 75 insertions(+), 279 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/fieldManagement/components/fieldSlide.js b/pc4mobx/hrmSalary/pages/fieldManagement/components/fieldSlide.js index 81de428b..9712d156 100644 --- a/pc4mobx/hrmSalary/pages/fieldManagement/components/fieldSlide.js +++ b/pc4mobx/hrmSalary/pages/fieldManagement/components/fieldSlide.js @@ -184,65 +184,62 @@ class FieldSlide extends Component { } content={
- + this.handleChangeFields("name", value)}/> - + this.handleChangeFields("useDefault", value)} /> - - + this.handleChangeFields("sharedType", value)} - style={{ width: 200 }} /> { sharedType === "1" && - + this.handleChangeFields("taxAgentIds", value)} /> } - + this.handleChangeFields("dataType", value)} - style={{ width: 200 }} /> - + this.handleChangeFields("roundingMode", value)} /> - + this.handleChangeFields("pattern", value)} /> - + this.handleChangeFields("description", value)} diff --git a/pc4mobx/hrmSalary/pages/fieldManagement/index.less b/pc4mobx/hrmSalary/pages/fieldManagement/index.less index be964427..4053721e 100644 --- a/pc4mobx/hrmSalary/pages/fieldManagement/index.less +++ b/pc4mobx/hrmSalary/pages/fieldManagement/index.less @@ -1,7 +1,16 @@ .slideOuterWrapper { - .wea-form-item-group{ - padding: 56px 80px; + .wea-form-item-group { + margin: 16px; + border: 1px solid #e5e5e5; + border-bottom: none; + + .wea-form-item { + padding: 4px 16px; + margin-bottom: 0; + border-bottom: 1px solid #e5e5e5; + } } + .wea-slide-modal-title { height: initial; line-height: initial; diff --git a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js index b12fedbc..0b553866 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js @@ -29,247 +29,12 @@ export default class CustomSalaryItemSlide extends React.Component { }; render() { - const { editable, request, isAdd, userStatusList, taxAgentAdminOption } = this.props; - const { - name, - systemType, - useDefault, - useInEmployeeSalary, - roundingMode, - pattern, - valueType, - description, - dataType, - formulaContent, - formulaId, - sharedType, - taxAgentIds - } = request; + const { request } = this.props; + const { valueType, dataType, formulaId } = request; const { formalModalVisible } = this.state; return (
- - {/*
*/} - {/* */} - {/* 名称*/} - {/* */} - {/* {*/} - {/* this.handleChange({ name: value });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* 薪资档案引用*/} - {/* */} - {/* {*/} - {/* this.handleChange({ useInEmployeeSalary: value ? 1 : 0 });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* */} - {/* 默认使用*/} - {/* */} - {/* {*/} - {/* this.handleChange({ useDefault: value ? 1 : 0 });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - - {/* {*/} - {/* (systemType == 0 || isAdd) &&*/} - {/* */} - {/* */} - {/* */} - {/* 可见性*/} - {/* */} - {/* {*/} - {/* let payload = {};*/} - {/* (value === "0" || value === "") && (payload.taxAgentIds = "");*/} - {/* payload.sharedType = value;*/} - {/* this.handleChange(payload);*/} - {/* }}*/} - {/* style={{ width: "200px" }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* */} - {/* }*/} - {/* {*/} - {/* sharedType === "1" &&*/} - {/* */} - {/* */} - {/* */} - {/* 可见性范围*/} - {/* */} - {/* {*/} - {/* this.handleChange({ taxAgentIds: value });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* */} - {/* }*/} - {/* */} - {/* */} - {/* */} - {/* 字段类型*/} - {/* */} - {/* {*/} - {/* this.handleChange({ dataType: value });*/} - {/* }}*/} - {/* style={{ width: "200px" }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* 舍入规则*/} - {/* */} - {/* {*/} - {/* this.handleChange({ roundingMode: value });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} - {/* 保留小数位*/} - {/* */} - {/* {*/} - {/* this.handleChange({ pattern: value });*/} - {/* }}*/} - {/* value={pattern}*/} - {/* style={{ width: "200px" }}*/} - {/* />*/} - {/* */} - {/* */} - {/* */} - {/* */} - - {/* */} - {/* 取值方式*/} - {/* */} - {/* {*/} - {/* this.handleChange({*/} - {/* valueType: value,*/} - {/* formulaId: null,*/} - {/* formulaContent: ""*/} - {/* });*/} - {/* }}/>*/} - {/* */} - {/* */} - {/* {(valueType == 2 || valueType == 3) &&*/} - {/* */} - {/* */} - {/* {valueType == 2 ? "公式" : "SQL"}*/} - {/* */} - {/* */} - {/* {*/} - {/* if (this.props.record.canEdit || isAdd) {*/} - {/* editable && this.handleShowFormal();*/} - {/* }*/} - {/* }}>*/} - {/* {formulaContent}*/} - {/*
*/} - {/* */} - {/* }*/} - - {/* */} - {/* 备注*/} - {/* */} - {/* {*/} - {/* this.handleChange({ description: value });*/} - {/* }}*/} - {/* />*/} - {/* */} - {/* */} - {/*
*/} + {formalModalVisible && { this.record = record; const { salaryItemStore: { getItemForm, setEditSlideVisible } } = this.props; this.setState({ editable: isedit, isAdd: false }); - getItemForm(record.id); - setEditSlideVisible(true); - } + getItemForm(record.id).then(() => { + setEditSlideVisible(true); + }); + }; // 删除列表项 handleDeleteItem(record) { @@ -209,7 +210,7 @@ export default class SalaryItem extends React.Component { } = this.props; const { userStatusList } = salaryFileStore; const { selectedRowKeys } = this.state; - const { loading, deleteItemRequest, getTableDatas } = salaryItemStore; + const { loading, deleteItemRequest, getTableDatas, initRequest } = salaryItemStore; const { tableDataSource, tableColumns, @@ -419,8 +420,7 @@ export default class SalaryItem extends React.Component { }}/> } onClose={() => setEditSlideVisible(false)} - showMask={true} - closeMaskOnClick={() => setEditSlideVisible(false)}/> + /> }
); diff --git a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js index 6edcd68e..97411b6a 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js @@ -24,6 +24,12 @@ class SalaryItemForm extends Component { salaryItemFieldsList: _.map(salaryItemFieldsList, item => { const { key } = item; switch (key) { + case "useInEmployeeSalary": + return { + ...item, + viewAttr: (editable && record.canEdit) || isAdd ? 2 : 1, + display: !isAdd + }; case "sharedType": return { ...item, @@ -31,12 +37,17 @@ class SalaryItemForm extends Component { display: systemType.toString() === "0" || isAdd }; case "taxAgentIds": - console.log('123',sharedType, !_.isNil(sharedType) && sharedType.toString() === "1"); return { ...item, + multiple: true, viewAttr: (editable && record.canEdit) || isAdd ? 3 : 1, - display: !_.isNil(sharedType) && sharedType.toString() === "1", - options: [{ key: "", showname: "" }, ...taxAgentAdminOption] + display: (!_.isNil(sharedType) && sharedType.toString() === "1") && (!_.isNil(systemType) && systemType.toString() === "0"), + options: taxAgentAdminOption + }; + case "valueType": + return { + ...item, + viewAttr: isAdd ? 2 : 1 }; case "formulaContent": return { @@ -63,29 +74,38 @@ class SalaryItemForm extends Component { if (key === "sharedType" && item.key === "taxAgentIds") { return { ...item, display: v === "1", viewAttr: 3 }; } else if (key === "valueType" && item.key === "formulaContent") { - return { ...item, display: v === "2" || v === "3" }; + return { + ...item, + label: v === "2" ? "公式" : v === "3" ? "SQL" : "", + display: v === "2" || v === "3" + }; } return { ...item }; }) }, () => { - onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary") ? Number(v) : v }); + if (key === "valueType") { + onChangeFieldsItem({ formulaContent: "", formulaId: 0, valueType: v }); + } else { + onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary") ? Number(v) : v }); + } }); }; render() { - const { userStatusList, request } = this.props; + const { userStatusList, request, onShowFormal } = this.props; const { salaryItemFieldsList } = this.state; return ( { _.map(salaryItemFieldsList, item => { - const { key, label, type, viewAttr, tip, options, display = true } = item; + const { key, label, type, viewAttr, tip, options, display = true, multiple = false } = item; const value = !_.isNil(request[key]) ? request[key].toString() : ""; return { (type === "INPUT" && display) ? key === "formulaContent" && onShowFormal()} onChange={v => this.handleChangeSalaryFiledItems(key, v)}/> : (type === "SWITCH" && display) ? @@ -95,7 +115,8 @@ class SalaryItemForm extends Component { (type === "SELECT" && display) ? this.handleChangeSalaryFiledItems(key, v)}/> + multiple={multiple} viewAttr={viewAttr} + onChange={v => this.handleChangeSalaryFiledItems(key, v)}/> : (type === "RADIO" && display) ? diff --git a/pc4mobx/hrmSalary/stores/salaryItem.js b/pc4mobx/hrmSalary/stores/salaryItem.js index 0550868b..4efa0c47 100644 --- a/pc4mobx/hrmSalary/stores/salaryItem.js +++ b/pc4mobx/hrmSalary/stores/salaryItem.js @@ -163,18 +163,22 @@ export class SalaryItemStore { //薪资项目-薪资项目详情 @action getItemForm = (id) => { - API.getItemForm({ id }).then(res => { - if (res.status) { - let data = res.data; - Object.keys(data).map(key => { - if (!_.isNil(data[key])) { - data[key] = data[key].toString(); - } - }); - this.request = data; - } else { - message.error(res.errormsg || "获取失败"); - } + return new Promise((resolve, reject) => { + API.getItemForm({ id }).then(res => { + if (res.status) { + let data = res.data; + Object.keys(data).map(key => { + if (!_.isNil(data[key])) { + data[key] = data[key].toString(); + } + }); + this.setRequest(data); + resolve(); + } else { + message.error(res.errormsg || "获取失败"); + reject(); + } + }); }); };