/* eslint-disable */
import React, { Component } from 'react';
import { Form, Icon } from '@ant-design/compatible';
// import '@ant-design/compatible/assets/index.css';
import { Layout, Spin, Slider, Button } from 'antd-v4';
import { MessageOutlined, MinusOutlined } from '@ant-design/icons';
import CommonListEvent from '@/components/Common/CommonListEvent';/* 继承销售模块业务功能 */
import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
import styles from '@/index.less';
import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
import commonConfig from '@/utils/config';
import * as commonUtils from '@/utils/utils';
import StaticEditTree from '@/components/Common/Tree/StaticTree';
import Eject from '@/assets/eject.svg';/* 弹出图标 */
import Close from '@/assets/close.svg';/* 关闭图标 */
import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
import WorkOrderSystemAddModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemAdd';
import WorkOrderSystemDetailModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemDetail';
const { Header, Content } = Layout;
let NoTotalData = '';
class CommonList extends Component {
constructor(props) {
super(props);
this.state = {
isRender: 0,
treeData: [],
pageSize: 20,
pageNum: 1,
expandAll: true,
expandedTreeKeys: [],
checkModelStatus: false,
defaultKey: 'unset',
slideFlag: localStorage.getItem(`treeSlide_${this.props.sModelsId}`) ? +localStorage.getItem(`treeSlide_${this.props.sModelsId}`) : 0,
};
}
onTreeExpandChange = () => {
const oldState = this.state.expandAll;
const arr = [];
if (!oldState) {
this.props.treeData.forEach((item) => {
arr.push(item.sId + item.sProcessId + item.iOrder);
});
}
this.setState({
expandAll: !oldState,
expandedTreeKeys: arr,
});
}
handleEject = () => {
const { currentPane, panes } = this.props.app;
if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
// const index = panes.indexOf(currentPane);
const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
/* 当前页签 */
let currentTab = document.getElementById('navTabWrap').children[index];
if (commonUtils.isEmpty(currentTab)) {
const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
for (const child of oChildren) {
if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
currentTab = child;
}
}
}
if (!commonUtils.isEmpty(currentTab)) {
const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
if (commonUtils.isNotEmptyArr(filterTreeArr)) {
const filterTree = filterTreeArr[0];
if (filterTree.style.display === 'block') {
filterTree.style.display = 'none';
} else {
filterTree.style.display = 'block';
}
}
}
}
};
/** 树节点选中 */
handleTreeSelect = (name, checkedKeys, e) => {
this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
};
handleCancelModal = (modelVisible) => {
this.props.onSaveState({
[modelVisible]: false,
});
}
handleSelectModal = (modelVisible) => {
this.props.onSaveState({
[modelVisible]: false,
});
}
render() {
const { pageLoading } = this.props;
return (
);
}
}
const CommonListComponent = Form.create({
mapPropsToFields(props) {
const { masterData, masterConfig } = props;
const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
return obj;
},
})((props) => {
const {
form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible, sModelsType, slaveData, slaveFilterCondition, onTreeExpandChange,
flowHistroyId, flowHistroyVisible, app, expandAll,
} = props;
const { userinfo, token } = app;
// isSmall将分页变小,以及去掉跳转页面和总条数记录
/* 回带表单 */
if (commonUtils.isNotEmptyObject(slavePagination)) {
// if (isSmall) {
// slavePagination.showTotal = null;
// }
}
onReturnForm(form);
const pagination = {
pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
...slavePagination,
size: isSmall ? 'small' : 'large',
pageSizeOptions: commonConfig.pageSizeOptions,
showSizeChanger: !isSmall,
showQuickJumper: !isSmall,
};
let slaveTreeData = [];
/* 包含子节点的通用列表 */
if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveData)) {
const addSate = props.onGetSlaveTreeData(slaveData);
if (commonUtils.isNotEmptyObject(addSate)) {
// eslint-disable-next-line prefer-destructuring
slaveTreeData = addSate.slaveTreeData;
}
} else {
slaveTreeData = slaveData;
}
const tableProps = {
...commonBusiness.getTableTypes('slave', props),
data: slaveTreeData,
tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
onSaveState: props.onSaveState,
clearArray: props.clearArray,
readOnly: true,
isSmall,
sGroupByList: props.sGroupByList,
customConfig: props.customConfig,
};
/* 有树形的不用虚拟列表 */
if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveTreeData)) {
tableProps.noVlist = true;
}
const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
const hasColumnGroup = masterTitleGroup.length;
if (masterSum.length > 0) {
NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
} else {
NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
}
// const mProps = { ...commonBusiness.createMemoProps('master', props)};
const name = 'filterTree';
const treeProps = {
...commonBusiness.getTreeTypes('tree', props),
isSearch: false,
checkable: false,
disabled: false,
checkedAll: false,
unChecked: false,
[`${name}Column`]: props[`${name}Column`],
[`${name}Config`]: props[`${name}Config`],
[`${name}Data`]: props[`${name}Data`],
getFloatNum: props.getFloatNum,
getSqlDropDownData: props.getSqlDropDownData,
getSqlCondition: props.getSqlCondition,
handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
getDateFormat: props.getDateFormat,
onDoubleClick: props.onDoubleClick,
onSelect: props.onSelectTree,
expandedKeys: props.expandedKeys,
};
const logProps = {
app: {
...props.app,
currentPane: {
...props.app.currentPane,
formRoute: '/indexPage/commonList',
route: '/indexPage/commonList',
name: 'logView',
config: props.logConfig,
select: props.onSelectModal.bind(this, 'logVisible'),
selectCancel: props.onCancelModal.bind(this, 'logVisible'),
sModelsType: 'modal/logView',
},
},
token: props.app.token,
slaveColumn: props.logColumn, /* 表头 */
slaveConfig: props.logConfig,
slaveData: props.logData,
dispatch: props.dispatch,
content: props.content,
id: new Date().getTime().toString(),
pageLoading: false,
};
const refreshSlaveTable = () => {
props.handleGetDataSet({
name: 'slave',
configData: props.slaveConfig,
condition: {
pageNum: 1,
pageSize: slavePagination.pageSize,
bFilter: slaveFilterCondition,
},
flag: true,
clearSelectData: true,
});
};
const workOrderSystemAddProps = {
...props,
onAddWorkOrderSuccess: () => {
props.onSaveState({ workOrderSystemAddModalVisible: false });
refreshSlaveTable();
},
};
let workOrderSystemDetailTitle = '';
if (commonUtils.isNotEmptyObject(props.slaveCurrentData)) {
const { sTitle, sModuleName, tCreateDate } = props.slaveCurrentData;
/* eslint-disable */
workOrderSystemDetailTitle = (
<>
{sTitle}
{`菜单名称: ${sModuleName} ${Array(10)
.fill('\xa0')
.join('')} 创建时间: ${tCreateDate.split(' ')[0]}`}
>);
/* eslint-enable */
}
let customWidth = 224;
if (localStorage.getItem(`customProductionScheduleTreeWidth_${props.sModelsId}`) !== '') {
customWidth = localStorage.getItem(`customProductionScheduleTreeWidth_${props.sModelsId}`);
}
const workOrderSystemDetailProps = {
...props,
sId: commonUtils.isNotEmptyObject(props.slaveCurrentData) ? props.slaveCurrentData.sId : '',
refreshSlaveTable,
};
let addressStr = `${location.protocol}//${location.host}`;
if (sModelsType && sModelsType.includes('http')) {
addressStr = location.host;
}
const sFlowUrl = `${commonConfig.server_host}process/historyListerp/{sBillId}/{sBrandsId}/{sSubsidiaryId}/{sUserName}/{token}`;
const flowHistrory = sFlowUrl !== undefined ? sFlowUrl.replace('{sBrandsId}', userinfo.sBrandsId).replace('{sSubsidiaryId}', userinfo.sSubsidiaryId).replace('{sUserName}', userinfo.sUserName).replace('{sUserId}', userinfo.sId)
.replace('{token}', token)
.replace('{ipAddress}', addressStr)
.replace('{sBillId}', flowHistroyId) : '';
const handleResizeLayout = (e) => {
const originX = e.pageX;
const originWidth = props.treeDiv.getElementsByClassName('productionScheduleTree-sider')[0].offsetWidth;
let offset = 0;
window.onmousemove = function (e2) {
offset = e2.pageX - originX;
props.treeDiv.getElementsByClassName('productionScheduleTree-sider')[0].style.width = `${originWidth + offset}px`;
props.treeDiv.getElementsByClassName('productionScheduleTree-content')[0].style.width = `calc(100% - ${originWidth + offset + 10}px)`;
};
window.onmouseup = function () {
window.onmousemove = null;
window.onmousemove = null;
localStorage.setItem(`customProductionScheduleTreeWidth_${props.sModelsId}`, originWidth + offset + 10);
};
};
return (
);
});
export default CommonBase(CommonListEvent(CommonList));