Merge branch 'custom/领悦' into custom/领悦业务线
# Conflicts: # pc4mobx/hrmSalary/components/CustomBrowser/components/associativeSearchMult.js # pc4mobx/hrmSalary/components/CustomBrowser/components/customBrowserDialog.js # pc4mobx/hrmSalary/components/CustomBrowser/components/customBrowserMutiLeft.js # pc4mobx/hrmSalary/components/CustomBrowser/components/customBrowserMutiRight.js # pc4mobx/hrmSalary/components/CustomBrowser/components/customBrowserOperation.js # pc4mobx/hrmSalary/components/CustomBrowser/index.js # pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSearchComp.js # pc4mobx/hrmSalary/pages/ledgerPage/index.less # pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/components/welfareRecordQuery.js # pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileDialog/index.js # pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileList/index.js
This commit is contained in:
commit
af13777e2d
|
|
@ -235,6 +235,10 @@ export const updateLockStatus = (params) => {
|
|||
export const updateLockEmpStatus = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/lockEmp", params);
|
||||
};
|
||||
// 单元格锁定
|
||||
export const updateLockEmpCellStatus = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/lock", params);
|
||||
};
|
||||
// 导入薪资核算添加表头字段缓存
|
||||
export const cacheImportField = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/salaryacct/acctresult/cacheImportField", params);
|
||||
|
|
|
|||
|
|
@ -22,18 +22,33 @@ export const exportSalaryReport = (params) => {
|
|||
export const generateSIReport = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/SIReport/generate", params);
|
||||
};
|
||||
export const generateFundReport = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/FundReport/generate", params);
|
||||
};
|
||||
export const getLYSIReportList = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/SIReport/list", params);
|
||||
};
|
||||
export const getLYFundReportList = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/FundReport/list", params);
|
||||
};
|
||||
export const getLYSIReportGenerateListSum = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/SIReport/sum", params);
|
||||
};
|
||||
export const getLYFundReportGenerateListSum = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/FundReport/sum", params);
|
||||
};
|
||||
export const batchDeleteSIReport = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/SIReport/batchDelete", params);
|
||||
};
|
||||
export const batchDeleteFundReport = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/FundReport/batchDelete", params);
|
||||
};
|
||||
export const exportSIReport = (params) => {
|
||||
return postExportFetch("/api/bs/hrmsalary/ly/socialReport/export", params);
|
||||
};
|
||||
export const exportFundReport = (params) => {
|
||||
return postExportFetch("/api/bs/hrmsalary/ly/fundReport/export", params);
|
||||
};
|
||||
export const genAndPreveiw = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/PZ/genAndPreveiw", params);
|
||||
};
|
||||
|
|
@ -55,3 +70,6 @@ export const getSalaryReportFFgsList = (params) => {
|
|||
export const getSIReportGmgsList = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/SIReport/gmgsList", params);
|
||||
};
|
||||
export const getFundReportGmgsList = (params) => {
|
||||
return postFetch("/api/bs/hrmsalary/ly/FundReport/gmgsList", params);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@
|
|||
import React, { Component } from "react";
|
||||
import { WeaLocaleProvider } from "ecCom";
|
||||
import { Button, Icon, Select } from "antd";
|
||||
import { postFetch } from "../../../util/request";
|
||||
import classNames from "classnames";
|
||||
import { postFetch } from "../../../util/request";
|
||||
|
||||
const getLabel = WeaLocaleProvider.getLabel;
|
||||
const Option = Select.Option;
|
||||
|
|
@ -39,28 +39,23 @@ class AssociativeSearchMult extends Component {
|
|||
};
|
||||
getData = (name = "") => {
|
||||
const { browserConditionParam } = this.props;
|
||||
const {
|
||||
completeURL, filterByName, searchParamsKey, convertDatasource, dataParams = {}
|
||||
} = browserConditionParam;
|
||||
const { completeURL, searchParamsKey, convertDatasource, dataParams = {} } = browserConditionParam;
|
||||
if (_.trim(name)) {
|
||||
let payload = { ...dataParams };
|
||||
searchParamsKey && (payload = { ...payload, [searchParamsKey]: name, current: 1, pageSize: 9999 });
|
||||
postFetch(completeURL, payload).then(({ status, data }) => {
|
||||
this.setState({ loading: false });
|
||||
if (status && data.list) {
|
||||
this.setState({
|
||||
data: convertDatasource ? convertDatasource(data.list) : data.list,
|
||||
activeKey: this.getActiveKey(convertDatasource ? convertDatasource(data.list) : data.list)
|
||||
});
|
||||
} else {
|
||||
this.setState({
|
||||
data: filterByName ? _.filter(_.map(data, o => ({
|
||||
...o, id: String(o.id), name: o.name
|
||||
})), k => k.name.indexOf(name) !== -1) : _.map(data, o => ({ ...o, id: String(o.id), name: o.name })),
|
||||
activeKey: this.getActiveKey(data)
|
||||
});
|
||||
}
|
||||
});
|
||||
postFetch(completeURL, { ...dataParams, [searchParamsKey]: name, current: 1, pageSize: 9999 })
|
||||
.then(({ status, data }) => {
|
||||
this.setState({ loading: false });
|
||||
if (status && data.list) {
|
||||
this.setState({
|
||||
data: convertDatasource ? convertDatasource(data.list) : data.list,
|
||||
activeKey: this.getActiveKey(convertDatasource ? convertDatasource(data.list) : data.list)
|
||||
});
|
||||
} else {
|
||||
this.setState({
|
||||
data: _.map(data, o => ({ ...o, id: String(o.id), name: o.name })),
|
||||
activeKey: this.getActiveKey(data)
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.setState({ data: [], loading: false, activeKey: "" });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ class CustomBrowserDialog extends Component {
|
|||
if (this.selectedData[id]) return this.selectedData[id];
|
||||
if (!_.isEmpty(listDatas)) {
|
||||
for (let i = 0; i < listDatas.length; i++) {
|
||||
if (String(id) === String(listDatas[i].id)) return listDatas[i];
|
||||
if (id === listDatas[i].id) return listDatas[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,7 +8,12 @@ import React, { Component } from "react";
|
|||
import { WeaLocaleProvider, WeaTools } from "ecCom";
|
||||
import { message, Modal, Spin } from "antd";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { acctResultList, updateLockEmpStatus, updateLockStatus } from "../../../../../apis/calculate";
|
||||
import {
|
||||
acctResultList,
|
||||
updateLockEmpCellStatus,
|
||||
updateLockEmpStatus,
|
||||
updateLockStatus
|
||||
} from "../../../../../apis/calculate";
|
||||
import ProgressModal from "../../../../../components/progressModal";
|
||||
import BatchUpdateSalaryItemValDialog from "./batchUpdateSalaryItemValDialog";
|
||||
import EditSalaryCalcSlide from "./editSalaryCalcSlide";
|
||||
|
|
@ -135,7 +140,7 @@ class EditCalcTable extends Component {
|
|||
});
|
||||
};
|
||||
updateEmpLockStatus = (payload) => {
|
||||
const { lockStatus } = payload;
|
||||
const { lockStatus, salaryItemId } = payload;
|
||||
Modal.confirm({
|
||||
title: getLabel(131329, "信息确认"),
|
||||
content: <div>
|
||||
|
|
@ -166,13 +171,16 @@ class EditCalcTable extends Component {
|
|||
}, 500);
|
||||
});
|
||||
const { routeParams: { salaryAcctRecordId } } = this.props;
|
||||
updateLockEmpStatus({ ...payload, salaryAcctRecordId }).then(({ status, errormsg }) => {
|
||||
const params = salaryItemId ? payload : { ...payload, salaryAcctRecordId };
|
||||
const APIFunction = salaryItemId ? updateLockEmpCellStatus : updateLockEmpStatus;
|
||||
APIFunction(params).then(({ status, errormsg }) => {
|
||||
clearInterval(this.timerLock);
|
||||
this.setState({
|
||||
progressVisible: false,
|
||||
progress: 0
|
||||
});
|
||||
if (status) {
|
||||
clearInterval(this.timerLock);
|
||||
this.setState({
|
||||
progressVisible: false,
|
||||
progress: 0
|
||||
}, () => this.queryCalcResultList());
|
||||
this.queryCalcResultList();
|
||||
} else {
|
||||
message.error(errormsg);
|
||||
}
|
||||
|
|
@ -224,8 +232,8 @@ class EditCalcTable extends Component {
|
|||
"点击锁定所有解锁的项目值": getLabel(543649, "点击锁定所有解锁的项目值"),
|
||||
"点击解锁所有锁定的项目值": getLabel(543648, "点击解锁所有锁定的项目值"),
|
||||
"锁定的项目值": getLabel(543647, "锁定的项目值"),
|
||||
"当前状态锁定,点击解锁": getLabel(111, "当前状态锁定,点击解锁"),
|
||||
"当前状态未锁定,点击锁定": getLabel(111, "当前状态未锁定,点击锁定"),
|
||||
"当前状态锁定,右击解锁": getLabel(111, "当前状态锁定,右击解锁"),
|
||||
"当前状态未锁定,右击锁定": getLabel(111, "当前状态未锁定,右击锁定"),
|
||||
"共": getLabel(18609, "共"), "条": getLabel(18256, "条"),
|
||||
"总计": getLabel(523, "总计"), "批量解锁": getLabel(111, "批量解锁"),
|
||||
"批量锁定": getLabel(111, "批量锁定"), "批量更新": getLabel(111, "批量更新"),
|
||||
|
|
|
|||
|
|
@ -76,6 +76,8 @@
|
|||
height: 100%;
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
padding: 8px 16px 0 16px;
|
||||
background: #F6F6F6;
|
||||
|
||||
.wea-new-table {
|
||||
background: #fff;
|
||||
|
|
@ -83,7 +85,7 @@
|
|||
|
||||
.ant-table-tbody {
|
||||
.ant-table-row-indent {
|
||||
display: none!important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
td:not(.ant-table-selection-column) {
|
||||
|
|
|
|||
|
|
@ -1,15 +1,18 @@
|
|||
import React from "react";
|
||||
import Route from "react-router/lib/Route";
|
||||
import CustomSalarySummary from "./lingyue/salarySummary";
|
||||
import CustomSocialFundSummary from "./lingyue/socialFundSummary";
|
||||
import CustomSISummary from "./lingyue/socialSummary";
|
||||
import CustomFundSummary from "./lingyue/fundSummary";
|
||||
import VouncherSummary from "./lingyue/vouncherSummary";
|
||||
import HistoryVouncherSummary from "./lingyue/historyVouncherSummary";
|
||||
|
||||
const CustomRoutes = [
|
||||
<Route key="customPage_salarySummary_lingyue" path="customPage_salarySummary_lingyue"
|
||||
component={CustomSalarySummary}/>,
|
||||
<Route key="customPage_socailFundSummary_lingyue" path="customPage_socailFundSummary_lingyue"
|
||||
component={CustomSocialFundSummary}/>,
|
||||
<Route key="customPage_siSummary_lingyue" path="customPage_siSummary_lingyue"
|
||||
component={CustomSISummary}/>,
|
||||
<Route key="customPage_fundSummary_lingyue" path="customPage_fundSummary_lingyue"
|
||||
component={CustomFundSummary}/>,
|
||||
<Route key="customPage_vouchers_lingyue" path="customPage_vouchers_lingyue" component={VouncherSummary}/>,
|
||||
<Route key="customPage_historyVouchers_lingyue" path="customPage_historyVouchers_lingyue"
|
||||
component={HistoryVouncherSummary}/>
|
||||
|
|
|
|||
|
|
@ -14,11 +14,13 @@ import { Button, message } from "antd";
|
|||
import { getSearchs } from "../../../../util";
|
||||
import * as API from "../../../../apis/custom-apis/lingyue";
|
||||
import { dataConditions } from "./conditions";
|
||||
import { generateFundReport } from "../../../../apis/custom-apis/lingyue";
|
||||
|
||||
const getLabel = WeaLocaleProvider.getLabel;
|
||||
const APIFOX = {
|
||||
"salarySum": API.generateSalaryReport,
|
||||
"socialFundSum": API.generateSIReport
|
||||
"socialFundSum": API.generateSIReport,
|
||||
"fundSum": API.generateFundReport
|
||||
};
|
||||
|
||||
@inject("LYStore")
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ class GenerateVouchersDialog extends Component {
|
|||
commonEnumList({ enumClass: "com.engine.salary.enums.ly.LyPZTypeEnum" })
|
||||
.then(({ status, data }) => {
|
||||
type === "salarySum" && (data = data.filter(item => !["SBJTPZ", "SBFFPZ", "GJJJTPZ", "GJJFFPZ"].includes(item.enum)));
|
||||
type === "socialFundSum" && (data = data.filter(item => !["XZJTPZ", "XZFFPZ"].includes(item.enum)));
|
||||
type === "socialFundSum" && (data = data.filter(item => !["XZJTPZ", "XZFFPZ", "GJJJTPZ", "GJJFFPZ"].includes(item.enum)));
|
||||
type === "fundSum" && (data = data.filter(item => !["XZJTPZ", "XZFFPZ", "SBJTPZ", "SBFFPZ"].includes(item.enum)));
|
||||
if (status) {
|
||||
this.setState({
|
||||
conditions: _.map(vouchersConditions, item => ({
|
||||
|
|
|
|||
|
|
@ -27,6 +27,12 @@ const interfaceType = {
|
|||
sum: API.getLYSIReportGenerateListSum,
|
||||
export: API.exportSIReport,
|
||||
batchDel: API.batchDeleteSIReport
|
||||
},
|
||||
"fundSum": {
|
||||
list: API.getLYFundReportList,
|
||||
sum: API.getLYFundReportGenerateListSum,
|
||||
export: API.exportFundReport,
|
||||
batchDel: API.batchDeleteFundReport
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -176,7 +182,7 @@ class List extends Component {
|
|||
onSearch={this.getLYList}/>
|
||||
<GenerateVouchersDialog {...voucherDialog} onCancel={() => this.setState({
|
||||
voucherDialog: { ...this.state.voucherDialog, visible: false }
|
||||
})}/>
|
||||
}, () => this.getLYList())}/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
*
|
||||
* 公积金汇总表
|
||||
* @Author: 黎永顺
|
||||
* @Date: 2024/8/28
|
||||
* @Wechat:
|
||||
* @Email: 971387674@qq.com
|
||||
* @description:
|
||||
*/
|
||||
import React, { Component } from "react";
|
||||
import { WeaLocaleProvider } from "ecCom";
|
||||
import Layout from "../layout";
|
||||
import List from "../components/list";
|
||||
import * as API from "../../../../apis/custom-apis/lingyue";
|
||||
|
||||
const getLabel = WeaLocaleProvider.getLabel;
|
||||
|
||||
class Index extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
query: { salaryMonth: moment().format("YYYY-MM"), ffgsqc: "" }, isQuery: false, lyAuth: false,
|
||||
companyOpts: []
|
||||
};
|
||||
this.listRef = null;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
API.getLYPermission().then(({ status, data }) => this.setState({ lyAuth: !!status && !!data }));
|
||||
this.getSIReportGmgsList();
|
||||
}
|
||||
|
||||
getSIReportGmgsList = () => {
|
||||
const { query } = this.state;
|
||||
const { salaryMonth } = query;
|
||||
API.getFundReportGmgsList({ salaryMonth }).then(({ status, data }) => {
|
||||
if (status) this.setState({ companyOpts: _.map(data, o => ({ ...o, name: o.content })) });
|
||||
});
|
||||
};
|
||||
|
||||
handleLayoutChange = ({ isQuery, ...val }) => this.setState({ query: { ...this.state.query, ...val } },
|
||||
() => {
|
||||
this.getSIReportGmgsList();
|
||||
this.setState({ isQuery });
|
||||
});
|
||||
|
||||
render() {
|
||||
const { query, isQuery, lyAuth, companyOpts } = this.state;
|
||||
return (
|
||||
<Layout title={getLabel(111, "公积金汇总表")} query={query} onChange={this.handleLayoutChange}
|
||||
companyOpts={companyOpts} listRef={this.listRef}
|
||||
isQuery={isQuery} lyAuth={lyAuth} ffgsqcLabel={getLabel(111, "购买公司全称")}>
|
||||
<List query={query} isQuery={isQuery} type="fundSum" ref={dom => this.listRef = dom}
|
||||
onInit={() => this.forceUpdate()} ffgsqcLabel={getLabel(111, "购买公司全称")}/>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Index;
|
||||
|
|
@ -32,7 +32,7 @@ class HistoryVouncherDetail extends Component {
|
|||
if (status) this.setState({
|
||||
dataSource: data.data,
|
||||
columns: _.map(data.columns, o => {
|
||||
if (["fzhsXmqsBrowser", "fzhsXmqsBrowser", "fzhsSllbBrowser", "fzhsKsBrowser"].includes(o.dataIndex)) {
|
||||
if (["fzhsXmqsBrowser", "fzhsFwlbBrowser", "fzhsSllbBrowser", "fzhsKsBrowser"].includes(o.dataIndex)) {
|
||||
return {
|
||||
...o,
|
||||
render: text => (
|
||||
|
|
@ -43,7 +43,10 @@ class HistoryVouncherDetail extends Component {
|
|||
...o, render: text => {
|
||||
let arr = [];
|
||||
text && text.map(v => {
|
||||
arr.push(<a className="child-item wdb">{`${v.fzhslx}:${v.bh}/${v.mc}`}</a>);
|
||||
arr.push(<React.Fragment>
|
||||
<a className="child-item wdb">{`${v.fzhslx}:${v.bh}/${v.mc}`}</a>
|
||||
<br/>
|
||||
</React.Fragment>);
|
||||
});
|
||||
return (<span>{arr}</span>);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@
|
|||
import React, { Component } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { WeaDatePicker, WeaFormItem, WeaInputSearch, WeaLocaleProvider, WeaSelect, WeaTable, WeaTop } from "ecCom";
|
||||
import { message, Modal } from "antd";
|
||||
import HistoryVouncherDetail from "./historyVouncherDetail";
|
||||
import * as API from "../../../../apis/custom-apis/lingyue";
|
||||
import { deleteHistoryVoucher } from "../../../../apis/custom-apis/lingyue";
|
||||
import moment from "moment";
|
||||
import { commonEnumList } from "../../../../apis/ruleconfig";
|
||||
import HistoryVouncherDetail from "./historyVouncherDetail";
|
||||
import { message, Modal, Tooltip } from "antd";
|
||||
import moment from "moment";
|
||||
|
||||
const getLabel = WeaLocaleProvider.getLabel;
|
||||
|
||||
|
|
@ -56,7 +56,21 @@ class Index extends Component {
|
|||
this.setState({
|
||||
dataSource, pageInfo: { ...pageInfo, current, pageSize, total },
|
||||
columns: [
|
||||
...columns, {
|
||||
..._.map(columns, k => {
|
||||
if (k.dataIndex === "errorMsg") {
|
||||
return {
|
||||
...k,
|
||||
render: txt => (
|
||||
<Tooltip placement="left" title={<span dangerouslySetInnerHTML={{ __html: txt }}/>}
|
||||
overlayStyle={{ width: 250, height: 300, overflow: "auto", wordWrap: "break-word" }}>
|
||||
<span
|
||||
dangerouslySetInnerHTML={{ __html: (txt && txt.length > 300) ? txt.slice(0, 300) + "..." : txt }}/>
|
||||
</Tooltip>)
|
||||
};
|
||||
}
|
||||
return { ...k };
|
||||
}),
|
||||
{
|
||||
dataIndex: "options", title: getLabel(111, "操作"), width: 160,
|
||||
render: (__, record) => (<React.Fragment>
|
||||
<a href="javascript:void(0);" onClick={() => this.setState({
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
*
|
||||
* 社保公积金汇总表
|
||||
* 社保汇总表
|
||||
* @Author: 黎永顺
|
||||
* @Date: 2024/8/28
|
||||
* @Wechat:
|
||||
|
|
@ -47,7 +47,7 @@ class Index extends Component {
|
|||
render() {
|
||||
const { query, isQuery, lyAuth, companyOpts } = this.state;
|
||||
return (
|
||||
<Layout title={getLabel(111, "社保公积金汇总表")} query={query} onChange={this.handleLayoutChange}
|
||||
<Layout title={getLabel(111, "社保汇总表")} query={query} onChange={this.handleLayoutChange}
|
||||
companyOpts={companyOpts} listRef={this.listRef}
|
||||
isQuery={isQuery} lyAuth={lyAuth} ffgsqcLabel={getLabel(111, "购买公司全称")}>
|
||||
<List query={query} isQuery={isQuery} type="socialFundSum" ref={dom => this.listRef = dom}
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
.generateDeclarationDetail {
|
||||
.tabWrapper{
|
||||
.tabWrapper {
|
||||
padding-left: 10px
|
||||
}
|
||||
|
||||
.tableWrapper {
|
||||
height: calc(100vh - 48px);
|
||||
overflow: auto;
|
||||
|
|
@ -34,7 +35,8 @@
|
|||
.declare-body {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 16px;
|
||||
padding: 8px 16px 0 16px;
|
||||
background: #F6F6F6;
|
||||
overflow-y: auto;
|
||||
|
||||
.wea-new-table {
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ class FieldTable extends Component {
|
|||
pagination={pagination}
|
||||
loading={loading}
|
||||
columns={this.getColumns()}
|
||||
scroll={{ y: "calc(100vh - 152px)" }}
|
||||
scroll={{ y: "calc(100vh - 175px)" }}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class FieldManagement extends Component {
|
|||
];
|
||||
return (
|
||||
<WeaTop
|
||||
title="字段管理" icon={<i className="icon-coms-fa"/>} iconBgcolor="#F14A2D"
|
||||
title="字段管理" icon={<i className="icon-coms-fa"/>} iconBgcolor="#F14A2D" className="fieldManageWrapper"
|
||||
buttons={(showSalaryItemBtn || showOperateBtn) ? btns : btns.slice(-1)}
|
||||
showDropIcon onDropMenuClick={this.onDropMenuClick}
|
||||
dropMenuDatas={[
|
||||
|
|
@ -109,26 +109,23 @@ class FieldManagement extends Component {
|
|||
}
|
||||
]}
|
||||
>
|
||||
<div className="fieldManageWrapper">
|
||||
<FieldTable name={searchVal} doSearch={doSearch} onEditLedger={this.handleEditField}
|
||||
onDeleteLedger={(record) => this.handleDeleteField([record.id])}
|
||||
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
|
||||
/>
|
||||
<FieldSlide
|
||||
{...slideparams}
|
||||
onChangeRecord={(record) => this.setState({
|
||||
slideparams: {
|
||||
...slideparams,
|
||||
record: { ...slideparams.record, ...record }
|
||||
}
|
||||
})}
|
||||
onCancel={this.handleResetField}
|
||||
onRefreshList={() => this.setState({ doSearch: !doSearch })}
|
||||
/>
|
||||
{/*操作日志*/}
|
||||
<LogDialog visible={logDialogVisible} logFunction="salarcfield" filterConditions={filterConditions}
|
||||
onCancel={() => this.setState({ logDialogVisible: false })}/>
|
||||
</div>
|
||||
<FieldTable name={searchVal} doSearch={doSearch} onEditLedger={this.handleEditField}
|
||||
onDeleteLedger={(record) => this.handleDeleteField([record.id])}
|
||||
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
|
||||
<FieldSlide
|
||||
{...slideparams}
|
||||
onChangeRecord={(record) => this.setState({
|
||||
slideparams: {
|
||||
...slideparams,
|
||||
record: { ...slideparams.record, ...record }
|
||||
}
|
||||
})}
|
||||
onCancel={this.handleResetField}
|
||||
onRefreshList={() => this.setState({ doSearch: !doSearch })}
|
||||
/>
|
||||
{/*操作日志*/}
|
||||
<LogDialog visible={logDialogVisible} logFunction="salarcfield" filterConditions={filterConditions}
|
||||
onCancel={() => this.setState({ logDialogVisible: false })}/>
|
||||
</WeaTop>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,15 @@
|
|||
|
||||
.fieldManageWrapper {
|
||||
.wea-new-top-content {
|
||||
background: #F6F6F6;
|
||||
padding: 8px 16px 0 16px;
|
||||
}
|
||||
|
||||
.wea-new-table {
|
||||
background: #FFF;
|
||||
}
|
||||
}
|
||||
|
||||
.slideOuterWrapper {
|
||||
.wea-form-item-group {
|
||||
margin: 16px;
|
||||
|
|
|
|||
|
|
@ -232,11 +232,11 @@ const TitleNormalComp = (props) => {
|
|||
<i className="icon-coms-Delete" title="删除" onClick={() => onDeleteCategory(uuid)}/>
|
||||
}
|
||||
{
|
||||
sortedIndex !== 0 && showOperateBtn &&
|
||||
name !== getLabel(111, "未分类") && sortedIndex !== 0 && showOperateBtn &&
|
||||
<i className="icon-coms-Reverse" title="向上移动" onClick={() => onUpgo(sortedIndex)}/>
|
||||
}
|
||||
{
|
||||
sortedIndex !== dataSourceLen - 1 && showOperateBtn &&
|
||||
name !== getLabel(111, "未分类") && sortedIndex !== dataSourceLen - 2 && showOperateBtn &&
|
||||
<i className="icon-coms-positive-sequence" title="向下移动" onClick={() => onDowngo(sortedIndex)}/>
|
||||
}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -61,19 +61,16 @@ class LedgerSearchComp extends Component {
|
|||
let items = [];
|
||||
c.items.map(fields => {
|
||||
items.push({
|
||||
com: (
|
||||
<WeaFormItem label={`${fields.label}`} labelCol={{ span: `${fields.labelcol}` }}
|
||||
wrapperCol={{ span: `${fields.fieldcol}` }} error={form.getError(fields)}
|
||||
tipPosition="bottom"
|
||||
>
|
||||
<WeaSwitch fieldConfig={fields} form={form} formParams={formParams}/>
|
||||
</WeaFormItem>),
|
||||
colSpan: 2
|
||||
com: (<WeaFormItem label={`${fields.label}`} labelCol={{ span: `${fields.labelcol}` }}
|
||||
wrapperCol={{ span: `${fields.fieldcol}` }} error={form.getError(fields)}
|
||||
tipPosition="bottom">
|
||||
<WeaSwitch fieldConfig={fields} form={form} formParams={formParams}
|
||||
onChange={_.debounce(this.props.onSearch, 500)}/>
|
||||
</WeaFormItem>), colSpan: 2
|
||||
});
|
||||
});
|
||||
group.push(
|
||||
<WeaSearchGroup col={2} needTigger={true} title={c.title} showGroup={c.defaultshow} center={false}
|
||||
items={items}/>);
|
||||
group.push(<WeaSearchGroup col={2} needTigger={true} title={c.title} showGroup={c.defaultshow} center={false}
|
||||
items={items}/>);
|
||||
});
|
||||
return group;
|
||||
};
|
||||
|
|
@ -81,12 +78,7 @@ class LedgerSearchComp extends Component {
|
|||
render() {
|
||||
const { conditions } = this.state;
|
||||
const { ledgerStore: { searchForm } } = this.props;
|
||||
return (
|
||||
<div className="ledgerSearch-Wrapper">
|
||||
{this.formRender(searchForm, conditions)}
|
||||
<Button type="primary" onClick={this.props.onSearch}>{getLabel(388113, "搜索")}</Button>
|
||||
</div>
|
||||
);
|
||||
return (<div className="ledgerSearch-Wrapper">{this.formRender(searchForm, conditions)}</div>);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -107,9 +107,9 @@ class LedgerSlide extends Component {
|
|||
if (!it.salarySobId) delete it.id;
|
||||
return { ...it };
|
||||
}),
|
||||
itemGroups: _.map(_.filter(itemGroups, it => it.name !== "未分类"), item => {
|
||||
itemGroups: _.map(_.filter(itemGroups, it => it.name !== "未分类"), (item, index) => {
|
||||
return {
|
||||
...item,
|
||||
...item, sortedIndex: index,
|
||||
items: _.map(item.items, it => {
|
||||
delete it.originFormulaContent;
|
||||
delete it.originSqlContent;
|
||||
|
|
|
|||
|
|
@ -57,10 +57,9 @@ class Index extends Component {
|
|||
const { PageAndOptAuth } = taxAgentStore;
|
||||
const admin = PageAndOptAuth.opts.includes("admin");
|
||||
const btns = [
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => this.setState({ slideparams: { ...slideparams, visible: true } })}
|
||||
>新建</Button>,
|
||||
<Button type="primary" onClick={() => this.setState({ slideparams: { ...slideparams, visible: true } })}>
|
||||
{getLabel(111, "新建")}
|
||||
</Button>,
|
||||
<LedgerSearchComp onSearch={() => this.setState({ doSearch: !doSearch })}/>
|
||||
];
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
.ledgerWrapper {
|
||||
height: 100%;
|
||||
padding: 8px 16px 0 16px;
|
||||
background: #F6F6F6;
|
||||
|
||||
.wea-new-table {
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
.tdEllipsis {
|
||||
display: inline-block;
|
||||
|
|
@ -12,7 +18,6 @@
|
|||
|
||||
.ledgerSearch-Wrapper {
|
||||
min-width: 350px;
|
||||
margin-right: 70px;
|
||||
position: relative;
|
||||
|
||||
& > button {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
.mySalary_wrapper {
|
||||
.wea-new-top-req-content {
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
.wea-transfer-list-wrapper {
|
||||
border: none;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,28 +64,22 @@ class WelfareRecordQuery extends Component {
|
|||
let items = [];
|
||||
c.items.map(fields => {
|
||||
items.push({
|
||||
com: (
|
||||
<WeaFormItem label={`${fields.label}`} labelCol={{ span: `${fields.labelcol}` }}
|
||||
wrapperCol={{ span: `${fields.fieldcol}` }} error={form.getError(fields)} tipPosition="bottom"
|
||||
>
|
||||
<WeaSwitch fieldConfig={fields} form={form} formParams={formParams}
|
||||
onChange={this.getWelfareRecordList}/>
|
||||
</WeaFormItem>)
|
||||
com: (<WeaFormItem label={`${fields.label}`} labelCol={{ span: `${fields.labelcol}` }}
|
||||
wrapperCol={{ span: `${fields.fieldcol}` }} error={form.getError(fields)}
|
||||
tipPosition="bottom">
|
||||
<WeaSwitch fieldConfig={fields} form={form} formParams={formParams} onChange={this.getWelfareRecordList}/>
|
||||
</WeaFormItem>)
|
||||
});
|
||||
});
|
||||
group.push(
|
||||
<WeaSearchGroup col={3} needTigger showGroup={c.defaultshow}
|
||||
items={[
|
||||
{
|
||||
com: (<WeaFormItem label={getLabel(542443, "账单月份")} labelCol={{ span: 4 }}
|
||||
wrapperCol={{ span: 16 }}>
|
||||
<MonthRangePicker dateRange={dateRange} viewAttr={2}
|
||||
onChange={v => this.setState({ dateRange: v }, () => this.getWelfareRecordList())}/>
|
||||
</WeaFormItem>)
|
||||
},
|
||||
...items
|
||||
]}
|
||||
/>);
|
||||
group.push(<WeaSearchGroup col={3} needTigger showGroup={c.defaultshow}
|
||||
items={[{
|
||||
com: (<WeaFormItem label={getLabel(542443, "账单月份")} labelCol={{ span: 4 }}
|
||||
wrapperCol={{ span: 16 }}>
|
||||
<MonthRangePicker dateRange={dateRange} viewAttr={2}
|
||||
onChange={v => this.setState({ dateRange: v }, () => this.getWelfareRecordList())}/>
|
||||
</WeaFormItem>)
|
||||
}, ...items]}
|
||||
/>);
|
||||
});
|
||||
return group;
|
||||
};
|
||||
|
|
@ -102,9 +96,7 @@ class WelfareRecordQuery extends Component {
|
|||
render() {
|
||||
const { standingBookStore: { welfareRQForm } } = this.props;
|
||||
const { conditions } = this.state;
|
||||
return (
|
||||
<div className="salary-welfare-record-query">{this.renderForm(welfareRQForm, conditions)}</div>
|
||||
);
|
||||
return (<div className="salary-welfare-record-query">{this.renderForm(welfareRQForm, conditions)}</div>);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,24 +57,22 @@
|
|||
|
||||
//社保福利台账页面重构
|
||||
.salary-welfare-record {
|
||||
min-width: 1000px;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #f6f6f6;
|
||||
|
||||
.salary-welfare-record-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 8px 16px;
|
||||
padding: 8px 16px 0 16px;
|
||||
background: #F6F6F6;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.salary-welfare-record-query {
|
||||
width: 100%;
|
||||
padding: 0 8px;
|
||||
margin-bottom: 8px;
|
||||
height: 46px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #FFF;
|
||||
|
||||
.wea-search-group {
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -124,50 +124,45 @@ class StandingBook extends Component {
|
|||
const rightBtns = [<Button type="primary" onClick={() => this.setState({
|
||||
accountDialog: { ...accountDialog, visible: true, title: getLabel(538780, "核算") }
|
||||
})}>{getLabel(538780, "核算")}</Button>];
|
||||
return (
|
||||
<div className="salary-welfare-record">
|
||||
<WeaTop title={getLabel(538002, "社保福利台账")} icon={<i className="icon-coms-fa"/>}
|
||||
iconBgcolor="#F14A2D" buttons={showOperateBtn ? rightBtns : []}
|
||||
showDropIcon onDropMenuClick={this.onDropMenuClick}
|
||||
dropMenuDatas={[
|
||||
{
|
||||
key: "log", icon: <i className="iconfont icon-caozuorizhi32"/>,
|
||||
content: getLabel(545781, "操作日志")
|
||||
}
|
||||
]}
|
||||
>
|
||||
<div className="salary-welfare-record-content">
|
||||
<WelfareRecordQuery
|
||||
onSearch={(payload) => {
|
||||
this.setState({
|
||||
queryForm: { ...queryForm, ...payload }
|
||||
}, () => this.wfListRef.wrappedInstance.getWelfareRecordList());
|
||||
}}
|
||||
onPutAccountOptions={options => this.setState({ accountDialog: { ...accountDialog, options } })}
|
||||
/>
|
||||
<WelfareRecordList ref={dom => this.wfListRef = dom} queryForm={queryForm}
|
||||
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
|
||||
</div>
|
||||
<Accountdialog {...accountDialog}
|
||||
onCancel={() => this.setState({
|
||||
accountDialog: { ...accountDialog, visible: false, title: "", loading: false }
|
||||
})} onOk={this.handleAccount}
|
||||
/>
|
||||
{/*操作日志*/}
|
||||
<LogDialog visible={logDialogVisible} logFunction="siAccount" filterConditions={filterConditions}
|
||||
onCancel={() => this.setState({ logDialogVisible: false })}/>
|
||||
{/*核算进度条*/}
|
||||
{
|
||||
this.state.progressVisible &&
|
||||
<ProgressModal visible={this.state.progressVisible} progress={this.state.progress}
|
||||
onCancel={() => {
|
||||
this.setState({ progressVisible: false, progress: 0 }, () => clearInterval(this.timer));
|
||||
}}
|
||||
/>
|
||||
}
|
||||
</WeaTop>
|
||||
return (<WeaTop title={getLabel(538002, "社保福利台账")} icon={<i className="icon-coms-fa"/>}
|
||||
iconBgcolor="#F14A2D" buttons={showOperateBtn ? rightBtns : []} className="salary-welfare-record"
|
||||
showDropIcon onDropMenuClick={this.onDropMenuClick}
|
||||
dropMenuDatas={[
|
||||
{
|
||||
key: "log", icon: <i className="iconfont icon-caozuorizhi32"/>,
|
||||
content: getLabel(545781, "操作日志")
|
||||
}
|
||||
]}>
|
||||
<div className="salary-welfare-record-content">
|
||||
<WelfareRecordQuery
|
||||
onSearch={(payload) => {
|
||||
this.setState({
|
||||
queryForm: { ...queryForm, ...payload }
|
||||
}, () => this.wfListRef.wrappedInstance.getWelfareRecordList());
|
||||
}}
|
||||
onPutAccountOptions={options => this.setState({ accountDialog: { ...accountDialog, options } })}
|
||||
/>
|
||||
<WelfareRecordList ref={dom => this.wfListRef = dom} queryForm={queryForm}
|
||||
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}/>
|
||||
</div>
|
||||
);
|
||||
<Accountdialog {...accountDialog}
|
||||
onCancel={() => this.setState({
|
||||
accountDialog: { ...accountDialog, visible: false, title: "", loading: false }
|
||||
})} onOk={this.handleAccount}
|
||||
/>
|
||||
{/*操作日志*/}
|
||||
<LogDialog visible={logDialogVisible} logFunction="siAccount" filterConditions={filterConditions}
|
||||
onCancel={() => this.setState({ logDialogVisible: false })}/>
|
||||
{/*核算进度条*/}
|
||||
{
|
||||
this.state.progressVisible &&
|
||||
<ProgressModal visible={this.state.progressVisible} progress={this.state.progress}
|
||||
onCancel={() => {
|
||||
this.setState({ progressVisible: false, progress: 0 }, () => clearInterval(this.timer));
|
||||
}}
|
||||
/>
|
||||
}
|
||||
</WeaTop>);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class Index extends Component {
|
|||
}, {});
|
||||
};
|
||||
save = () => {
|
||||
const { baseTableStore: { VSSalaryFileForm }, onSearch, id } = this.props;
|
||||
const { baseTableStore: { VSSalaryFileForm }, onSearch, detail: { id } } = this.props;
|
||||
VSSalaryFileForm.validateForm().then(f => {
|
||||
if (f.isValid) {
|
||||
const payload = VSSalaryFileForm.getFormParams();
|
||||
|
|
@ -120,7 +120,7 @@ class Index extends Component {
|
|||
});
|
||||
};
|
||||
renderTitle = () => {
|
||||
const { loading } = this.state, { title, detail } = this.props;
|
||||
const { loading } = this.state, { title } = this.props;
|
||||
return <div className="titleDialog">
|
||||
<div className="titleCol titleLeftBox">
|
||||
<div className="titleIcon"><i className="icon-coms-fa"/></div>
|
||||
|
|
@ -138,7 +138,7 @@ class Index extends Component {
|
|||
return (<WeaSlideModal
|
||||
className="variable_salary_file_dialog" {...this.props} direction="right" onClose={() => onClose()}
|
||||
top={0} width={800} height={100} measureT="%" measureX="px" measureY="%" title={this.renderTitle()}
|
||||
content={<div className="form-dialog-layout">{getSearchs(VSSalaryFileForm, conditions)}</div>}
|
||||
content={<div className="form-dialog-layout">{getSearchs(VSSalaryFileForm, conditions, 2, false)}</div>}
|
||||
/>);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,9 +113,8 @@ class Index extends Component {
|
|||
const { pageInfo: result } = data;
|
||||
const { list: dataSource, pageNum: current, pageSize, total } = result;
|
||||
this.setState({
|
||||
pageInfo: { ...pageInfo, current, pageSize, total }, dataSource
|
||||
}
|
||||
);
|
||||
pageInfo: { ...pageInfo, current, pageSize, total }, dataSource
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ export const salaryFileConditions = [
|
|||
labelcol: 8,
|
||||
value: "",
|
||||
options: [],
|
||||
rules: "required|string",
|
||||
rules: "required",
|
||||
viewAttr: 3
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class Index extends Component {
|
|||
this.setState({
|
||||
SFDialog: {
|
||||
...this.state.SFDialog, visible: true, detail,
|
||||
title: _.isEmpty(detail) ? getLabel(111, "新增薪资档案") : getLabel(111, "编辑薪资档案")
|
||||
title: _.isEmpty(detail) ? getLabel(111, "新增浮动数据") : getLabel(111, "编辑浮动数据")
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue