feature/2.9.42310.01-社保档案操作日志

This commit is contained in:
黎永顺 2023-10-23 17:37:17 +08:00
parent 452c22c262
commit 8b7bb221e2
6 changed files with 403 additions and 182 deletions

View File

@ -1,4 +1,5 @@
import { WeaTools } from 'ecCom';
import { WeaTools } from "ecCom";
import { postFetch } from "../util/request";
/**
* 薪资档案api
@ -7,120 +8,120 @@ import { WeaTools } from 'ecCom';
//薪资档案-薪资档案列表
export const getArchiveList = params => {
return fetch('/api/bs/hrmsalary/salaryArchive/list', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/list", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
//薪资档案的高级搜索
export const getSaCondition = params => {
return WeaTools.callApi('/api/bs/hrmsalary/archives/getSearchCondition', 'get', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/archives/getSearchCondition", "get", params);
};
//薪资档案-导出薪资档案
export const exportArchiveList = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/exportList', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/exportList", "POST", params);
};
//薪资档案-获取导入参数
export const getImportArchiveParam = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getImportParams', 'get', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getImportParams", "get", params);
};
//薪资档案-获取薪资档案详情表单
export const getArchiveForm = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getForm', 'get', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getForm", "get", params);
};
//薪资档案-获取薪资项目调整表单
export const getSalaryItemForm = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getSalaryItemForm', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getSalaryItemForm", "GET", params);
};
//薪资档案-保存薪资项目调整
export const saveSalaryItem = params => {
return fetch('/api/bs/hrmsalary/salaryArchive/saveSalaryItem', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/saveSalaryItem", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
//薪资档案-获取个税扣缴义务人调整表单
export const getTaxAgentForm = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getTaxAgentForm', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getTaxAgentForm", "GET", params);
};
//薪资档案-保存个税扣缴义务人调整
export const saveTaxAgent = params => {
return fetch('/api/bs/hrmsalary/salaryArchive/saveTaxAgent', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/saveTaxAgent", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
//薪资档案-删除个税扣缴义务人调整
export const deleteTaxAgent = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/deleteTaxAgent', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/deleteTaxAgent", "GET", params);
};
//薪资档案操作记录-薪资项目操作记录列表
export const getItemAdjustList = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchiveOperateLog/salaryItemList', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchiveOperateLog/salaryItemList", "POST", params);
};
//薪资档案操作记录-薪资项目操作记录列表的高级搜索
export const getItemAdjustSaCondition = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchiveOperateLog/getSalaryItemSearchCondition', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchiveOperateLog/getSalaryItemSearchCondition", "GET", params);
};
//薪资档案操作记录-导出-薪资项目操作记录列表
export const exportItemAdjust = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchiveOperateLog/exportSalaryItemList', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchiveOperateLog/exportSalaryItemList", "POST", params);
};
//薪资档案操作记录-个税扣缴义务人操作记录列表
export const getPersonAdjustList = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchiveOperateLog/salaryItemList', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchiveOperateLog/salaryItemList", "POST", params);
};
//薪资档案操作记录-个税扣缴义务人操作记录列表的高级搜索
export const getPersonAdjustSaCondition = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchiveOperateLog/getTaxAgentSearchCondition', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchiveOperateLog/getTaxAgentSearchCondition", "GET", params);
};
//薪资档案操作记录-导出-个税扣缴义务人操作记录列表
export const exportPersonAdjust = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchiveOperateLog/exportTaxAgentList', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchiveOperateLog/exportTaxAgentList", "POST", params);
};
//薪资档案-获取设置表单
export const getSettingForm = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getDimissionSetForm', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getDimissionSetForm", "GET", params);
};
//薪资档案-保存离职时段设置
export const saveSetting = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/saveDimissionSet', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/saveDimissionSet", "POST", params);
};
//薪资档案-模版下载链接(无数据)
@ -128,166 +129,170 @@ export const downloadSalaryArchiveTemplateurl = `/api/bs/hrmsalary/salaryArchive
// 薪资档案- 模版下载 (有之前数据)
export const downloadsalaryArchiveDetail = params => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/exportList', 'POST', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/exportList", "POST", params);
};
// 获取导入类型
export const getImportTypes = () => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getImportTypes', 'GET', {});
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getImportTypes", "GET", {});
};
// 获取档案和人员状态类型
export const commonEnumList = (params) => {
return WeaTools.callApi('/api/bs/hrmsalary/common/enum/list', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/common/enum/list", "GET", params);
};
// 发起调薪地址
export const salaryAdjustmentInfo = (params) => {
return WeaTools.callApi('/api/bs/hrmsalary/process/salaryAdjustmentInfo', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/process/salaryAdjustmentInfo", "GET", params);
};
// 导入预览
export const importPreview = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/preview', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/preview", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 导入档案
export const importSalaryArchive = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/importSalaryArchive', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/importSalaryArchive", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 导出档案
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);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}))
}
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);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}));
};
// 调整记录-个税扣缴义务人列表
export const adjustRecordTaxAgentList = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/taxAgentList', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/taxAgentList", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 调整记录-薪资项目-列表
export const adjustRecordSalaryItemList = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/salaryItemList', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/salaryItemList", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 调整记录-薪资项目-单个
export const singleSalaryItemList = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/singleSalaryItemList', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/singleSalaryItemList", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 调整记录-个税扣缴义务人-单个
export const singleTaxAgentList = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/singleTaxAgentList', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/singleTaxAgentList", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 调整-义务扣缴人-通过薪资档案的个税扣缴义务人id获取个税扣缴义务人调整表单
export const getTaxAgentFormBySalaryArchiveTaxAgentId = (params) => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getTaxAgentFormBySalaryArchiveTaxAgentId', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getTaxAgentFormBySalaryArchiveTaxAgentId", "GET", params);
};
// 调整-薪资项目-获取调整前的值
export const getSalaryItemAdjustBeforeValue = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/getSalaryItemAdjustBeforeValue', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/getSalaryItemAdjustBeforeValue", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 停薪
export const stopSalary = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/stopSalary', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/stopSalary", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 调整-薪资项目-通过薪资档案的薪资项目id获取薪资项目调整表单
export const getSalaryItemFormByItemId = (params) => {
return WeaTools.callApi('/api/bs/hrmsalary/salaryArchive/getSalaryItemFormBySalaryArchiveItemId', 'GET', params);
}
return WeaTools.callApi("/api/bs/hrmsalary/salaryArchive/getSalaryItemFormBySalaryArchiveItemId", "GET", params);
};
// 删除薪资项目调薪
export const deleteSalaryItem = (params) => {
return fetch(`/api/bs/hrmsalary/salaryArchive/deleteSalaryItem?salaryArchiveItemId=${params.salaryArchiveItemId}`, {
method: 'GET',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
}).then(res => res.json())
}
return fetch(`/api/bs/hrmsalary/salaryArchive/deleteSalaryItem?salaryArchiveItemId=${params.salaryArchiveItemId}`, {
method: "GET",
mode: "cors",
headers: {
"Content-Type": "application/json"
}
}).then(res => res.json());
};
export const getSingleSalaryItemInfo = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/getSingleSalaryItemInfo', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/getSingleSalaryItemInfo", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
export const editSingleSalaryItem = (params) => {
return fetch('/api/bs/hrmsalary/salaryArchive/adjustRecord/editSingleSalaryItem', {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
}).then(res => res.json())
}
return fetch("/api/bs/hrmsalary/salaryArchive/adjustRecord/editSingleSalaryItem", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
// 基数调整记录列表
export const getAdjustHistoryList = (params) => {
return postFetch("/api/bs/hrmsalary/archives/getAdjustHistoryList", params);
};

View File

@ -33,5 +33,70 @@ export const tabCondition = [
showcount: true,
title: "非系统人员",
viewcondition: "ext"
},
}
];
export const logConditions = [
{
items: [
{
colSpan: 1,
conditionType: "BROWSER",
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: true,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: true,
linkUrl: "/hrm/resource/HrmResource.jsp?id=",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: "",
type: "1"
},
domkey: ["employeeId"],
fieldcol: 10,
label: "对象",
lanId: 106,
labelcol: 4,
value: ""
},
{
colSpan: 1,
conditionType: "BROWSER",
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: true,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: true,
linkUrl: "/hrm/resource/HrmResource.jsp?id=",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: "",
type: "1"
},
domkey: ["operator"],
fieldcol: 10,
label: "操作人",
lanId: 111,
labelcol: 4,
value: ""
}
],
defaultshow: true
}
];

View File

@ -17,6 +17,7 @@ import UnifiedTable from "../../../components/UnifiedTable";
import { convertToUrlString, getURLParameters } from "../../../util/url";
import { salaryArchiveDelete } from "../../../apis/payrollFiles";
import ImportDialog from "../../../components/importDialog";
import OperateLogDialog from "./operateLogDialog";
import "./index.less";
import { sysinfo } from "../../../apis/ruleconfig";
@ -66,7 +67,8 @@ export default class Archives extends React.Component {
link: "", importResult: {}, imageId: "",
previewUrl: "/api/bs/hrmsalary/scheme/preview"
},
extEmpsWitch: "1" //非系统人员开关, 1 开启, 0关闭
extEmpsWitch: "1", //非系统人员开关, 1 开启, 0关闭
logDialog: { visible: false }
};
this.record = {};
}
@ -627,7 +629,8 @@ export default class Archives extends React.Component {
tabCount,
loading,
importDialog,
extEmpsWitch
extEmpsWitch,
logDialog
} = this.state;
const {
form, condition, showSearchAd, setShowSearchAd,
@ -820,7 +823,7 @@ export default class Archives extends React.Component {
key: "log",
icon: <i className="iconfont icon-caozuorizhi32"/>,
content: getLabel(111, "操作日志"),
onClick: key => alert(`点击了搜索 key = ${key}`)
onClick: key => this.setState({ logDialog: { ...logDialog, visible: true } })
}
]}
>
@ -871,6 +874,10 @@ export default class Archives extends React.Component {
</WeaNewScroll>
</div>
</WeaTop>
{/*操作日志*/}
<OperateLogDialog {...logDialog}
onCancel={() => this.setState({ logDialog: { ...logDialog, visible: false } })}
/>
{
this.state.editSlideVisible &&
<WeaSlideModal

View File

@ -85,3 +85,22 @@
}
}
}
//重构-社保福利档案
.logDialog {
.wea-dialog-body {
overflow-y: hidden;
}
.logDialogContent {
background: #F6F6F6;
padding: 16px;
width: 100%;
height: 100%;
.logTable {
background: #FFFFFF;
}
}
}

