import React, {Component} from 'react'
|
import { is, fromJS } from 'immutable'
|
import { Modal, notification } from 'antd'
|
|
import Api from '@/api'
|
import { menuOptions } from './option'
|
import SourceWrap from './dragsource'
|
import MKEmitter from '@/utils/events.js'
|
import './index.scss'
|
|
const { confirm } = Modal
|
|
class ModelSource extends Component {
|
state = {
|
menuOptions: null,
|
}
|
|
UNSAFE_componentWillMount () {
|
const { components } = this.props
|
let options = []
|
|
if (components) {
|
options = fromJS(components).toJS()
|
} else {
|
options = fromJS(menuOptions).toJS()
|
}
|
|
this.setState({
|
menuOptions: options
|
})
|
}
|
|
UNSAFE_componentWillReceiveProps (nextProps) {
|
if (nextProps.components && !is(fromJS(this.props.components), fromJS(nextProps.components))) {
|
this.setState({
|
menuOptions: fromJS(nextProps.components).toJS()
|
})
|
}
|
}
|
|
shouldComponentUpdate (nextProps, nextState) {
|
return !is(fromJS(this.state), fromJS(nextState))
|
}
|
|
triggerDel = (item) => {
|
confirm({
|
title: `确定删除<${item.title}>吗?`,
|
content: '',
|
onOk() {
|
return new Promise(resolve => {
|
Api.getSystemConfig({
|
func: 's_custom_components_adduptdel',
|
c_id: item.uuid,
|
images: '',
|
c_name: item.title,
|
typename: sessionStorage.getItem('appType') || '',
|
long_param: '',
|
del_type: 'Y'
|
}).then(result => {
|
if (result.status) {
|
notification.success({
|
top: 92,
|
message: '删除成功!',
|
duration: 5
|
})
|
|
MKEmitter.emit('updateCustomComponent')
|
} else {
|
notification.warning({
|
top: 92,
|
message: result.message,
|
duration: 5
|
})
|
}
|
resolve()
|
})
|
})
|
},
|
onCancel() {}
|
})
|
}
|
|
render() {
|
const { menuOptions } = this.state
|
|
return (
|
<div className="mob-card-source-box">
|
{menuOptions.map((item, index) => (<SourceWrap key={index} item={item} triggerDel={this.triggerDel} />))}
|
</div>
|
)
|
}
|
}
|
|
export default ModelSource
|