From 41c55c1f103658b997f7a828a7067bdb228f1df0 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 04 十月 2022 23:35:10 +0800
Subject: [PATCH] 2022-10-04
---
src/tabviews/custom/components/tree/antd-tree/index.jsx | 96 ++++++++++++++++-------------------------------
1 files changed, 33 insertions(+), 63 deletions(-)
diff --git a/src/tabviews/custom/components/tree/antd-tree/index.jsx b/src/tabviews/custom/components/tree/antd-tree/index.jsx
index e9d7bc7..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
@@ -16,11 +15,9 @@
class NormalTree extends Component {
static propTpyes = {
- BID: PropTypes.any, // 鐖剁骇Id
data: PropTypes.array, // 缁熶竴鏌ヨ鏁版嵁
config: PropTypes.object, // 缁勪欢閰嶇疆淇℃伅
mainSearch: PropTypes.any, // 澶栧眰鎼滅储鏉′欢
- menuType: PropTypes.any, // 鑿滃崟绫诲瀷
}
state = {
@@ -38,10 +35,22 @@
}
UNSAFE_componentWillMount () {
- const { config, data, initdata, BID } = this.props
+ const { config, data, initdata } = this.props
let _config = fromJS(config).toJS()
let _data = null
let _sync = config.setting.sync === 'true'
+
+ let BID = ''
+ let BData = ''
+
+ if (_config.setting.supModule) {
+ BData = window.GLOB.CacheData.get(_config.setting.supModule)
+ } else {
+ BData = window.GLOB.CacheData.get(_config.$pageId)
+ }
+ if (BData) {
+ BID = BData.$BID || ''
+ }
if (config.setting.sync === 'true' && data) {
_data = data[config.dataName] || []
@@ -62,7 +71,9 @@
sync: _sync
}, () => {
if (config.setting.sync !== 'true' && config.setting.onload === 'true') {
- this.loadData(null)
+ setTimeout(() => {
+ this.loadData()
+ }, config.setting.delay || 0)
} else if (config.setting.sync === 'true' && _data) {
this.handleData()
}
@@ -96,71 +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 = { '5s': 5000, '15s': 15000, '30s': 30000, '1min': 60000, '5min': 300000, '10min': 600000, '15min': 900000, '30min': 1800000, '1hour': 3600000 }
-
- let timer = _change[config.timer]
-
- if (!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})
- this.timer = setTimeout(() => {
- this.timerTask()
- }, timer)
- }
- })
- }
-
- timerTask = () => {
- const { timer } = this.state
- if (!timer) return
-
- this.loadData(true)
-
- this.timer = setTimeout(() => {
- this.timerTask()
- }, timer)
+ this.timer && this.timer.stop()
}
reloadData = (menuId) => {
@@ -186,7 +156,7 @@
* @description 鏁版嵁鍔犺浇
*/
async loadData (hastimer) {
- const { mainSearch, menuType } = this.props
+ const { mainSearch } = this.props
const { config, arr_field, BID } = this.state
if (config.setting.supModule && !BID) { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇�
@@ -212,7 +182,7 @@
}
let _orderBy = config.setting.order || ''
- let param = UtilsDM.getQueryDataParams(config.setting, arr_field, searches, _orderBy, '', '', BID, menuType)
+ let param = UtilsDM.getQueryDataParams(config.setting, arr_field, searches, _orderBy, '', '', BID)
let result = await Api.genericInterface(param)
if (result.status) {
@@ -224,9 +194,9 @@
})
} else {
this.setState({
- loading: false,
- timer: null
+ loading: false
})
+ this.timer && this.timer.stop()
notification.error({
top: 92,
message: result.message,
@@ -460,7 +430,7 @@
const { config, loading, treeNodes, expandedKeys, selectedKeys } = this.state
return (
- <div className="custom-tree-box" style={config.style}>
+ <div className="custom-tree-box" id={'anchor' + config.uuid} style={config.style}>
{loading ?
<div className="loading-mask">
<div className="ant-spin-blur"></div>
@@ -468,7 +438,7 @@
</div> : null
}
{config.wrap.title || config.wrap.searchable === 'true' ? <div className="tree-header" style={config.headerStyle}>
- <span className="title">{config.wrap.title}</span>
+ <span className={'title ' + (config.wrap.searchable !== 'true' ? 'search-unable' : '')}>{config.wrap.title}</span>
{config.wrap.searchable === 'true' ? <Search allowClear onSearch={this.treeFilter} /> : null}
</div> : null}
{treeNodes && treeNodes.length > 0 ? <div className="tree-box" style={{height: config.wrap.contentHeight}}>
--
Gitblit v1.8.0