View File

@ -0,0 +1,118 @@
/*
* Author: 黎永顺
* name: 社保福利档案-操作日志
* Description:
* Date: 2023/10/23
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaDialog, WeaLocaleProvider, WeaTable } from "ecCom";
import { getAdjustHistoryList } from "../../../../apis/archive";
import { logConditions } from "../config";
import { getSearchs } from "../../../../util";
import moment from "moment";
const getLabel = WeaLocaleProvider.getLabel;
@inject("archivesStore")
@observer
class Index extends Component {
constructor(props) {
super(props);
this.state = {
dataSource: [], columns: [], pageInfo: { current: 0, pageSize: 10, total: 0 },
loading: false, conditions: []
};
}
componentDidMount() {
const { archivesStore: { logForm } } = this.props;
this.setState({
conditions: _.map(logConditions, it => ({
...it, items: _.map(it.items, o => ({ ...o, label: getLabel(o.lanId, o.label) }))
}))
}, () => logForm.initFormFields(this.state.conditions));
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) this.getAdjustHistoryList();
if (nextProps.visible !== this.props.visible && !nextProps.visible) {
this.setState({
dataSource: [], columns: [], pageInfo: { current: 0, pageSize: 10, total: 0 },
loading: false
});
}
}
getAdjustHistoryList = () => {
const { pageInfo } = this.state;
const payload = { ...pageInfo };
this.setState({ loading: true });
getAdjustHistoryList(payload).then(({ status, data }) => {
this.setState({ loading: false });
if (status) {
const { columns, list: dataSource, pageNum: current, pageSize, total } = data;
this.setState({
pageInfo: { ...pageInfo, current, pageSize, total },
dataSource, columns: _.map(columns, it => {
if (it.dataIndex === "operateTime") {
return { ...it, render: (text) => (<span>{moment(text).format("YYYY-MM-DD")}</span>) };
}
return { ...it };
})
});
}
}).catch(() => this.setState({ loading: false }));
};
render() {
const { loading, dataSource, columns, pageInfo, conditions } = this.state;
const { archivesStore: { logForm } } = this.props;
const pagination = {
...pageInfo,
showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`,
showQuickJumper: true,
showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"],
onShowSizeChange: (current, pageSize) => {
this.setState({
pageInfo: { ...pageInfo, current, pageSize }
}, () => this.getAdjustHistoryList());
},
onChange: current => {
this.setState({
pageInfo: { ...pageInfo, current }
}, () => this.getAdjustHistoryList());
}
};
const scrollHeight = this.logRef ? this.logRef.state.height - 135 : 606.6;
return (
<WeaDialog
{...this.props} title={getLabel(111, "操作日志")}
ref={dom => this.logRef = dom} className="logDialog" initLoadCss
style={{
width: 1150,
height: 606.6,
minHeight: 200,
minWidth: 380,
maxHeight: "90%",
maxWidth: "90%",
overflow: "hidden",
transform: "translate(0px, 0px)"
}}
>
<div className="logDialogContent">
{getSearchs(logForm, conditions, 4, false)}
<WeaTable
columns={columns} dataSource={dataSource}
loading={loading} className="logTable"
pagination={pagination} scroll={{ y: `${scrollHeight}px` }}
/>
</div>
</WeaDialog>
);
}
}
export default Index;

View File

@ -8,6 +8,13 @@ import * as API from "../apis/welfareArchive"; // 引入API接口文件
const { TableStore } = WeaTableNew;
export class ArchivesStore {
@observable logForm = new WeaForm(); // 社保福利档案重构-日志查询条件log
@observable tableStore = new TableStore(
// {dataHandle: (datas) => {
// return dataSource;