import Dialog from "../../../BaseDialog/index"; import { generatePagination } from "../../Element/Pagination"; let _DialogObject const openAllNodeList = async (that) => { let total = 0 let page = 1 let pageSize = 20 let currentData = [] if (_DialogObject && !_DialogObject.isDestroy) { _DialogObject.close() _DialogObject = null } const createTableContent = () => { let trsElm = '' for (let i = 0; i < currentData.length; i++) { let trElm = '' let tdElm = '' if ('fid' in currentData[i].properties) { tdElm = `
${currentData[i].properties.fid}
` } for (let key in currentData[i].properties) { if (key !== 'id' && key !== 'ID' && key !== 'fid') { tdElm = tdElm + `
${currentData[i].properties[key]}
` } } trElm = trElm + tdElm + '' trsElm = trsElm + trElm } return trsElm } _DialogObject = await new Dialog(that.viewer._container, { title: '', left: '17%', top: '100px' }) await _DialogObject.init() let dataArrayFilter = [...that.geojson.features] total = dataArrayFilter.length currentData = dataArrayFilter.slice(pageSize * (page - 1), pageSize * page) let trsElm = createTableContent() let box = document.createElement('div') box.style.height = '100%' let searchElm = '' let talbeElm = '
' let headerElm = '
' let hcolgroupElm = '' let theadElm = '' let bodyElm = '
' let bcolgroupElm = '' let i = 1 // thead if ('fid' in that.geojson.features[0].properties) { hcolgroupElm = hcolgroupElm + `` bcolgroupElm = bcolgroupElm + `` theadElm = theadElm + `` i++ } for (let key in that.geojson.features[0].properties) { if (key !== 'id' && key !== 'ID' && key !== 'fid') { hcolgroupElm = hcolgroupElm + `` bcolgroupElm = bcolgroupElm + `` theadElm = theadElm + `` i++ } } //tbody let tbodyElm = '' tbodyElm = tbodyElm + trsElm + '' //empty let emptyElm = '
暂无数据
' hcolgroupElm = hcolgroupElm + '' bcolgroupElm = bcolgroupElm + '' theadElm = theadElm + '' headerElm = headerElm + hcolgroupElm + theadElm + '
fid
${key}
' bodyElm = bodyElm + bcolgroupElm + tbodyElm + '' + emptyElm + '
' talbeElm = talbeElm + headerElm + bodyElm + '' box.innerHTML = searchElm + talbeElm + '' let emptyNode = box.getElementsByClassName('el-table__empty-block')[0] if (currentData.length == 0) { emptyNode.style.display = 'flex' } else { emptyNode.style.display = 'none' } // this.viewer._container.appendChild(box) _DialogObject.contentAppChild(box) let headerWrapper = box.getElementsByClassName('el-table__header-wrapper')[0] let bodyWrapper = box.getElementsByClassName('el-table__body-wrapper')[0] bodyWrapper.addEventListener('scroll', function (e) { headerWrapper.scrollLeft = e.target.scrollLeft }); _DialogObject._element.title.style.height = '40px' _DialogObject._element.body.style.width = '65%' _DialogObject._element.body.style.height = '80%' _DialogObject._element.content.style.height = 'calc(100% - 40px)' _DialogObject._element.content.style.overflow = 'hidden' _DialogObject._element.foot.style.display = 'none' bodyWrapper.style.height = `calc(100% - ${headerWrapper.offsetHeight}px)` let paginationElm = box.getElementsByClassName('pagination')[0] generatePagination(paginationElm, total, pageSize, page, (pageIndex) => { page = pageIndex currentData = dataArrayFilter.slice(pageSize * (page - 1), pageSize * page) let trsElm = createTableContent() box.getElementsByTagName('tbody')[0].innerHTML = trsElm if (currentData.length == 0) { emptyNode.style.display = 'flex' } else { emptyNode.style.display = 'none' } }); const search = () => { let input = box.getElementsByClassName('search-box')[0].getElementsByTagName('input')[0] let array = [] for (let i = 0; i < that.geojson.features.length; i++) { for (let key in that.geojson.features[i].properties) { let str = that.geojson.features[i].properties[key] + '' if (str.indexOf(input.value) != -1) { array.push(that.geojson.features[i]) break } } } dataArrayFilter = array total = dataArrayFilter.length currentData = dataArrayFilter.slice(pageSize * (page - 1), pageSize * page) if (currentData.length == 0) { emptyNode.style.display = 'flex' } else { emptyNode.style.display = 'none' } let trsElm = createTableContent() box.getElementsByTagName('tbody')[0].innerHTML = trsElm generatePagination(paginationElm, total, pageSize, page, (pageIndex) => { page = pageIndex currentData = dataArrayFilter.slice(pageSize * (page - 1), pageSize * page) let trsElm = createTableContent() box.getElementsByTagName('tbody')[0].innerHTML = trsElm if (currentData.length == 0) { emptyNode.style.display = 'flex' } else { emptyNode.style.display = 'none' } }); } box.getElementsByClassName('search')[0].addEventListener('click', () => { pageSize = 20 page = 1 search() }) box.getElementsByClassName('export')[0].addEventListener('click', () => { let data = [] for (let i = 0; i < that.geojson.features.length; i++) { data.push({ ...that.geojson.features[i].properties, 'positions': JSON.stringify(that.geojson.features[i].geometry.positions) }) } that.exportExcel(data) }) } export { openAllNodeList }