/* 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, Input, message, Tooltip } from 'antd-v4'; import { MessageOutlined, MinusOutlined, NodeExpandOutlined } 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 selfstyles from '@/components/Common/CommonListLeft/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 leftTreeEdit from '@/assets/leftTreeEdit.svg';/* 编辑节点*/ import leftTreeDel from '@/assets/leftTreeDel.svg';/* 删除节点 */ import leftTreeAddChild from '@/assets/leftTreeAddChild.svg';/* 新增节点 */ import AntdDraggableModal from '@/components/Common/AntdDraggableModal'; import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面2222 */ import WorkOrderSystemAddModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemAdd'; import WorkOrderSystemDetailModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemDetail'; const { Header, Content } = Layout; const { TextArea } = Input; let NoTotalData = ''; class CommonList extends Component { constructor(props) { super(props); this.state = { expandAll: true, expandedTreeKeys: [], defaultKey: 'unset', slideFlag: localStorage.getItem(`treeSlide_${this.props.sModelsId}`) ? +localStorage.getItem(`treeSlide_${this.props.sModelsId}`) : 0, treeId: `treeId_${commonUtils.createSid()}` }; this.treeDiv = null; } componentDidMount() { if (!this.state.slideFlag) { this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'block'; const originWidth = this.treeDiv.getElementsByClassName('listTree-sider')[0].offsetWidth; this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100% - ${originWidth + 10}px)`; } else { this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'none'; this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100%)`; } this.handleDefaultExpandTree(); } componentDidUpdate() { if (window.xlyListLeftTreeExpand) { this.handleDefaultExpandTree(); window.xlyListLeftTreeExpand = false; } } handleDefaultExpandTree = () => { let count = 0; const timer = setInterval(() => { count += 1; if (count > 10) { clearInterval(timer); } const { expandedKeys } = this.props; if (commonUtils.isNotEmptyArr(expandedKeys)) { clearInterval(timer); this.handleExpandTreeAll(2); } }, 500); } 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, }); } toggleSlide = () => { let flag = this.state.slideFlag ? 0 : 1; localStorage.setItem('treeSlide_' + this.props.sModelsId, flag); this.setState({ slideFlag: flag }) } handleSlideToggle = () => { if (this.state.slideFlag) { this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'block'; const originWidth = this.treeDiv.getElementsByClassName('listTree-sider')[0].offsetWidth; this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100% - ${originWidth + 10}px)`; this.toggleSlide(); } else { this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'none'; this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100%)`; this.toggleSlide(); } } 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, }); } /* 新增左侧树节点 */ handleLeftTreeAddChild = () => { this.props.onSaveState({ leftTreeNodeVisible: true, leftTreeNodeHandleType: 'add', leftTreeNodeTitle: '新增子节点' }) } /* 编辑左侧树节点 */ handleLeftTreeAddEdit = () => { const { treeSelectedKeys, treeTreeNode} = this.props; if(commonUtils.isEmptyArr(treeSelectedKeys)) { message.error('请选择树节点!'); return; } const leftTreeNodeName = treeTreeNode.showName; this.props.onSaveState({ leftTreeNodeVisible: true, leftTreeNodeName: leftTreeNodeName, leftTreeNodeTitle: '编辑树节点', leftTreeNodeHandleType: 'update' }) } /* 删除左侧树节点 */ handleLeftTreeAddDel = () => { const { treeSelectedKeys, treeTreeNode, leftTreeNodeHandleType, slaveConfig,slaveData, slaveDelData} = this.props; if(commonUtils.isEmptyArr(treeSelectedKeys)) { message.error('请选择树节点!'); return; } const newNodeData = []; const newNodeDelData = []; const newNodeObj ={}; newNodeObj.sId = treeTreeNode.sId; newNodeObj.sName = treeTreeNode.showName; newNodeObj.sParentId = treeTreeNode.sId; newNodeObj.sAllId = treeTreeNode.sAllId; newNodeObj.handleType = 'del'; newNodeData.push(newNodeObj); newNodeDelData.push(newNodeObj); const data = []; if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) { this.props.onSaveState({ loading: false, }); return; } data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, newNodeData, newNodeDelData)); this.handleSaveData({ data, sClientType: '1' }); } // 展开收起全部树节点 handleExpandTreeAll = (level = 999) => { const { expandedKeys: expandedKeysOld, treeData } = this.props; let expandedKeys = []; const getExpandedKeys = (arr, lv) => { for (let i = 0; i < arr.length; i++) { const obj = arr[i]; expandedKeys.push(obj.key); if (obj.children && lv < level) { getExpandedKeys(obj.children, lv + 1); } } } getExpandedKeys(treeData, 0); if (expandedKeysOld.length >= expandedKeys.length && level === 999) { expandedKeys = []; } this.props.onSaveState({ expandedKeys }); } handleLeftTreeNodeOk = () => { /* 调用接口 新增保存 */ const { treeSelectedKeys, treeTreeNode, leftTreeNodeHandleType, slaveConfig,slaveData, slaveDelData} = this.props; // const {treeNodeValue } = this.state; const nodeName = commonUtils.isNotEmptyObject(document.getElementById('treeNodeName')) ? document.getElementById('treeNodeName').value : '' ; if(commonUtils.isEmptyArr(treeSelectedKeys)) { message.error('请选择树节点!'); return; } if(commonUtils.isEmptyObject(nodeName)) { message.error('请输入子节点名称!'); return; } let filterTreeConfig = {}; let picArrConfig = {}; const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree); if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) { filterTreeConfig = filterTreeConfigArr[0]; } const picArrConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.sName === 'picArr'); if (commonUtils.isNotEmptyArr(picArrConfigArr)) { picArrConfig = picArrConfigArr[0]; } const { sActiveId: sFormId } = picArrConfig; if (!sFormId) { message.error('sFormId不能为空!'); return; } const { sName = 'sName' } = filterTreeConfig; const newNodeData = []; const newNodeDelData = []; /* 新增节点 */ if(leftTreeNodeHandleType && leftTreeNodeHandleType === 'add') { const newNodeObj ={}; newNodeObj.sId = commonUtils.createSid(); newNodeObj[sName] = nodeName; newNodeObj.sParentId = treeTreeNode.sId; newNodeObj.sAllId = newNodeObj.sId + newNodeObj.sParentId; newNodeObj.handleType = leftTreeNodeHandleType; newNodeObj.sFormId = sFormId; newNodeData.push(newNodeObj); }else if(leftTreeNodeHandleType && leftTreeNodeHandleType === 'update') { const newNodeObj ={}; newNodeObj.sId = treeTreeNode.sId; newNodeObj[sName] = nodeName; newNodeObj.sParentId = treeTreeNode.sParentId; newNodeObj.sAllId = treeTreeNode.sAllId; newNodeObj.handleType = leftTreeNodeHandleType; newNodeData.push(newNodeObj); } const data = []; if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) { this.props.onSaveState({ loading: false, }); return; } data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, newNodeData, newNodeDelData)); this.handleSaveData({ data, sClientType: '1' }); } handleSaveData = async (params) => { const { token, sModelsId, currentId, masterData, masterConfig, slaveConfig, checkConfig, billnosetting, app, sModelsType, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, orderDetailConfig, dispatch, } = this.props; const {userinfo} = app; const {copyTo} = app.currentPane; const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */ params.optName = BtnSave; const returnData = await commonBusiness.saveData({token, value: params, sModelsId}); if (commonUtils.isNotEmptyObject(returnData)) { if(returnData.code === 1) { /* 回刷树 */ this.handleRefleshTree(); } } } handleRefleshTree = async () => { const { slaveConfig, filterCondition, treeSelectedKeys } = this.props; const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree); const addState = {}; let bInData = true; if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) { const filterTreeConfig = filterTreeConfigArr[0]; const { treeData } = await this.handleGetFilterTreeData(filterTreeConfig, filterCondition, 1); addState.treeData = treeData; } if (commonUtils.isNotEmptyArr(addState.treeData) && commonUtils.isNotEmptyArr(treeSelectedKeys)) { const findObjectById = (arr, key) => { for (let i = 0; i < arr.length; i++) { const obj = arr[i]; if (obj.key === key) { return obj; } if (obj.children) { const child = findObjectById(obj.children, key); if (child) { return child; } } } return null; } bInData = findObjectById(addState.treeData, treeSelectedKeys[0]); } this.props.onSaveState({ leftTreeNodeVisible: false, ...addState }, () => { if (!bInData) { const oFirstNode = this.treeRef?.querySelector('.ant-tree-node-content-wrapper'); if (oFirstNode) { oFirstNode.click(); } } }); } handleGetFilterTreeData= async (slaveConfig, slaveFilterCondition, page, slaveOrderBy, props) => { const { app } = props === undefined ? this.props : props; const conditonValues = app.currentPane.conditonValues; const pageNum = commonUtils.isEmpty(page) ? 1 : page; return await this.props.handleGetTreeDataSet({ name: 'slave', configData: slaveConfig, condition: { pageNum, pageSize: commonConfig.pageSize, bFilter: slaveFilterCondition, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues, isTreeList: "1", }, flag: true, clearSelectData: true, isWait: true }); }; render() { const { pageLoading } = this.props; return (