From 7046b2568593b72f3640df6796a2b81980134030 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 18 九月 2022 23:45:57 +0800 Subject: [PATCH] 2022-09-18 --- src/tabviews/custom/components/tree/antd-tree/index.jsx | 86 +++++++------------------------------------ 1 files changed, 14 insertions(+), 72 deletions(-) diff --git a/src/tabviews/custom/components/tree/antd-tree/index.jsx b/src/tabviews/custom/components/tree/antd-tree/index.jsx index 3d8f850..41794b6 100644 --- a/src/tabviews/custom/components/tree/antd-tree/index.jsx +++ b/src/tabviews/custom/components/tree/antd-tree/index.jsx @@ -3,12 +3,11 @@ import { is, fromJS } from 'immutable' import { Spin, Empty, notification, Input, Tree } from 'antd' import { FolderOpenOutlined, FolderOutlined, FileOutlined } from '@ant-design/icons' -import moment from 'moment' import Api from '@/api' -import Utils from '@/utils/utils.js' import UtilsDM from '@/utils/utils-datamanage.js' import MKEmitter from '@/utils/events.js' +import TimerTask from '@/utils/timer-task.js' import './index.scss' const { TreeNode } = Tree @@ -73,7 +72,7 @@ }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { setTimeout(() => { - this.loadData(null) + this.loadData() }, config.setting.delay || 0) } else if (config.setting.sync === 'true' && _data) { this.handleData() @@ -108,87 +107,30 @@ } componentDidMount () { + const { config } = this.state + MKEmitter.addListener('reloadData', this.reloadData) MKEmitter.addListener('resetSelectLine', this.resetParentParam) - this.handleTimer() + + if (config.timer) { + this.timer = new TimerTask() + this.timer.init(config.uuid, config.timer, config.timerRepeats, () => { + this.loadData(true) + }) + } } /** * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊锛屾竻闄ゅ揩鎹烽敭璁剧疆 */ componentWillUnmount () { - clearTimeout(this.timer) this.setState = () => { return } MKEmitter.removeListener('reloadData', this.reloadData) MKEmitter.removeListener('resetSelectLine', this.resetParentParam) - } - handleTimer = () => { - const { config } = this.state - - if (!config.timer) return - - const _change = { '2s': 2000, '5s': 5000, '15s': 15000, '30s': 30000, '1min': 60000, '5min': 300000, '10min': 600000, '15min': 900000, '30min': 1800000, '1hour': 3600000 } - - let timer = _change[config.timer] - let repeats = config.timerRepeats || 0 - - if (!timer) return - - if (repeats > 0 && repeats <=3) { - this.setState({timer, repeats}) - this.timer = setTimeout(() => { - this.timerTask(repeats) - }, timer) - return - } - - let _param = { - func: 's_get_timers_role', - LText: `select '${window.GLOB.appkey || ''}','${config.uuid}'`, - timer_type: config.timer, - component_id: config.uuid - } - - _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') // 鏃堕棿鎴� - _param.LText = Utils.formatOptions(_param.LText) // 鍏抽敭瀛楃鏇挎崲锛宐ase64鍔犲瘑 - _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) // md5瀵嗛挜 - - Api.getSystemConfig(_param).then(result => { - if (!result.status) { - notification.warning({ - top: 92, - message: result.message, - duration: 5 - }) - return - } else if (result.run_type) { - this.setState({timer, repeats}) - this.timer = setTimeout(() => { - this.timerTask(repeats) - }, timer) - } - }) - } - - timerTask = (times) => { - const { timer, repeats } = this.state - if (!timer) return - - this.loadData(true) - - if (repeats) { - times = times - 1 - if (times <= 0) { - clearTimeout(this.timer) - return - } - } - this.timer = setTimeout(() => { - this.timerTask(times) - }, timer) + this.timer && this.timer.stop() } reloadData = (menuId) => { @@ -252,9 +194,9 @@ }) } else { this.setState({ - loading: false, - timer: null + loading: false }) + this.timer && this.timer.stop() notification.error({ top: 92, message: result.message, -- Gitblit v1.8.0