From 944730f2794b87aa053f53084f0d082d4af6fd41 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 29 十月 2020 19:03:30 +0800 Subject: [PATCH] 2020-10-29 --- src/tabviews/custom/components/card/cardcellList/index.jsx | 217 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 190 insertions(+), 27 deletions(-) diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index 23ed5e1..8375248 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -1,19 +1,31 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Button, Icon, Col, Tooltip } from 'antd' +import { Icon, Col, Tooltip, notification } from 'antd' import zhCN from '@/locales/zh-CN/model.js' import enUS from '@/locales/en-US/model.js' +import asyncComponent from './asyncButtonComponent' import './index.scss' +const NormalButton = asyncComponent(() => import('@/tabviews/zshare/actionList/normalbutton')) +const ExcelInButton = asyncComponent(() => import('@/tabviews/zshare/actionList/excelInbutton')) +const ExcelOutButton = asyncComponent(() => import('@/tabviews/zshare/actionList/exceloutbutton')) +const PopupButton = asyncComponent(() => import('@/tabviews/zshare/actionList/popupbutton')) +const TabButton = asyncComponent(() => import('@/tabviews/zshare/actionList/tabbutton')) +const NewPageButton = asyncComponent(() => import('@/tabviews/zshare/actionList/newpagebutton')) +const ChangeUserButton = asyncComponent(() => import('@/tabviews/zshare/actionList/changeuserbutton')) +const PrintButton = asyncComponent(() => import('@/tabviews/zshare/actionList/printbutton')) + class CardCellComponent extends Component { static propTpyes = { + BID: PropTypes.any, // 涓婄骇ID cards: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 cardCell: PropTypes.object, data: PropTypes.object, elements: PropTypes.array, // 鍏冪礌闆� + updateStatus: PropTypes.func, // 鐘舵�佹洿鏂� } state = { @@ -46,8 +58,38 @@ } } + openNewView = (card, url) => { + const { cardCell, data, cards } = this.props + if (!url) { + notification.warning({ + top: 92, + message: '鍦板潃閾炬帴涓嶅彲涓虹┖锛�', + duration: 5 + }) + return + } + let Id = '' + let con = '?' + + if (/\?/ig.test(url)) { + con = '&' + } + + if (cards.subtype === 'propcard') { + Id = cardCell.setting.primaryId || '' + } else { + Id = data[cards.setting.primaryKey] || '' + } + + if (card.joint === 'true') { + url = url + `${con}id=${Id}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` + } + + window.open(url) + } + getContent = (card) => { - const { data } = this.props + const { data, BID, cards } = this.props if (card.eleType === 'text' || card.eleType === 'number') { let val = '' @@ -64,7 +106,29 @@ return ( <Col key={card.uuid} span={card.width}> - <div style={card.style}>{val}</div> + <div style={card.style}> + <div className={'ant-mk-text line' + card.height} style={{height: card.innerHeight || 21}}>{val}</div> + </div> + </Col> + ) + } else if (card.eleType === 'link') { + let url = '' + + if (card.datatype === 'static') { + url = card.value + } else if (data.hasOwnProperty(card.field)) { + url = data[card.field] + } + + let val = card.label || url + + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <div className={'ant-mk-text line' + card.height} style={{height: card.innerHeight || 21}}> + <span style={{cursor: 'pointer'}} onClick={(e) => {e.stopPropagation(); this.openNewView(card, url)}}>{val}</span> + </div> + </div> </Col> ) } else if (card.eleType === 'icon') { @@ -154,41 +218,140 @@ return ( <Col key={card.uuid} span={card.width}> <div style={card.style}> - <div className="ant-mk-splitline" style={{backgroundColor: card.color}}></div> + <div className="ant-mk-splitline" style={{borderColor: card.color}}></div> </div> </Col> ) } else if (card.eleType === 'button') { - if (card.show === 'icon') { + if (['exec', 'prompt', 'pop'].includes(card.OpenType)) { return ( <Col key={card.uuid} span={card.width}> <div style={card.style}> - <Button className={'mk-link mk-' + card.class} style={card.btnstyle} type="link"><Icon type={card.icon}/></Button> - </div> - </Col> - ) - } else if (card.show === 'link') { - return ( - <Col key={card.uuid} span={card.width}> - <div style={card.style}> - <Button className={'mk-link mk-' + card.class} style={card.btnstyle} type="link">{card.label}{card.icon ? <Icon type={card.icon}/> : null}</Button> - </div> - </Col> - ) - } else { - return ( - <Col key={card.uuid} span={card.width}> - <div style={card.style}> - <Button - className={'mk-btn mk-' + card.class} - icon={card.icon} + <NormalButton + BID={BID} + btn={card} + show={card.show} style={card.btnstyle} - > - {card.label} - </Button> + setting={cards.setting} + columns={cards.columns} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> </div> </Col> ) + } else if (card.OpenType === 'excelIn') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <ExcelInButton + BID={BID} + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } else if (card.OpenType === 'excelOut') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <ExcelOutButton + BID={BID} + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + // getexceloutparam={getexceloutparam} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } else if (card.OpenType === 'popview') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <PopupButton + BID={BID} + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } else if (card.OpenType === 'tab') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <TabButton + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } else if (card.OpenType === 'innerpage') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <NewPageButton + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } else if (card.OpenType === 'funcbutton') { + if (card.funcType === 'changeuser') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <ChangeUserButton + BID={BID} + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } else if (card.funcType === 'print') { + return ( + <Col key={card.uuid} span={card.width}> + <div style={card.style}> + <PrintButton + BID={BID} + btn={card} + show={card.show} + style={card.btnstyle} + setting={cards.setting} + selectedData={[data]} + updateStatus={this.props.updateStatus} + /> + </div> + </Col> + ) + } } } } -- Gitblit v1.8.0