import React from 'react';
import { inject, observer } from 'mobx-react';
import { toJS } from 'mobx';
import { Button, Table, DatePicker, Dropdown, Menu, message } from 'antd';
import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable,
WeaInputSearch, WeaSlideModal, WeaCheckbox, WeaHelpfulTip } from 'ecCom';
import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
import CustomTab from '../../components/customTab';
import ContentWrapper from '../../components/contentWrapper';
import { columns, dataSource } from './columns';
import ChangeSalaryModal from "./changeSalaryModal"
import EditAgentModal from './editAgentModal';
import SlideModalTitle from '../../components/slideModalTitle'
import SlideSalaryItem from './slideSalaryItem'
import SlideAgent from './slideAgent'
import ImportModal from '../../components/importModal'
import SalaryFileViewSlide from './saralyFileViewSlide'
import CustomPaginationTable from "../../components/customPaginationTable"
const { MonthPicker } = DatePicker;
import "./index.less"
import CustomTable from '../../components/customTable';
@inject('salaryFileStore')
@observer
export default class SalaryFile extends React.Component {
constructor(props) {
super(props);
this.state = {
value: "",
selectedKey: "0",
changeSalaryVisible: false,
editAgentVisible: false,
selectedTab: 0,
editSlideVisible: false,
importType: "",
modalVisiable: false,
step: 0,
recordSlideVisible: false,
selectedRowKeys: [],
showSearchBar: false,
importResult: {},
searchValue: ""
}
this.pageInfo = {current: 1, pageSize: 10}
}
componentWillMount() {
const { salaryFileStore: {doInit} } = this.props;
doInit();
}
// 设置导入步数
setStep(step) {
this.setState({step})
}
// 渲染导入模板附加元素
renderFormComponent() {
return (
)
}
// 导入预览
handlePreviewImport(params) {
const { salaryFileStore: {importPreview}} = this.props;
params.importType = this.state.importType;
importPreview(params)
}
// 导入档案
handleImportFile(params) {
const { salaryFileStore: {importSalaryArchive}} = this.props;
params.importType = this.state.importType
importSalaryArchive(params).then(data => {
data.errorData = data.errorNotice
this.setState({
importResult: data
})
})
}
// 导入完成按钮操作
handleImportFinish() {
this.setState({modalVisiable: false, step: 0})
}
// 导出全部
handleExportAll() {
const { salaryFileStore: {exportSalaryArchive}} = this.props;
exportSalaryArchive();
}
// 定制列
getColumns() {
const { salaryFileStore: {tableStore}} = this.props;
return tableStore.columns.filter(item => item.display == "true").map(item => {
item.width = item.oldWidth
if(item.dataIndex == "operate") {
item.render = (text, record) => (
this.handleEdit(record)}>查看
)
item.fixed = 'right'
} else if(item.dataIndex == "username"){
item.fixed = 'left'
}
return item
})
}
// 编辑行
handleEdit(record) {
this.setState({editSlideVisible: true})
const { salaryFileStore: {setCurrentId}} = this.props;
setCurrentId(record.id)
}
// 显示调整个税扣缴义务人表单
handSildeOptionMenuClick(e) {
const { salaryFileStore: {setEditAgentVisible}} = this.props;
setEditAgentVisible(true)
}
// 查看 Slide 头部操作按钮
renderEditSlideOperate() {
return
调整个税扣缴义务人
} onClick={() => {this.setState({changeSalaryVisible: true})}}>调薪
}
// table选中条目
onSelectChange = selectedRowKeys => {
this.setState({ selectedRowKeys });
};
// 显示影响搜索面板
handleShowSearchBar = () => {
this.setState({
showSearchBar: !this.state.showSearchBar
})
}
// 页面跳转
handlePageChange = (value) => {
const { salaryFileStore: {getTableDatas, form}} = this.props;
this.pageInfo.current = value;
getTableDatas(this.pageInfo)
}
handleShowSizeChange(pageInfo) {
const { salaryFileStore: {getTableDatas, form}} = this.props;
getTableDatas(pageInfo)
}
// 搜索
handleSearch(value) {
const { salaryFileStore: {getTableDatas, form}} = this.props;
getTableDatas({username: value})
}
// 初始化导入参数
handleInitModal() {
const { salaryFileStore: { setPreviewDataSource } } = this.props;
setPreviewDataSource([])
this.setState({
importResult: {}
})
}
render() {
const { salaryFileStore } = this.props;
const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = salaryFileStore;
const { importType, previewColumns, previewDataSource, dataSource, currentId, editAgentVisible, setEditAgentVisible, pageInfo } = salaryFileStore;
const { selectedTab, step, selectedRowKeys } = this.state;
if (!hasRight && !loading) { // 无权限处理
return renderNoright();
}
const rightMenu = [// 右键菜单
{
key: 'BTN_COLUMN',
icon: ,
content: '显示列定制',
onClick: this.showColumn
},
];
const collectParams = { // 收藏功能配置
favname: '薪资档案',
favouritetype: 1,
objid: 0,
link: 'wui/index.html#/ns_demo03/index',
importantlevel: 1,
};
const adBtn = [ // 高级搜索内部按钮
,
,
,
];
const topTab = [
];
const renderSearchOperationItem = () => {
}
const handleMenuClick = (e) => {
this.setState({importType: e.key, modalVisiable: true, step: 0})
}
const handleMenuClick2 = () => {
const { electedRowKeys } = this.state;
if(selectedRowKeys.length == 0) {
message.warning("未选择条目")
return
}
const { salaryFileStore: {exportSalaryArchive}} = this.props;
exportSalaryArchive(selectedRowKeys.join(","))
}
const menu = (
);
const menu2 = (
);
const renderRightOperation = () => {
return (
导入
{this.handleExportAll()}}>导出全部
{this.setState({
searchValue: value
})}} onSearch={(value) => {this.handleSearch(value)}}/>
{/* */}
)
}
const handleSlideMoreMenuClick = () => {
}
const slideMoreMenu = (
);
const renderCustomOperate = () => {
return (
导出
)
}
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange,
};
return (
} // 左侧图标
iconBgcolor='#F14A2D' // 左侧图标背景色
showDropIcon={true} // 是否显示下拉按钮
dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
>
{
this.handlePageChange(value)
}}
onShowSizeChange={(current, pageSize) => {
this.pageInfo = {current, pageSize}
this.handleShowSizeChange(this.pageInfo)
}}
/>
{
this.state.modalVisiable &&
{
this.handleInitModal()
}}
params={{}}
columns={previewColumns}
step={step}
setStep={this.setStep.bind(this)}
slideDataSource={previewDataSource}
importResult={this.state.importResult}
onFinish={() => {this.handleImportFinish()}}
previewImport={(params) => {
this.handlePreviewImport(params)
}}
importFile={(params) => {this.handleImportFile(params)}}
templateLink={"/api/bs/hrmsalary/salaryArchive/downloadTemplate?importType=" + this.state.importType}
renderFormComponent={() => {this.renderFormComponent()}}
visiable={this.state.modalVisiable}
onCancel={() => { this.setState({modalVisiable: false})}}
/>
}
{
this.state.changeSalaryVisible && {this.setState({changeSalaryVisible: false})}}
/>
}
{
editAgentVisible && {setEditAgentVisible(false)}}
/>
}
{/* 操作记录 */}
{
this.state.recordSlideVisible &&
{renderCustomOperate()}}
subItemChange={
(item) => {this.setState({selectedTab: item.key})}
}
/>
}
content={
{
selectedTab == 0 &&
}
{
selectedTab == 1 &&
}
}
onClose={() => this.setState({recordSlideVisible: false})}
showMask={true}
closeMaskOnClick={() => this.setState({recordSlideVisible: false})} />
}
{
this.state.editSlideVisible &&
}
content={}
onClose={() => this.setState({editSlideVisible: false})}
showMask={true}
closeMaskOnClick={() => this.setState({editSlideVisible: false})} />
}
)
}
}