| | |
| | | dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, |
| | | visible: false, |
| | | loading: false, |
| | | name: '' |
| | | name: '', |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | |
| | | |
| | | trigger = () => { |
| | | const { config } = this.props |
| | | |
| | | |
| | | this.setState({ |
| | | visible: true, |
| | | loading: false, |
| | |
| | | }) |
| | | } |
| | | |
| | | getUserComponent = () => { |
| | | let config = fromJS(this.props.config).toJS() |
| | | let _config = {} |
| | | |
| | | _config.wrap = config.wrap || {} |
| | | _config.type = config.type || '' |
| | | _config.subtype = config.subtype || '' |
| | | _config.style = config.style || {} |
| | | _config.subcards = config.subcards || [] |
| | | _config.headerStyle = config.headerStyle || {} |
| | | _config.action = config.action || [] |
| | | _config.search = config.search || [] |
| | | _config.cols = config.cols || [] |
| | | _config.plot = config.plot || {} |
| | | |
| | | _config.width = _config.wrap.width || _config.plot.width || config.width || 24 |
| | | |
| | | _config.subcards = _config.subcards.map(card => { |
| | | if (card.elements) { |
| | | card.elements = card.elements.map(item => this.resetElement(item)) |
| | | } |
| | | if (card.backElements) { |
| | | card.backElements = card.backElements.map(item => this.resetElement(item)) |
| | | } |
| | | return card |
| | | }) |
| | | _config.action = _config.action.map(item => { |
| | | item.verify = null |
| | | return item |
| | | }) |
| | | _config.search = _config.search.map(item => { |
| | | if (item.resourceType === '1') { |
| | | item.resourceType = '0' |
| | | item.dataSource = '' |
| | | item.valueText = '' |
| | | item.valueText = '' |
| | | item.options = '' |
| | | } |
| | | item.blacklist = [] |
| | | return item |
| | | }) |
| | | |
| | | _config.cols = _config.cols.map(col => { |
| | | if (col.type === 'colspan' && col.subcols) { |
| | | col = this.loopCol(col) |
| | | } else if (col.type === 'custom' && col.elements) { |
| | | col.elements = col.elements.map(cell => this.resetElement(cell)) |
| | | } else if (col.type === 'action' && col.elements) { |
| | | col.elements = col.elements.map(cell => { |
| | | cell.verify = null |
| | | return cell |
| | | }) |
| | | } |
| | | col.marks = null |
| | | return col |
| | | }) |
| | | |
| | | return _config |
| | | } |
| | | |
| | | loopCol = (col) => { |
| | | col.subcols = col.subcols.map(c => { |
| | | if (c.type === 'colspan' && c.subcols) { |
| | | c = this.loopCol(c) |
| | | } else if (c.type === 'custom' && c.elements) { |
| | | c.elements = c.elements.map(cell => this.resetElement(cell)) |
| | | } |
| | | c.marks = null |
| | | return c |
| | | }) |
| | | |
| | | return col |
| | | } |
| | | |
| | | resetElement = (item) => { |
| | | item.marks = null |
| | | item.verify = null |
| | | |
| | | if (item.datatype === 'dynamic') { |
| | | if (item.eleType === 'icon') { |
| | | item.tooltip = item.field |
| | | } else if (item.eleType === 'slider') { |
| | | item.value = 50 |
| | | } else { |
| | | item.value = item.field |
| | | } |
| | | |
| | | item.datatype = 'static' |
| | | item.field = '' |
| | | } |
| | | if (item.link === 'dynamic') { |
| | | item.link = 'static' |
| | | } |
| | | return item |
| | | } |
| | | |
| | | submit = () => { |
| | | const { config } = this.props |
| | | |
| | | this.verifyRef.handleConfirm().then(res => { |
| | | this.setState({loading: true}) |
| | | document.getElementsByClassName('menu-view')[0].classList.add('saving') |
| | | |
| | | html2canvas(document.getElementById(config.uuid)).then(canvas => { |
| | | let img = canvas.toDataURL('image/png') // 获取生成的图片 |
| | | Api.fileuploadbase64(img, 'cloud').then(result => { |
| | | if (result.status) { |
| | | Api.getSystemConfig({ |
| | | func: 's_custom_components_adduptdel', |
| | | c_id: config.uuid, |
| | | images: Utils.getcloudurl(result.Images), |
| | | c_name: res.name, |
| | | long_param: window.btoa(window.encodeURIComponent(JSON.stringify(config))), |
| | | del_type: '' |
| | | }).then(response => { |
| | | if (response.status) { |
| | | this.setState({loading: false, visible: false}) |
| | | notification.success({ |
| | | top: 92, |
| | | message: '保存成功', |
| | | duration: 2 |
| | | }) |
| | | document.getElementsByClassName('menu-view')[0].classList.remove('saving') |
| | | MKEmitter.emit('updateCustomComponent') |
| | | } else { |
| | | this.setState({loading: false}) |
| | | notification.warning({ |
| | | top: 92, |
| | | message: response.message, |
| | | duration: 5 |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | this.setState({loading: false}) |
| | | notification.warning({ |
| | | top: 92, |
| | | message: result.ErrMesg, |
| | | duration: 5 |
| | | }) |
| | | } |
| | | this.setState({loading: true}) |
| | | setTimeout(() => { |
| | | let template = this.getUserComponent() |
| | | html2canvas(document.getElementById(config.uuid)).then(canvas => { |
| | | let img = canvas.toDataURL('image/png') // 获取生成的图片 |
| | | Api.fileuploadbase64(img, 'cloud').then(result => { |
| | | if (result.status) { |
| | | Api.getSystemConfig({ |
| | | func: 's_custom_components_adduptdel', |
| | | c_id: config.uuid, |
| | | images: Utils.getcloudurl(result.Images), |
| | | c_name: res.name, |
| | | long_param: window.btoa(window.encodeURIComponent(JSON.stringify(template))), |
| | | del_type: '' |
| | | }).then(response => { |
| | | if (response.status) { |
| | | this.setState({loading: false, visible: false}) |
| | | notification.success({ |
| | | top: 92, |
| | | message: '保存成功', |
| | | duration: 2 |
| | | }) |
| | | document.getElementsByClassName('menu-view')[0].classList.remove('saving') |
| | | MKEmitter.emit('updateCustomComponent') |
| | | } else { |
| | | this.setState({loading: false}) |
| | | notification.warning({ |
| | | top: 92, |
| | | message: response.message, |
| | | duration: 5 |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | this.setState({loading: false}) |
| | | notification.warning({ |
| | | top: 92, |
| | | message: result.ErrMesg, |
| | | duration: 5 |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | }) |
| | | }, 300) |
| | | }) |
| | | } |
| | | |