From d774de6a64b5d073120975e86e29fc251b6eac9d Mon Sep 17 00:00:00 2001 From: liyongshun <971387674@qq.com> Date: Thu, 28 Jul 2022 17:16:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E8=B5=84=E8=B4=A6=E5=A5=97=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E9=A1=B5=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/archive.js | 28 +- pc4mobx/hrmSalary/apis/welfareScheme.js | 20 +- .../components/importModal/modalStep1.js | 1 + pc4mobx/hrmSalary/pages/ledger/columns.js | 12 +- .../hrmSalary/pages/ledger/salaryItemForm.js | 54 +- .../pages/ledger/step3/AddCategoryModal.js | 8 +- .../pages/ledger/step3/canMoveItem.js | 57 ++- pc4mobx/hrmSalary/pages/salaryFile/index.js | 301 +++++++---- pc4mobx/hrmSalary/pages/salaryFile/index.less | 102 ++-- .../programme/copySchemaModal.js | 55 +- .../socialSecurityBenefits/programme/index.js | 143 +++--- .../pages/taxAgent/addTaxAgentModal.js | 31 +- pc4mobx/hrmSalary/pages/taxAgent/editModal.js | 3 +- pc4mobx/hrmSalary/pages/taxAgent/index.js | 6 +- pc4mobx/hrmSalary/stores/programme.js | 37 +- pc4mobx/hrmSalary/stores/salaryFile.js | 469 ++++++++++-------- 16 files changed, 784 insertions(+), 543 deletions(-) diff --git a/pc4mobx/hrmSalary/apis/archive.js b/pc4mobx/hrmSalary/apis/archive.js index e581e07d..8e36b859 100644 --- a/pc4mobx/hrmSalary/apis/archive.js +++ b/pc4mobx/hrmSalary/apis/archive.js @@ -12,7 +12,7 @@ export const getArchiveList = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -52,7 +52,7 @@ export const saveSalaryItem = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -69,7 +69,7 @@ export const saveTaxAgent = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -135,6 +135,10 @@ export const downloadsalaryArchiveDetail = params => { export const getImportTypes = () => { return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getImportTypes', 'GET', {}); } +// 获取档案和人员状态类型 +export const commonEnumList = (params) => { + return WeaTools.callApi('/api/bs/hrmsalary/common/enum/list', 'GET', params); +} // 导入预览 export const importPreview = (params) => { @@ -143,7 +147,7 @@ export const importPreview = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -155,7 +159,7 @@ export const importSalaryArchive = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -165,7 +169,7 @@ export const exportSalaryArchive = (ids = "") => { fetch('/api/bs/hrmsalary/salaryArchive/exportList?ids=' + ids).then(res => res.blob().then(blob => { var filename=`薪资档案.xlsx` var a = document.createElement('a'); - var url = window.URL.createObjectURL(blob); + var url = window.URL.createObjectURL(blob); a.href = url; a.download = filename; a.click(); @@ -180,7 +184,7 @@ export const adjustRecordTaxAgentList = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -192,7 +196,7 @@ export const adjustRecordSalaryItemList = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -204,7 +208,7 @@ export const singleSalaryItemList = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -216,7 +220,7 @@ export const singleTaxAgentList = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -233,7 +237,7 @@ export const getSalaryItemAdjustBeforeValue = (params) => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) } @@ -241,4 +245,4 @@ export const getSalaryItemAdjustBeforeValue = (params) => { // 调整-薪资项目-通过薪资档案的薪资项目id获取薪资项目调整表单 export const getSalaryItemFormByItemId = (params) => { return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getSalaryItemFormBySalaryArchiveItemId', 'GET', params); -} \ No newline at end of file +} diff --git a/pc4mobx/hrmSalary/apis/welfareScheme.js b/pc4mobx/hrmSalary/apis/welfareScheme.js index e742db40..979ebc72 100644 --- a/pc4mobx/hrmSalary/apis/welfareScheme.js +++ b/pc4mobx/hrmSalary/apis/welfareScheme.js @@ -10,7 +10,7 @@ export const getTable = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) }; @@ -20,7 +20,7 @@ export const createScheme = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) }; @@ -31,7 +31,7 @@ export const updateScheme = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) }; @@ -41,6 +41,16 @@ export const getCopyForm = params => { export const copyScheme = params => { return WeaTools.callApi('/api/bs/hrmsalary/scheme/copyScheme', 'get', params); }; +export const deleteScheme = params => { + return fetch('/api/bs/hrmsalary/scheme/delete', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }).then(res => res.json()) +}; export const getCustomCategoryForm = params => { @@ -65,7 +75,7 @@ export const updateCustomCategory = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) }; @@ -78,7 +88,7 @@ export const updateCustomCategoryStatus = params => { mode: 'cors', headers: { 'Content-Type': 'application/json' - }, + }, body: JSON.stringify(params) }).then(res => res.json()) }; diff --git a/pc4mobx/hrmSalary/components/importModal/modalStep1.js b/pc4mobx/hrmSalary/components/importModal/modalStep1.js index 038e576d..e941dba0 100644 --- a/pc4mobx/hrmSalary/components/importModal/modalStep1.js +++ b/pc4mobx/hrmSalary/components/importModal/modalStep1.js @@ -62,6 +62,7 @@ export default class ModalStep1 extends React.Component { downloadExtra= hasData === '1' ? `&hasData=true` : `&hasData=false`; } const dragger = { + accept: ".xlsx", name: 'file', multiple: false, action: "/api/doc/upload/uploadFile", //上传地址 diff --git a/pc4mobx/hrmSalary/pages/ledger/columns.js b/pc4mobx/hrmSalary/pages/ledger/columns.js index 42a1669e..0887a6e8 100644 --- a/pc4mobx/hrmSalary/pages/ledger/columns.js +++ b/pc4mobx/hrmSalary/pages/ledger/columns.js @@ -63,15 +63,15 @@ export const slideStep3Columns = [ key: 'name', }, { - title: "规则", + title: "核算公式", dataIndex: 'formulaContent', key: 'formulaContent' }, - // { - // title: "个税申请表对应字段", - // dataIndex: 'taxDeclarationColumn', - // key: 'taxDeclarationColumn', - // } + { + title: "个税申请表对应字段", + dataIndex: 'taxDeclarationColumn', + key: 'taxDeclarationColumn', + } ] export const slideStep4Columns = [ diff --git a/pc4mobx/hrmSalary/pages/ledger/salaryItemForm.js b/pc4mobx/hrmSalary/pages/ledger/salaryItemForm.js index f0a22f50..bb2a6aa2 100644 --- a/pc4mobx/hrmSalary/pages/ledger/salaryItemForm.js +++ b/pc4mobx/hrmSalary/pages/ledger/salaryItemForm.js @@ -1,7 +1,6 @@ import React from "react"; -import { Button, Icon, Table } from "antd"; -import { WeaInputSearch, WeaHelpfulTip, WeaSelect } from "ecCom"; -import { slideStep3Columns, dataSource } from "./columns"; +import { Button, Icon } from "antd"; +import { WeaHelpfulTip } from "ecCom"; import "./index.less"; import AddCategoryModal from "./step3/AddCategoryModal"; import { inject, observer } from "mobx-react"; @@ -81,20 +80,33 @@ export default class SalaryItemForm extends React.Component { setItemGroups(newItemGroups); } - // 修改列表数据顺序 - handleItemDataSourceChange(dataSource, item) { + // 修改项目组数据顺序 + handleUpgo = (index) => { const { ledgerStore: { itemGroups, setItemGroups } } = this.props; - dataSource.map((data, index) => { - data.sortedIndex = index; - }); - let itemResultGroups = itemGroups ? [...itemGroups] : []; - itemResultGroups.map(groupItem => { - if (groupItem.id == item.id) { - groupItem.items = dataSource; - } - }); - setItemGroups(itemResultGroups); - } + let newItemGroups = [...itemGroups]; + if (index !== 0) { + newItemGroups[index] = newItemGroups.splice(index - 1, 1, newItemGroups[index])[0]; + } else { + newItemGroups.push(newItemGroups.shift()); + } + setItemGroups(_.map(newItemGroups, (it, idx) => ({ + ...it, + sortedIndex: it.sortedIndex ? idx : undefined + }))); + }; + handleDowngo = (index) => { + const { ledgerStore: { itemGroups, setItemGroups } } = this.props; + let newItemGroups = [...itemGroups]; + if (index !== newItemGroups.length - 1) { + newItemGroups[index] = newItemGroups.splice(index + 1, 1, newItemGroups[index])[0]; + } else { + newItemGroups.unshift(newItemGroups.splice(index, 1)[0]); + } + setItemGroups(_.map(newItemGroups, (it, idx) => ({ + ...it, + sortedIndex: it.sortedIndex ? idx : undefined + }))); + }; render() { const { @@ -109,7 +121,6 @@ export default class SalaryItemForm extends React.Component { } = this.props; const { canEdit = "true" } = baseInfoRequest; const { previewVisible } = this.state; - return (
@@ -149,23 +160,26 @@ export default class SalaryItemForm extends React.Component { />
- +
- +
{itemGroups && - itemGroups.map(item => { + itemGroups.map((item, index) => { if (item.items) { return ( { this.handleItemDataSourceChange(dataSource, item); }} title={item.name} + sortedIndex={index} onGroupDelete={() => { this.handleGroupDelete(item); }} diff --git a/pc4mobx/hrmSalary/pages/ledger/step3/AddCategoryModal.js b/pc4mobx/hrmSalary/pages/ledger/step3/AddCategoryModal.js index 4979ea38..75ffedcf 100644 --- a/pc4mobx/hrmSalary/pages/ledger/step3/AddCategoryModal.js +++ b/pc4mobx/hrmSalary/pages/ledger/step3/AddCategoryModal.js @@ -13,11 +13,11 @@ export default class AddCategoryModal extends React.Component { } render() { return ( - {this.props.onSave(this.state.name)}}>保存} width={600} + {this.props.onSave(this.state.name)}}>保存} width={600} visible={this.props.visible} onCancel={() => {this.props.onCancel()}} >
- + 分类名称 {this.setState({name: value})}}/> @@ -25,6 +25,6 @@ export default class AddCategoryModal extends React.Component {
- ) + ) } -} \ No newline at end of file +} diff --git a/pc4mobx/hrmSalary/pages/ledger/step3/canMoveItem.js b/pc4mobx/hrmSalary/pages/ledger/step3/canMoveItem.js index d5666ea8..0da8b5bd 100644 --- a/pc4mobx/hrmSalary/pages/ledger/step3/canMoveItem.js +++ b/pc4mobx/hrmSalary/pages/ledger/step3/canMoveItem.js @@ -1,12 +1,20 @@ import React, { Fragment } from "react"; -import { Icon, Table, message, Modal } from "antd"; -import { WeaTable } from "ecCom"; +import { Icon, message, Modal } from "antd"; +import { WeaHelpfulTip, WeaTable } from "ecCom"; import { slideStep3Columns } from "../columns"; import AddSalaryItemModal from "./AddSalaryItemModal"; import { inject, observer } from "mobx-react"; +import { toJS } from "mobx"; import FormalFormModal from "../../salaryItem/formalFormModal"; import AddCategoryModal from "../step3/AddCategoryModal"; -import { toJS } from "mobx"; + +const helpContent = () => { + return + 1、新建薪资账套时,核算公式与【薪资项目管理】菜单一致;
+ 2、取值方式为公式的薪资项目,核算公式显示为具体公式;点击公式可编辑公式,核算时,按照当前薪资项目的公式进行核算;
+ 3、薪资账套内的薪资项目的取值方式的修改或公式的修改,都不影响【薪资项目管理】菜单的薪资项目取值方式或公式,只对当前账套生效;
+
; +}; @inject("ledgerStore") @observer @@ -15,7 +23,15 @@ export default class CanMoveItem extends React.Component { super(props); let columns = slideStep3Columns.map(item => { item = { ...item }; - if (item.key == "formulaContent") { + if (item.key === "formulaContent") { + item.title = + {item.title} + + ; item.render = (text, record) => { if (record.canEdit) { return ( @@ -87,7 +103,8 @@ export default class CanMoveItem extends React.Component { result.filter(item => selectedRowKeys.indexOf(item.key) < 0) ); }, - onCancel: () => {} + onCancel: () => { + } }); }; @@ -127,14 +144,16 @@ export default class CanMoveItem extends React.Component { onOk: () => { this.props.onGroupDelete && this.props.onGroupDelete(); }, - onCancel: () => {} + onCancel: () => { + } }); } render() { const { disabled, - ledgerStore: { setAddItemVisible, addItemVisible } + sortedIndex, + ledgerStore: { setAddItemVisible, addItemVisible, itemGroups = [] } } = this.props; const { selectedRowKeys, @@ -178,6 +197,30 @@ export default class CanMoveItem extends React.Component { /> } } + + { + sortedIndex !== 0 && + this.props.onUpgo(sortedIndex)} + style={{ + marginRight: 10, + cursor: "pointer" + }} + /> + } + { + sortedIndex !== toJS(itemGroups).length - 1 && + this.props.onDowngo(sortedIndex)} + style={{ + cursor: "pointer" + }} + /> + } + {!disabled && diff --git a/pc4mobx/hrmSalary/pages/salaryFile/index.js b/pc4mobx/hrmSalary/pages/salaryFile/index.js index ba92a4d9..1a4532a1 100644 --- a/pc4mobx/hrmSalary/pages/salaryFile/index.js +++ b/pc4mobx/hrmSalary/pages/salaryFile/index.js @@ -1,52 +1,33 @@ import React, { Fragment } from "react"; import { inject, observer } from "mobx-react"; -import { toJS } from "mobx"; import { WeaTableNew } from "comsMobx"; - +import { Button, Dropdown, Menu, message, Modal } from "antd"; import { - Button, - Table, - DatePicker, - Dropdown, - Menu, - message, - Modal, -} from "antd"; - -import { - WeaTop, - WeaTab, - WeaRightMenu, - WeaRangePicker, - WeaTable, - WeaInputSearch, - WeaSlideModal, + WeaBrowser, WeaCheckbox, + WeaFormItem, WeaHelpfulTip, + WeaInput, + WeaRightMenu, + WeaSearchGroup, + WeaSelect, + WeaSlideModal, + WeaTab, + WeaTop } from "ecCom"; +import { renderNoright } from "../../util"; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中 +import ChangeSalaryModal from "./changeSalaryModal"; +import EditAgentModal from "./editAgentModal"; +import SlideModalTitle from "../../components/slideModalTitle"; +import SlideSalaryItem from "./slideSalaryItem"; +import SlideAgent from "./slideAgent"; +import ImportModal from "../../components/importModal"; +import SalaryFileViewSlide from "./saralyFileViewSlide"; +import CustomPaginationTable from "../../components/customPaginationTable"; +import "./index.less"; const WeaTableComx = WeaTableNew.WeaTable; -import { renderNoright, getSearchs } from "../../util"; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中 -import CustomTab from "../../components/customTab"; -import ContentWrapper from "../../components/contentWrapper"; - -import { columns, dataSource } from "./columns"; - -import ChangeSalaryModal from "./changeSalaryModal" -import EditAgentModal from './editAgentModal'; -import SlideModalTitle from '../../components/slideModalTitle' -import SlideSalaryItem from './slideSalaryItem' -import SlideAgent from './slideAgent' -import ImportModal from '../../components/importModal' -import SalaryFileViewSlide from './saralyFileViewSlide' -import CustomPaginationTable from "../../components/customPaginationTable" - -const { MonthPicker } = DatePicker; - -import "./index.less"; -import CustomTable from "../../components/customTable"; - @inject("salaryFileStore", "taxAgentStore") @observer export default class SalaryFile extends React.Component { @@ -67,16 +48,86 @@ export default class SalaryFile extends React.Component { selectedRowKeys: [], showSearchBar: false, importResult: {}, - searchValue: "" - } - this.pageInfo = {current: 1, pageSize: 10} + searchValue: "", + searchItemsValue: { + username: "", + departmentIds: "", + positionIds: "", + userstatus: "", + archiveStatus: "" + } + }; + this.pageInfo = { current: 1, pageSize: 10 }; } + Input = (value, key) => { + const { username } = this.state.searchItemsValue; + return ( + + this.setState({ + searchItemsValue: { + ...this.state.searchItemsValue, + [key]: val + } + })}/> + + ); + }; + Browser = (value, key) => { + const { positionIds, departmentIds } = this.state.searchItemsValue; + return ( + + { + this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } }); + }}/> + + ); + }; + Select = (value, key) => { + const { salaryFileStore } = this.props; + const { userstatus, archiveStatus } = this.state.searchItemsValue; + const { archiveStatusList, userStatusList } = salaryFileStore; + return ( + + this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/> + + ); + }; + componentWillMount() { const { - salaryFileStore: { doInit }, + salaryFileStore: { doInit } } = this.props; - doInit(); + doInit({ ...this.state.searchItemsValue }); } // 设置导入步数 @@ -88,7 +139,7 @@ export default class SalaryFile extends React.Component { renderFormComponent() { return (
- + { + importSalaryArchive(params, this.state.searchItemsValue).then((data) => { data.errorData = data.errorNotice; this.setState({ - importResult: data, + importResult: data }); }); } @@ -129,7 +180,7 @@ export default class SalaryFile extends React.Component { // 导出全部 handleExportAll() { const { - salaryFileStore: { exportSalaryArchive }, + salaryFileStore: { exportSalaryArchive } } = this.props; exportSalaryArchive(); } @@ -137,7 +188,7 @@ export default class SalaryFile extends React.Component { // 定制列 getColumns() { const { - salaryFileStore: { tableStore }, + salaryFileStore: { tableStore } } = this.props; return tableStore.columns .filter((item) => item.display == "true") @@ -159,7 +210,7 @@ export default class SalaryFile extends React.Component { handleEdit(record) { this.setState({ editSlideVisible: true }); const { - salaryFileStore: { setCurrentId }, + salaryFileStore: { setCurrentId } } = this.props; setCurrentId(record.id); } @@ -167,7 +218,7 @@ export default class SalaryFile extends React.Component { // 显示调整个税扣缴义务人表单 handSildeOptionMenuClick(e) { const { - salaryFileStore: { setEditAgentVisible }, + salaryFileStore: { setEditAgentVisible } } = this.props; setEditAgentVisible(true); } @@ -208,26 +259,26 @@ export default class SalaryFile extends React.Component { // 显示影响搜索面板 handleShowSearchBar = () => { this.setState({ - showSearchBar: !this.state.showSearchBar, + showSearchBar: !this.state.showSearchBar }); }; // 页面跳转 handlePageChange = (value) => { - const { salaryFileStore: {getTableDatas, form}} = this.props; + const { salaryFileStore: { getTableDatas, form } } = this.props; this.pageInfo.current = value; - getTableDatas(this.pageInfo) - } + getTableDatas({ ...this.state.searchItemsValue, ...this.pageInfo }); + }; handleShowSizeChange(pageInfo) { - const { salaryFileStore: {getTableDatas, form}} = this.props; - getTableDatas(pageInfo) + const { salaryFileStore: { getTableDatas, form } } = this.props; + getTableDatas({ ...this.state.searchItemsValue, ...pageInfo }); } // 搜索 handleSearch(value) { const { - salaryFileStore: { getTableDatas, form }, + salaryFileStore: { getTableDatas, form } } = this.props; getTableDatas({ username: value }); } @@ -235,21 +286,21 @@ export default class SalaryFile extends React.Component { // 初始化导入参数 handleInitModal() { const { - salaryFileStore: { setPreviewDataSource }, + salaryFileStore: { setPreviewDataSource } } = this.props; setPreviewDataSource([]); this.setState({ - importResult: {}, + importResult: {} }); } showColumn = () => { const { salaryFileStore: { tableStore } } = this.props; - console.log("showColumn:", tableStore.setColSetVisible(true)); + // console.log("showColumn:", tableStore.setColSetVisible(true)); tableStore.setColSetVisible(true); tableStore.tableColSet(true); - console.log("showColumn:") - } + // console.log("showColumn:"); + }; render() { const { salaryFileStore, taxAgentStore: { showOperateBtn } } = this.props; @@ -262,7 +313,7 @@ export default class SalaryFile extends React.Component { showSearchAd, getTableDatas, doSearch, - setShowSearchAd, + setShowSearchAd } = salaryFileStore; const { importType, @@ -272,7 +323,7 @@ export default class SalaryFile extends React.Component { currentId, editAgentVisible, setEditAgentVisible, - pageInfo, + pageInfo } = salaryFileStore; const { selectedTab, step, selectedRowKeys } = this.state; @@ -285,10 +336,10 @@ export default class SalaryFile extends React.Component { // 右键菜单 { key: "BTN_COLUMN", - icon: , + icon: , content: "显示列定制", - onClick: this.showColumn, - }, + onClick: this.showColumn + } ]; const collectParams = { // 收藏功能配置 @@ -296,24 +347,33 @@ export default class SalaryFile extends React.Component { favouritetype: 1, objid: 0, link: "wui/index.html#/ns_demo03/index", - importantlevel: 1, + importantlevel: 1 }; const adBtn = [ // 高级搜索内部按钮 - , - , , + ]; const topTab = []; - const renderSearchOperationItem = () => {}; + const renderSearchOperationItem = () => { + }; const handleMenuClick = (e) => { const { key } = e; @@ -324,7 +384,8 @@ export default class SalaryFile extends React.Component { onOk: () => { this.setState({ importType: e.key, isInit: true, modalVisiable: true, step: 0 }); }, - onCancel() {}, + onCancel() { + } }); } else { this.setState({ importType: e.key, isInit: true, modalVisiable: true, step: 0 }); @@ -338,7 +399,7 @@ export default class SalaryFile extends React.Component { return; } const { - salaryFileStore: { exportSalaryArchive }, + salaryFileStore: { exportSalaryArchive } } = this.props; exportSalaryArchive(selectedRowKeys.join(",")); }; @@ -346,7 +407,7 @@ export default class SalaryFile extends React.Component { const menu = ( {/*暂时去掉调整个税扣缴义务人导入按钮*/} - {_.filter(importType, it => it.id!=="taxAgentAdjust").map((item) => ( + {_.filter(importType, it => it.id !== "taxAgentAdjust").map((item) => ( {item.content} ))} @@ -362,7 +423,9 @@ export default class SalaryFile extends React.Component { const renderRightOperation = () => { return (
{ showOperateBtn && @@ -404,23 +467,36 @@ export default class SalaryFile extends React.Component { {/* }}>*/} {/* 调薪记录*/} {/**/} - { - this.setState({ - searchValue: value, - }); - }} - onSearch={(value) => { - this.handleSearch(value); - }} - /> + + {/* {*/} + {/* this.setState({*/} + {/* searchValue: value*/} + {/* });*/} + {/* }}*/} + {/* onSearch={(value) => {*/} + {/* this.handleSearch(value);*/} + {/* }}*/} + {/*/>*/} {/* */}
); }; - const handleSlideMoreMenuClick = () => {}; + const renderSearch = () => { + const searchItems = [ + { com: this.Input("姓名", "username") }, + { com: this.Browser("部门", "departmentIds") }, + { com: this.Browser("岗位", "positionIds") }, + { com: this.Select("人员状态", "userstatus") }, + { com: this.Select("档案状态", "archiveStatus") } + ]; + return ; + }; + + const handleSlideMoreMenuClick = () => { + }; const slideMoreMenu = ( @@ -441,7 +517,7 @@ export default class SalaryFile extends React.Component { const rowSelection = { selectedRowKeys, - onChange: this.onSelectChange, + onChange: this.onSelectChange }; return ( @@ -452,19 +528,31 @@ export default class SalaryFile extends React.Component { > } // 左侧图标 + icon={} // 左侧图标 iconBgcolor="#F14A2D" // 左侧图标背景色 showDropIcon={true} // 是否显示下拉按钮 dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同) dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能 > - setShowSearchAd(bool)} //高级搜索面板受控 + searchsAd={renderSearch()} // 高级搜索内部数据getSearchs(form, toJS(condition), 2) + buttonsAd={adBtn} // 高级搜索内部按钮 + onSearch={() => doSearch(this.state.searchItemsValue)} // 点搜索按钮时的回调this.handleSearch() + searchsAdQuick={renderRightOperation()} + onSearchChange={(v) => + this.setState({ + searchItemsValue: { + ...this.state.searchItemsValue, + username: v + } + })} // 在搜索框中输入的文字改变时的回调: 这里需要同步高级搜索和外部搜索框的值form.updateFields({ username: v }) + searchsBaseValue={this.state.searchItemsValue.username} // 外部input搜索值受控: 这里和高级搜索的requestname同步form.getFormParams().username /> @@ -477,13 +565,14 @@ export default class SalaryFile extends React.Component { total={pageInfo.total} current={pageInfo.pageNum} pageSize={this.pageInfo.pageSize} - scroll={{x: this.getColumns().length ? this.getColumns().length * 150 : 1200}} + rowClassName={(record) => record.archiveStatus === "ARCHIVE" ? "archiveRow" : ""} + scroll={{ x: this.getColumns().length ? this.getColumns().length * 150 : 1200 }} onPageChange={(value) => { - this.handlePageChange(value) + this.handlePageChange(value); }} onShowSizeChange={(current, pageSize) => { - this.pageInfo = {current, pageSize} - this.handleShowSizeChange(this.pageInfo) + this.pageInfo = { current, pageSize }; + this.handleShowSizeChange(this.pageInfo); }} /> @@ -556,7 +645,7 @@ export default class SalaryFile extends React.Component { - {selectedTab == 0 && } - {selectedTab == 1 && } + {selectedTab == 0 && } + {selectedTab == 1 && }
} onClose={() => this.setState({ recordSlideVisible: false })} @@ -599,7 +688,7 @@ export default class SalaryFile extends React.Component { customOperate={this.renderEditSlideOperate()} /> } - content={} + content={} onClose={() => this.setState({ editSlideVisible: false })} showMask={true} closeMaskOnClick={() => this.setState({ editSlideVisible: false })} diff --git a/pc4mobx/hrmSalary/pages/salaryFile/index.less b/pc4mobx/hrmSalary/pages/salaryFile/index.less index e7244259..06535384 100644 --- a/pc4mobx/hrmSalary/pages/salaryFile/index.less +++ b/pc4mobx/hrmSalary/pages/salaryFile/index.less @@ -1,51 +1,79 @@ .changeSalaryModal { - padding: 10px 20px; - .itemWrapper { - line-height: 47px; + padding: 10px 20px; + + .itemWrapper { + line-height: 47px; + } + + .contentWrapper { + margin-top: 10px; + + .contentTitleWrapper { + height: 40px; + line-height: 40px; + + .rightIconWrapper { + display: inline-block; + float: right; + } } - .contentWrapper { - margin-top: 10px; - .contentTitleWrapper { - height: 40px; - line-height: 40px; - .rightIconWrapper { - display: inline-block; - float: right; - } - } - .tableWrapper { - margin-top: 10px; - } + + .tableWrapper { + margin-top: 10px; } + } } .salaryFileSlide { - padding: 10px 20px; - .searchBar { - height: 40px; - line-height: 40px; - text-align: right; - } - .tableWrapper { - margin-top: 10px; - } + padding: 10px 20px; + + .searchBar { + height: 40px; + line-height: 40px; + text-align: right; + } + + .tableWrapper { + margin-top: 10px; + } } .salaryFileViewSlide { - .slideItemWrapper { - padding-left: 20px; - padding-right: 20px; - } + .slideItemWrapper { + padding-left: 20px; + padding-right: 20px; + } } .salaryFileTabWrapper { - .searchPanel { - position: absolute; - z-index: 100; - width: 100%; - height: 200px; - bottom: -10px; - left: 0px; - } + .searchPanel { + position: absolute; + z-index: 100; + width: 100%; + height: 200px; + bottom: -10px; + left: 0px; + } +} + +.mySalaryBenefitsWrapper { + .archiveRow { + background: #F1F3F4; + } + + .wea-tab-search-ad-quick { + .wea-tab-right-search-ad-quick { + margin-top: 0; + } + + .wea-search-container-search-ad-quick { + top: 46px; + } + } + + .wea-tab-search-ad-quick-left { + text-align: right; + padding-right: 291px; + } } diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js index c5b785b3..e3b2cf29 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/copySchemaModal.js @@ -1,28 +1,31 @@ -import React from 'react' -import { Modal, Row, Col } from "antd" -import { WeaInput } from 'ecCom' +import React from "react"; +import { Col, Modal, Row } from "antd"; +import { WeaInput } from "ecCom"; export default class CopySchemaModal extends React.Component { - constructor(props){ - super(props) - this.state = { - value : "" - } - } - render() { - return ( - this.props.onCancel()} visible={this.props.visible}> - - - 方案名称 - - - { - this.setState({value: v}) - this.props.onChange(v)}} /> - - - - ) - } -} \ No newline at end of file + constructor(props) { + super(props); + this.state = { + value: "" + }; + } + + render() { + return ( + this.props.onCancel()} + visible={this.props.visible}> + + + {`${this.props.title}名称`} + + + { + this.setState({ value: v }); + this.props.onChange(v); + }}/> + + + + ); + } +} diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js index 2bdf230f..82dc15a1 100644 --- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js +++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js @@ -1,57 +1,27 @@ import React from "react"; import { inject, observer } from "mobx-react"; import { toJS } from "mobx"; -import { - Button, - Table, - DatePicker, - Row, - Col, - Switch, - Modal, - Dropdown, - Menu,message -} from "antd"; +import { Button, DatePicker, Dropdown, Menu, message, Modal, Switch } from "antd"; -import { - WeaTop, - WeaTab, - WeaRightMenu, - WeaRangePicker, - WeaInputSearch, - WeaSlideModal, - WeaSelect, - WeaTable -} from "ecCom"; +import { WeaRightMenu, WeaSelect, WeaSlideModal, WeaTop } from "ecCom"; import { WeaTableNew } from "comsMobx"; -import CustomTable from "../../../components/customTable"; import "./index.less"; -const WeaMobxTable = WeaTableNew.WeaTable; - -import { renderNoright, getSearchs } from "../../../util"; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中 +import { renderNoright } from "../../../util"; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中 import CustomTab from "../../../components/customTab"; -import ContentWrapper from "../../../components/contentWrapper"; import SlideModalTitle from "../../../components/slideModalTitle"; import TipLabel from "../../../components/TipLabel"; import DefaultSlideForm from "./defaultSlideForm"; import CustomNewModal from "./customNewModal"; -import { welfareTypeEnum, paymentScopeEnum } from "./enum"; +import { paymentScopeEnum, welfareTypeEnum } from "./enum"; import CustomPaginationTable from "../../../components/customPaginationTable"; - -import { - socialSecurityColumns, - accumulationFundColumns, - otherBenefitsColumns, - CustomBenefitsColumns, - dataSource -} from "./columns"; - -const { MonthPicker } = DatePicker; - import TwoColContent from "../../../components/twoColContent"; import CopySchemaModal from "./copySchemaModal"; +const WeaMobxTable = WeaTableNew.WeaTable; + +const { MonthPicker } = DatePicker; + @inject("programmeStore", "taxAgentStore") @observer export default class Programme extends React.Component { @@ -105,7 +75,7 @@ export default class Programme extends React.Component { ); default: - return
; + return
; } }; return newColumn; @@ -142,9 +112,17 @@ export default class Programme extends React.Component { 复制 + + { + this.onDelete(record); + }}> + 删除 + + }> - + ); } @@ -160,14 +138,15 @@ export default class Programme extends React.Component { onOk: () => { updateCustomCategoryStatus(record.id, value); }, - onCancel: () => {} + onCancel: () => { + } }); } getCustomColumns = columns => { const { taxAgentStore: { showOperateBtn } } = this.props; let newColumns = []; - newColumns = _.filter(columns, it => it.dataIndex !='operate').map(column => { + newColumns = _.filter(columns, it => it.dataIndex != "operate").map(column => { let newColumn = column; newColumn.render = (text, record, index) => { //前端元素转义 @@ -196,7 +175,7 @@ export default class Programme extends React.Component { /> ); default: - return
; + return
; } }; return newColumn; @@ -218,10 +197,25 @@ export default class Programme extends React.Component { onCopy(record) { this.setState({ copyId: record.id, + copyModalValue: record.schemeName, copyModalVisible: true }); } + onDelete = (record) => { + const { programmeStore: { deleteScheme, deleteLoading } } = this.props; + Modal.confirm({ + title: "确认信息", + content: "确认删除本条数据吗?", + confirmLoading: deleteLoading, + onOk: () => { + deleteScheme({ ids: [record.id] }); + }, + onCancel: () => { + } + }); + }; + onCustomOperatesClick(record, index, operate, flag) { switch (operate.text.toString()) { case "编辑": // 编辑 @@ -235,7 +229,7 @@ export default class Programme extends React.Component { programmeStore: { getCustomForm, setCustomNewVisible, setCustomRequest }, taxAgentStore: { showOperateBtn } } = this.props; - if(!showOperateBtn){ + if (!showOperateBtn) { message.warning("请设置编辑权限!"); return; } @@ -428,7 +422,7 @@ export default class Programme extends React.Component { "2、新增自定义福利默认启用,社保福利方案中的自定义福利项均未开启缴纳,当前页面的自定义福利项才可以停用;停用后再新增方案时没有该福利项", "3、自定义福利若要缴纳,需要在方案里填写缴纳相关数据" ]; - return ; + return ; }; const handleCopyModalSave = () => { @@ -452,7 +446,7 @@ export default class Programme extends React.Component { {/* 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能 */} } // 左侧图标 + icon={} // 左侧图标 iconBgcolor="#F14A2D" // 左侧图标背景色 showDropIcon={true} // 是否显示下拉按钮 dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同) @@ -501,35 +495,35 @@ export default class Programme extends React.Component { /> {selectedKey == "custom" ? - } - rightContent={renderCustomRightContent()} - /> + leftContent={ + + } + rightContent={renderCustomRightContent()} + /> : { - this.handlePageChange(value); - }} - onShowSizeChange={(current, pageSize) => { - this.pageInfo = { current, pageSize }; - const { - programmeStore: { form, getTableDatas, selectedKey } - } = this.props; - getTableDatas(selectedKey, this.pageInfo); - }} - />} + loading={loading} + columns={this.getColumns(tableColumns)} + dataSource={tableDataSource} + total={toJS(tablePageInfo).total} + current={toJS(tablePageInfo).pageNum} + pageSize={this.pageInfo.pageSize} + onPageChange={value => { + this.handlePageChange(value); + }} + onShowSizeChange={(current, pageSize) => { + this.pageInfo = { current, pageSize }; + const { + programmeStore: { form, getTableDatas, selectedKey } + } = this.props; + getTableDatas(selectedKey, this.pageInfo); + }} + />} {this.state.slideVisiable && @@ -571,6 +565,7 @@ export default class Programme extends React.Component { {this.state.copyModalVisible && it.viewcondition === selectedKey)[0].title} visible={this.state.copyModalVisible} value={this.state.copyModalValue} onChange={value => this.setState({ copyModalValue: value })} diff --git a/pc4mobx/hrmSalary/pages/taxAgent/addTaxAgentModal.js b/pc4mobx/hrmSalary/pages/taxAgent/addTaxAgentModal.js index a311613e..c963729d 100644 --- a/pc4mobx/hrmSalary/pages/taxAgent/addTaxAgentModal.js +++ b/pc4mobx/hrmSalary/pages/taxAgent/addTaxAgentModal.js @@ -1,7 +1,6 @@ import React from "react"; -import { Modal, Button, Row, Col, Radio, Checkbox } from "antd"; -import { WeaSelect, WeaBrowser } from "ecCom"; -import { inject, observer } from "mobx-react"; +import { Button, Checkbox, Col, Modal, Row } from "antd"; +import { WeaBrowser, WeaSelect } from "ecCom"; import RequiredLabelTip from "../../components/requiredLabelTip"; const CheckboxGroup = Checkbox.Group; @@ -12,7 +11,7 @@ export default class AddTaxAgentModal extends React.Component { this.state = { selectedKey: "EMPLOYEE", checkboxValue: [], - ids: "", + ids: "" }; } @@ -28,8 +27,8 @@ export default class AddTaxAgentModal extends React.Component { employeeStatus: checkboxValue, targetParams: _.map(ids.split(","), (it) => ({ targetType: selectedKey, - targetId: it, - })), + targetId: it + })) }; onTaxAgentSave && onTaxAgentSave(payload); }; @@ -39,7 +38,7 @@ export default class AddTaxAgentModal extends React.Component { this.setState({ selectedKey: "EMPLOYEE", checkboxValue: [], - ids: "", + ids: "" }); }; @@ -66,7 +65,7 @@ export default class AddTaxAgentModal extends React.Component { 对象类型 - +
@@ -76,7 +75,7 @@ export default class AddTaxAgentModal extends React.Component { ...it, key: it.id, showname: it.name, - selected: false, + selected: false }))} value={this.state.selectedKey} onChange={(value) => { @@ -100,6 +99,16 @@ export default class AddTaxAgentModal extends React.Component { { @@ -135,13 +144,13 @@ export default class AddTaxAgentModal extends React.Component { 选择员工状态 - + ({ label: it.name, - value: it.id, + value: it.id }))} value={this.state.checkboxValue} onChange={(e) => this.onCheckboxChange(e)} diff --git a/pc4mobx/hrmSalary/pages/taxAgent/editModal.js b/pc4mobx/hrmSalary/pages/taxAgent/editModal.js index 71c19d90..40c22a38 100644 --- a/pc4mobx/hrmSalary/pages/taxAgent/editModal.js +++ b/pc4mobx/hrmSalary/pages/taxAgent/editModal.js @@ -140,8 +140,9 @@ export default class EditModal extends React.Component {
} + initLoadCss visible={visible} - style={{ width: 800, minHeight: 350 }} + style={{ width: 800, height: 450 }} hasScroll> {title.indexOf("编辑") >= 0 && ( this.customSelectkey = customSelectkey - + @action setCustomRequest = customRequest => this.customRequest = customRequest @@ -171,7 +171,7 @@ export class ProgrammeStore { @action createScheme = (params) => { params.insuranceScheme.paymentArea = params.insuranceScheme.paymentType; if(!this.valideForm(params)) { - return + return } console.log("params:", params); API.createScheme(params).then(res => { @@ -211,6 +211,19 @@ export class ProgrammeStore { } }) } + @action("删除社保数据") + deleteScheme = (params) => { + this.deleteLoading= true; + API.deleteScheme(params).then(res => { + this.deleteLoading= false; + if(res.status) { + message.success("刪除成功") + this.getTableDatas(this.selectedKey); + } else { + message.error(res.errormsg || "刪除失败") + } + }) + } @action getCustomForm = (params) => { API.getCustomCategoryForm(params).then(res => { @@ -260,7 +273,7 @@ export class ProgrammeStore { } }) }) - + } // 自定义福利启用、停用 @@ -295,8 +308,8 @@ export class ProgrammeStore { } }) }) - + } -} \ No newline at end of file +} diff --git a/pc4mobx/hrmSalary/stores/salaryFile.js b/pc4mobx/hrmSalary/stores/salaryFile.js index 3784b7e7..70668e3f 100644 --- a/pc4mobx/hrmSalary/stores/salaryFile.js +++ b/pc4mobx/hrmSalary/stores/salaryFile.js @@ -1,10 +1,10 @@ -import { observable, action, toJS } from 'mobx'; -import { message } from 'antd'; -import { WeaForm, WeaTableNew } from 'comsMobx'; -import moment from 'moment' +import { action, observable } from "mobx"; +import { message } from "antd"; +import { WeaForm, WeaTableNew } from "comsMobx"; +import moment from "moment"; -import * as API from '../apis/archive'; // 引入API接口文件 -import { notNull } from '../util/validate' +import * as API from "../apis/archive"; // 引入API接口文件 +import { notNull } from "../util/validate"; const { TableStore } = WeaTableNew; @@ -16,49 +16,75 @@ export class salaryFileStore { @observable showSearchAd = false; // 高级搜索面板显示 @observable loading = true; // 数据加载状态 + @observable userStatusList = []; + @observable archiveStatusList = []; + @observable importType = []; @observable previewColumns = []; @observable previewDataSource = []; @observable dataSource = []; - @observable detailForm= {} + @observable detailForm = {}; @observable pageInfo = {}; // 分页数据 - @observable salaryArchiveTaxAgentForm = {} - @observable salaryItemChangeForm = {} - @observable taxAgentList = [] - @observable salaryItemList = [] - @observable singleSalaryItemList = [] - @observable singleTaxAgentList = [] + @observable salaryArchiveTaxAgentForm = {}; + @observable salaryItemChangeForm = {}; + @observable taxAgentList = []; + @observable salaryItemList = []; + @observable singleSalaryItemList = []; + @observable singleTaxAgentList = []; - @observable currentId = "" - @observable editAgentVisible = false + @observable currentId = ""; + @observable editAgentVisible = false; // ** 设置导入参数 start ** @action setPreviewDataSource = (previewDataSource) => { - this.previewDataSource = previewDataSource - } + this.previewDataSource = previewDataSource; + }; // ** 设置导入参数 end ** // 初始化操作 @action - doInit = () => { + doInit = (params) => { // this.getCondition(); - this.getTableDatas(); + this.getTableDatas(params); this.getImportTypes(); - } + this.commonEnumList("archive", { enumClass: "com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum" }); + this.commonEnumList("user", { enumClass: "com.engine.salary.enums.UserStatusEnum" }); + }; // 获取导入类型 @action getImportTypes = () => { API.getImportTypes().then(res => { - if(res.status) { - this.importType = res.data + if (res.status) { + this.importType = res.data; } else { - message.error(res.errormsg || "获取失败") + message.error(res.errormsg || "获取失败"); } - }) - } + }); + }; + + @action("获取档案和人员状态类型") + commonEnumList = (type, params) => { + API.commonEnumList(params).then(res => { + if (res.status) { + const data = _.map(res.data, it => ({ + key: String(it.value), + showname: it.defaultLabel + })); + type === "archive" ? this.archiveStatusList = [{ + key: "", + showname: "" + }, ...data] : this.userStatusList = [{ + key: "", + showname: "" + }, ...data]; + } else { + message.error(res.errormsg || "获取失败"); + } + }); + }; // 获得高级搜索表单数据 @action @@ -68,121 +94,126 @@ export class salaryFileStore { this.condition = res.condition; this.form.initFormFields(res.condition); // 渲染高级搜索form表单 } else { - message.error(res.msg || '接口调用失败!') + message.error(res.msg || "接口调用失败!"); } })); - } + }; // 渲染table数据1 @action getTableDatas = (params) => { this.loading = true; const formParams = this.form.getFormParams() || {}; - params = {...formParams, ...params} + const { departmentIds = "", positionIds = "", ...extraParams } = params || {}; + params = { + ...formParams, ...extraParams, + departmentIds: departmentIds ? departmentIds.split(",") : "", + positionIds: positionIds ? positionIds.split(",") : "" + }; API.getArchiveList(params).then(action(res => { if (res.status) { // 接口请求成功/失败处理 this.tableStore.getDatas(res.data.dataKey.datas); // table 请求数据 this.dataSource = res.data.pageInfo.list.map(item => { - item.key = item.id + item.key = item.id; return item; - }) - this.pageInfo = res.data.pageInfo + }); + this.pageInfo = res.data.pageInfo; } else { - message.error(res.errormsg || '接口调用失败!') + message.error(res.errormsg || "接口调用失败!"); } this.loading = false; })); - } + }; @action setShowSearchAd = bool => this.showSearchAd = bool; // 高级搜索 - 搜索 - @action doSearch = () => { - this.getTableDatas(); + @action doSearch = (params) => { + this.getTableDatas(params); this.showSearchAd = false; - } + }; // 导入预览 @action importPreview = (params) => { API.importPreview(params).then(res => { - if(res.status) { - let headers = res.data.headers + if (res.status) { + let headers = res.data.headers; this.previewColumns = headers.map((item, index) => { return { key: index, title: item, dataIndex: index - } - }) + }; + }); let list = res.data.list; this.previewDataSource = list.map(item => { - let result = {} + let result = {}; item.map((i, index) => { - result[index] = i - }) + result[index] = i; + }); return result; - }) + }); } else { - message.error(res.errormsg || "获取数据失败") + message.error(res.errormsg || "获取数据失败"); } - }) - } + }); + }; // 导入档案 @action - importSalaryArchive = (params) => { + importSalaryArchive = (params, tableParams) => { return new Promise((resolve, reject) => { API.importSalaryArchive(params).then(res => { - if(res.status) { + if (res.status) { // message.success("导入成功") - this.getTableDatas(); - resolve(res.data) + this.getTableDatas({...tableParams}); + resolve(res.data); } else { - message.error(res.errormsg || "接口异常") - reject() + message.error(res.errormsg || "接口异常"); + reject(); } - }) - }) - - } + }); + }); + + }; // 导出档案 @action exportSalaryArchive = (ids = "") => { - API.exportSalaryArchive(ids) - } + API.exportSalaryArchive(ids); + }; // 获取详情 @action getArchiveForm = (salaryArchiveId) => { - API.getArchiveForm({salaryArchiveId}).then(res => { - if(res.status) { - this.detailForm = res.data + API.getArchiveForm({ salaryArchiveId }).then(res => { + if (res.status) { + this.detailForm = res.data; } else { - message.error(res.errormsg || "获取失败") + message.error(res.errormsg || "获取失败"); } - }) - } + }); + }; // 个税义务人表单 valideTaxAgentForm(params) { - if(!notNull(params.effectiveTime)) { - message.warning("生效日期不能为空") - return false + if (!notNull(params.effectiveTime)) { + message.warning("生效日期不能为空"); + return false; } - if(!notNull(params.adjustReason)) { - message.warning("调整原因不能为空") - return false + if (!notNull(params.adjustReason)) { + message.warning("调整原因不能为空"); + return false; } - if(!notNull(params.taxAgentId)) { - message.warning("调整后个税义务人不能为空") - return false + if (!notNull(params.taxAgentId)) { + message.warning("调整后个税义务人不能为空"); + return false; } return true; } @@ -190,158 +221,158 @@ export class salaryFileStore { // 薪资档案-保存个税扣缴义务人调整 @action saveTaxAgent = (params) => { - if(!this.valideTaxAgentForm(params)) { - return + if (!this.valideTaxAgentForm(params)) { + return; } return new Promise((resolve, reject) => { API.saveTaxAgent(params).then(res => { - if(res.status) { + if (res.status) { message.success("保存成功"); - resolve() + resolve(); } else { - message.error(res.errormsg || "保存失败") - reject() + message.error(res.errormsg || "保存失败"); + reject(); } - }) - }) - - } + }); + }); + + }; // 调整-义务扣缴人-调整表单 @action getTaxAgentForm = (salaryArchiveId) => { return new Promise((resolve, reject) => { - API.getTaxAgentForm({salaryArchiveId}).then(res => { - if(res.status) { - this.salaryArchiveTaxAgentForm = res.data.salaryArchiveTaxAgentForm - resolve() + API.getTaxAgentForm({ salaryArchiveId }).then(res => { + if (res.status) { + this.salaryArchiveTaxAgentForm = res.data.salaryArchiveTaxAgentForm; + resolve(); } else { - message.error(res.errormsg || "获取失败") - reject() + message.error(res.errormsg || "获取失败"); + reject(); } - }) - }) - } + }); + }); + }; convertForm = (resData) => { - let salaryItemChangeForm = {} + let salaryItemChangeForm = {}; salaryItemChangeForm.adjustReasonList = resData.salaryArchiveItemForm.adjustReasonList.map(item => { - item = {...item} + item = { ...item }; item.key = item.id; - item.showname = item.content - item.selected = false - return item - }) + item.showname = item.content; + item.selected = false; + return item; + }); salaryItemChangeForm.salaryItemList = resData.salaryArchiveItemDetail.salaryItemList.map(item => { - item = {...item} + item = { ...item }; item.key = item.id; - item.showname = item.content - item.selected = false - return item - }) - + item.showname = item.content; + item.selected = false; + return item; + }); + salaryItemChangeForm.columns = resData.salaryArchiveItemDetail.columns.map(item => { - let result = {} - result.title = item - if(item == "薪资项目") { - result.dataIndex = "salaryItem" - result.key = "salaryItem" + let result = {}; + result.title = item; + if (item == "薪资项目") { + result.dataIndex = "salaryItem"; + result.key = "salaryItem"; } - if(item == "调整前") { - result.dataIndex = "salaryBefore" - result.key = "salaryBefore" + if (item == "调整前") { + result.dataIndex = "salaryBefore"; + result.key = "salaryBefore"; } - if(item == "调整后") { - result.dataIndex = "adjustAfter" - result.key = "adjustAfter" + if (item == "调整后") { + result.dataIndex = "adjustAfter"; + result.key = "adjustAfter"; } - return result - }) + return result; + }); salaryItemChangeForm.dataSource = resData.salaryArchiveItemDetail.list.map((item, index) => { - item = {...item} - item.key = (index + 1).toString() - return item - }) + item = { ...item }; + item.key = (index + 1).toString(); + return item; + }); - let effectiveTime = resData.salaryArchiveItemForm.effectiveTime - if(effectiveTime) { - salaryItemChangeForm.effectiveTime = moment(new Date(effectiveTime)).format("YYYY-MM-DD") + let effectiveTime = resData.salaryArchiveItemForm.effectiveTime; + if (effectiveTime) { + salaryItemChangeForm.effectiveTime = moment(new Date(effectiveTime)).format("YYYY-MM-DD"); } - salaryItemChangeForm.description = resData.salaryArchiveItemForm.description - salaryItemChangeForm.adjustReason = resData.salaryArchiveItemForm.adjustReason - return salaryItemChangeForm - } + salaryItemChangeForm.description = resData.salaryArchiveItemForm.description; + salaryItemChangeForm.adjustReason = resData.salaryArchiveItemForm.adjustReason; + return salaryItemChangeForm; + }; // 薪资档案-获取薪资项目调整表单 @action getSalaryItemForm = (id) => { return new Promise((resolve, reject) => { - API.getSalaryItemForm({salaryArchiveItemId: id}).then(res => { - if(res.status) { - this.salaryItemChangeForm = this.convertForm(res.data) - resolve() + API.getSalaryItemForm({ salaryArchiveItemId: id }).then(res => { + if (res.status) { + this.salaryItemChangeForm = this.convertForm(res.data); + resolve(); } else { - message.error(res.errormsg || "获取失败") - reject() + message.error(res.errormsg || "获取失败"); + reject(); } - }) - }) - } + }); + }); + }; // 调整记录 个税义务人调整列表 @action adjustRecordTaxAgentList = (params) => { API.adjustRecordTaxAgentList(params).then(res => { - if(res.status) { - this.taxAgentList = res.data + if (res.status) { + this.taxAgentList = res.data; } else { - message.error(res.errormsg || "获取失败") + message.error(res.errormsg || "获取失败"); } - }) - } + }); + }; // 调整记录 薪资项目调整记录 @action adjustRecordSalaryItemList = (params) => { API.adjustRecordSalaryItemList(params).then(res => { - if(res.status) { + if (res.status) { this.salaryItemList = res.data; } else { - message.error(res.errormsg || "获取失败") + message.error(res.errormsg || "获取失败"); } - }) - } + }); + }; // slide 薪资项目列表 @action fetchSingleSalaryItemList = (params) => { API.singleSalaryItemList(params).then(res => { - if(res.status) { - this.singleSalaryItemList = res.data + if (res.status) { + this.singleSalaryItemList = res.data; } else { message.error(res.errormsg || "获取失败"); } - }) - } + }); + }; // slide 个税义务人列表 @action fetchSingleTaxAgentList = (params) => { API.singleTaxAgentList(params).then(res => { - if(res.status) { - this.singleTaxAgentList = res.data + if (res.status) { + this.singleTaxAgentList = res.data; } else { - message.error(res.errormsg || "获取失败") + message.error(res.errormsg || "获取失败"); } - }) - } + }); + }; // 设置当前查看的数据id @action - setCurrentId = (id) => this.currentId = id + setCurrentId = (id) => this.currentId = id; // 设置编辑个税义务人修改表modal @action @@ -351,105 +382,105 @@ export class salaryFileStore { @action getTaxAgentFormByTaxAgentId = (id) => { return new Promise((resolve, reject) => { - API.getTaxAgentFormBySalaryArchiveTaxAgentId({salaryArchiveTaxAgentId: id}).then(res => { - if(res.status) { - let form = res.data.salaryArchiveTaxAgentForm - form.effectiveTime = moment(new Date(form.effectiveTime)).format("YYYY-MM-DD") - this.salaryArchiveTaxAgentForm = form - resolve(form) + API.getTaxAgentFormBySalaryArchiveTaxAgentId({ salaryArchiveTaxAgentId: id }).then(res => { + if (res.status) { + let form = res.data.salaryArchiveTaxAgentForm; + form.effectiveTime = moment(new Date(form.effectiveTime)).format("YYYY-MM-DD"); + this.salaryArchiveTaxAgentForm = form; + resolve(form); } else { - message.error(res.errormsg || "获取失败") - reject() + message.error(res.errormsg || "获取失败"); + reject(); } - }) - }) - - } + }); + }); + + }; validateSaveSalaryForm = (params) => { - if(!notNull(params.salaryArchiveId)) { - message.error("档案id不能为空") - return false - } - - if(!notNull(params.effectiveTime)) { - message.error("生效日期不能为空") - return false + if (!notNull(params.salaryArchiveId)) { + message.error("档案id不能为空"); + return false; } - if(!notNull(params.adjustReason)) { - message.error("调整原因不能为空") - return false + if (!notNull(params.effectiveTime)) { + message.error("生效日期不能为空"); + return false; } - if(!params.salaryArchiveItems || params.salaryArchiveItems.length == 0 ) { - message.error("调整明细不能为空") - return false + if (!notNull(params.adjustReason)) { + message.error("调整原因不能为空"); + return false; } - for(let i = 0; i < params.salaryArchiveItems.length; i++) { - if(!notNull(params.salaryArchiveItems[i].salaryItemId)) { - message.error("薪资项目不能为空") + if (!params.salaryArchiveItems || params.salaryArchiveItems.length == 0) { + message.error("调整明细不能为空"); + return false; + } + + for (let i = 0; i < params.salaryArchiveItems.length; i++) { + if (!notNull(params.salaryArchiveItems[i].salaryItemId)) { + message.error("薪资项目不能为空"); return false; } - if(!notNull(params.salaryArchiveItems[i].adjustValue)) { - message.error("调整后不能为空") + if (!notNull(params.salaryArchiveItems[i].adjustValue)) { + message.error("调整后不能为空"); return false; } } - + return true; - } + }; // 保存调薪 @action saveSalaryItem = (params) => { - if(!this.validateSaveSalaryForm(params)) { - return + if (!this.validateSaveSalaryForm(params)) { + return; } return new Promise((resolve, reject) => { API.saveSalaryItem(params).then(res => { - if(res.status) { - message.success("保存成功") - resolve() + if (res.status) { + message.success("保存成功"); + resolve(); } else { - message.error(res.errormsg || "保存失败") - reject() + message.error(res.errormsg || "保存失败"); + reject(); } - }) - }) - - } + }); + }); + + }; // 调整=薪资项目调整-获取调整前的值 @action getSalaryItemAdjustBeforeValue = (params) => { return new Promise((resolve, reject) => { API.getSalaryItemAdjustBeforeValue(params).then(res => { - if(res.status) { - resolve(res.data) + if (res.status) { + resolve(res.data); } else { - message.error(res.errormsg || "获取失败") - reject(res.errormsg) + message.error(res.errormsg || "获取失败"); + reject(res.errormsg); } - }) - }) - } + }); + }); + }; // 调整-薪资项目-编辑获取表单 @action getSalaryItemFormByItemId = (id) => { return new Promise((resolve, reject) => { - API.getSalaryItemFormByItemId({salaryArchiveItemId: id}).then(res => { - if(res.status) { - this.salaryItemChangeForm = this.convertForm(res.data) - resolve(this.salaryItemChangeForm) + API.getSalaryItemFormByItemId({ salaryArchiveItemId: id }).then(res => { + if (res.status) { + this.salaryItemChangeForm = this.convertForm(res.data); + resolve(this.salaryItemChangeForm); } else { - message.error(res.errormsg || "获取失败") - reject() + message.error(res.errormsg || "获取失败"); + reject(); } - }) - }) - - } -} \ No newline at end of file + }); + }); + + }; +}