Merge branch 'feature/V2-数据采集页面重构' into develop

# Conflicts:
#	pc4mobx/hrmSalary/pages/dataAcquisition/cumDeduct/index.js
#	pc4mobx/hrmSalary/pages/dataAcquisition/cumSituation/index.js
#	pc4mobx/hrmSalary/pages/dataAcquisition/otherDeduct/index.js
#	pc4mobx/hrmSalary/pages/dataAcquisition/specialAddDeduction/index.js
#	pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/index.js
This commit is contained in:
黎永顺 2023-02-22 17:26:36 +08:00
commit e89c2f92f4
27 changed files with 2652 additions and 3893 deletions

View File

@ -1,5 +1,5 @@
import { WeaTools } from "ecCom";
import { postFetch } from '../util/request';
import { postFetch } from "../util/request";
//数据采集-累计专项附加扣除列表
export const getCumDeductList = (params) => {
@ -7,9 +7,9 @@ export const getCumDeductList = (params) => {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify(params),
body: JSON.stringify(params)
}).then((res) => res.json());
};
@ -52,9 +52,9 @@ export const getCumDeductDetailList = (params) => {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify(params),
body: JSON.stringify(params)
}).then((res) => res.json());
};
@ -62,9 +62,9 @@ export const getCumDeductDetailList = (params) => {
export const exportCumDeductDetailList = (id, ids = "") => {
fetch(
"/api/bs/hrmsalary/addUpDeduction/exportDetail?accumulatedSpecialAdditionalDeductionId=" +
id +
"&ids=" +
ids+ "&taxAgentId=" + taxAgentId
id +
"&ids=" +
ids + "&taxAgentId=" + taxAgentId
).then((res) =>
res.blob().then((blob) => {
var filename = `累计专项附加扣除.xlsx`;
@ -84,9 +84,9 @@ export const importCumDeductParam = (params) => {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify(params),
body: JSON.stringify(params)
}).then((res) => res.json());
};
@ -96,34 +96,44 @@ export const importCumDeductPreview = (params) => {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify(params),
body: JSON.stringify(params)
}).then((res) => res.json());
};
//新增累计专项附加扣除
export const createAddUpDeduction = (params) => {
return postFetch('/api/bs/hrmsalary/addUpDeduction/createAddUpDeduction', params);
}
return postFetch("/api/bs/hrmsalary/addUpDeduction/createAddUpDeduction", params);
};
//查看信息
export const getAddUpDeduction = (params) => {
return postFetch('/api/bs/hrmsalary/addUpDeduction/getAddUpDeduction', params);
}
return postFetch("/api/bs/hrmsalary/addUpDeduction/getAddUpDeduction", params);
};
//编辑累计专项附加扣除
export const editAddUpDeduction = (params) => {
return postFetch('/api/bs/hrmsalary/addUpDeduction/editAddUpDeduction', params);
}
return postFetch("/api/bs/hrmsalary/addUpDeduction/editAddUpDeduction", params);
};
//批量删除累计专项附加扣除
export const deleteSelectAddUpDeduction = (params) => {
return postFetch('/api/bs/hrmsalary/addUpDeduction/deleteSelectAddUpDeduction', params);
}
return postFetch("/api/bs/hrmsalary/addUpDeduction/deleteSelectAddUpDeduction", params);
};
//一键清空累计专项附加扣除
export const deleteAllAddUpDeduction = (params) => {
return postFetch('/api/bs/hrmsalary/addUpDeduction/deleteAllAddUpDeduction', params);
}
return postFetch("/api/bs/hrmsalary/addUpDeduction/deleteAllAddUpDeduction", params);
};
//一键累计
export const autoAddAll = (params) => {
return postFetch('/api/bs/hrmsalary/addUpDeduction/autoAddAll', params);
}
return postFetch("/api/bs/hrmsalary/addUpDeduction/autoAddAll", params);
};
//数据采集列表查询
export const getTableDate = ({ url, ...params }) => {
return postFetch(url, params);
};
//数据采集列表详情记录查询
export const getTableRecordDate = ({ url, ...params }) => {
return postFetch(url, params);
};

View File

@ -0,0 +1,26 @@
import React, { Component } from "react";
import { WeaTable } from "ecCom";
import "./index.less";
class Index extends Component {
render() {
const { columns, xWidth = 1440 } = this.props;
const unifiedColumns = _.map(columns, (item, index) => {
if (index === 0 || index === 2) {
return { ...item, fixed: "left", width: 150 };
} else if (index === 1) {
return { ...item, fixed: "left", width: 176 };
}
if (item.dataIndex === "operate") {
return { ...item, fixed: "right", width: "120px" };
}
return { ...item, width: "33%" };
});
return (
<WeaTable className="unifiedTable" {...this.props} columns={unifiedColumns} scroll={{ x: xWidth }}/>
);
}
}
export default Index;

View File

