2022-09-13 16:39:15 +08:00
|
|
|
import React from "react";
|
|
|
|
|
import { Icon, message } from "antd";
|
2022-09-29 15:45:23 +08:00
|
|
|
import { WeaSelect, WeaSortable } from "ecCom";
|
2022-09-13 16:39:15 +08:00
|
|
|
import { inject, observer } from "mobx-react";
|
2022-09-29 15:45:23 +08:00
|
|
|
import { toJS } from "mobx";
|
2022-09-13 16:39:15 +08:00
|
|
|
import CanDeleteItem from "../../../components/canDeleteItem";
|
2022-03-29 17:33:54 +08:00
|
|
|
|
2022-09-13 16:39:15 +08:00
|
|
|
@inject("ledgerStore")
|
2022-03-29 17:33:54 +08:00
|
|
|
@observer
|
|
|
|
|
export default class UserInfoSelected extends React.Component {
|
2022-09-13 16:39:15 +08:00
|
|
|
constructor(props) {
|
|
|
|
|
super(props);
|
|
|
|
|
this.state = {
|
|
|
|
|
list: [],
|
|
|
|
|
showSelect: false
|
|
|
|
|
};
|
|
|
|
|
}
|
2022-03-29 17:33:54 +08:00
|
|
|
|
2022-09-13 16:39:15 +08:00
|
|
|
handleSelectChange(value) {
|
|
|
|
|
const { ledgerStore: { empBrowserList, userSelectedList } } = this.props;
|
|
|
|
|
let list = [...userSelectedList];
|
|
|
|
|
let selectedItem = {};
|
|
|
|
|
empBrowserList.map(item => {
|
|
|
|
|
if (item.key == value) {
|
|
|
|
|
selectedItem = item;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
let flag = false;
|
|
|
|
|
list.map(item => {
|
|
|
|
|
if (item.key == value) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
if (!flag) {
|
|
|
|
|
list.push(selectedItem);
|
|
|
|
|
}
|
|
|
|
|
if (flag) {
|
|
|
|
|
message.warning("该信息已存在");
|
|
|
|
|
this.setState({ showSelect: false });
|
|
|
|
|
return;
|
2022-03-29 17:33:54 +08:00
|
|
|
}
|
2022-09-13 16:39:15 +08:00
|
|
|
const { ledgerStore: { empFields, addEmpFields, setUserSelectedList } } = this.props;
|
|
|
|
|
addEmpFields(value);
|
|
|
|
|
this.setState({ showSelect: false });
|
|
|
|
|
}
|
2022-04-27 19:27:23 +08:00
|
|
|
|
2022-09-13 16:39:15 +08:00
|
|
|
handleItemDelete(item) {
|
|
|
|
|
const { ledgerStore: { userSelectedList, setUserSelectedList, empFields, setEmpFields } } = this.props;
|
|
|
|
|
let list = [...userSelectedList];
|
|
|
|
|
let fields = [...empFields];
|
|
|
|
|
if (item.canDelete === false) {
|
|
|
|
|
message.warning("该项不可删除");
|
|
|
|
|
return;
|
2022-03-29 17:33:54 +08:00
|
|
|
}
|
|
|
|
|
|
2022-09-13 16:39:15 +08:00
|
|
|
fields = fields.filter(i => item.fieldId != i.fieldId);
|
|
|
|
|
fields.map((item, index) => {
|
|
|
|
|
item.sortedIndex = index;
|
|
|
|
|
});
|
|
|
|
|
setEmpFields(fields);
|
|
|
|
|
setUserSelectedList(list.filter(i => item.fieldId != i.fieldId));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
render() {
|
2022-09-29 15:45:23 +08:00
|
|
|
const { ledgerStore: { empBrowserList, userSelectedList, setUserSelectedList } } = this.props;
|
|
|
|
|
const list = _.map(toJS(userSelectedList), it => ({ ...it }));
|
2022-09-13 16:39:15 +08:00
|
|
|
return (
|
|
|
|
|
<div className="userInfoSelected">
|
2022-09-29 15:45:23 +08:00
|
|
|
<WeaSortable
|
|
|
|
|
datas={list}
|
|
|
|
|
draggableType="icon"
|
|
|
|
|
onChange={(list) => setUserSelectedList(list)}
|
|
|
|
|
renderNodeItem={(item) => {
|
|
|
|
|
return <CanDeleteItem title={item.showname} item={item} onDelete={(item) => {
|
2022-09-13 16:39:15 +08:00
|
|
|
this.handleItemDelete(item);
|
2022-09-29 15:45:23 +08:00
|
|
|
}}/>;
|
|
|
|
|
}}
|
|
|
|
|
className="wea-sortable-grid-item"
|
|
|
|
|
/>
|
|
|
|
|
<Icon type="plus" style={{ marginLeft: "10px", marginRight: "10px", cursor: "pointer" }} title="新增"
|
|
|
|
|
onClick={() => {
|
|
|
|
|
this.setState({ showSelect: true });
|
|
|
|
|
}}/>
|
2022-09-13 16:39:15 +08:00
|
|
|
{
|
|
|
|
|
this.state.showSelect && empBrowserList.length > 0 &&
|
|
|
|
|
<WeaSelect showSearch options={empBrowserList}
|
|
|
|
|
style={{ width: 200 }} onChange={(value) => {
|
|
|
|
|
this.handleSelectChange(value);
|
|
|
|
|
}}/>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|