king
2024-03-21 a9b02f6862522b54d0824152017bf2acfec2af7b
src/tabviews/custom/components/card/cardcellList/index.jsx
@@ -8,6 +8,7 @@
import asyncComponent from '@/utils/asyncComponent'
import { getMark } from '@/utils/utils.js'
import MkIcon from '@/components/mk-icon'
import MKEmitter from '@/utils/events.js'
import Encrypts from '@/components/encrypts'
import './index.scss'
@@ -23,6 +24,8 @@
const PrintButton = asyncComponent(() => import('@/tabviews/zshare/actionList/printbutton'))
const FuncMegvii = asyncComponent(() => import('@/tabviews/zshare/actionList/funcMegvii'))
const FuncZip = asyncComponent(() => import('@/tabviews/zshare/actionList/funczip'))
const ExportPdf = asyncComponent(() => import('@/tabviews/zshare/actionList/exportPdf'))
const ShareLink = asyncComponent(() => import('@/tabviews/zshare/actionList/shareLink'))
const EditLine = asyncComponent(() => import('@/tabviews/zshare/actionList/editLine'))
const BarCode = asyncComponent(() => import('@/components/barcode'))
const QrCode = asyncComponent(() => import('@/components/qrcode'))
@@ -76,7 +79,7 @@
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.props.data), fromJS(nextProps.data)) || (nextProps.syncData && !is(fromJS(this.props.syncData), fromJS(nextProps.syncData)))
    return !is(fromJS(this.props.data), fromJS(nextProps.data)) || (nextProps.syncData ? !is(fromJS(this.props.syncData), fromJS(nextProps.syncData)) : false)
  }
  /**
@@ -91,16 +94,45 @@
  openNewView = (e, card) => {
    const { cardCell, data, cards } = this.props
    if (data.$disabled) return
    e.stopPropagation()
    if (card.anchors && card.anchors.length > 0) {
    if (card.anchors) {
      let id = card.anchors[card.anchors.length - 1]
      let node = document.getElementById('anchor' + id)
      node && node.scrollIntoView({behavior: 'smooth', block: 'center', inline: 'nearest'})
    }
    if (!card.link || (card.linkType === 'qywx' || card.linkType === 'linkmenu')) return
    e.stopPropagation()
    if (card.linkType === 'qywx') return
    if (card.linkType === 'linkmenu') {
      if (card.linkThdMenu) {
        let __param = {
          $BID: data.$$uuid
        }
        if (card.field) {
          __param.$searchkey = card.field.toLowerCase()
          __param.$searchval = data[card.field] || ''
        }
        if (card.joint === 'true' && card.linkThdMenu.urlFields) {
          let lower = {}
          Object.keys(data).forEach(key => {
            lower[key.toLowerCase()] = data[key]
          })
          card.linkThdMenu.urlFields.split(',').forEach(field => {
            __param[field] = lower[field.toLowerCase()] || ''
          })
        }
        let tabmenu = card.linkThdMenu
        tabmenu.param = __param
        MKEmitter.emit('modifyTabs', tabmenu, true)
      }
      return
    }
    
    let url = ''
@@ -197,26 +229,37 @@
    //   })
    //   return
    // }
    let Id = ''
    if (cards.subtype === 'propcard' && cardCell) {
      Id = cardCell.setting.primaryId || ''
    } else {
      Id = data[cards.setting.primaryKey] || ''
    }
    
    if (card.joint === 'true') {
      let con = '?'
      if (/\?/ig.test(url)) {
        con = '&'
    if (/^http.+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar|.ppt)$/i.test(url)) {
      let name = url.replace(/.+\//g, '').replace(/\.{1}[^.]*$/g, '')
      let d = document.createElement('a')
      d.href = url
      d.setAttribute('download', name)
      d.setAttribute('target', '_blank')
      document.body.appendChild(d)
      d.click()
      d.remove()
    } else {
      if (card.joint === 'true') {
        let Id = ''
        if (cards.subtype === 'propcard' && cardCell) {
          Id = cardCell.setting.primaryId || ''
        } else {
          Id = data[cards.setting.primaryKey] || ''
        }
        let con = '?'
        if (/\?/ig.test(url)) {
          con = '&'
        }
        url = url + `${con}id=${Id}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}`
      }
      url = url + `${con}id=${Id}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}`
      window.open(url)
    }
    window.open(url)
  }
  getColor = (marks) => {
@@ -278,14 +321,13 @@
          _style.lineHeight = card.innerHeight + 'px'
  
          let mark = getMark(card.marks, data, _style)
          _style = mark.style
          className = mark.signType
        }
        contents.push(
          <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
            <div style={card.style}>
              <div className={'ant-mk-text line1' + className} style={{height: card.innerHeight || 'auto'}}><span className="sequence-wrap" style={_style}>{data.$Index || ''}</span></div>
              <div className={'ant-mk-text line1' + className} style={{height: card.innerHeight || 'auto'}}><span className="sequence-wrap" style={_style}>{card.prefix || ''}{data.$Index || ''}{card.postfix || ''}</span></div>
            </div>
          </div>
        )
@@ -295,38 +337,39 @@
  
        if (card.datatype === 'static') {
          val = card.value || ''
          if (/@username@|@fullName@|@mk_city@|@bid@/ig.test(val)) {
            let userName = sessionStorage.getItem('User_Name') || ''
            let fullName = sessionStorage.getItem('Full_Name') || ''
            let city = sessionStorage.getItem('city') || ''
            let bid = data.$$BID || ''
            val = val.replace(/@username@/ig, userName).replace(/@fullName@/ig, fullName).replace(/@mk_city@/ig, city).replace(/@bid@/ig, bid)
          } else if (/@month@/ig.test(val)) {
            val = val.replace(/@month@/ig, new Date().toLocaleString('en-US', { month: 'long' }))
          } else if (/@week@/ig.test(val)) {
            val = val.replace(/@week@/ig, (() => {
              let day = new Date().getDay()
              let weeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
              return weeks[day]
            })())
          } else if (/@day@/ig.test(val)) {
            val = val.replace(/@day@/ig, (() => {
              let day = new Date().getDate()
              return day < 10 ? '0' + day : day
            })())
          if (/@.+@/g.test(val)) {
            if (/@username@|@fullName@|@mk_city@|@appname@|@bid@/ig.test(val)) {
              let userName = sessionStorage.getItem('User_Name') || ''
              let fullName = sessionStorage.getItem('Full_Name') || ''
              let city = sessionStorage.getItem('city') || ''
              let appname = sessionStorage.getItem('appname') || ''
              let bid = data.$$BID || ''
              val = val.replace(/@username@/ig, userName).replace(/@fullName@/ig, fullName).replace(/@mk_city@/ig, city).replace(/@appname@/ig, appname).replace(/@bid@/ig, bid)
            } else if (/@month@/ig.test(val)) {
              val = val.replace(/@month@/ig, new Date().toLocaleString('en-US', { month: 'long' }))
            } else if (/@week@/ig.test(val)) {
              val = val.replace(/@week@/ig, (() => {
                let day = new Date().getDay()
                let weeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
                return weeks[day]
              })())
            } else if (/@day@/ig.test(val)) {
              val = val.replace(/@day@/ig, (() => {
                let day = new Date().getDate()
                return day < 10 ? '0' + day : day
              })())
            }
          }
        } else if (data.hasOwnProperty(card.field)) {
          val = data[card.field]
          val = data[card.field] + ''
        }
  
        if (!val && card.noValue === 'hide') { // 空值隐藏
          return null
        }
        if (val !== '' && card.format) {
        if (val && card.format && card.format !== 'encryption') {
          let _val = null
  
          if (card.format === 'calendar1') {
          if (val < '1949-10-02') {
            val = ''
          } else if (card.format === 'calendar1') {
            _val = moment(val).calendar(null, {
              sameDay: '[今天] ahh:mm',
              nextDay: '[明天] ahh:mm',
@@ -373,17 +416,43 @@
          } else {
            _val = moment(val).format(card.format)
          }
          // if (card.format === 'YYYY-MM-DD' && /^[1-9]\d{3}(-|\/)(0[1-9]|1[0-2])(-|\/)(0[1-9]|[1-2][0-9]|3[0-1])/.test(val)) {
          //   val = `${val.substr(0, 4)}-${val.substr(5, 2)}-${val.substr(8, 2)}`
          // }
          if (_val && _val !== 'Invalid date') {
            val = _val
          }
        }
        if (!val && card.noValue === 'hide') { // 空值隐藏
          return null
        }
  
        if (val !== '') {
          let orival = val
          if (card.linkType === 'download') {
            let url = ''
            if (card.link === 'static') {
              url = card.linkurl
            } else {
              url = data[card.linkurl]
            }
            if (/^http.+(.txt|.doc|.docx|.pdf|.xlsx|.xls|.zip|.rar)$/i.test(url)) {
              if (/pdf$/i.test(url)) {
                val = <><img src="./media/pdf.png" className="file-image" alt=""/> {val}</>
              } else if (/(.doc|.docx)$/i.test(url)) {
                val = <><img src="./media/word.png" className="file-image" alt=""/> {val}</>
              } else if (/(.xlsx|.xls)$/i.test(url)) {
                val = <><img src="./media/excel.png" className="file-image" alt=""/> {val}</>
              } else if (/(.zip|.rar)$/i.test(url)) {
                val = <><img src="./media/rar.png" className="file-image" alt=""/> {val}</>
              } else {
                val = <><img src="./media/txt.png" className="file-image" alt=""/> {val}</>
              }
            }
          }
          if (card.format === 'encryption') {
            val = <Encrypts value={val} />
          }
@@ -395,7 +464,7 @@
          }
          if (card.copyable === 'true') {
            if (card.link || (card.anchors && card.anchors.length > 0)) {
            if (card.link || card.anchors) {
              let url = orival
              if (card.link === 'static') {
@@ -418,34 +487,48 @@
        if (card.marks) {
          let mark = getMark(card.marks, data, _style)
  
          _style = mark.style
          if (mark.icon) {
            if (mark.position === 'front') {
              val = <span><MkIcon style={mark.innerStyle} type={mark.icon} /> {val}</span>
            } else {
              val = <span>{val} <MkIcon style={mark.innerStyle} type={mark.icon} /></span>
            }
          } else if (mark.space) {
            val = <><span style={{float: 'left'}} dangerouslySetInnerHTML={{__html: mark.space}}></span>{val}</>
          } else if (mark.point) {
            if (mark.position === 'front') {
              val = <>{mark.point}{val}</>
            } else {
              val = <>{val}{mark.point}</>
            }
          }
          className = mark.signType
        }
        if (card.link || (card.anchors && card.anchors.length > 0)) {
          _style.cursor = 'pointer'
        }
    
        if (card.bgImage && data[card.bgImage]) {
          _style.backgroundImage = `url('${data[card.bgImage]}')`
        }
        contents.push(
          <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
            <div style={_style} onClick={(e) => {this.openNewView(e, card)}}>
              {card.alignItems ? <TextCell card={card} className={'ant-mk-text line' + (card.height || '') + className} value={val}/> :
              <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight}}>{val}</div>}
        if (!data.$disabled && (card.link || card.anchors)) {
          _style.cursor = 'pointer'
          contents.push(
            <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <div style={_style} onClick={(e) => {this.openNewView(e, card)}}>
                {card.alignItems ? <TextCell card={card} className={'ant-mk-text line' + (card.height || '') + className} value={val}/> :
                <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight}}>{val}</div>}
              </div>
            </div>
          </div>
        )
          )
        } else {
          contents.push(
            <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <div style={_style}>
                {card.alignItems ? <TextCell card={card} className={'ant-mk-text line' + (card.height || '') + className} value={val}/> :
                <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight}}>{val}</div>}
              </div>
            </div>
          )
        }
      } else if (card.eleType === 'number') {
        let val = ''
        let _style = {...card.style}
@@ -500,13 +583,19 @@
        if (card.marks) {
          let mark = getMark(card.marks, data, _style)
  
          _style = mark.style
          if (mark.icon) {
            if (mark.position === 'front') {
              val = <span><MkIcon style={mark.innerStyle} type={mark.icon} /> {val}</span>
            } else {
              val = <span>{val} <MkIcon style={mark.innerStyle} type={mark.icon} /></span>
            }
          } else if (mark.space) {
            val = <><span style={{float: 'left'}} dangerouslySetInnerHTML={{__html: mark.space}}></span>{val}</>
          } else if (mark.point) {
            if (mark.position === 'front') {
              val = <>{mark.point}{val}</>
            } else {
              val = <>{val}{mark.point}</>
            }
          }
          className = mark.signType
@@ -607,10 +696,8 @@
        let url = ''
        if (card.maxWidth) {
          _style.maxWidth = card.maxWidth
          if (_style.marginLeft === '0px') {
          if (_style.marginLeft === '0px' && _style.marginRight === '0px') {
            delete _style.marginLeft
          }
          if (_style.marginRight === '0px') {
            delete _style.marginRight
          }
        }
@@ -639,20 +726,31 @@
        _imagestyle.backgroundPosition = _style.backgroundPosition || 'center'
        _imagestyle.backgroundRepeat = _style.backgroundRepeat || 'no-repeat'
  
        if (card.link) {
          _style.cursor = 'pointer'
        if (_style.position === 'absolute') {
          _style.width = '100%'
        }
        let scale = url && card.scale === 'true'
        let urls = url ? url.split(',').filter(Boolean) : ['']
        urls.forEach((u, i) => {
          contents.push(<div className={'ant-col ant-col-' + card.width} key={card.uuid + i} style={_style_} span={card.width}>
            <div style={_style} onClick={(e) => {this.openNewView(e, card)}}>
              <MkPicture style={_imagestyle} scale={scale} url={u} urls={urls}/>
            </div>
          </div>)
        })
        if (card.link && !data.$disabled) {
          _style.cursor = 'pointer'
          urls.forEach((u, i) => {
            contents.push(<div className={'ant-col ant-col-' + card.width} key={card.uuid + i} style={_style_} span={card.width}>
              <div style={_style} onClick={(e) => {this.openNewView(e, card)}}>
                <MkPicture style={_imagestyle} lostTip={card.lostTip !== 'false'} scale={scale} url={u} urls={urls}/>
              </div>
            </div>)
          })
        } else {
          urls.forEach((u, i) => {
            contents.push(<div className={'ant-col ant-col-' + card.width} key={card.uuid + i} style={_style_} span={card.width}>
              <div style={_style}>
                <MkPicture style={_imagestyle} lostTip={card.lostTip !== 'false'} scale={scale} url={u} urls={urls}/>
              </div>
            </div>)
          })
        }
      } else if (card.eleType === 'splitline') {
        let _borderWidth = card.borderWidth === undefined ? 1 : card.borderWidth
        _style_ = _style_ || {}
@@ -769,14 +867,17 @@
            _data = [data]
          }
          let _val = card.formula
          if (/@username@|@fullName@|@bid@/ig.test(_val)) {
            _val = _val.replace(/@username@/ig, sessionStorage.getItem('User_Name') || '').replace(/@fullName@/ig, sessionStorage.getItem('Full_Name') || '').replace(/@bid@/ig, data.$$BID || '')
          }
          try {
            // eslint-disable-next-line
            let func = new Function('data', card.formula)
            let func = new Function('data', _val)
            val = func(_data)
          } catch (e) {
            if (window.debugger) {
              console.warn(e)
            }
            console.warn(e)
            val = ''
          }
        } else if (card.$sync) {
@@ -794,10 +895,8 @@
                // eslint-disable-next-line
                _val = eval(_val)
              } catch (e) {
                if (window.debugger) {
                  console.info(_val)
                  console.warn(e)
                }
                console.info(_val)
                console.warn(e)
                _val = 0
              }
            }
@@ -806,10 +905,13 @@
  
            val += _val
          })
        } else if (data && data.$$empty) {
        } else if (data && data.$$empty && /@.*@/.test(card.formula)) {
          val = ''
        } else if (data) {
          let _val = card.formula
          if (/@username@|@fullName@|@bid@/ig.test(_val)) {
            _val = _val.replace(/@username@/ig, sessionStorage.getItem('User_Name') || '').replace(/@fullName@/ig, sessionStorage.getItem('Full_Name') || '').replace(/@bid@/ig, data.$$BID || '')
          }
          Object.keys(data).forEach(key => {
            let reg = new RegExp('@' + key + '@', 'ig')
            _val = _val.replace(reg, data[key])
@@ -820,10 +922,8 @@
              // eslint-disable-next-line
              _val = eval(_val)
            } catch (e) {
              if (window.debugger) {
                console.info(_val)
                console.warn(e)
              }
              console.info(_val)
              console.warn(e)
              _val = ''
            }
          }
@@ -874,13 +974,19 @@
        if (card.marks) {
          let mark = getMark(card.marks, data, _style)
  
          _style = mark.style
          if (mark.icon) {
            if (mark.position === 'front') {
              val = <span><MkIcon style={mark.innerStyle} type={mark.icon} /> {val}</span>
            } else {
              val = <span>{val} <MkIcon style={mark.innerStyle} type={mark.icon} /></span>
            }
          } else if (mark.space) {
            val = <><span style={{float: 'left'}} dangerouslySetInnerHTML={{__html: mark.space}}></span>{val}</>
          } else if (mark.point) {
            if (mark.position === 'front') {
              val = <>{mark.point}{val}</>
            } else {
              val = <>{val}{mark.point}</>
            }
          }
          className = mark.signType
@@ -953,153 +1059,138 @@
        } else if (data.$$empty) {
          _data = []
        }
        let name = ''
        if (card.showName) {
          name = data[card.showName] || ' '
        }
        _style_ = _style_ || {}
        if (card.wrapStyle) {
          _style_ = {..._style_, ...card.wrapStyle}
        }
        let MkButton = null
  
        if (['exec', 'prompt', 'pop', 'form'].includes(card.OpenType)) {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <NormalButton
                btn={card}
                BID={data.$$BID}
                BData={data.$$BData || ''}
                disabled={_disabled}
                setting={cards.setting}
                columns={cards.columns}
                selectedData={_data}
              />
            </div>
          )
          MkButton = <NormalButton
            btn={card}
            name={name}
            BID={data.$$BID}
            BData={data.$$BData || ''}
            disabled={_disabled}
            setting={cards.setting}
            columns={cards.columns}
            selectedData={_data}
          />
        } else if (card.OpenType === 'excelIn') {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <ExcelInButton
                btn={card}
                BID={data.$$BID}
                BData={data.$$BData || ''}
                disabled={_disabled}
                setting={cards.setting}
                selectedData={_data}
              />
            </div>
          )
          MkButton = <ExcelInButton
            btn={card}
            BID={data.$$BID}
            BData={data.$$BData || ''}
            disabled={_disabled}
            setting={cards.setting}
            selectedData={_data}
          />
        } else if (card.OpenType === 'excelOut') {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <ExcelOutButton
                btn={card}
                BID={data.$$BID}
                BData={data.$$BData || ''}
                disabled={_disabled}
                setting={cards.setting}
                selectedData={_data}
              />
            </div>
          )
          MkButton = <ExcelOutButton
            btn={card}
            BID={data.$$BID}
            BData={data.$$BData || ''}
            disabled={_disabled}
            setting={cards.setting}
            selectedData={_data}
          />
        } else if (card.OpenType === 'popview') {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <PopupButton
                btn={card}
                BID={data.$$BID}
                BData={data.$$BData || ''}
                disabled={_disabled}
                setting={cards.setting}
                selectedData={_data}
              />
            </div>
          )
          MkButton = <PopupButton
            btn={card}
            name={name}
            BID={data.$$BID}
            BData={data.$$BData || ''}
            disabled={_disabled}
            setting={cards.setting}
            selectedData={_data}
          />
        } else if (card.OpenType === 'tab') {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <TabButton
                btn={card}
                BID={data.$$BID}
                BData={data.$$BData || ''}
                disabled={_disabled}
                selectedData={_data}
              />
            </div>
          )
          MkButton = <TabButton
            btn={card}
            name={name}
            BID={data.$$BID}
            BData={data.$$BData || ''}
            disabled={_disabled}
            selectedData={_data}
          />
        } else if (card.OpenType === 'innerpage') {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              <NewPageButton
                btn={card}
                BID={data.$$BID}
                BData={data.$$BData || ''}
                disabled={_disabled}
                selectedData={_data}
              />
            </div>
          )
          MkButton = <NewPageButton
            btn={card}
            name={name}
            BID={data.$$BID}
            BData={data.$$BData || ''}
            disabled={_disabled}
            selectedData={_data}
          />
        } else if (card.OpenType === 'funcbutton') {
          if (card.funcType === 'changeuser' || card.funcType === 'closetab') {
            contents.push(
              <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
                <ChangeUserButton
                  btn={card}
                  BID={data.$$BID}
                  BData={data.$$BData || ''}
                  disabled={_disabled}
                  setting={cards.setting}
                  selectedData={_data}
                />
              </div>
            )
            MkButton = <ChangeUserButton
              btn={card}
              BID={data.$$BID}
              BData={data.$$BData || ''}
              disabled={_disabled}
              setting={cards.setting}
              selectedData={_data}
            />
          } else if (card.funcType === 'print') {
            contents.push(
              <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
                <PrintButton
                  btn={card}
                  BID={data.$$BID}
                  BData={data.$$BData || ''}
                  disabled={_disabled}
                  setting={cards.setting}
                  columns={cards.columns}
                  selectedData={_data}
                />
              </div>
            )
            MkButton = <PrintButton
              btn={card}
              BID={data.$$BID}
              BData={data.$$BData || ''}
              disabled={_disabled}
              setting={cards.setting}
              columns={cards.columns}
              selectedData={_data}
            />
          } else if (card.funcType === 'megvii') {
            contents.push(
              <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
                <FuncMegvii
                  btn={card}
                  BID={data.$$BID}
                  disabled={_disabled}
                  setting={cards.setting}
                  selectedData={_data}
                />
              </div>
            )
            MkButton = <FuncMegvii
              btn={card}
              BID={data.$$BID}
              disabled={_disabled}
              setting={cards.setting}
              selectedData={_data}
            />
          } else if (card.funcType === 'filezip') {
            contents.push(
              <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
                <FuncZip
                  btn={card}
                  BID={data.$$BID}
                  disabled={_disabled}
                  setting={cards.setting}
                  selectedData={_data}
                />
              </div>
            )
            MkButton = <FuncZip
              btn={card}
              BID={data.$$BID}
              BData={data.$$BData || ''}
              disabled={_disabled}
              setting={cards.setting}
              selectedData={_data}
            />
          } else if (card.funcType === 'expPdf') {
            MkButton = <ExportPdf
              btn={card}
            />
          } else if (card.funcType === 'shareLink') {
            MkButton = <ShareLink
              BID={data.$$BID}
              btn={card}
              selectedData={_data}
            />
          } else if (card.funcType === 'addline' || card.funcType === 'delline') {
            contents.push(
              <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
                <EditLine
                  btn={card}
                  disabled={_disabled}
                  selectedData={_data}
                />
              </div>
            )
            MkButton = <EditLine
              btn={card}
              disabled={_disabled}
              selectedData={_data}
            />
          }
        }
        if (MkButton) {
          contents.push(
            <div className={'ant-col mk-cell-btn ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}>
              {MkButton}
            </div>
          )
        }
      }
    })