数据采集页面重构
This commit is contained in:
parent
b6849400d7
commit
a11ad9d7d1
|
|
@ -132,3 +132,8 @@ export const autoAddAll = (params) => {
|
|||
export const getTableDate = ({ url, ...params }) => {
|
||||
return postFetch(url, params);
|
||||
};
|
||||
//数据采集列表详情记录查询
|
||||
export const getTableRecordDate = ({ url, ...params }) => {
|
||||
return postFetch(url, params);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
.tableRecordWrapper {
|
||||
.accumulated {
|
||||
.wea-form-cell-wrapper {
|
||||
& > div:first-child {
|
||||
width: 10% !important;
|
||||
line-height: 46px;
|
||||
}
|
||||
|
||||
& > div:nth-child(2) {
|
||||
width: 40% !important;
|
||||
|
||||
.wea-form-item-wrapper {
|
||||
display: flex !important;
|
||||
align-items: center;
|
||||
|
||||
.to {
|
||||
padding: 0 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > div:last-child {
|
||||
width: 40% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
/*
|
||||
* Author: 黎永顺
|
||||
* name: 数据采集-详情记录页面
|
||||
* Description:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
import React, { Component } from "react";
|
||||
import { WeaSearchGroup } from "ecCom";
|
||||
import UnifiedTable from "../../../components/UnifiedTable";
|
||||
import { getTableRecordDate } from "../../../apis/cumDeduct";
|
||||
import { DataCollectionDateRangePick, DataCollectionSelect, Input } from "../cumDeduct";
|
||||
import "./index.less";
|
||||
|
||||
class TableRecord extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
loading: {
|
||||
query: false
|
||||
},
|
||||
dataSource: [],
|
||||
columns: [],
|
||||
selectedRowKeys: [],
|
||||
pageInfo: {
|
||||
current: 1, pageSize: 10, total: 0
|
||||
},
|
||||
recordPayload: {
|
||||
accumulatedSpecialAdditionalDeductionId: "",
|
||||
otherTaxExemptDeductionId: "",
|
||||
accumulatedSituationId: "",
|
||||
specialAddDeductionId: "",
|
||||
taxAgentId: "",
|
||||
declareMonth: []
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.getTableRecordData();
|
||||
}
|
||||
|
||||
getTableRecordData = (payload) => {
|
||||
const { loading, pageInfo } = this.state;
|
||||
const { url, ...extraPayload } = this.props;
|
||||
const module = { ...pageInfo, url, ...extraPayload, ...payload };
|
||||
this.setState({ loading: { ...loading, query: true } });
|
||||
getTableRecordDate(_.omit(module, ["className", "items", "total"])).then(({ status, data }) => {
|
||||
this.setState({ loading: { ...loading, query: false } });
|
||||
if (status) {
|
||||
const { columns, list: dataSource, pageNum: current, pageSize, total } = data;
|
||||
this.setState({
|
||||
pageInfo: { ...pageInfo, current, pageSize, total },
|
||||
dataSource,
|
||||
columns
|
||||
});
|
||||
}
|
||||
}).catch(() => this.setState({ loading: { ...loading, query: false } }));
|
||||
};
|
||||
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 详情页面-筛选操作
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
handleTablerecordScreen = ({ key, value }) => {
|
||||
const { recordPayload } = this.state;
|
||||
// this.setState({
|
||||
// recordPayload: {
|
||||
// ...recordPayload,
|
||||
// [key]: value
|
||||
// }
|
||||
// }, () => {
|
||||
// this.tableRecordRef.getTableRecordData(this.state.recordPayload);
|
||||
// });
|
||||
};
|
||||
render() {
|
||||
const { className, screenParams, taxAgentOption } = this.props;
|
||||
const { columns, dataSource, loading, selectedRowKeys, pageInfo, recordPayload } = this.state;
|
||||
const rowSelection = {
|
||||
selectedRowKeys,
|
||||
onChange: (selectedRowKeys) => this.setState({ selectedRowKeys })
|
||||
};
|
||||
const pagination = {
|
||||
...pageInfo,
|
||||
showTotal: (total) => `共 ${total} 条`,
|
||||
pageSizeOptions: ["10", "20", "50", "100"],
|
||||
showSizeChanger: true,
|
||||
showQuickJumper: true,
|
||||
onShowSizeChange: (current, pageSize) => {
|
||||
this.setState({
|
||||
pageInfo: { ...pageInfo, current, pageSize }
|
||||
}, () => {
|
||||
this.getTableRecordData();
|
||||
});
|
||||
},
|
||||
onChange: (current) => {
|
||||
this.setState({
|
||||
pageInfo: { ...pageInfo, current }
|
||||
}, () => {
|
||||
this.getTableRecordData();
|
||||
});
|
||||
}
|
||||
};
|
||||
const items = [
|
||||
{
|
||||
com: Input({ value: editId.username })
|
||||
},
|
||||
{
|
||||
com: DataCollectionDateRangePick({
|
||||
label: "税款所属期",
|
||||
range: recordPayload.declareMonth,
|
||||
onChange: this.handleTablerecordScreen,
|
||||
key: "declareMonth"
|
||||
})
|
||||
},
|
||||
{
|
||||
com: DataCollectionSelect({
|
||||
label: "个税扣缴义务人",
|
||||
value: !_.isNil(recordPayload.taxAgentId) ? recordPayload.taxAgentId.toString() : "",
|
||||
options: [{ key: "", showname: "全部" }, ...taxAgentOption],
|
||||
onChange: this.handleTablerecordScreen,
|
||||
key: "taxAgentId"
|
||||
})
|
||||
}
|
||||
];
|
||||
return (
|
||||
<div className="tableRecordWrapper">
|
||||
<WeaSearchGroup className={className} showGroup needTigger={false} items={items} col={3}/>
|
||||
<UnifiedTable
|
||||
rowKey="id"
|
||||
rowSelection={rowSelection}
|
||||
columns={_.map(columns, item => ({
|
||||
...item,
|
||||
render: (text) => {
|
||||
return <span className="ellipsis" title={text}> {text} </span>;
|
||||
}
|
||||
}))}
|
||||
dataSource={dataSource}
|
||||
pagination={pagination}
|
||||
loading={loading.query}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default TableRecord;
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Author: 黎永顺
|
||||
* name: 数据采集-导入选项
|
||||
* Description:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
import React, { Component } from "react";
|
||||
import { WeaSearchGroup } from "ecCom";
|
||||
import { DataCollectionDatePicker, DataCollectionSelect } from "../index";
|
||||
|
||||
class ImportFormCom extends Component {
|
||||
screenChange = ({ key, value }) => {
|
||||
const { onChangeImportForm } = this.props;
|
||||
onChangeImportForm(key, value);
|
||||
};
|
||||
|
||||
render() {
|
||||
const { taxAgentOption, declareMonth, taxAgentId } = this.props;
|
||||
const items = [
|
||||
{
|
||||
com: DataCollectionDatePicker({
|
||||
label: "税款所属期",
|
||||
value: declareMonth,
|
||||
onChange: this.screenChange,
|
||||
key: "declareMonth",
|
||||
screen: false
|
||||
})
|
||||
},
|
||||
{
|
||||
com: DataCollectionSelect({
|
||||
label: "个税扣缴义务人",
|
||||
value: taxAgentId,
|
||||
onChange: this.screenChange,
|
||||
options: [{ key: "", showname: "全部" }, ...taxAgentOption],
|
||||
key: "taxAgentId"
|
||||
})
|
||||
}
|
||||
];
|
||||
return (
|
||||
<WeaSearchGroup className="screenWrapper" showGroup needTigger={false} items={items}
|
||||
col={2}/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default ImportFormCom;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import React, { Component } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { WeaDatePicker, WeaFormItem, WeaHelpfulTip, WeaSearchGroup, WeaSelect } from "ecCom";
|
||||
import { WeaDatePicker, WeaFormItem, WeaHelpfulTip, WeaInput, WeaSearchGroup, WeaSelect } from "ecCom";
|
||||
import { Button, Dropdown, Menu, message, Modal } from "antd";
|
||||
import {
|
||||
autoAddAll,
|
||||
|
|
@ -8,11 +8,17 @@ import {
|
|||
deleteAllAddUpDeduction,
|
||||
deleteSelectAddUpDeduction,
|
||||
editAddUpDeduction,
|
||||
getAddUpDeduction
|
||||
getAddUpDeduction,
|
||||
getCumDeductSaCondition,
|
||||
importCumDeductParam,
|
||||
importCumDeductPreview
|
||||
} from "../../../apis/cumDeduct";
|
||||
import DataTables from "../dataTables";
|
||||
import AddItems from "../addItems";
|
||||
import ImportFormCom from "./components/importFormCom";
|
||||
import TableRecord from "../components/tableRecord";
|
||||
import { dataCollectCondition } from "./columns";
|
||||
import { removePropertyCondition } from "../../../util/response";
|
||||
import Layout from "../layout";
|
||||
import moment from "moment";
|
||||
|
||||
|
|
@ -32,9 +38,28 @@ class Index extends Component {
|
|||
title: "",
|
||||
children: null,
|
||||
data: {}
|
||||
}
|
||||
},
|
||||
importPayload: {
|
||||
visible: false,
|
||||
importOpts: {
|
||||
declareMonth: moment(new Date()).format("YYYY-MM"),
|
||||
taxAgentId: ""
|
||||
},
|
||||
importFormComponent: null,
|
||||
step: 0,
|
||||
importResult: {},
|
||||
slideDataSource: []
|
||||
},
|
||||
exportPayloadUrl: "",
|
||||
advanceCondition: null
|
||||
};
|
||||
this.tableRef = null;
|
||||
this.addItemRef = null;
|
||||
this.tableRecordRef = null;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.getAdvanceCondition();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -56,6 +81,21 @@ class Index extends Component {
|
|||
}
|
||||
}).catch(() => this.setState({ addAllLoading: false }));
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 高级搜素框-表单项
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
getAdvanceCondition = () => {
|
||||
const { cumDeductStore: { form } } = this.props;
|
||||
getCumDeductSaCondition().then(({ status, data }) => {
|
||||
if (status) {
|
||||
this.setState({ advanceCondition: removePropertyCondition(data.condition) });
|
||||
form.initFormFields(removePropertyCondition(data.condition));
|
||||
}
|
||||
});
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 一键清空
|
||||
|
|
@ -112,6 +152,70 @@ class Index extends Component {
|
|||
}
|
||||
});
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description:数据采集-导出全部
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
handleExportAll = () => {
|
||||
const { declareMonth, taxAgentId } = this.state;
|
||||
this.setState({
|
||||
exportPayloadUrl: `${window.location.origin}/api/bs/hrmsalary/addUpDeduction/export?ids=&declareMonth=${declareMonth}&taxAgentId=${taxAgentId}`
|
||||
});
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description:数据采集-导出选中
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
handleExportSelect = () => {
|
||||
const { selectedRowKeys: ids } = this.tableRef.state;
|
||||
const { declareMonth, taxAgentId } = this.state;
|
||||
if (ids.length === 0) {
|
||||
message.warning("请选择需要导出的数据");
|
||||
return;
|
||||
}
|
||||
this.setState({
|
||||
exportPayloadUrl: `${window.location.origin}/api/bs/hrmsalary/addUpDeduction/export?ids=${ids.join(",")}&declareMonth=${declareMonth}&taxAgentId=${taxAgentId}`
|
||||
});
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 导入数据采集数据
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
handleImportFile = (params) => {
|
||||
importCumDeductParam(params).then(({ status, data }) => {
|
||||
if (status) {
|
||||
const { importPayload } = this.state;
|
||||
this.setState({
|
||||
importPayload: { ...importPayload, importResult: data }
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 导入数据采集-数据查看
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
handlePreviewImport = (params) => {
|
||||
importCumDeductPreview(params).then(({ status, data, errormsg }) => {
|
||||
if (status) {
|
||||
const { preview = [] } = data;
|
||||
const { importPayload } = this.state;
|
||||
this.setState({
|
||||
importPayload: { ...importPayload, slideDataSource: preview }
|
||||
});
|
||||
} else {
|
||||
message.error(errormsg || "预览失败");
|
||||
}
|
||||
});
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 数据采集-信息保存
|
||||
|
|
@ -147,7 +251,6 @@ class Index extends Component {
|
|||
});
|
||||
}
|
||||
};
|
||||
|
||||
handleSaveData = () => {
|
||||
const { cumDeductStore: { addForm } } = this.props;
|
||||
const { baseInfo } = this.addItemRef.state;
|
||||
|
|
@ -174,22 +277,30 @@ class Index extends Component {
|
|||
*/
|
||||
handleAddData = (title = "新建", editId = {}) => {
|
||||
const { taxAgentStore, cumDeductStore: { addForm } } = this.props;
|
||||
addForm.initFormFields(dataCollectCondition);
|
||||
const { slidePayload } = this.state;
|
||||
const { taxAgentOption } = taxAgentStore;
|
||||
addForm.initFormFields(dataCollectCondition);
|
||||
this.setState({
|
||||
slidePayload: {
|
||||
...slidePayload,
|
||||
visible: true,
|
||||
title,
|
||||
data: editId,
|
||||
children: <AddItems
|
||||
ref={(dom) => this.addItemRef = dom}
|
||||
taxAgentOption={taxAgentOption}
|
||||
form={addForm}
|
||||
editId={editId}
|
||||
condition={dataCollectCondition}
|
||||
/>
|
||||
children: title.length <= 2 ?
|
||||
<AddItems
|
||||
ref={(dom) => this.addItemRef = dom}
|
||||
taxAgentOption={taxAgentOption}
|
||||
form={addForm}
|
||||
editId={editId}
|
||||
condition={dataCollectCondition}
|
||||
/> :
|
||||
<TableRecord
|
||||
ref={(dom) => this.tableRecordRef = dom}
|
||||
className="accumulated"
|
||||
taxAgentOption={taxAgentOption}
|
||||
url="/api/bs/hrmsalary/addUpDeduction/getDetailList"
|
||||
screenParams={["accumulatedSpecialAdditionalDeductionId", "taxAgentId", "declareMonth"]}
|
||||
/>
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -251,6 +362,10 @@ class Index extends Component {
|
|||
screenChange = ({ key, value }) => {
|
||||
this.setState({ [key]: value }, () => this.tableRef.getTableDate({ current: 1 }));
|
||||
};
|
||||
handleAdSearch = () => {
|
||||
const { cumDeductStore: { form } } = this.props;
|
||||
this.tableRef.getTableDate({ ...form.getFormParams(), current: 1 });
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 顶部操作按钮
|
||||
|
|
@ -260,7 +375,7 @@ class Index extends Component {
|
|||
getTopBtns = () => {
|
||||
const { addAllLoading } = this.state;
|
||||
return [
|
||||
<Button type="primary">导入</Button>,
|
||||
<Button type="primary" onClick={this.handleOpenImport}>导入</Button>,
|
||||
<Button type="ghost" onClick={() => this.handleAddData()}>新建</Button>,
|
||||
<Button type="ghost" loading={addAllLoading} onClick={this.autoAddAll}>一键累计</Button>,
|
||||
<Dropdown
|
||||
|
|
@ -278,16 +393,90 @@ class Index extends Component {
|
|||
];
|
||||
};
|
||||
handleDataMenuClick = ({ key: keyFunc }) => this[keyFunc]();
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description:详情页面-操作按钮
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
getDetailOptBtns = () => {
|
||||
return [
|
||||
<Dropdown.Button
|
||||
// onClick={this.handleExportAllDetailClick}
|
||||
overlay={
|
||||
<Menu
|
||||
// onClick={handleExportSelectedDetailClick}
|
||||
>
|
||||
<Menu.Item key="1">导出选中</Menu.Item>
|
||||
</Menu>
|
||||
}
|
||||
type="primary">
|
||||
导出全部
|
||||
</Dropdown.Button>
|
||||
];
|
||||
};
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 数据采集-导入相关
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
handleOpenImport = () => {
|
||||
const { importPayload } = this.state;
|
||||
const { importOpts } = importPayload;
|
||||
const { taxAgentStore: { taxAgentOption } } = this.props;
|
||||
this.setState({
|
||||
importPayload: {
|
||||
...importPayload,
|
||||
visible: true, step: 0,
|
||||
importResult: {}, slideDataSource: [],
|
||||
importFormComponent: <ImportFormCom {...importOpts} taxAgentOption={taxAgentOption}
|
||||
onChangeImportForm={this.handleChangeImportForm}/>
|
||||
}
|
||||
});
|
||||
};
|
||||
handleCloseImport = (doSearch = false) => {
|
||||
const { importPayload } = this.state;
|
||||
this.setState({
|
||||
importPayload: {
|
||||
...importPayload, visible: false, importFormComponent: null, step: 0,
|
||||
importOpts: {
|
||||
declareMonth: moment(new Date()).format("YYYY-MM"),
|
||||
taxAgentId: ""
|
||||
}, importResult: {}, slideDataSource: []
|
||||
}
|
||||
}, () => doSearch && this.tableRef.getTableDate());
|
||||
};
|
||||
handleChangeImportForm = (key, value) => {
|
||||
const { importPayload } = this.state;
|
||||
const { importOpts } = importPayload;
|
||||
this.setState({
|
||||
importPayload: { ...importPayload, importOpts: { ...importOpts, [key]: value } }
|
||||
});
|
||||
};
|
||||
handleImportSetStep = (step) => {
|
||||
const { importPayload } = this.state;
|
||||
this.setState({
|
||||
importPayload: { ...importPayload, step }
|
||||
});
|
||||
};
|
||||
|
||||
render() {
|
||||
const { taxAgentStore: { showOperateBtn } } = this.props;
|
||||
const { declareMonth, taxAgentId, slidePayload, saveLoading } = this.state;
|
||||
const { taxAgentStore: { showOperateBtn }, cumDeductStore: { form } } = this.props;
|
||||
const {
|
||||
declareMonth, taxAgentId, slidePayload, saveLoading, exportPayloadUrl, advanceCondition,
|
||||
importPayload
|
||||
} = this.state;
|
||||
const tablePayload = { declareMonth: [declareMonth], taxAgentId };
|
||||
return (
|
||||
<Layout title="累计专项附加扣除" btns={this.getTopBtns()} leftComp={this.getScreen()}
|
||||
onResizeWindowInnerWidth={this.handleResize} slidePayload={slidePayload}
|
||||
onClose={this.handleCloseSlide} onSave={this.handleSaveData}
|
||||
slideLoading={saveLoading}
|
||||
slideLoading={saveLoading} exportPayloadUrl={exportPayloadUrl}
|
||||
form={form} condition={advanceCondition} onAdSearch={this.handleAdSearch}
|
||||
onImportSetStep={this.handleImportSetStep} onCancel={this.handleCloseImport}
|
||||
importPayload={importPayload} onImportFile={this.handleImportFile}
|
||||
onPreviewImport={this.handlePreviewImport} detailOptBtns={this.getDetailOptBtns()}
|
||||
>
|
||||
<DataTables
|
||||
ref={dom => this.tableRef = dom}
|
||||
|
|
@ -295,6 +484,7 @@ class Index extends Component {
|
|||
payload={tablePayload}
|
||||
showOperateBtn={showOperateBtn}
|
||||
onTableOperate={this.handleTableOperate}
|
||||
onViewDetails={(record) => this.handleAddData("累计专项附加扣除记录", record)}
|
||||
/>
|
||||
</Layout>
|
||||
);
|
||||
|
|
@ -303,16 +493,33 @@ class Index extends Component {
|
|||
|
||||
export default Index;
|
||||
|
||||
const DataCollectionDatePicker = (props) => {
|
||||
const { value, label, onChange, format = "YYYY-MM", key } = props;
|
||||
export const DataCollectionDatePicker = (props) => {
|
||||
const { value, label, onChange, format = "YYYY-MM", key, screen = true } = props;
|
||||
return <WeaFormItem label={label} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
|
||||
<WeaDatePicker value={value} onChange={(val) => onChange({ key, value: val })} format={format}/>
|
||||
<WeaHelpfulTip title="提示:默认显示本年截至当前月所有员工申报的累计专项附加及其他扣除额" width={200}/>
|
||||
{
|
||||
screen &&
|
||||
<WeaHelpfulTip title="提示:默认显示本年截至当前月所有员工申报的累计专项附加及其他扣除额" width={200}/>
|
||||
}
|
||||
</WeaFormItem>;
|
||||
};
|
||||
const DataCollectionSelect = (props) => {
|
||||
export const DataCollectionSelect = (props) => {
|
||||
const { value, label, onChange, options, key } = props;
|
||||
return <WeaFormItem label={label} labelCol={{ span: 10 }} wrapperCol={{ span: 14 }}>
|
||||
<WeaSelect value={value} onChange={(val) => onChange({ key, value: val })} options={options}/>
|
||||
</WeaFormItem>;
|
||||
};
|
||||
|
||||
export const Input = (props) => {
|
||||
const { value } = props;
|
||||
return (<WeaInput value={value} viewAttr={1}/>);
|
||||
};
|
||||
export const DataCollectionDateRangePick = (props) => {
|
||||
const { range, label, onChange, format = "YYYY-MM", key } = props;
|
||||
const [value1 = "", value2 = ""] = range;
|
||||
return <WeaFormItem label={label} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
|
||||
<WeaDatePicker value={value1} onChange={(val) => onChange({ key, value: [val, value2] })} format={format}/>
|
||||
<span className="to">至</span>
|
||||
<WeaDatePicker value={value2} onChange={(val) => onChange({ key, value: [value1, val] })} format={format}/>
|
||||
</WeaFormItem>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class DataTables extends Component {
|
|||
|
||||
render() {
|
||||
const { columns, dataSource, loading, selectedRowKeys, pageInfo } = this.state;
|
||||
const { showOperateBtn, onTableOperate } = this.props;
|
||||
const { showOperateBtn, onTableOperate, onViewDetails } = this.props;
|
||||
const rowSelection = {
|
||||
selectedRowKeys,
|
||||
onChange: (selectedRowKeys) => this.setState({ selectedRowKeys })
|
||||
|
|
@ -106,7 +106,7 @@ class DataTables extends Component {
|
|||
...item,
|
||||
render: (text, record) => (
|
||||
<div className="linkWapper">
|
||||
<a href="javaScript:void(0);">查看明细</a>
|
||||
<a href="javaScript:void(0);" onClick={() => onViewDetails(record)}>查看明细</a>
|
||||
{
|
||||
showOperateBtn &&
|
||||
<Popover
|
||||
|
|
|
|||
|
|
@ -6,8 +6,12 @@
|
|||
*/
|
||||
import React, { Component } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { toJS } from "mobx";
|
||||
import { WeaNewScroll, WeaSlideModal, WeaTab, WeaTop } from "ecCom";
|
||||
import ImportModal from "../../components/importModal";
|
||||
import { modalColumns } from "./cumDeduct/columns";
|
||||
import SlideModalTitle from "../../components/slideModalTitle";
|
||||
import { getSearchs } from "../../util";
|
||||
import "./index.less";
|
||||
|
||||
@inject("taxAgentStore")
|
||||
|
|
@ -26,6 +30,18 @@ class Layout extends Component {
|
|||
window.addEventListener("resize", this.resizeUpdate);
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps, nextContext) {
|
||||
if (nextProps.exportPayloadUrl !== this.props.exportPayloadUrl) {
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description:导出数据采集数据
|
||||
* Params:
|
||||
* Date: 2023/2/20
|
||||
*/
|
||||
window.open(nextProps.exportPayloadUrl, "_self");
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
window.removeEventListener("resize", this.resizeUpdate);
|
||||
}
|
||||
|
|
@ -39,9 +55,15 @@ class Layout extends Component {
|
|||
const { showSearchAd } = this.state;
|
||||
const {
|
||||
title, btns, leftComp, children, taxAgentStore: { showOperateBtn },
|
||||
slidePayload, onClose, onSave, slideLoading
|
||||
slidePayload, onClose, onSave, slideLoading, form, condition,
|
||||
onAdSearch, onCancel, importPayload, onImportSetStep, onImportFile,
|
||||
onPreviewImport, detailOptBtns
|
||||
} = this.props;
|
||||
const { visible, title: subtitle, children: slideChildren } = slidePayload;
|
||||
const {
|
||||
visible: importVisiable, step, importFormComponent, importOpts,
|
||||
importResult, slideDataSource
|
||||
} = importPayload;
|
||||
return (
|
||||
<div className="layoutWrapper">
|
||||
<WeaTop title={title} buttons={showOperateBtn ? btns : []}
|
||||
|
|
@ -51,19 +73,41 @@ class Layout extends Component {
|
|||
<WeaTab
|
||||
searchType={["base", "advanced"]}
|
||||
replaceLeft={leftComp}
|
||||
searchsAd={<h1>1111</h1>}
|
||||
searchsAd={getSearchs(form, toJS(condition), 2)}
|
||||
showSearchAd={showSearchAd}
|
||||
setShowSearchAd={bool => this.setState({ showSearchAd: bool })}
|
||||
onAdReset={() => form.resetForm()}
|
||||
onAdSearch={onAdSearch}
|
||||
onSearch={onAdSearch}
|
||||
onSearchChange={(v) => form.updateFields({ username: v })}
|
||||
searchsBaseValue={form.getFormParams().username}
|
||||
/>
|
||||
<div className="dataContent">
|
||||
<WeaNewScroll height="100%">{children}</WeaNewScroll>
|
||||
{/*导入弹框*/}
|
||||
<ImportModal
|
||||
needimportSelected //下载模板需要带上导入所选项
|
||||
columns={modalColumns}
|
||||
params={importOpts}
|
||||
step={step}
|
||||
setStep={onImportSetStep}
|
||||
importResult={importResult}
|
||||
onFinish={() => onCancel(true)}
|
||||
slideDataSource={slideDataSource}
|
||||
previewImport={onPreviewImport}
|
||||
importFile={onImportFile}
|
||||
templateLink={"/api/bs/hrmsalary/addUpDeduction/downloadTemplate"}
|
||||
renderFormComponent={() => importFormComponent}
|
||||
visiable={importVisiable}
|
||||
onCancel={onCancel}
|
||||
/>
|
||||
{/* 新增-编辑-详情弹框 */}
|
||||
<WeaSlideModal
|
||||
className="slideOuterWrapper"
|
||||
visible={visible}
|
||||
top={0}
|
||||
measureT="%"
|
||||
width={800}
|
||||
width={1000}
|
||||
measureX="px"
|
||||
height={100}
|
||||
measureY="%"
|
||||
|
|
@ -73,9 +117,9 @@ class Layout extends Component {
|
|||
subtitle={subtitle}
|
||||
loading={slideLoading}
|
||||
onSave={onSave}
|
||||
editable={true}
|
||||
editable={subtitle.length <= 2}
|
||||
showOperateBtn={showOperateBtn}
|
||||
customOperate={[]}
|
||||
customOperate={subtitle.length <= 2 ? [] : detailOptBtns}
|
||||
/>
|
||||
}
|
||||
content={slideChildren}
|
||||
|
|
|
|||
Loading…
Reference in New Issue