@ -0,0 +1,24 @@
.unifiedTable {
.ellipsis {
display: inline-block;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.linkWapper {
a {
color: #4d7ad8;
margin-right: 8px;
}
i {
cursor: pointer;
}
a:hover {
text-decoration: none;
}
}
}

View File

@ -27,12 +27,33 @@ class AddItems extends Component {
};
}
componentDidMount() {
this.setState({
baseInfo: {
...this.state.baseInfo,
declareMonth: this.props.editId.declareMonth || this.props.editId.taxYearMonth,
taxAgentId: this.props.editId.taxAgentId,
taxAgentName: this.props.editId.taxAgentName,
employeeId: this.props.editId.employeeId,
employeeName: this.props.editId.username
}
});
const fields = _.map(this.props.condition[0].items, it => {
return it.domkey[0];
});
fields.map(item => {
this.props.form.updateFields({
[item]: this.props.editId[item] || ""
});
});
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.editId !== this.props.editId) {
this.setState({
baseInfo: {
...this.state.baseInfo,
declareMonth: nextProps.editId.declareMonth,
declareMonth: nextProps.editId.declareMonth || nextProps.editId.taxYearMonth,
taxAgentId: nextProps.editId.taxAgentId,
taxAgentName: nextProps.editId.taxAgentName,
employeeId: nextProps.editId.employeeId,
@ -165,9 +186,10 @@ class AddItems extends Component {
return (
<div className="addItemsWrapper">
<WeaSearchGroup
className="baseForm"
title="基础信息"
items={!isCum ? items : baseInfo.personArea === "ORGANIZATION" ? [...cumSituationitems, ...insider] : baseInfo.personArea === "EXT_EMPLOYEE" ? [...cumSituationitems, ...noSysPerson] : cumSituationitems}
needTigger showGroup center/>
needTigger showGroup col={1}/>
{
getSearchs(form, condition, 2)
}

View File

@ -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;
}
}
}
}

View File

@ -0,0 +1,192 @@
/*
* 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: null,
taxYearMonth: null
}
};
}
componentDidMount() {
this.convertData(this.props);
}
componentWillReceiveProps(nextProps, nextContext) {
this.convertData(nextProps);
}
convertData = (props) => {
const { recordPayload } = this.state;
const { record, screenParams } = props;
const modules = _.reduce(screenParams, (pre, cur) => (_.assign(pre, {
[cur]: record[cur],
[screenParams[0]]: record.id
})), {});
this.setState({
recordPayload: {
...recordPayload,
...modules
}
}, () => this.getTableRecordData());
};
getTableRecordData = () => {
const { loading, pageInfo, recordPayload } = this.state;
const { url, screenParams } = this.props;
const monthkey = screenParams[screenParams.length - 1];
const module = {
...pageInfo, ...recordPayload, url,
[monthkey]: Object.prototype.toString.call(recordPayload[monthkey]) === "[object Array]" ? _.compact(recordPayload[monthkey]) : recordPayload[monthkey]
};
this.setState({ loading: { ...loading, query: true } });
getTableRecordDate(_.pick(module, [...screenParams, "current", "pageSize", "url"])).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.getTableRecordData());
};
handleResetSelectKeys = () => {
this.setState({
selectedRowKeys: [],
recordPayload: {
accumulatedSpecialAdditionalDeductionId: "",
otherTaxExemptDeductionId: "",
accumulatedSituationId: "",
specialAddDeductionId: "",
taxAgentId: "",
declareMonth: null,
taxYearMonth: null
}
});
};
render() {
const { className, screenParams, taxAgentOption, record } = 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 = screenParams.length === 1 ? [
{
com: Input({ value: record.username })
}
] : [
{
com: Input({ value: record.username })
},
{
com: DataCollectionDateRangePick({
label: "税款所属期",
range: recordPayload[screenParams[screenParams.length - 1]] || [],
onChange: this.handleTablerecordScreen,
key: screenParams[screenParams.length - 1]
})
},
{
com: DataCollectionSelect({
label: "个税扣缴义务人",
value: !_.isNil(recordPayload.taxAgentId) ? recordPayload.taxAgentId.toString() : "",
options: [{ key: "", showname: "全部" }, ...taxAgentOption],
onChange: this.handleTablerecordScreen,
key: "taxAgentId"
})
}
];
return (
<div className="tableRecordWrapper">
{
!_.isEmpty(screenParams) &&
<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;

View File

@ -0,0 +1,48 @@
/*
* 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"
})
}
];
!declareMonth && items.shift();
_.isNil(taxAgentId) && items.pop();
return (
<WeaSearchGroup className="screenWrapper" showGroup needTigger={false} items={items}
col={2}/>
);
}
}
export default ImportFormCom;

File diff suppressed because it is too large Load Diff

View File

@ -65,133 +65,6 @@ export const columns = [
key: "title"
}
];
export const modalColumns = [
{
title: "姓名",
dataIndex: "username",
key: "username"
},
{
title: "个税扣缴义务人",
dataIndex: "taxAgentName",
key: "taxAgentName"
},
{
title: "部门",
dataIndex: "departmentName",
key: "departmentName"
},
{
title: "手机号",
dataIndex: "mobile",
key: "mobile"
},
{
title: "工号",
dataIndex: "jobNum",
key: "jobNum"
},
{
title: "证件号码",
dataIndex: "idNo",
key: "idNo"
},
{
title: "入职日期",
dataIndex: "hiredate",
key: "hiredate"
},
{
title: "累计收入额",
dataIndex: "addUpIncome",
key: "addUpIncome"
},
{
title: "累计减除费用",
dataIndex: "addUpSubtraction",
key: "addUpSubtraction"
},
{
title: "累计社保个人合计",
dataIndex: "addUpSocialSecurityTotal",
key: "addUpSocialSecurityTotal"
},
{
title: "累计公积金个人合计",
dataIndex: "addUpAccumulationFundTotal",
key: "addUpAccumulationFundTotal"
},
{
title: "累计子女教育",
dataIndex: "addUpChildEducation",
key: "addUpChildEducation"
},
{
title: "累计继续教育",
dataIndex: "addUpContinuingEducation",
key: "addUpContinuingEducation"
},
{
title: "累计住房贷款利息",
dataIndex: "addUpHousingLoanInterest",
key: "addUpHousingLoanInterest"
},
{
title: "累计住房租金",
dataIndex: "addUpHousingRent",
key: "addUpHousingRent"
},
{
title: "累计赡养老人",
dataIndex: "addUpSupportElderly",
key: "addUpSupportElderly"
},
{
title: "累计企业(职业)年金及其他福利",
dataIndex: "addUpEnterpriseAndOther",
key: "addUpEnterpriseAndOther"
},
{
title: "累计其他免税扣除",
dataIndex: "addUpOtherDeduction",
key: "addUpOtherDeduction"
},
{
title: "累计免税收入",
dataIndex: "addUpTaxExemptIncome",
key: "addUpTaxExemptIncome"
},
{
title: "累计准予扣除的捐赠额",
dataIndex: "addUpAllowedDonation",
key: "addUpAllowedDonation"
},
{
title: "累计减免税额",
dataIndex: "addUpTaxSavings",
key: "addUpTaxSavings"
},
{
title: "累计已预扣预缴税额",
dataIndex: "addUpAdvanceTax",
key: "addUpAdvanceTax"
},
{
title: "累计婴幼儿照护",
dataIndex: "addUpInfantCare",
key: "addUpInfantCare"
},
{
title: "累计大病医疗",
dataIndex: "addUpIllnessMedical",
key: "addUpIllnessMedical"
}
];
export const dataSource = [];
export const dataCollectCondition = [
{
items: [
@ -353,11 +226,10 @@ export const dataCollectCondition = [
defaultshow: true
}
];
export const taxOptions = [
{
key: "01",
showname: "一月",
showname: "一月"
},
{
key: "02",
@ -402,5 +274,5 @@ export const taxOptions = [
{
key: "12",
showname: "十二月"
},
}
];

View File

@ -1,201 +0,0 @@
import React from "react";
import { Col, DatePicker, Row } from "antd";
import { inject, observer } from "mobx-react";
import { WeaTable } from "ecCom";
import "./editSlideContent.less";
import moment from "moment";
const { MonthPicker } = DatePicker;
let emptyItem = {
incomeLowerLimit: "0.00",
incomeUpperLimit: "0.00",
dutyFreeValue: "0.00",
dutyFreeRate: "0.00",
taxableIncomeLl: "0.00",
taxableIncomeUl: "0.00",
taxRate: "0.00",
taxDeduction: "0.00"
};
@inject("cumSituationStore", "taxAgentStore")
@observer
export default class EditSlideContent extends React.Component {
constructor(props) {
super(props);
this.state = {
taxAgentId: "",
startDate: "",
endDate: "",
editable:
this.props.editable === undefined ? "true" : this.props.editable
};
}
componentWillMount() {
// 初始化渲染页面
const {
taxAgentStore: { fetchTaxAgentOption }
} = this.props;
fetchTaxAgentOption();
}
addItem() {
const {
taxRateStore: { setDataSource }
} = this.props;
let dataSource = [...this.props.taxRateStore.dataSource];
let indexNum = 1;
if (dataSource.length > 0) {
indexNum = dataSource[dataSource.length - 1].indexNum + 1;
}
let item = { ...emptyItem };
item.indexNum = indexNum;
dataSource.push(item);
setDataSource(dataSource);
}
fetchCumDeductDetailList(param) {
const { cumSituationStore } = this.props;
const { getCumDeductDetailList, currentRecord } = cumSituationStore;
getCumDeductDetailList(currentRecord.id, param);
}
// 日期格式变化加载数据
handleFetchCumDeductDetailList(startDate, endDate, taxAgentId) {
let declareMonth = [];
if (startDate != "" && startDate != undefined) {
declareMonth.push(startDate);
}
if (endDate != "" && endDate != undefined) {
declareMonth.push(endDate);
}
let item = {
taxAgentId: taxAgentId
};
if (declareMonth.length != 0) {
item.taxYearMonth = declareMonth;
}
this.fetchCumDeductDetailList(item);
}
onSelectChange = (val) => {
const { onChangeSlideSelectKey } = this.props;
onChangeSlideSelectKey && onChangeSlideSelectKey(val);
};
render() {
const { cumSituationStore } = this.props;
const { startDate, endDate, taxAgentId } = this.state;
const {
getCumDeductDetailList,
currentRecord,
slideColumns,
slidePageObj,
slideTableDataSource,
setSlidePageObj,
slideLoading
} = cumSituationStore;
const declareMonth = [startDate, endDate];
const pagination = {
current: slidePageObj.current,
pageSize: slidePageObj.pageSize,
total: slidePageObj.total,
showTotal: (total) => `${total}`,
showSizeChanger: true,
onShowSizeChange(current, pageSize) {
setSlidePageObj({ ...slidePageObj, current, pageSize });
getCumDeductDetailList(currentRecord.id, {
...slidePageObj,
current,
pageSize,taxAgentId:currentRecord.taxAgentId,
declareMonth: _.filter(declareMonth, item => item)
});
},
onChange(current) {
setSlidePageObj({
...slidePageObj,
current,taxAgentId:currentRecord.taxAgentId,
pageSize: slidePageObj.pageSize
});
getCumDeductDetailList(currentRecord.id, {
...slidePageObj,
current,
pageSize,
declareMonth: _.filter(declareMonth, item => item)
});
}
};
const newColumns = _.map([...slideColumns], (item) => ({ ...item }));
const rowSelection = {
selectedRowKeys: this.props.slideSelectedKey,
onChange: this.onSelectChange
};
return (
<div className="cumDeductSlide">
<Row className="topLabelBar">
<Col span={4}>
<span className="username">{currentRecord.username}</span>
</Col>
<Col span={12}>
<span className="formLabel">申报月份</span>
<div className="weaRangePickerWrapper">
<div className="monthPickerWrapper">
<MonthPicker
width={100}
format="YYYY-MM"
value={startDate}
onChange={(v) => {
let startDate = "";
if (v != "" && v != undefined) {
startDate = moment(v).format("YYYY-MM");
}
this.setState({ startDate });
this.handleFetchCumDeductDetailList(
startDate,
endDate,
taxAgentId
);
}}
/>
</div>
<span className="betweenLable"></span>
<div className="monthPickerWrapper">
<MonthPicker
width={100}
value={endDate}
onChange={(v) => {
let endDate = "";
if (v != "" && v != undefined) {
endDate = moment(v).format("YYYY-MM");
}
this.setState({ endDate });
this.handleFetchCumDeductDetailList(
startDate,
endDate,
currentRecord.taxAgentId
);
}}
/>
</div>
</div>
</Col>
</Row>
<div>
<WeaTable
rowKey="id"
rowSelection={rowSelection}
columns={newColumns}
dataSource={slideTableDataSource}
pagination={pagination}
loading={slideLoading}
scroll={{ x: newColumns ? newColumns.length * 150 : 900 }}
/>
</div>
</div>
);
}
}

View File

@ -1,22 +0,0 @@
.cumDeductSlide {
.topLabelBar {
padding: 10px 20px;
height: 40px;
line-height: 40px;
margin-bottom: 10px;
}
.formLabel {
margin-right: 10px;
}
.weaRangePickerWrapper {
display: inline-block;
.monthPickerWrapper {
width: 100px;
display: inline-block;
}
.betweenLable {
margin-left: 10px;
margin-right: 10px;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,64 +0,0 @@
.slideOuterWrapper {
.wea-slide-modal-title {
height: initial;
line-height: initial;
text-align: left;
}
.rodal-close {
z-index: 99;
top: 10px !important;
}
.linkWapper {
a {
color: #4d7ad8;
margin-right: 8px;
}
i {
cursor: pointer;
}
a:hover {
text-decoration: none;
}
}
}
.moreIconWrapper {
.ant-popover-inner {
min-width: 106px
}
.ant-popover-inner-content {
padding: 0;
.ant-menu {
.ant-menu-item {
border-right: none;
height: 30px;
line-height: 30px;
text-align: center;
padding: 0;
}
}
}
}
@media (min-width: 1260px) {
.slideOuterWrapper {
.reqTopWrapper .wea-new-top-req-title > div:first-child > div {
max-width: 100% !important;
}
}
}
@media screen and (min-width: 1060px) and (max-width: 1260px) {
.slideOuterWrapper {
.reqTopWrapper .wea-new-top-req-title > div:first-child > div {
max-width: calc(100% - 96px) !important;
}
}
}

View File

@ -0,0 +1,160 @@
/*
* Author: 黎永顺
* name: 数据采集-列表
* Description:
* Date: 2023/2/17
*/
import React, { Component } from "react";
import UnifiedTable from "../../components/UnifiedTable";
import { getTableDate } from "../../apis/cumDeduct";
import { Menu, Popover } from "antd";
class DataTables extends Component {
constructor(props) {
super(props);
this.state = {
loading: {
query: false
},
dataSource: [],
columns: [],
selectedRowKeys: [],
pageInfo: {
current: 1, pageSize: 10, total: 0
}
};
}
componentDidMount() {
this.getTableDate();
}
getTableDate = (extraPayload = {}) => {
const { loading, pageInfo } = this.state;
const { url, payload } = this.props;
const module = { ...pageInfo, url, ...payload, ...extraPayload };
this.setState({ loading: { ...loading, query: true } });
getTableDate(module).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
*/
handleClearRows = () => this.setState({ selectedRowKeys: [] });
render() {
const { columns, dataSource, loading, selectedRowKeys, pageInfo } = this.state;
const { showOperateBtn, onTableOperate, onViewDetails, isSpecial = false } = this.props;
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.getTableDate();
});
},
onChange: (current) => {
this.setState({
pageInfo: { ...pageInfo, current }
}, () => {
this.getTableDate();
});
}
};
return <UnifiedTable
rowKey="id"
rowSelection={rowSelection}
columns={_.map(columns, item => {
const { dataIndex } = item;
if (dataIndex === "username") {
return {
...item,
render: (text, record) => {
return <a
className="ellipsis"
href={`javaScript:openhrm(${record.employeeId});`}
onClick={e => window.pointerXY(e)}
title={text}
>
{text}
</a>;
}
};
} else if (dataIndex === "operate") {
return {
...item,
render: (text, record) => (
<div className="linkWapper">
{
!isSpecial &&
<React.Fragment>
<a href="javaScript:void(0);" onClick={() => onViewDetails(record)}>查看明细</a>
{
showOperateBtn &&
<Popover
overlayClassName="moreIconWrapper"
placement="bottomRight"
content={<Menu onClick={(e) => onTableOperate(e, record)}>
<Menu.Item key="handleAddData">编辑</Menu.Item>
<Menu.Item key="deleteSelectAddUpDeduction">删除</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
}
</React.Fragment>
}
{
isSpecial &&
<React.Fragment>
{
showOperateBtn &&
<React.Fragment>
<a href="javaScript:void(0);"
onClick={() => onTableOperate({ key: "handleAddData" }, record)}>编辑</a>
<a href="javaScript:void(0);"
onClick={() => onTableOperate({ key: "deleteSelectAddUpDeduction" }, record)}>删除</a>
</React.Fragment>
}
</React.Fragment>
}
</div>
)
};
} else {
return {
...item,
render: (text) => {
return <span className="ellipsis" title={text}> {text} </span>;
}
};
}
})}
dataSource={dataSource}
pagination={pagination}
loading={loading.query}
/>;
}
}
export default DataTables;

