feature/2.10.1.2401.01-页面操作日志添加

This commit is contained in:
黎永顺 2024-02-23 10:13:43 +08:00
parent 949b907e89
commit 7078b1c6c4
42 changed files with 399 additions and 152 deletions

View File

@ -23,9 +23,8 @@ export const getTableDatas = (params) => {
//获取日志列表
export const getLogs = params => {
const payload = {
...params, module: "hrsa", dataset: "dataset", authParams: "{}",
filterConditions: "[]", transMethod: "hrsa",
showColums: "[{\"columName\":\"操作时间\",\"columIndex\":\"createdate\",\"width\":\"5%\"},{\"columName\":\"操作人\",\"columIndex\":\"operatorname\",\"width\":\"2%\"},{\"columName\":\"操作类型\",\"columIndex\":\"operatetypename\",\"width\":\"5%\"},{\"columName\":\"项目\",\"columIndex\":\"modulenamespan\",\"width\":\"3%\"},{\"columName\":\"对象\",\"columIndex\":\"targetname\",\"width\":\"4%\"},{\"columName\":\"修改详情\",\"columIndex\":\"operatedesc\",\"width\":\"2%\"},{\"columName\":\"客户端IP\",\"columIndex\":\"clientip\",\"width\":\"5%\"}]"
...params, module: "hrsa", dataset: "dataset", authParams: "{}", transMethod: "hrsa",
showColums: "[{\"columName\":\"操作时间\",\"columIndex\":\"createdate\",\"width\":\"5%\"},{\"columName\":\"操作人\",\"columIndex\":\"operatorname\",\"width\":\"2%\"},{\"columName\":\"操作类型\",\"columIndex\":\"operatetypename\",\"width\":\"5%\"},{\"columName\":\"对象\",\"columIndex\":\"targetname\",\"width\":\"4%\"},{\"columName\":\"修改详情\",\"columIndex\":\"operatedesc\",\"width\":\"2%\"},{\"columName\":\"客户端IP\",\"columIndex\":\"clientip\",\"width\":\"5%\"}]"
};
return postFetch("/api/bs/hrmsalary/elog/getLogs", payload);
};

View File

@ -43,7 +43,7 @@ export const inspectList = (params) => {
};
//社会福利台账-删除正常缴纳人员
export const siaccountCommonDelete = (params) => {
return postFetch("/api/bs/hrmsalary/siaccount/common/delete", params);
return postFetch("/api/bs/hrmsalary/siaccount/supplementary/delete", params);
};
//社会福利台账-添加正常缴纳人员
export const siaccountCommonSave = (params) => {

View File

@ -35,7 +35,7 @@ class Index extends Component {
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) this.getLogs();
if (nextProps.visible !== this.props.visible && nextProps.visible) this.getLogs({}, nextProps);
if (nextProps.visible !== this.props.visible && !nextProps.visible) {
this.setState({
dataSource: [], columns: [], pageInfo: { current: 0, pageSize: 10, total: 0 },
@ -44,12 +44,12 @@ class Index extends Component {
}
}
getLogs = (extra = {}) => {
const { pageInfo, logDetailDialog } = this.state;
const { baseFormStore: { form }, logFunction } = this.props;
getLogs = (extra = {}, props) => {
const { pageInfo } = this.state;
const { baseFormStore: { form }, logFunction, filterConditions } = props;
const payload = {
...pageInfo, ...extra, searchMap: { ...form.getFormParams() },
function: logFunction, showColums: ""
function: logFunction, showColums: "", filterConditions
};
this.setState({ loading: true });
API.getLogs(payload).then(({ status, data }) => {
@ -86,12 +86,12 @@ class Index extends Component {
onShowSizeChange: (current, pageSize) => {
this.setState({
pageInfo: { ...pageInfo, current, pageSize }
}, () => this.getLogs());
}, () => this.getLogs({}, this.props));
},
onChange: current => {
this.setState({
pageInfo: { ...pageInfo, current }
}, () => this.getLogs());
}, () => this.getLogs({}, this.props));
}
};
const scrollHeight = this.logRef ? this.logRef.state.height - 254 : 606.6;
@ -111,9 +111,9 @@ class Index extends Component {
}}
>
<div className="logDialogContent">
{renderLogSearchsForm(form, conditions, () => this.getLogs({ current: 1 }), () => {
{renderLogSearchsForm(form, conditions, () => this.getLogs({ current: 1 }, this.props), () => {
form.resetForm();
this.getLogs({ current: 1 });
this.getLogs({ current: 1 }, this.props);
})}
<WeaTable
columns={columns} dataSource={dataSource} loading={loading} className="logTable"

View File

@ -25,7 +25,8 @@ class Index extends Component {
super(props);
this.state = {
loading: false, columns: [], dataSource: [], showSearchAd: false,
pageInfo: { current: 1, pageSize: 10, total: 0 }, logDialogVisible: false
pageInfo: { current: 1, pageSize: 10, total: 0 }, logDialogVisible: false,
filterConditions: "[]"
};
}
@ -57,12 +58,16 @@ class Index extends Component {
const { columns, list: dataSource, pageNum, pageSize, total } = data;
this.setState({
dataSource, pageInfo: { ...pageInfo, pageNum, pageSize, total },
columns: _.map(columns, o => {
columns: [..._.map(columns, o => {
if (o.dataIndex === "username") {
return { ...o, width: 150, fixed: "left" };
}
return { ...o, width: 150 };
})
}), {
dataIndex: "options", title: getLabel(30585, "操作"),
width: 120, render: (_, record) => (<a href="javascript:void(0)"
onClick={() => this.onDropMenuClick("log", record.id)}>{getLabel(545781, "操作日志")}</a>)
}]
});
}
}).catch(() => this.setState({ loading: false }));
@ -88,10 +93,13 @@ class Index extends Component {
}
this.handleDebounce();
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -99,7 +107,7 @@ class Index extends Component {
};
render() {
const { loading, dataSource, columns, pageInfo, showSearchAd, logDialogVisible } = this.state;
const { loading, dataSource, columns, pageInfo, showSearchAd, logDialogVisible, filterConditions } = this.state;
const pagination = {
...pageInfo,
showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`,
@ -145,7 +153,7 @@ class Index extends Component {
pagination={pagination} columns={columns}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="salarcitemadj"
<LogDialog visible={logDialogVisible} logFunction="salarcitemadj" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</WeaTop>
);

View File

@ -27,7 +27,10 @@ export const condition = [
labelcol: 6,
options: [],
rules: "required|string",
viewAttr: 3
viewAttr: 3,
otherParams: {
showSearch: true, optionFilterProp: "children"
}
},
{
colSpan: 1,

View File

@ -52,10 +52,14 @@ class EmployeeDetails extends Component {
columns: [...columns, {
title: "操作",
dataIndex: "operate",
width: 80,
width: 120,
render: (_, record) => {
return <a target="_blank"
href={`${window.location.origin}/spa/hrmSalary/static/index.html#/main/hrmSalary/analysisOfSalaryStatistics/${record.id}?name=${record.name}&dept=${record.department || ""}`}>{getLabel(111, "查看")}</a>;
return <React.Fragment>
<a target="_blank" style={{ marginRight: 10 }}
href={`${window.location.origin}/spa/hrmSalary/static/index.html#/main/hrmSalary/analysisOfSalaryStatistics/${record.id}?name=${record.name}&dept=${record.department || ""}`}>{getLabel(111, "查看")}</a>
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</React.Fragment>;
}
}]
});

View File

@ -44,6 +44,8 @@ class ReportList extends Component {
message.error(errormsg);
}
});
} else if (key === "log") {
this.props.onFilterLog(key, id);
}
};
reportStatisticsReportDelete = (payload) => {
@ -106,6 +108,7 @@ class ReportList extends Component {
<Menu.Item key="edit">{getLabel(111, "编辑")}</Menu.Item>
<Menu.Item key="copy">{getLabel(77, "复制")}</Menu.Item>
<Menu.Item key="delete">{getLabel(111, "删除")}</Menu.Item>
<Menu.Item key="log">{getLabel(545781, "操作日志")}</Menu.Item>
</Menu>
}>
<Button type="ghost"><i className="icon-coms-more"/></Button>

View File

@ -43,7 +43,7 @@ class Index extends Component {
title: "", visible: false,
typeKey: "", id: ""
},
logDialogVisible: false
logDialogVisible: false, filterConditions: "[]"
};
}
@ -245,10 +245,13 @@ class Index extends Component {
initTable && this.dimensionTableRef.dimensionList();
});
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -259,7 +262,7 @@ class Index extends Component {
const { taxAgentStore: { statisticsReportBtn }, attendanceStore: { statisticsForm, reportForm } } = this.props;
const {
selectedKey, modalReq, slideReq, conditions, reportConditions,
reportName, keyword, year, logDialogVisible
reportName, keyword, year, logDialogVisible, filterConditions
} = this.state;
const buttons = selectedKey === "statistics" ? [
<Button type="primary" onClick={() => this.handleReqBtnsClick("addReport")}>{getLabel(111, "新建报表")}</Button>,
@ -303,9 +306,11 @@ class Index extends Component {
ref={dom => this.reportListRef = dom}
reportName={reportName}
onEdit={this.handleReqBtnsClick}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/> : <EmployeeDetails
ref={dom => this.employeeListRef = dom}
keyword={keyword} year={year}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/>
}
<StatisticsModal {...modalReq} onCancel={this.handleCancel} form={reportForm} onClose={this.handleCancel}
@ -328,7 +333,7 @@ class Index extends Component {
initCondition={this.initCondition} onChangeCondition={this.handleChangeCondition}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="statreport"
<LogDialog visible={logDialogVisible} logFunction="statreport" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</WeaReqTop>
);

View File

@ -166,14 +166,21 @@ class Calculate extends Component {
}
});
break;
case "log":
//操作日志
this.onDropMenuClick(key, record.id);
break;
default:
break;
}
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -181,7 +188,7 @@ class Calculate extends Component {
};
render() {
const { queryParams, isRefresh, calcDaialog, progressModule, logDialogVisible } = this.state;
const { queryParams, isRefresh, calcDaialog, progressModule, logDialogVisible, filterConditions } = this.state;
return (
<WeaTop title={getLabel(538011, "薪资核算")} icon={<i className="icon-coms-fa"/>} iconBgcolor="#F14A2D"
buttons={this.renderCalculateOpts()} className="calculate-main-layout" showDropIcon
@ -202,7 +209,7 @@ class Calculate extends Component {
}, () => bool === "refresh" && window.open(`/spa/hrmSalary/static/index.html#/main/hrmSalary/calculate/${id}`))}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="acctrecord"
<LogDialog visible={logDialogVisible} logFunction="acctrecord" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
{/* 归档进度条*/}
{

View File

@ -72,7 +72,8 @@ class Index extends Component {
/>
</span>,
render: (__, record) => {
const { operate = [] } = record;
const { operate: opts = [] } = record;
const operate = [...opts, { index: "log", text: getLabel(30586, "查看日志") }];
return <React.Fragment>
{
_.map(operate.slice(0, 2), f => (

View File

@ -5,8 +5,8 @@
* Date: 2023/2/24
*/
import React, { Component } from "react";
import { WeaTable } from "ecCom";
import { message, Modal } from "antd";
import { WeaLocaleProvider, WeaTable } from "ecCom";
import { Dropdown, Menu, message, Modal } from "antd";
import {
deleteAttendance,
getAttendanceFieldSettingList,
@ -28,6 +28,8 @@ import SelectItemsWrapper from "../../../../components/selectItemsModal/selectIt
import AttendanceRefrenceDataModal from "./attendanceRefrenceDataModal";
import AttendanceDataViewSlide from "./attendanceDataViewSlide";
const getLabel = WeaLocaleProvider.getLabel;
class AttendanceDataComp extends Component {
constructor(props) {
super(props);
@ -364,7 +366,26 @@ class AttendanceDataComp extends Component {
<div className="linkWapper">
<a href="javascript: void(0);" onClick={() => this.handleViewAttendanceData(record)}>查看</a>
{showOperateBtn &&
<a href="javascript: void(0);" onClick={() => this.handleDeleteAttendanceData(record)}>删除</a>
<React.Fragment>
<a href="javascript: void(0);" style={{ marginRight: 10 }}
onClick={() => this.handleDeleteAttendanceData(record)}>删除</a>
<Dropdown
overlay={
<Menu>
<Menu.Item>
<a href="javascript:void(0);"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</Menu.Item>
</Menu>
}>
<a href="javascript:void(0)"><i className="icon-coms-more"/></a>
</Dropdown>
</React.Fragment>
}
{
!showOperateBtn &&
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
}
</div>
);

View File

@ -5,13 +5,15 @@
* Date: 2023/2/24
*/
import React, { Component } from "react";
import { WeaCheckbox, WeaTable } from "ecCom";
import { WeaCheckbox, WeaLocaleProvider, WeaTable } from "ecCom";
import { Col, message, Row } from "antd";
import AttendanceCustomFieldsModal from "./attendanceCustomFieldsModal";
import { getAttendanceFieldList, updateAttendanceFieldStatus } from "../../../../apis/attendance";
import TipLabel from "../../../../components/TipLabel";
import { fieldsColumns } from "../columns";
const getLabel = WeaLocaleProvider.getLabel;
class FieldMangComp extends Component {
constructor(props) {
super(props);
@ -71,7 +73,7 @@ class FieldMangComp extends Component {
getColumns = () => {
const { columns } = this.state;
const { showOperateBtn } = this.props;
return _.map(_.filter(columns, item => !!item.display), child => ({
return [..._.map(_.filter(columns, item => !!item.display), child => ({
...child,
render: (text, record) => {
switch (child.dataIndex) {
@ -86,7 +88,13 @@ class FieldMangComp extends Component {
return <div dangerouslySetInnerHTML={{ __html: text }}/>;
}
}
}));
})), {
dataIndex: "options",
title: getLabel(30585, "操作"),
width: 120,
render: (_, record) => (<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>)
}];
};
render() {

View File

@ -24,7 +24,7 @@ class Index extends Component {
super(props);
this.state = {
fieldName: "", selectedKey: "DATA", salaryMonth: [],
logDialogVisible: false
logDialogVisible: false, filterConditions: "[]"
};
}
@ -68,10 +68,13 @@ class Index extends Component {
visible: true, title: "引用考勤数据"
});
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -79,7 +82,7 @@ class Index extends Component {
};
render() {
const { selectedKey, salaryMonth, fieldName, logDialogVisible } = this.state;
const { selectedKey, salaryMonth, fieldName, logDialogVisible, filterConditions } = this.state;
const { taxAgentStore: { showOperateBtn } } = this.props;
const topTab = [
{ title: "考勤数据", key: "DATA" },
@ -119,18 +122,20 @@ class Index extends Component {
ref={dom => this.attendanceTableRef = dom}
showOperateBtn={showOperateBtn}
salaryYearMonth={salaryMonth}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/> :
<FieldMangComp
ref={dom => this.fieldMangRef = dom}
showOperateBtn={showOperateBtn}
fieldName={fieldName}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/>
}
</WeaNewScroll>
</div>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction={selectedKey === "DATA" ? "attendquote" : "attendfield"}
onCancel={() => this.setState({ logDialogVisible: false })}/>
onCancel={() => this.setState({ logDialogVisible: false })} filterConditions={filterConditions}/>
</WeaReqTop>
</div>
);

View File

@ -66,7 +66,8 @@ class Index extends Component {
},
exportPayloadUrl: "",
exportPayloadType: false,
advanceCondition: null
advanceCondition: null,
targetid: ""
};
this.tableRef = null;
this.addItemRef = null;
@ -358,7 +359,7 @@ class Index extends Component {
const { id } = record;
key === "handleAddData" ? getAddUpDeduction({ id }).then(({ status, data }) => {
if (status) this[key]("编辑", data);
}) : this[key](record);
}) : key === "log" ? this.setState({ targetid: id }) : this[key](record);
};
handleCloseSlide = () => {
const { slidePayload } = this.state;
@ -540,7 +541,7 @@ class Index extends Component {
const { taxAgentStore: { showOperateBtn }, cumDeductStore: { form } } = this.props;
const {
declareMonth, taxAgentId, slidePayload, saveLoading, exportPayloadUrl, advanceCondition,
importPayload, exportPayloadType
importPayload, exportPayloadType, targetid
} = this.state;
const tablePayload = { declareMonth: [declareMonth], taxAgentId };
return (
@ -553,6 +554,7 @@ class Index extends Component {
onImportSetStep={this.handleImportSetStep} onCancel={this.handleCloseImport}
importPayload={importPayload} onImportFile={this.handleImportFile}
onPreviewImport={this.handlePreviewImport} detailOptBtns={this.getDetailOptBtns()}
targetid={targetid} onClearTargrtid={() => this.setState({ targetid: "" })}
columns={modalColumns}
>
<DataTables

View File

@ -64,7 +64,8 @@ class Index extends Component {
},
exportPayloadUrl: "",
exportPayloadType: false,
advanceCondition: null
advanceCondition: null,
targetid: ""
};
this.tableRef = null;
this.addItemRef = null;
@ -175,7 +176,7 @@ class Index extends Component {
const { id } = record;
key === "handleAddData" ? getAddUpSituation({ id }).then(({ status, data }) => {
if (status) this[key]("编辑", data);
}) : this.deleteSelectAddUpSituation(record);
}) : key === "log" ? this.setState({ targetid: id }) : this.deleteSelectAddUpSituation(record);
};
/*
* Author: 黎永顺
@ -544,7 +545,7 @@ class Index extends Component {
const { taxAgentStore: { showOperateBtn }, cumSituationStore: { form } } = this.props;
const {
declareMonth, taxAgentId, slidePayload, saveLoading, exportPayloadUrl, advanceCondition,
importPayload, year, exportPayloadType
importPayload, year, exportPayloadType, targetid
} = this.state;
const tablePayload = { taxYearMonth: `${year}-${declareMonth}`, year, taxAgentId };
return (
@ -556,9 +557,9 @@ class Index extends Component {
form={form} condition={advanceCondition} onAdSearch={this.handleAdSearch}
onImportSetStep={this.handleImportSetStep} onCancel={this.handleCloseImport}
importPayload={{ ...importPayload, importOpts: { taxYearMonth: importPayload.importOpts.declareMonth } }}
onImportFile={this.handleImportFile}
onImportFile={this.handleImportFile} columns={situationModalColumns}
onPreviewImport={this.handlePreviewImport} detailOptBtns={this.getDetailOptBtns()}
columns={situationModalColumns}
targetid={targetid} onClearTargrtid={() => this.setState({ targetid: "" })}
>
<DataTables
ref={dom => this.tableRef = dom}

View File

@ -8,6 +8,9 @@ import React, { Component } from "react";
import UnifiedTable from "../../components/UnifiedTable";
import { getTableDate } from "../../apis/cumDeduct";
import { Menu, Popover } from "antd";
import { WeaLocaleProvider } from "ecCom";
const getLabel = WeaLocaleProvider.getLabel;
class DataTables extends Component {
constructor(props) {
@ -118,6 +121,7 @@ class DataTables extends Component {
placement="bottomRight"
content={<Menu onClick={(e) => onTableOperate(e, record)}>
<Menu.Item key="deleteSelectAddUpDeduction">删除</Menu.Item>
<Menu.Item key="log">{getLabel(545781, "操作日志")}</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
@ -132,8 +136,19 @@ class DataTables extends Component {
<React.Fragment>
<a href="javaScript:void(0);" style={{ marginRight: 12 }}
onClick={() => onTableOperate({ key: "handleAddData" }, record)}>编辑</a>
<a href="javaScript:void(0);"
<a href="javaScript:void(0);" style={{ marginRight: 12 }}
onClick={() => onTableOperate({ key: "deleteSelectAddUpDeduction" }, record)}>删除</a>
{
showOperateBtn &&
<Popover
overlayClassName="moreIconWrapper"
placement="bottomRight"
content={<Menu onClick={(e) => onTableOperate(e, record)}>
<Menu.Item key="log">{getLabel(545781, "操作日志")}</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
}
</React.Fragment>
}
</React.Fragment>

View File

@ -22,7 +22,7 @@ class Layout extends Component {
constructor(props) {
super(props);
this.state = {
showSearchAd: false, logDialogVisible: false
showSearchAd: false, logDialogVisible: false, filterConditions: "[]"
};
}
@ -42,6 +42,15 @@ class Layout extends Component {
*/
window.open(nextProps.exportPayloadUrl, "_self");
}
if (nextProps.targetid !== this.props.targetid && nextProps.targetid) {
/*
* Author: 黎永顺
* Description:操作日志
* Params:
* Date: 2023/2/20
*/
this.onDropMenuClick("log", nextProps.targetid);
}
}
componentWillUnmount() {
@ -52,10 +61,13 @@ class Layout extends Component {
const { onResizeWindowInnerWidth } = this.props;
onResizeWindowInnerWidth(window.innerWidth);
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -63,12 +75,12 @@ class Layout extends Component {
};
render() {
const { showSearchAd, logDialogVisible } = this.state;
const { showSearchAd, logDialogVisible, filterConditions } = this.state;
const {
title, btns, leftComp, children, taxAgentStore: { showOperateBtn },
slidePayload, onClose, onSave, slideLoading, form, condition,
onAdSearch, onCancel, importPayload, onImportSetStep, onImportFile,
onPreviewImport, detailOptBtns, columns, logFunction
onPreviewImport, detailOptBtns, columns, logFunction, onClearTargrtid
} = this.props;
const { visible, title: subtitle, children: slideChildren } = slidePayload;
const {
@ -143,8 +155,8 @@ class Layout extends Component {
onClose={onClose}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction={logFunction}
onCancel={() => this.setState({ logDialogVisible: false })}/>
<LogDialog visible={logDialogVisible} logFunction={logFunction} filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false }, () => onClearTargrtid())}/>
</div>
</div>
);

View File

@ -64,7 +64,8 @@ class Index extends Component {
},
exportPayloadUrl: "",
exportPayloadType: false,
advanceCondition: null
advanceCondition: null,
targetid: ""
};
this.tableRef = null;
this.addItemRef = null;
@ -190,7 +191,7 @@ class Index extends Component {
const { id } = record;
key === "handleAddData" ? getData({ id }).then(({ status, data }) => {
if (status) this[key]("编辑", data);
}) : this.deleteSelectData(record);
}) : key === "log" ? this.setState({ targetid: id }) : this.deleteSelectData(record);
};
/*
* Author: 黎永顺
@ -538,7 +539,7 @@ class Index extends Component {
const { taxAgentStore: { showOperateBtn }, otherDeductStore: { form } } = this.props;
const {
declareMonth, taxAgentId, slidePayload, saveLoading, exportPayloadUrl, advanceCondition,
importPayload, exportPayloadType
importPayload, exportPayloadType, targetid
} = this.state;
const tablePayload = { declareMonth: [declareMonth], taxAgentId };
return (
@ -551,6 +552,7 @@ class Index extends Component {
onImportSetStep={this.handleImportSetStep} onCancel={this.handleCloseImport}
importPayload={importPayload} onImportFile={this.handleImportFile}
onPreviewImport={this.handlePreviewImport} detailOptBtns={this.getDetailOptBtns()}
targetid={targetid} onClearTargrtid={() => this.setState({ targetid: "" })}
columns={otherModalColumns}
>
<DataTables

View File

@ -54,7 +54,8 @@ class Index extends Component {
},
exportPayloadUrl: "",
exportPayloadType: false,
advanceCondition: null
advanceCondition: null,
targetid: ""
};
this.tableRef = null;
this.addItemRef = null;
@ -360,7 +361,7 @@ class Index extends Component {
const { id } = record;
key === "handleAddData" ? getSpecialAddDeduction({ id }).then(({ status, data }) => {
if (status) this[key]("编辑", data);
}) : this.specialAddDeductionDeleteSelectData(record);
}) : key === "log" ? this.setState({ targetid: id }) : this.specialAddDeductionDeleteSelectData(record);
};
handleCloseSlide = () => {
const { slidePayload } = this.state;
@ -449,7 +450,7 @@ class Index extends Component {
const { taxAgentStore: { showOperateBtn }, specialAddStore: { advanceForm } } = this.props;
const {
taxAgentId, slidePayload, saveLoading, exportPayloadUrl, advanceCondition, importPayload,
exportPayloadType
exportPayloadType, targetid
} = this.state;
const tablePayload = { taxAgentId };
return (
@ -462,6 +463,7 @@ class Index extends Component {
onImportSetStep={this.handleImportSetStep} onCancel={this.handleCloseImport}
importPayload={importPayload} onImportFile={this.handleImportFile}
onPreviewImport={this.handlePreviewImport} detailOptBtns={[]}
targetid={targetid} onClearTargrtid={() => this.setState({ targetid: "" })}
columns={specialModalColumns}
>
<DataTables

View File

@ -6,7 +6,7 @@
*/
import React, { Component } from "react";
import { WeaLocaleProvider, WeaTable } from "ecCom";
import { message, Modal } from "antd";
import { Dropdown, Menu, message, Modal } from "antd";
import { getDeclareList, withDrawTaxDeclaration } from "../../../../apis/declare";
import { sysConfCodeRule } from "../../../../apis/ruleconfig";
@ -117,6 +117,10 @@ class Index extends Component {
>
{getLabel(83110, "查看详情")}
</a>
{
!showWithDrawBtn && <a href="javascript:void(0)" style={{ marginLeft: 10 }}
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
}
{
showWithDrawBtn &&
<a
@ -132,6 +136,18 @@ class Index extends Component {
{getLabel(32025, "撤回")}
</a>
}
{
showWithDrawBtn && <Dropdown overlay={
<Menu>
<Menu.Item>
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</Menu.Item>
</Menu>
}>
<a href="javascript:void(0)" style={{ marginLeft: 10 }}><i className="icon-coms-more"/></a>
</Dropdown>
}
</React.Fragment>;
}
}

View File

@ -31,7 +31,7 @@ class Calculate extends Component {
]
}, isRefresh: false,
declareDaialog: { visible: false, title: "" },
logDialogVisible: false
logDialogVisible: false, filterConditions: "[]"
};
this.handleDebounce = null;
}
@ -59,10 +59,13 @@ class Calculate extends Component {
];
return !showOperateBtn ? calculateOpts.slice(1) : calculateOpts;
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -70,7 +73,7 @@ class Calculate extends Component {
};
render() {
const { queryParams, isRefresh, declareDaialog, logDialogVisible } = this.state;
const { queryParams, isRefresh, declareDaialog, logDialogVisible, filterConditions } = this.state;
return (
<WeaTop title={getLabel(543353, "个税申报")} icon={<i className="icon-coms-fa"/>} iconBgcolor="#F14A2D"
buttons={this.renderCalculateOpts()} className="declare-main-layout" showDropIcon
@ -80,7 +83,8 @@ class Calculate extends Component {
}
]}>
<div className="declare-body">
<DeclareTablelist queryParams={queryParams} isRefresh={isRefresh}/>
<DeclareTablelist queryParams={queryParams} isRefresh={isRefresh}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
<DeclareDialog {...declareDaialog}
onCancel={(bool) => this.setState({
declareDaialog: { ...declareDaialog, visible: false },
@ -88,7 +92,7 @@ class Calculate extends Component {
})}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="taxdecla"
<LogDialog visible={logDialogVisible} logFunction="taxdecla" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</div>
</WeaTop>

View File

@ -24,7 +24,7 @@ class Index extends Component {
constructor(props) {
super(props);
this.state = {
loading: false, logDialogVisible: false,
loading: false, logDialogVisible: false, filterConditions: "[]",
selectedRowKeys: [],
pageInfo: { current: 1, pageSize: 10, total: 0 },
showSearchAd: false,
@ -104,10 +104,13 @@ class Index extends Component {
}
}));
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -116,7 +119,7 @@ class Index extends Component {
render() {
const {
showSearchAd, externalPersonManagePayload, loading, logDialogVisible,
showSearchAd, externalPersonManagePayload, loading, logDialogVisible, filterConditions,
pageInfo, selectedRowKeys, dataSource, externalPersonImportPayload
} = this.state;
const {
@ -197,6 +200,8 @@ class Index extends Component {
<React.Fragment>
<a href="javascript: void(0);" onClick={() => this.handleAdd(id)}
style={{ paddingRight: 8 }}>编辑</a>
<a href="javascript: void(0);" onClick={() => this.onDropMenuClick("log", id)}
style={{ paddingRight: 8 }}>{getLabel(545781, "操作日志")}</a>
{/*<a href="javascript: void(0);" onClick={() => this.handleDelete(id)}>删除</a>*/}
</React.Fragment>
)
@ -239,7 +244,7 @@ class Index extends Component {
}
</div>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="extemployee"
<LogDialog visible={logDialogVisible} logFunction="extemployee" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</WeaTop>
</div>

View File

@ -5,11 +5,13 @@
* Date: 2023/1/19
*/
import React, { Component } from "react";
import { WeaTable } from "ecCom";
import { WeaLocaleProvider, WeaTable } from "ecCom";
import { inject, observer } from "mobx-react";
import { Switch } from "antd";
import { Dropdown, Menu, Switch } from "antd";
import { salaryFieldList } from "../../../apis/fieldManage";
const getLabel = WeaLocaleProvider.getLabel;
@inject("taxAgentStore")
@observer
class FieldTable extends Component {
@ -75,6 +77,17 @@ class FieldTable extends Component {
record.canDelete && (showSalaryItemBtn || showOperateBtn) &&
<a href="javascript:void(0);" className="mr10" onClick={() => onDeleteLedger(record)}>删除</a>
}
<Dropdown
overlay={
<Menu>
<Menu.Item>
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</Menu.Item>
</Menu>
}>
<a href="javascript:void(0)"><i className="icon-coms-more"/></a>
</Dropdown>
</div>;
};
} else {

View File

@ -22,7 +22,7 @@ class FieldManagement extends Component {
constructor(props) {
super(props);
this.state = {
searchVal: "", doSearch: false, logDialogVisible: false,
searchVal: "", doSearch: false, logDialogVisible: false, filterConditions: "[]",
slideparams: {
visible: false,
title: "新建字段",
@ -69,10 +69,13 @@ class FieldManagement extends Component {
}
});
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -80,7 +83,7 @@ class FieldManagement extends Component {
};
render() {
const { searchVal, doSearch, slideparams, logDialogVisible } = this.state;
const { searchVal, doSearch, slideparams, logDialogVisible, filterConditions } = this.state;
const { taxAgentStore } = this.props;
const { showSalaryItemBtn, showOperateBtn } = taxAgentStore;
const btns = [
@ -108,7 +111,9 @@ class FieldManagement extends Component {
>
<div className="fieldManageWrapper">
<FieldTable name={searchVal} doSearch={doSearch} onEditLedger={this.handleEditField}
onDeleteLedger={(record) => this.handleDeleteField([record.id])}/>
onDeleteLedger={(record) => this.handleDeleteField([record.id])}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/>
<FieldSlide
{...slideparams}
onChangeRecord={(record) => this.setState({
@ -121,7 +126,7 @@ class FieldManagement extends Component {
onRefreshList={() => this.setState({ doSearch: !doSearch })}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="salarcfield"
<LogDialog visible={logDialogVisible} logFunction="salarcfield" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</div>
</WeaTop>

View File

@ -5,13 +5,15 @@
* Date: 2022/12/7
*/
import React, { Component } from "react";
import { WeaCheckbox, WeaTable } from "ecCom";
import { WeaCheckbox, WeaLocaleProvider, WeaTable } from "ecCom";
import { inject, observer } from "mobx-react";
import { Menu, message, Modal, Popover } from "antd";
import { changeLedgerStatus, deleteLedger, getLedgerList } from "../../../apis/ledger";
import CopyLedgerModal from "./copyLedgerModal";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("taxAgentStore", "ledgerStore")
@observer
class LedgerTable extends Component {
@ -91,6 +93,7 @@ class LedgerTable extends Component {
placement="bottomRight"
content={<Menu onClick={(e) => this.handleMenuClick(e, record)}>
<Menu.Item key="delete">删除</Menu.Item>
<Menu.Item key="log">{getLabel(545781, "操作日志")}</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
@ -161,6 +164,9 @@ class LedgerTable extends Component {
}
});
break;
case "log":
this.props.onFilterLog(key, id);
break;
default:
break;
}

View File

@ -22,7 +22,7 @@ class Index extends Component {
constructor(props) {
super(props);
this.state = {
searchVal: "", doSearch: false, logDialogVisible: false,
searchVal: "", doSearch: false, logDialogVisible: false, filterConditions: "[]",
slideparams: {
visible: false,
title: "新建账套",
@ -53,10 +53,13 @@ class Index extends Component {
}
});
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -64,7 +67,7 @@ class Index extends Component {
};
render() {
const { logDialogVisible, doSearch, slideparams } = this.state;
const { logDialogVisible, filterConditions, doSearch, slideparams } = this.state;
const { taxAgentStore } = this.props;
const { showOperateBtn } = taxAgentStore;
const btns = [
@ -87,14 +90,15 @@ class Index extends Component {
]}
>
<div className="ledgerWrapper">
<LedgerTable doSearch={doSearch} onEditLedger={this.handleEditLedger}/>
<LedgerTable doSearch={doSearch} onEditLedger={this.handleEditLedger}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
<LedgerSlide
{...slideparams}
onCancel={this.handleResetLedger}
onRefreshList={() => this.setState({ doSearch: !doSearch })}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="salarysob"
<LogDialog visible={logDialogVisible} logFunction="salarysob" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</div>
</WeaTop>

View File

@ -44,7 +44,12 @@ class Index extends Component {
const { columns, list: dataSource, pageNum: current, pageSize, total } = data;
this.setState({
dataSource, pageInfo: { ...pageInfo, current, pageSize, total },
columns: _.map(columns, it => ({ ...it, width: 150 }))
columns: [..._.map(columns, it => ({ ...it, width: 150 })), {
dataIndex: "options",
title: getLabel(30585, "操作"),
width: 120, render: (_, record) => (<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>)
}]
});
}
}).catch(() => this.setState({ loading: false }));

View File

@ -83,9 +83,13 @@ class Index extends Component {
dataIndex: "options",
title: getLabel(30585, "操作"),
width: 120,
render: (_, record) => (<a
href={`${window.location.origin}/spa/hrmSalary/static/index.html#/main/hrmSalary/mySalary/${record.id}`}
target="_blank">{getLabel(33564, "查看")}</a>)
render: (_, record) => (<React.Fragment>
<a style={{ marginRight: 10 }}
href={`${window.location.origin}/spa/hrmSalary/static/index.html#/main/hrmSalary/mySalary/${record.id}`}
target="_blank">{getLabel(33564, "查看")}</a>
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</React.Fragment>)
}]}
/>
);

View File

@ -19,7 +19,7 @@ class Index extends Component {
constructor(props) {
super(props);
this.state = {
selectedKey: "1", logDialogVisible: false,
selectedKey: "1", logDialogVisible: false, filterConditions: "[]",
salaryYearMonth: [
moment().subtract(1, "year").startOf("year").format("YYYY-MM"),
moment().endOf("year").format("YYYY-MM")
@ -32,20 +32,24 @@ class Index extends Component {
let Dom = null;
switch (selectedKey) {
case "1":
Dom = <Payroll salaryYearMonth={salaryYearMonth}/>;
Dom = <Payroll salaryYearMonth={salaryYearMonth}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>;
break;
case "2":
Dom = <SalaryAdjustmentRecords/>;
Dom = <SalaryAdjustmentRecords onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>;
break;
default:
break;
}
return Dom;
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -53,7 +57,7 @@ class Index extends Component {
};
render() {
const { selectedKey, salaryYearMonth, logDialogVisible } = this.state;
const { selectedKey, salaryYearMonth, logDialogVisible, filterConditions } = this.state;
const tabs = [
{ key: "1", title: getLabel(111, "工资单") },
{ key: "2", title: getLabel(543150, "调薪记录") }
@ -82,7 +86,7 @@ class Index extends Component {
>
{this.renderContent()}
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction={logFunction}
<LogDialog visible={logDialogVisible} logFunction={logFunction} filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
</WeaReqTop>
);

View File

@ -109,6 +109,9 @@ class Index extends Component {
}
});
break;
case "log":
this.props.onFilterLog(id, params.record.id);
break;
default:
break;
}
@ -143,7 +146,8 @@ class Index extends Component {
"删除待办": getLabel(543181, "删除待办"), "查看": getLabel(33564, "查看"),
"取消停薪": getLabel(543309, "取消停薪"), "共": getLabel(18609, "共"),
"条": getLabel(18256, "条"), "设为发薪人员": getLabel(543308, "设为发薪人员"),
"停薪": getLabel(542692, "停薪"), "编辑": getLabel(501169, "编辑")
"停薪": getLabel(542692, "停薪"), "编辑": getLabel(501169, "编辑"),
"操作日志": getLabel(545781, "操作日志")
};
const childFrameObj = document.getElementById("atdTable");
childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*");

View File

@ -30,7 +30,7 @@ class SalaryFiles extends Component {
selectedKey: "pending", showSearchAd: false, isQuery: false, showDelSalaryFileBtn: false,
topTabCount: { PENDING: 0, FIXED: 0, SUSPEND: 0, STOP: 0, EXT: 0 }, showExtEmpsWitch: false,
salaryFileImpDialog: { visible: false, title: getLabel(24023, "数据导入"), importType: "", isExtEmp: false },
salaryImportTypes: [], logDialogVisible: false
salaryImportTypes: [], logDialogVisible: false, filterConditions: ""
};
this.salaryFileListRef = null;
}
@ -49,11 +49,14 @@ class SalaryFiles extends Component {
handleOpenAdvanceSearch = () => this.setState({ showSearchAd: true });
handleAdvanceSearch = () => this.setState({ isQuery: !this.state.isQuery });
onAdSearch = () => this.setState({ showSearchAd: false, isQuery: !this.state.isQuery });
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
const { state, handleSalaryOpts } = this.salaryFileListRef.wrappedInstance || {};
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
case "custom_cols":
const { payrollFilesStore: { tableStore } } = this.props;
@ -229,7 +232,7 @@ class SalaryFiles extends Component {
render() {
const {
selectedKey, topTabCount, showSearchAd, isQuery, showDelSalaryFileBtn, showExtEmpsWitch,
salaryFileImpDialog, salaryImportTypes, logDialogVisible
salaryFileImpDialog, salaryImportTypes, logDialogVisible, filterConditions
} = this.state;
const { taxAgentStore: { showOperateBtn } } = this.props;
return (
@ -260,9 +263,10 @@ class SalaryFiles extends Component {
selectedKey={selectedKey} showOperateBtn={showOperateBtn}
showDelSalaryFileBtn={showDelSalaryFileBtn}
onChangeTopTabCount={this.queryInsuranceTabTotal}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="salaryarchive"
<LogDialog visible={logDialogVisible} logFunction="salaryarchive" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
{/* 导入*/}
<SalaryFileImportDialog {...salaryFileImpDialog}

View File

@ -57,7 +57,7 @@ class Index extends Component {
<div className="salarySobNameTagWrapper">
{
salaryAcctType === 1 &&
<Tag color="yellow">补发</Tag>
<Tag color="yellow">{getLabel(388064, "补发")}</Tag>
}
<Tag color="blue">{`${getLabel(15323, "第")}${acctTimes}${getLabel(18929, "次")}`}</Tag>
</div>
@ -90,6 +90,9 @@ class Index extends Component {
message.warning(getLabel(543602, "请设置默认模板"));
}
break;
case "log":
this.props.onFilterLog(key, id);
break;
default:
break;
}
@ -140,11 +143,17 @@ class Index extends Component {
style={{ marginRight: 10 }} target="_blank"
>{getLabel(83110, "查看详情")}</a>
}
{
!canSeeDetail &&
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
}
{
sendNum !== sendTotal && !showGrant &&
<Dropdown
overlay={<Menu onClick={e => this.handleOpts(e, record)}>
<Menu.Item key="template">{getLabel(543603, "更新模板")}</Menu.Item>
<Menu.Item key="log">{getLabel(545781, "操作日志")}</Menu.Item>
</Menu>
}
>

View File

@ -115,6 +115,9 @@ class Index extends Component {
}
});
break;
case "log":
this.props.onFilterLog(key, id);
break;
default:
break;
}
@ -165,6 +168,7 @@ class Index extends Component {
<Dropdown
overlay={<Menu onClick={e => this.handleOpts(e, record)}>
<Menu.Item key="del">{getLabel(535052, "删除")}</Menu.Item>
<Menu.Item key="log">{getLabel(545781, "操作日志")}</Menu.Item>
</Menu>
}
>

View File

@ -32,7 +32,7 @@ class Index extends Component {
moment(new Date()).subtract(1, "year").startOf("year").format("YYYY-MM"),
moment(new Date()).endOf("year").format("YYYY-MM")
]
}, logDialogVisible: false
}, logDialogVisible: false, filterConditions: "[]"
};
this.templateRef = null;
this.baseSetRef = null;
@ -93,11 +93,13 @@ class Index extends Component {
onUpdateTemp={(id) => this.setState({ selectedKey: "template" }, () => {
this.templateRef.wrappedInstance.handleOpts({ key: "edit" }, { id });
})}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/>;
break;
case "template":
dom = <PayrollTemplateTableList ref={dom => this.templateRef = dom} queryParams={queryParams}
isRefresh={isRefresh} forceUpdate={() => this.forceUpdate()}/>;
isRefresh={isRefresh} forceUpdate={() => this.forceUpdate()}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>;
break;
case "watermark":
dom = <TemplateBaseSettings
@ -110,10 +112,13 @@ class Index extends Component {
}
return dom;
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -121,7 +126,7 @@ class Index extends Component {
};
render() {
const { selectedKey, queryParams, logDialogVisible } = this.state;
const { selectedKey, queryParams, logDialogVisible, filterConditions } = this.state;
const tabs = [
{ key: "grant", title: getLabel(538012, "工资单发放") },
{ key: "template", title: getLabel(543575, "工资单模板设置") },
@ -148,7 +153,7 @@ class Index extends Component {
<div className="salary-payroll-content">{this.renderContent()}</div>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction={selectedKey === "grant" ? "salarysend" : "salarytemplate"}
onCancel={() => this.setState({ logDialogVisible: false })}/>
onCancel={() => this.setState({ logDialogVisible: false })} filterConditions={filterConditions}/>
</WeaReqTop>
</div>
);

View File

@ -29,7 +29,7 @@ export default class SalaryItem extends React.Component {
searchParams: { current: 1, pageSize: 10, total: 0 },
selectedRowKeys: [],
syncSalarySetDialog: { visible: false, title: "", id: "" },
logDialogVisible: false
logDialogVisible: false, filterConditions: "[]"
};
columns.map(item => {
if (item.dataIndex == "refere") {
@ -136,8 +136,10 @@ export default class SalaryItem extends React.Component {
render: (text, record) => {
return (
<React.Fragment>
<a
onClick={() => this.onEditItem(record, true)}>{(showSalaryItemBtn || showOperateBtn) ? "编辑" : "查看"}</a>
<a style={{ marginRight: 10 }}
onClick={() => this.onEditItem(record, true)}>{(showSalaryItemBtn || showOperateBtn) ? "编辑" : "查看"}</a>
<a href="javascript:void(0)"
onClick={() => this.onDropMenuClick("log", record.id)}>{getLabel(545781, "操作日志")}</a>
{
(record.canDelete && (showSalaryItemBtn || showOperateBtn)) &&
<a href="javascript:void(0)" style={{ marginLeft: 10 }}
@ -193,10 +195,14 @@ export default class SalaryItem extends React.Component {
getTableDatas({ ...searchParams });
}
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -210,7 +216,7 @@ export default class SalaryItem extends React.Component {
taxAgentStore: { showOperateBtn, showSalaryItemBtn, taxAgentOption }
} = this.props;
const { userStatusList } = salaryFileStore;
const { selectedRowKeys, logDialogVisible } = this.state;
const { selectedRowKeys, logDialogVisible, filterConditions } = this.state;
const { loading, deleteItemRequest, getTableDatas } = salaryItemStore;
const {
tableDataSource,
@ -403,7 +409,7 @@ export default class SalaryItem extends React.Component {
})}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="salaryitem"
<LogDialog visible={logDialogVisible} logFunction="salaryitem" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
{
systemItemVisible &&

View File

@ -105,6 +105,9 @@ class WelfareRecordList extends Component {
}
});
break;
case "log":
this.props.onFilterLog(id, params.id);
break;
default:
break;
}
@ -117,7 +120,7 @@ class WelfareRecordList extends Component {
"未归档": getLabel(17999, "已归档"), "操作": getLabel(30585, "操作"),
"核算": getLabel(538780, "核算"), "归档": getLabel(251, "归档"),
"查看": getLabel(33564, "查看"), "重新核算": getLabel(542637, "重新核算"),
"删除": getLabel(535052, "删除")
"删除": getLabel(535052, "删除"), "操作日志": getLabel(545781, "操作日志")
};
const childFrameObj = document.getElementById("unitTable");
childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*");
@ -136,7 +139,8 @@ class WelfareRecordList extends Component {
pageInfo: { ...pageInfo, current, pageSize, total },
dataSource, columns
}, () => this.postMessageToChild({
scrollHeight: 108, dataSource, columns, pageInfo: this.state.pageInfo, showOperateBtn
scrollHeight: 108, dataSource, columns, pageInfo: this.state.pageInfo, showOperateBtn,
unitTableType: "welfareRecord"
}));
}
}).catch(() => this.setState({ loading: false }));

View File

@ -34,7 +34,7 @@ class StandingBook extends Component {
taxAgents: ""
}, progressVisible: false, progress: 0,
accountDialog: { visible: false, title: "", loading: false, options: [] },
logDialogVisible: false
logDialogVisible: false, filterConditions: "[]"
};
this.wfListRef = null;
this.timer = null;
@ -104,10 +104,13 @@ class StandingBook extends Component {
});
}
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -115,7 +118,7 @@ class StandingBook extends Component {
};
render() {
const { accountDialog, queryForm, logDialogVisible } = this.state;
const { accountDialog, queryForm, logDialogVisible, filterConditions } = this.state;
const { taxAgentStore: { showOperateBtn } } = this.props;
const rightBtns = [<Button type="primary" onClick={() => this.setState({
accountDialog: { ...accountDialog, visible: true, title: getLabel(538780, "核算") }
@ -141,7 +144,8 @@ class StandingBook extends Component {
}}
onPutAccountOptions={options => this.setState({ accountDialog: { ...accountDialog, options } })}
/>
<WelfareRecordList ref={dom => this.wfListRef = dom} queryForm={queryForm}/>
<WelfareRecordList ref={dom => this.wfListRef = dom} queryForm={queryForm}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
</div>
<Accountdialog {...accountDialog}
onCancel={() => this.setState({
@ -149,7 +153,7 @@ class StandingBook extends Component {
})} onOk={this.handleAccount}
/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="siAccount"
<LogDialog visible={logDialogVisible} logFunction="siAccount" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
{/*核算进度条*/}
{

View File

@ -138,6 +138,9 @@ class Index extends Component {
onOk: () => this.handleWelfareOpts(_.camelCase(id), [baseInfo])
});
break;
case "log":
this.props.onFilterLog(id, baseInfo);
break;
default:
break;
}
@ -231,7 +234,8 @@ class Index extends Component {
"增员": getLabel(543180, "增员"), "删除档案": getLabel(23238, "删除档案"),
"删除待办": getLabel(543181, "删除待办"), "减员": getLabel(543182, "减员"),
"查看": getLabel(33564, "查看"), "取消停缴": getLabel(543183, "取消停缴"),
"共": getLabel(18609, "共"), "条": getLabel(18256, "条")
"共": getLabel(18609, "共"), "条": getLabel(18256, "条"),
"操作日志": getLabel(545781, "操作日志")
};
const childFrameObj = document.getElementById("atdTable");
childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*");

View File

@ -36,7 +36,7 @@ class Index extends Component {
selectedKey: "1", showSearchAd: false, isQuery: false, logDialogVisible: false,
topTabCount: { stayAdd: 0, paying: 0, stayDel: 0, stopPay: 0, ext: 0 },
welfareImpDialog: { visible: false, title: getLabel(24023, "数据导入"), runStatuses: "" },
showExtEmpsWitch: false, recordDialogVisible: false
showExtEmpsWitch: false, recordDialogVisible: false, filterConditions: "[]"
};
}
@ -66,7 +66,7 @@ class Index extends Component {
}
});
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "fullStaffIncrease":
case "fullReduction":
@ -89,7 +89,10 @@ class Index extends Component {
this.setState({ recordDialogVisible: true });
break;
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -132,7 +135,7 @@ class Index extends Component {
render() {
const {
selectedKey, topTabCount, showSearchAd, isQuery, recordDialogVisible,
logDialogVisible, welfareImpDialog, showExtEmpsWitch
logDialogVisible, filterConditions, welfareImpDialog, showExtEmpsWitch
} = this.state;
const { taxAgentStore: { showOperateBtn } } = this.props;
const tipList = _.find(welfareTipList, o => o.viewcondition === selectedKey).list;
@ -163,13 +166,14 @@ class Index extends Component {
<WelfareTableList isQuery={isQuery} ref={dom => this.welfareListRef = dom}
runStatuses={selectedKey} showOperateBtn={showOperateBtn}
onChangeTopTabCount={this.queryInsuranceTabTotal}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
/>
{/*提示*/}
{!_.isEmpty(tipList) && <WelfareTip dataSource={tipList}/>}
{/*基数调整记录*/}
<RecordDialog visible={recordDialogVisible} onCancel={() => this.setState({ recordDialogVisible: false })}/>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="siArchives"
<LogDialog visible={logDialogVisible} logFunction="siArchives" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
{/* 导入*/}
<WelfareArchivesImportDialog {...welfareImpDialog}

View File

@ -255,6 +255,10 @@ class Index extends Component {
<a href="javascript:void(0)"
onClick={() => this.handleOpts("delete", record)}>{getLabel(535052, "删除")}</a>
</Menu.Item>
<Menu.Item>
<a href="javascript:void(0)"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</Menu.Item>
</Menu>
}>
<a href="javascript:void(0)"><i className="icon-coms-more"/></a>
@ -268,6 +272,17 @@ class Index extends Component {
onClick={() => this.handleOpts("custom-edit", record)}>{getLabel(501169, "编辑")}</a>
<a href="javascript:void(0);"
onClick={() => this.handleOpts("custom-delete", record)}>{getLabel(535052, "删除")}</a>
<Dropdown
overlay={
<Menu>
<Menu.Item>
<a href="javascript:void(0);"
onClick={() => this.props.onFilterLog("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</Menu.Item>
</Menu>
}>
<a href="javascript:void(0)"><i className="icon-coms-more"/></a>
</Dropdown>
</div>)
};
return (

View File

@ -22,8 +22,8 @@ class Index extends Component {
constructor(props) {
super(props);
this.state = {
selectedKey: "SOCIAL_SECURITY", showSearchAd: false, isQuery: false, logDialogVisible: false,
customQuery: ""
selectedKey: "SOCIAL_SECURITY", showSearchAd: false, isQuery: false, customQuery: "",
logDialogVisible: false, filterConditions: "[]"
};
this.welfarePlanListRef = null;
}
@ -48,10 +48,13 @@ class Index extends Component {
handleOpenAdvanceSearch = () => this.setState({ showSearchAd: true });
handleAdvanceSearch = (customQuery = "") => this.setState({ isQuery: !this.state.isQuery, customQuery });
onAdSearch = () => this.setState({ showSearchAd: false, isQuery: !this.state.isQuery });
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -60,7 +63,7 @@ class Index extends Component {
render() {
const { taxAgentStore: { showOperateBtn } } = this.props;
const { logDialogVisible, selectedKey, showSearchAd, isQuery, customQuery } = this.state;
const { logDialogVisible, filterConditions, selectedKey, showSearchAd, isQuery, customQuery } = this.state;
return (
<div className="salary-welfare-plan-wrapper">
<WeaReqTop
@ -80,11 +83,12 @@ class Index extends Component {
</div>
{/*列表*/}
<WelfarePlanList ref={dom => this.welfarePlanListRef = dom} customQuery={customQuery}
selectedKey={selectedKey} isQuery={isQuery}/>
selectedKey={selectedKey} isQuery={isQuery}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
</div>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction={selectedKey === "CUSTOM" ? "siCategory" : "siScheme"}
onCancel={() => this.setState({ logDialogVisible: false })}/>
filterConditions={filterConditions} onCancel={() => this.setState({ logDialogVisible: false })}/>
</WeaReqTop>
</div>
);

View File

@ -1,6 +1,6 @@
import React from "react";
import { inject, observer } from "mobx-react";
import { Button, Col, message, Modal, Row, Switch } from "antd";
import { Button, Col, Dropdown, Menu, message, Modal, Row, Switch } from "antd";
import { WeaFormItem, WeaInputSearch, WeaLocaleProvider, WeaSearchGroup, WeaTable, WeaTop } from "ecCom";
import { renderNoright } from "../../util";
import EditModal from "./editModal";
@ -34,7 +34,8 @@ export default class TaxAgent extends React.Component {
decentralizationConditions: decentralizationConditions,
permission: {},
syncLoading: false,
logDialogVisible: false
logDialogVisible: false,
filterConditions: "[]"
};
}
@ -286,10 +287,13 @@ export default class TaxAgent extends React.Component {
}
});
};
onDropMenuClick = (key) => {
onDropMenuClick = (key, targetid = "") => {
switch (key) {
case "log":
this.setState({ logDialogVisible: true });
this.setState({
logDialogVisible: true,
filterConditions: targetid ? `[{\"connectCondition\":\"AND\",\"columIndex\":\"targetid\",\"type\":\"=\",\"value\":\"${targetid}\"}]` : "[]"
});
break;
default:
break;
@ -308,7 +312,8 @@ export default class TaxAgent extends React.Component {
permission,
syncLoading,
name,
logDialogVisible
logDialogVisible,
filterConditions
} = this.state;
const {
loading,
@ -376,6 +381,17 @@ export default class TaxAgent extends React.Component {
onClick={() => this.deleteTaxAgent(record.id)}>
删除
</a>
<Dropdown
overlay={
<Menu>
<Menu.Item>
<a href="javascript:void(0)"
onClick={() => this.onDropMenuClick("log", record.id)}>{getLabel(545781, "操作日志")}</a>
</Menu.Item>
</Menu>
}>
<a href="javascript:void(0)"><i className="icon-coms-more"/></a>
</Dropdown>
</div>
}
],
@ -458,7 +474,7 @@ export default class TaxAgent extends React.Component {
</Row>
</WeaTop>
{/*操作日志*/}
<LogDialog visible={logDialogVisible} logFunction="taxagent"
<LogDialog visible={logDialogVisible} logFunction="taxagent" filterConditions={filterConditions}
onCancel={() => this.setState({ logDialogVisible: false })}/>
{editModalProps.visible &&
<EditModal