From f3d4db769ba9b51b799d981511a710fd443d0e08 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 21 四月 2025 12:18:03 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/tabviews/zshare/settingcomponent/index.jsx | 131 +++++++++++++++++++++++++------------------ 1 files changed, 77 insertions(+), 54 deletions(-) diff --git a/src/tabviews/zshare/settingcomponent/index.jsx b/src/tabviews/zshare/settingcomponent/index.jsx index 2f137ee..dd87d2c 100644 --- a/src/tabviews/zshare/settingcomponent/index.jsx +++ b/src/tabviews/zshare/settingcomponent/index.jsx @@ -1,12 +1,11 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Button, Modal, notification, Spin, Empty } from 'antd' +import { Button, Modal, notification, Spin, Empty, Tooltip } from 'antd' import Api from '@/api' import MKEmitter from '@/utils/events.js' import { updateSubTable } from '@/utils/utils-update.js' -import options from '@/store/options.js' import asyncComponent from '@/utils/asyncSpinComponent' import './index.scss' @@ -14,7 +13,6 @@ class CustomSetting extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀琛� config: PropTypes.object, // 椤甸潰閰嶇疆淇℃伅 shortcuts: PropTypes.any, // 鑷畾涔夎缃� } @@ -144,29 +142,36 @@ }) }) } else if (item.type === 'table') { - item.cols && item.cols.forEach(col => { - if (col.type !== 'action') return - col.elements && col.elements.forEach(cell => { - cell.$expanded = false - if (cell.OpenType === 'funcbutton' && cell.funcType === 'print') { + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType !== 'button') return + cell.$expanded = false + if (cell.OpenType === 'funcbutton' && cell.funcType === 'print') { - cell.$port = cell.verify ? cell.verify.linkUrl : '' - if (cell.verify && cell.verify.printerTypeList && cell.verify.printerTypeList.length > 0) { - cell.verify.printerTypeList = cell.verify.printerTypeList.map(_cell => { - _cell.uuid = _cell.uuid || _cell.key - _cell.parentId = cell.uuid - _cell.$port = cell.$port + cell.$port = cell.verify ? cell.verify.linkUrl : '' + if (cell.verify && cell.verify.printerTypeList && cell.verify.printerTypeList.length > 0) { + cell.verify.printerTypeList = cell.verify.printerTypeList.map(_cell => { + _cell.uuid = _cell.uuid || _cell.key + _cell.parentId = cell.uuid + _cell.$port = cell.$port - return _cell - }) - cell.$expanded = true - } - printbtns.push(cell) + return _cell + }) + cell.$expanded = true + } + printbtns.push(cell) + } + + _comp.action.push({...cell, $line: true, ...(userConfig[cell.uuid] || {})}) + }) } - - _comp.action.push({...cell, $line: true, ...(userConfig[cell.uuid] || {})}) }) - }) + } + loopCol(item.cols) } if (_comp.action.length > 0) { @@ -311,9 +316,14 @@ }) } else if (!links.includes(item.verify.linkUrl)) { links.push(item.verify.linkUrl) + } + }) - let socket = null - socket = new WebSocket('ws://' + item.verify.linkUrl) + if (links.length === 0) return + + let defers = links.map(link => { + return new Promise((resolve) => { + let socket = new WebSocket('ws://' + link) // 鎵撳紑Socket socket.onopen = () =>{ let request = { @@ -355,29 +365,39 @@ }) } - window.GLOB.UserCacheMap.set(item.verify.linkUrl, _printers) - } else if (data && data.cmd === 'getPrinters') { - notification.warning({ - top: 92, - message: data.message, - duration: 5 - }) + resolve({status: true, printers: _printers}) + } else if (data && data.cmd === 'getPrinters' && data.message) { + resolve({status: false, printers: null, message: data.message}) } } socket.onerror = () => { - let tool = item.verify.linkUrl - if (item.verify.linkUrl === '127.0.0.1:13529') { + let tool = link + + if (link === '127.0.0.1:13529') { tool = '鏄庣閫氳缁勪欢' - } else if (item.verify.linkUrl === '127.0.0.1:13528') { + } else if (link === '127.0.0.1:13528') { tool = 'CAINIAO鎵撳嵃缁勪欢' } - notification.warning({ - top: 92, - message: '鏃犳硶杩炴帴鍒�: ' + tool, - duration: 5 - }) + + resolve({status: false, printers: null, message: '鏃犳硶杩炴帴鍒�: ' + tool}) + } + }) + }) + + Promise.all(defers).then(results => { + let res = results.filter(item => item.status)[0] + if (res) { + links.forEach(link => { + window.GLOB.UserCacheMap.set(link, res.printers) + }) + } else { + notification.warning({ + top: 92, + message: results[0].message, + duration: 5 + }) } }) } @@ -405,7 +425,9 @@ return } - Api.deleteMenuStorage(config.MenuID).then(() => { + Api.deleteMenuStorage(config.MenuID) + + setTimeout(() => { this.setState({ visible: false, revertLoading: false @@ -413,7 +435,7 @@ window.GLOB.CacheMap = new Map() MKEmitter.emit('reloadMenuView', config.MenuID) }) - }) + }, 100) }) } @@ -481,7 +503,9 @@ return } - Api.deleteMenuStorage(config.MenuID).then(() => { + Api.deleteMenuStorage(config.MenuID) + + setTimeout(() => { this.setState({ visible: false, confirmLoading: false @@ -489,7 +513,7 @@ window.GLOB.CacheMap = new Map() MKEmitter.emit('reloadMenuView', config.MenuID) }) - }) + }, 100) }) } @@ -509,25 +533,24 @@ render() { const { components, visible } = this.state + if (window.GLOB.mkHS || window.GLOB.sysType !== 'local') return null + return ( - <div className="page-setting-wrap"> - {options.sysType === 'local' ? <Button - icon="setting" - shape="circle" - className="page-setting" - onClick={this.trigger} - /> : null} + <div className="tool-wrap"> + <Tooltip placement="left" title="鑷畾涔夎缃�"> + <Button icon="setting" shape="circle" onClick={this.trigger}/> + </Tooltip> <Modal wrapClassName="custom-setting-modal" - title={'鑷畾涔夎缃�'} + title="鑷畾涔夎缃�" maskClosable={false} width={950} visible={visible} onCancel={() => { this.setState({ visible: false }) }} footer={[ - <Button key="revert" type="danger" loading={this.state.revertLoading} onClick={this.settingRevert}>{this.props.dict['main.revert.default']}</Button>, - <Button key="cancel" onClick={() => { this.setState({ visible: false }) }}>{this.props.dict['main.cancel']}</Button>, - <Button key="confirm" type="primary" loading={this.state.confirmLoading} onClick={this.settingSubmit}>{this.props.dict['main.submit']}</Button> + <Button key="revert" type="danger" loading={this.state.revertLoading} onClick={this.settingRevert}>鎭㈠榛樿璁剧疆</Button>, + <Button key="cancel" onClick={() => { this.setState({ visible: false }) }}>鍙栨秷</Button>, + <Button key="confirm" type="primary" loading={this.state.confirmLoading} onClick={this.settingSubmit}>鎻愪氦</Button> ]} destroyOnClose > -- Gitblit v1.8.0