salary-management-front/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js

108 lines
3.0 KiB
JavaScript
Raw Normal View History

2022-06-21 14:27:16 +08:00
import React from "react";
import { inject, observer } from "mobx-react";
import { Radio, Spin } from "antd";
import { WeaTableNew } from "comsMobx";
2022-04-13 16:56:31 +08:00
const WeaTable = WeaTableNew.WeaTable;
2022-06-21 14:27:16 +08:00
@inject("payrollStore")
2022-04-13 16:56:31 +08:00
@observer
export default class TemplateSettingList extends React.Component {
2022-06-21 14:27:16 +08:00
componentWillMount() {
const { payrollStore } = this.props;
const { getPayrollTemplateList } = payrollStore;
getPayrollTemplateList();
}
2022-04-14 19:32:57 +08:00
2022-06-21 14:27:16 +08:00
// 编辑操作按钮
onEdit(record) {
this.props.onEdit && this.props.onEdit(record);
}
2022-04-14 19:32:57 +08:00
2022-06-21 14:27:16 +08:00
// 复制操作按钮
onCopy(record) {
this.props.onCopy && this.props.onCopy(record);
}
2022-04-14 19:32:57 +08:00
2022-06-21 14:27:16 +08:00
// 删除操作按钮
onDelete(record) {
this.props.onDelete && this.props.onDelete(record);
}
2022-04-14 19:32:57 +08:00
2022-06-21 14:27:16 +08:00
// 操作按钮
onOperatesClick = (record, index, operate, flag) => {
switch (operate.index.toString()) {
case "0": // 编辑
this.onEdit(record);
break;
case "1": // 复制
this.onCopy(record);
break;
case "2": // 删除
this.onDelete(record);
break;
2022-04-14 19:32:57 +08:00
}
2022-06-21 14:27:16 +08:00
};
// 默认使用配置
recordItemChange(record) {
const { payrollStore } = this.props;
const { changePayrollDefaultUse, getPayrollTemplateList } = payrollStore;
changePayrollDefaultUse(record.id).then(() => {
getPayrollTemplateList();
});
}
2022-04-14 19:32:57 +08:00
2022-06-21 14:27:16 +08:00
// 增加编辑功能重写columns绑定事件
getColumns = columns => {
const { showOperateBtn } = this.props;
let newColumns = "";
newColumns = columns.map(column => {
let newColumn = column;
newColumn.render = (text, record, index) => {
//前端元素转义
let valueSpan =
record[newColumn.dataIndex + "span"] !== undefined
? record[newColumn.dataIndex + "span"]
: record[newColumn.dataIndex];
switch (newColumn.dataIndex) {
case "useType":
return (
<Radio
disabled={!showOperateBtn}
checked={record.useType == "1"}
onChange={value => {
this.recordItemChange(record);
}}
/>
);
default:
return <div dangerouslySetInnerHTML={{ __html: valueSpan }}/>;
2022-04-14 19:32:57 +08:00
}
2022-06-21 14:27:16 +08:00
};
return newColumn;
});
return newColumns;
};
2022-04-14 19:32:57 +08:00
2022-06-21 14:27:16 +08:00
render() {
const { payrollStore } = this.props;
const { templateStore, loading } = payrollStore;
return (
<div>
{loading
? <div style={{ width: "100%", textAlign: "center" }}>
<Spin/>
</div>
2022-06-21 14:27:16 +08:00
: <WeaTable // table内部做了loading加载处理页面就不需要再加了
comsWeaTableStore={templateStore} // table store
hasOrder={true} // 是否启用排序
needScroll={true} // 是否启用table内部列表滚动将自适应到父级高度
getColumns={this.getColumns}
onOperatesClick={this.onOperatesClick.bind(this)}
/>}
2022-06-21 14:27:16 +08:00
</div>
);
}
}