View File

@ -1,9 +1,10 @@
.tipWrapper{
.tipWrapper {
display: flex;
flex-direction: column;
margin: 0 25px 20px 25px;
border: 1px solid #e5e5e5;
.title{
.title {
border-bottom: 1px solid #e5e5e5;
height: 40px;
line-height: 40px;
@ -11,7 +12,8 @@
background: #f6f6f6;
font-size: 14px;
}
.content{
.content {
width: 100%;
display: flex;
flex-direction: column;
@ -19,3 +21,126 @@
color: #999;
}
}
.addItemsWrapper {
.baseForm {
.wea-form-cell {
padding-right: 20% !important;
}
}
.wea-search-group {
.wea-form-cell-wrapper {
border: 1px solid #e5e5e5;
& > div:last-child {
border-bottom: none
}
.wea-form-cell {
padding: 4px 16px;
border-bottom: 1px solid #e5e5e5;
.wea-form-item-wrapper {
line-height: 30px;
}
.wea-form-item {
padding: 0;
}
}
}
}
}
.layoutWrapper {
height: 100%;
display: flex;
flex-direction: column;
.wea-tab-left {
min-width: 600px !important;
max-width: 600px !important;
}
.screenWrapper {
padding: 0;
.wea-content {
padding: 0;
}
.wea-form-cell {
padding: 0 16px;
.wea-date-picker {
width: 85%;
}
}
.wea-helpful-tip {
padding-left: 10px;
}
}
.screenSituationWrapper {
padding: 0;
.wea-content {
padding: 0;
}
.wea-form-cell {
padding: 0 16px;
.wea-date-picker {
width: 70%;
input {
min-width: inherit !important;
}
}
}
.wea-helpful-tip {
padding-left: 10px;
}
}
.dataContent {
flex: 1;
overflow: hidden;
}
}
.slideOuterWrapper {
.wea-slide-modal-title {
height: initial;
line-height: initial;
text-align: left;
}
.rodal-close {
z-index: 99;
top: 10px !important;
}
}
@media (min-width: 1260px) {
.slideOuterWrapper {
.reqTopWrapper .wea-new-top-req-title > div:first-child > div {
max-width: 100% !important;
}
}
}
@media screen and (min-width: 1060px) and (max-width: 1260px) {
.slideOuterWrapper {
.reqTopWrapper .wea-new-top-req-title > div:first-child > div {
max-width: calc(100% - 96px) !important;
}
}
}

View File

@ -0,0 +1,134 @@
/*
* Author: 黎永顺
* name: 数据采集-组件框
* Description:
* Date: 2023/2/17
*/
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")
@observer
class Layout extends Component {
constructor(props) {
super(props);
this.state = {
showSearchAd: false
};
}
componentDidMount() {
const { taxAgentStore: { fetchTaxAgentOption } } = this.props;
fetchTaxAgentOption();
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);
}
resizeUpdate = () => {
const { onResizeWindowInnerWidth } = this.props;
onResizeWindowInnerWidth(window.innerWidth);
};
render() {
const { showSearchAd } = this.state;
const {
title, btns, leftComp, children, taxAgentStore: { showOperateBtn },
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, templateLink
} = importPayload;
return (
<div className="layoutWrapper">
<WeaTop title={title} buttons={showOperateBtn ? btns : []}
icon={<i className="icon-coms-fa"/>}
iconBgcolor="#F14A2D" showDropIcon={false}
/>
<WeaTab
searchType={["base", "advanced"]}
replaceLeft={leftComp}
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={templateLink}
renderFormComponent={() => importFormComponent}
visiable={importVisiable}
onCancel={onCancel}
/>
{/* 新增-编辑-详情弹框 */}
<WeaSlideModal
className="slideOuterWrapper"
visible={visible}
top={0}
measureT="%"
width={1000}
measureX="px"
height={100}
measureY="%"
direction="right"
title={
<SlideModalTitle
subtitle={subtitle}
loading={slideLoading}
onSave={onSave}
editable={subtitle.length <= 2}
showOperateBtn={showOperateBtn}
customOperate={subtitle.length <= 2 ? [] : detailOptBtns}
/>
}
content={slideChildren}
onClose={onClose}
/>
</div>
</div>
);
}
}
export default Layout;

View File

@ -65,68 +65,6 @@ export const columns = [
key: "title"
}
];
export const modalColumns = [
{
title: "姓名",
dataIndex: "username",
key: "username"
},
{
title: "个税扣缴义务人",
dataIndex: "taxAgentName",
key: "taxAgentName"
},
{
title: "部门",
dataIndex: "departmentName",
key: "departmentName"
},
{
title: "手机号",
dataIndex: "mobile",
key: "mobile"
},
{
title: "工号",
dataIndex: "jobNum",
key: "jobNum"
},
{
title: "证件号码",
dataIndex: "idNo",
key: "idNo"
},
{
title: "入职日期",
dataIndex: "hiredate",
key: "hiredate"
},
{
title: "商业健康保险",
dataIndex: "businessHealthyInsurance",
key: "businessHealthyInsurance"
},
{
title: "税延养老保险",
dataIndex: "taxDelayEndowmentInsurance",
key: "taxDelayEndowmentInsurance"
},
{
title: "其他",
dataIndex: "otherDeduction",
key: "otherDeduction"
},
{
title: "准予扣除的捐赠额",
dataIndex: "deductionAllowedDonation",
key: "deductionAllowedDonation"
}
];
export const dataSource = [];
export const dataCollectCondition = [
{
items: [

View File

@ -1,213 +0,0 @@
import React from "react";
import { Col, DatePicker, Row } from "antd";
import { inject, observer } from "mobx-react";
import { WeaTable } from "ecCom";
import "./editSlideContent.less";
import moment from "moment";
const { MonthPicker } = DatePicker;
let emptyItem = {
incomeLowerLimit: "0.00",
incomeUpperLimit: "0.00",
dutyFreeValue: "0.00",
dutyFreeRate: "0.00",
taxableIncomeLl: "0.00",
taxableIncomeUl: "0.00",
taxRate: "0.00",
taxDeduction: "0.00"
};
@inject("otherDeductStore", "taxAgentStore")
@observer
export default class EditSlideContent extends React.Component {
constructor(props) {
super(props);
this.state = {
taxAgentId: "",
startDate: "",
endDate: "",
editable:
this.props.editable === undefined ? "true" : this.props.editable
};
}
componentWillMount() {
// 初始化渲染页面
const {
taxAgentStore: { fetchTaxAgentOption }
} = this.props;
fetchTaxAgentOption();
}
addItem() {
const {
taxRateStore: { setDataSource }
} = this.props;
let dataSource = [...this.props.taxRateStore.dataSource];
let indexNum = 1;
if (dataSource.length > 0) {
indexNum = dataSource[dataSource.length - 1].indexNum + 1;
}
let item = { ...emptyItem };
item.indexNum = indexNum;
dataSource.push(item);
setDataSource(dataSource);
}
fetchCumDeductDetailList(param) {
const { otherDeductStore } = this.props;
const { getOtherDeductDetailList, currentRecord } = otherDeductStore;
getOtherDeductDetailList(currentRecord.id, param);
}
// 日期格式变化加载数据
handleFetchCumDeductDetailList(startDate, endDate, taxAgentId) {
let declareMonth = [];
if (startDate != "" && startDate != undefined) {
declareMonth.push(startDate);
}
if (endDate != "" && endDate != undefined) {
declareMonth.push(endDate);
}
let item = {
taxAgentId: taxAgentId
};
if (declareMonth.length != 0) {
item.declareMonth = declareMonth;
}
this.fetchCumDeductDetailList(item);
}
onSelectChange = (val) => {
const { onChangeSlideSelectKey } = this.props;
onChangeSlideSelectKey && onChangeSlideSelectKey(val);
};
render() {
const { otherDeductStore } = this.props;
const {
getOtherDeductDetailList,
currentRecord,
slideColumns,
slidePageObj,
slideTableDataSource,
setSlidePageObj,
slideLoading
} = otherDeductStore;
const { startDate, endDate, taxAgentId } = this.state;
const declareMonth = [startDate, endDate];
const pagination = {
current: slidePageObj.current,
pageSize: slidePageObj.pageSize,
total: slidePageObj.total,
showTotal: (total) => `${total}`,
showSizeChanger: true,
onShowSizeChange(current, pageSize) {
setSlidePageObj({ ...slidePageObj, current, pageSize });
getOtherDeductDetailList(currentRecord.id, {
...slidePageObj,
current,
pageSize,
declareMonth: _.filter(declareMonth, item => item)
});
},
onChange(current) {
setSlidePageObj({
...slidePageObj,
current, taxAgentId: currentRecord.taxAgentId,
pageSize: slidePageObj.pageSize
});
getOtherDeductDetailList(currentRecord.id, {
...slidePageObj,
current, taxAgentId: currentRecord.taxAgentId,
declareMonth: _.filter(declareMonth, item => item)
});
}
};
const newColumns = _.map([...slideColumns], (item) => ({ ...item }));
const rowSelection = {
selectedRowKeys: this.props.slideSelectedKey,
onChange: this.onSelectChange
};
return (
<div className="cumDeductSlide">
<Row className="topLabelBar">
<Col span={4}>
<span className="username">{currentRecord.username}</span>
</Col>
<Col span={12}>
<span className="formLabel">税款所属期</span>
<div className="weaRangePickerWrapper">
<div className="monthPickerWrapper">
<MonthPicker
width={100}
format="YYYY-MM"
value={startDate}
onChange={(v) => {
let startDate = "";
if (v != "" && v != undefined) {
startDate = moment(v).format("YYYY-MM");
}
this.setState({ startDate });
this.handleFetchCumDeductDetailList(
startDate,
endDate,
taxAgentId
);
}}
/>
</div>
<span className="betweenLable"></span>
<div className="monthPickerWrapper">
<MonthPicker
width={100}
value={endDate}
onChange={(v) => {
let endDate = "";
if (v != "" && v != undefined) {
endDate = moment(v).format("YYYY-MM");
}
this.setState({ endDate });
this.handleFetchCumDeductDetailList(
startDate,
endDate,
currentRecord.taxAgentId
);
}}
/>
</div>
</div>
</Col>
{/*<Col span={8}>*/}
{/* <span className="formLabel">个税扣缴义务人</span>*/}
{/* <WeaSelect*/}
{/* showSearch // 设置select可搜索*/}
{/* style={{ width: 100 }}*/}
{/* options={taxAgentOption}*/}
{/* value={taxAgentId}*/}
{/* onChange={(v) => {*/}
{/* this.setState({ taxAgentId: v });*/}
{/* this.handleFetchCumDeductDetailList(startDate, endDate, v);*/}
{/* }}*/}
{/* />*/}
{/*</Col>*/}
</Row>
<div>
<WeaTable
rowKey="id"
rowSelection={rowSelection}
columns={newColumns}
dataSource={slideTableDataSource}
pagination={pagination}
loading={slideLoading}
scroll={{ x: 900 }}
/>
</div>
</div>
);
}
}

View File

@ -1,22 +0,0 @@
.cumDeductSlide {
.topLabelBar {
padding: 10px 20px;
height: 40px;
line-height: 40px;
margin-bottom: 10px;
}
.formLabel {
margin-right: 10px;
}
.weaRangePickerWrapper {
display: inline-block;
.monthPickerWrapper {
width: 100px;
display: inline-block;
}
.betweenLable {
margin-left: 10px;
margin-right: 10px;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
import React, { Component } from "react";
import { Form } from "antd";
import { WeaSelect } from "ecCom";
import { optionAddWhole } from "../../../../util/options";
class InlineForm extends Component {
render() {
const { taxAgentOption = [], form, onChange } = this.props;
return (
<Form inline>
<Form.Item label="个税扣缴义务人">
<WeaSelect
style={{ width: 200 }}
showSearch // 设置select可搜索
options={optionAddWhole(taxAgentOption)}
{...form.getFieldProps("taxAgentId", { initialValue: "", onChange })}
/>
</Form.Item>
</Form>
);
}
}
export default Form.create()(InlineForm);

View File

@ -1,87 +0,0 @@
import React, { Component } from "react";
import { WeaTable } from "ecCom";
import * as API from "../../../../apis/special";
class SpecialAddContent extends Component {
constructor(props) {
super(props);
this.state = {
dataSource: [],
columns: [],
loading: {
query: false
},
selectedRowKeys: [],
pageInfo: {
current: 1,
pageSize: 10,
total: 0
}
};
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.specialId !== this.props.specialId) {
nextProps.specialId && this.specialAddDeductionGetDetailList({ specialAddDeductionId: nextProps.specialId });
}
}
specialAddDeductionGetDetailList = (payload) => {
this.setState({ loading: { ...this.state.loading, query: true } });
API.specialAddDeductionGetDetailList(payload).then(({ status, data }) => {
this.setState({ loading: { ...this.state.loading, query: false } });
if (status) {
const { columns, list: dataSource, pageSize, pageNum, total } = data;
this.setState({
columns, dataSource,
pageInfo: {
...this.pageInfo,
pageSize, pageNum, total
}
});
}
});
};
render() {
const { columns, dataSource, pageInfo, selectedRowKeys, loading } = this.state;
const { specialId } = this.props;
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.specialAddDeductionGetDetailList({ specialAddDeductionId: specialId, current, pageSize });
});
},
onChange: (current) => {
this.setState({
pageInfo: { ...pageInfo, current }
}, () => {
this.specialAddDeductionGetDetailList({ specialAddDeductionId: specialId, current });
});
}
};
const rowSelection = {
selectedRowKeys,
onChange: (selectedRowKeys) => this.setState({ selectedRowKeys })
};
return (
<WeaTable
rowKey="id"
rowSelection={rowSelection}
columns={columns}
dataSource={dataSource}
pagination={pagination}
loading={loading.query}
/>
);
}
}
export default SpecialAddContent;

View File

@ -1,98 +0,0 @@
.specialAddWrapper {
height: 100%;
.wea-new-top-wapper {
.specialAddContent {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
.tableWrapper {
flex: 1;
overflow: hidden;
}
.wea-tab-search-ad-quick {
.wea-tab-left {
display: flex;
align-items: center;
}
.wea-tab-right {
margin-top: 0;
}
.wea-search-container-search-ad-quick {
top: 47px !important;
}
}
}
}
.linkWapper {
a {
color: #4d7ad8;
margin-right: 8px;
}
i {
cursor: pointer;
}
a:hover {
text-decoration: none;
}
}
}
.moreIconWrapper {
.ant-popover-inner {
min-width: 106px
}
.ant-popover-inner-content {
padding: 0;
.ant-menu {
.ant-menu-item {
border-right: none;
height: 30px;
line-height: 30px;
text-align: center;
padding: 0;
}
}
}
}
.specialAddSlideWrapper {
.wea-slide-modal-title {
height: initial;
line-height: initial;
text-align: left;
}
.rodal-close {
z-index: 99;
top: 10px !important;
}
}
@media (min-width: 1260px) {
.specialAddSlideWrapper {
.reqTopWrapper .wea-new-top-req-title > div:first-child > div {
max-width: 100% !important;
}
}
}
@media screen and (min-width: 1060px) and (max-width: 1260px) {
.specialAddSlideWrapper {
.reqTopWrapper .wea-new-top-req-title > div:first-child > div {
max-width: calc(100% - 96px) !important;
}
}
}

View File

@ -20,7 +20,6 @@ import {
WeaSelect,
WeaSlideModal,
WeaTab,
WeaTable,
WeaTop
} from "ecCom";
import { WeaTableNew } from "comsMobx";
@ -33,6 +32,7 @@ import SlideModalTitle from "../../components/slideModalTitle";
import SalaryFileViewSlide from "../salaryFile/saralyFileViewSlide";
import ChangeSalaryModal from "../salaryFile/changeSalaryModal";
import "./index.less";
import UnifiedTable from "../../components/UnifiedTable";
const WeaTableComx = WeaTableNew.WeaTable;
@ -445,29 +445,19 @@ class Index extends Component {
return [];
};
getColumns = () => {
const { pageInfo, selectedKey } = this.state;
const { selectedKey } = this.state;
const { payrollFilesStore: { tableStore }, taxAgentStore: { showOperateBtn } } = this.props;
let columns = _.filter(toJS(tableStore.columns), (item) => item.display === "true");
return _.map([
// {
// title: "序号",
// dataIndex: "index",
// align: "left",
// oldWidth: 60,
// render: (text, record, index) => {
// const { current, pageSize } = pageInfo;
// return (current - 1) * pageSize + index + 1;
// }
// },
...columns], (item, index) => {
...columns], item => {
if (item.dataIndex === "username") {
return {
...item,
width: item.oldWidth,
render: (text, record) => {
return <a
href={`javaScript:openhrm(${record.employeeId});`}
onClick={e => window.pointerXY(e)}
className="ellipsis"
title={text}
>
{text}
@ -477,8 +467,6 @@ class Index extends Component {
} else if (item.dataIndex === "operate") {
return {
...item,
fixed: "right",
width: 150,
render: (text, record) => {
if (!showOperateBtn) {
return <div className="optWrapper">
@ -532,9 +520,8 @@ class Index extends Component {
}
return {
...item,
width: item.oldWidth,
render: (text) => {
return <span className="tdEllipsis" title={text}>{text}</span>;
return <span className="ellipsis" title={text}>{text}</span>;
}
};
});
@ -793,14 +780,25 @@ class Index extends Component {
/>
<div className="tableWrapper">
<WeaNewScroll height="100%">
<WeaTable
loading={loading.query}
<UnifiedTable
rowKey="id"
columns={this.getColumns()} dataSource={dataSource} pagination={pagination}
// rowClassName={(record) => record.archiveStatus === "ARCHIVE" ? "archiveRow" : ""}
loading={loading.query}
columns={this.getColumns()}
dataSource={dataSource}
pagination={pagination}
rowSelection={rowSelection}
scroll={{ x: 1200 }}
xWidth={this.getColumns().length * 120}
/>
{/*<WeaTable*/}
{/* // loading={loading.query}*/}
{/* // rowKey="id"*/}
{/* // columns={this.getColumns()}*/}
{/* // dataSource={dataSource}*/}
{/* // pagination={pagination}*/}
{/* // rowClassName={(record) => record.archiveStatus === "ARCHIVE" ? "archiveRow" : ""}*/}
{/* // rowSelection={rowSelection}*/}
{/* // scroll={{ x: 1200 }}*/}
{/*/>*/}
{/*人员卡片*/}
<WeaPopoverHrm/>
<WeaTableComx

View File

@ -2,7 +2,7 @@ import React from "react";
import { inject, observer } from "mobx-react";
import { toJS } from "mobx";
import { Button, Dropdown, Menu, message, Modal, Popover } from "antd";
import { WeaHelpfulTip, WeaSlideModal, WeaTab, WeaTable, WeaTop, WeaNewScroll } from "ecCom";
import { WeaHelpfulTip, WeaNewScroll, WeaSlideModal, WeaTab, WeaTop } from "ecCom";
import { getSearchs, renderLoading } from "../../../util";
import BaseForm from "./baseForm";
import SlideModalTitle from "../../../components/slideModalTitle";
@ -13,6 +13,7 @@ import { tabCondition } from "./config";
import * as API from "../../../apis/welfareArchive";
import ImportModal from "../../../components/importModal";
import TipLabel from "../../../components/TipLabel";
import UnifiedTable from "../../../components/UnifiedTable";
import "./index.less";
@inject("archivesStore", "taxAgentStore")
@ -104,40 +105,20 @@ export default class Archives extends React.Component {
getColumns = () => {
const { columns, pageInfo, selectedKey } = this.state;
const { taxAgentStore: { showOperateBtn } } = this.props;
let tmpV = _.map(columns.filter(item => item.display === "TRUE"), (item, index) => {
if (index === 0) {
return {
...item, dataIndex: item.column,
fixed: "left",
title: item.text
};
}
let tmpV = _.map(columns.filter(item => item.display === "TRUE"), item => {
return {
...item,
dataIndex:
item.column,
dataIndex: item.column,
title: item.text,
render: (text) => {
return <span className="tdEllipsis" title={text}>{text}</span>;
return <span className="ellipsis" title={text}>{text}</span>;
}
};
});
return tmpV.length > 0 ? [
// {
// title: "序号",
// dataIndex: "index",
// width: 60,
// fixed: "left",
// render: (text, record, index) => {
// const { current, pageSize } = pageInfo;
// return (current - 1) * pageSize + index + 1;
// }
// },
...tmpV, {
title: "操作",
dataIndex: "operate",
fixed: "right",
width: "120px",
render: (text, record) => {
return (
<div className="optWrapper">
@ -749,12 +730,14 @@ export default class Archives extends React.Component {
/>
<div className="tableWrapper">
<WeaNewScroll height="100%">
<WeaTable
<UnifiedTable
loading={loading.query}
rowKey="baseInfo"
columns={this.getColumns()} dataSource={dataSourceActive} pagination={pagination}
columns={this.getColumns()}
dataSource={dataSourceActive}
pagination={pagination}
rowSelection={rowSelection}
scroll={{ x: 1200 }}
xWidth={this.getColumns().length * 120}
/>
{
!_.isEmpty(this.getColumns()) &&

View File

@ -2,15 +2,15 @@ import React from "react";
import { inject, observer } from "mobx-react";
import { Button, DatePicker, Dropdown, Menu, message, Modal } from "antd";
import { WeaNewScroll, WeaTop } from "ecCom";
import { renderNoright } from "../../../util"; // 渲染form数据的方法因为多个页面都会使用所以抽的公共方法在util中
import { renderNoright } from "../../../util";
import Accountdialog from "./components/accountDialog";
import AbnormalDrawer from "./components/abnormalDrawer";
import CustomPaginationTable from "../../../components/customPaginationTable";
import moment from "moment";
import _ from "lodash";
import ProgressModal from "../../../components/progressModal";
import { getCalculateProgress } from "../../../apis/calculate";
import "./index.less";
import UnifiedTable from "../../../components/UnifiedTable";
const MonthPicker = DatePicker.MonthPicker;
@ -138,9 +138,8 @@ export default class StandingBook extends React.Component {
...columns,
{
title: "操作",
dataIndex: "action",
key: "action",
fixed: "right",
dataIndex: "operate",
key: "operate",
render: (text, r) => {
const { billStatus, billMonth, creator } = r;
return (
@ -441,6 +440,22 @@ export default class StandingBook extends React.Component {
核算
</Button>
];
const pagination = {
...this.pageInfo,
total: total,
showTotal: (total) => `${total}`,
pageSizeOptions: ["10", "20", "50", "100"],
showSizeChanger: true,
showQuickJumper: true,
onShowSizeChange: (current, pageSize) => {
this.pageInfo = { ...this.pageInfo, current, pageSize };
this.handleShowSizeChange(this.pageInfo);
},
onChange: (current) => {
this.pageInfo = { ...this.pageInfo, current };
this.handleShowSizeChange(this.pageInfo);
}
};
return (
<div className="standingbookWrapper">
@ -472,31 +487,22 @@ export default class StandingBook extends React.Component {
</div>
<div className="tableWrapper">
<WeaNewScroll height="100%">
<CustomPaginationTable
<UnifiedTable
loading={loading}
columns={_.filter(columns, (it) => it.dataIndex !== "id").map(item => {
item.width = "150px";
if (item.dataIndex === "billMonth") item.fixed = "left";
if (item.dataIndex === "action") return { ...item };
return {
...item,
render: (text) => {
return <span className="tdEllipsis" title={text}>{text}</span>;
}
};
if (item.dataIndex !== "operate") {
return {
...item,
render: (text) => {
return <span className="ellipsis" title={text}>{text}</span>;
}
};
}
return { ...item };
})}
dataSource={list}
total={total}
current={this.state.current}
pageSize={this.pageInfo.pageSize}
onPageChange={(current) => {
this.handleShowSizeChange({ ...this.pageInfo, current });
}}
onShowSizeChange={(current, pageSize) => {
this.pageInfo = { current, pageSize };
this.handleShowSizeChange(this.pageInfo);
}}
scroll={{ x: 2300 }}
pagination={pagination}
xWidth={columns.length * 120}
/>
</WeaNewScroll>
</div>