From 72419e2f826031a158173f46d723a672064e37cd Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 31 八月 2021 22:42:51 +0800
Subject: [PATCH] 2021-08-31

---
 src/menu/components/card/cardcellcomponent/dragaction/card.jsx |   59 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 46 insertions(+), 13 deletions(-)

diff --git a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx
index bff2d66..ce5e4d4 100644
--- a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx
+++ b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx
@@ -8,16 +8,23 @@
 import demo3 from '@/assets/img/demo3.jpg'
 import demo4 from '@/assets/img/demo4.jpg'
 import demo5 from '@/assets/img/demo5.jpg'
+import MKEmitter from '@/utils/events.js'
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
-
+import { resetStyle } from '@/utils/utils-custom.js'
 import './index.scss'
 
 const BarCode = asyncComponent(() => import('@/components/barcode'))
 const QrCode = asyncComponent(() => import('@/components/qrcode'))
-const MarkColumn = asyncIconComponent(() => import('@/menu/components/table/normal-table/columns/markcolumn'))
+const Video = asyncComponent(() => import('@/components/video'))
+const MarkColumn = asyncIconComponent(() => import('@/menu/components/share/markcomponent'))
+const PicRadio = {
+  '4:3': '75%', '3:2': '66.67%', '16:9': '56.25%', '2:1': '50%', '3:1': '33.33%', '4:1': '25%',
+  '5:1': '20%', '6:1': '16.67%', '7:1': '14.29%', '8:1': '12.5%', '9:1': '11.11%',
+  '10:1': '10%', '3:4': '133.33%', '2:3': '150%', '9:16': '177.78%'
+}
 
-const Card = ({ id, fields, card, moveCard, findCard, editCard, delCard, copyCard, changeStyle, updateMarks }) => {
+const Card = ({ id, parent, fields, card, moveCard, findCard, editCard, delCard, copyCard, changeStyle, updateMarks }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
     item: { type: 'action', id, originalIndex },
@@ -43,6 +50,17 @@
   
   if (card.style) {
     _style = {...card.style, opacity: isDragging ? 0 : 1}
+    _style = resetStyle(_style)
+  }
+  if (card.eleType === 'picture' && card.maxWidth) {
+    _style.maxWidth = card.maxWidth
+    let left = _style.marginLeft && _style.marginLeft !== '0px' ? _style.marginLeft : 'auto'
+    let right = _style.marginRight && _style.marginRight !== '0px' ? _style.marginRight : 'auto'
+    _style.margin = (_style.marginTop || 0) + ' ' + right + ' ' + (_style.marginBottom || 0) + ' ' + left
+    delete _style.marginLeft
+    delete _style.marginRight
+    delete _style.marginTop
+    delete _style.marginBottom
   }
 
   const getContent = () => {
@@ -53,7 +71,7 @@
     } else if (card.eleType === 'text' || card.eleType === 'number') {
       let val = `${card.prefix || ''}${card.datatype === 'static' ? (card.value || '') : (card.field || '')}${card.postfix || ''}`
       return (
-        <div className={'ant-mk-text line' + card.height} style={{height: card.innerHeight || 21}}>{val}</div>
+        <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div>
       )
     } else if (card.eleType === 'icon') {
       return (<Icon type={card.icon}/>)
@@ -83,12 +101,8 @@
         _imagestyle.borderRadius = card.style.borderRadius
       }
 
-      if (card.lenWidRadio === '16:9') {
-        _imagestyle.paddingTop = '56.25%'
-      } else if (card.lenWidRadio === '3:2') {
-        _imagestyle.paddingTop = '66.67%'
-      } else if (card.lenWidRadio === '4:3') {
-        _imagestyle.paddingTop = '75%'
+      if (PicRadio[card.lenWidRadio]) {
+        _imagestyle.paddingTop = PicRadio[card.lenWidRadio]
       } else {
         _imagestyle.paddingTop = '100%'
       }
@@ -115,27 +129,46 @@
           <QrCode card={card} value={card.value || 'mksoft'}/>
         </div>
       )
+    } else if (card.eleType === 'video') {
+      return (
+        <div>
+          <Video card={card} value={card.url || 'http://qingqiumarket.cn/mkwms/Content/images/upload/20210104/trailer.mp4'}/>
+        </div>
+      )
     } else if (card.eleType === 'currentDate') {
       return (
         <div className="ant-mk-date">
           {`${card.prefix || ''}${moment().format(card.dateFormat)}${card.postfix || ''}`}
         </div>
       )
+    } else if (card.eleType === 'formula') {
+      return (
+        <div className="ant-mk-date">
+          {`${card.prefix || ''}${card.formula}${card.postfix || ''}`}
+        </div>
+      )
+    }
+  }
+
+  const clickComponent = (e) => {
+    if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'cardcell') {
+      e.stopPropagation()
+      MKEmitter.emit('clickComponent', card, parent, 'cardcell')
     }
   }
 
   return (
     <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
-      <div className="mk-popover-control">
+      <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}>
         <Icon className="edit" title="缂栬緫" type="edit" onClick={() => editCard(id)} />
         <Icon className="copy" title="澶嶅埗" type="copy" onClick={() => copyCard(id)} />
         <Icon className="close" title="鍒犻櫎" type="close" onClick={() => delCard(id)} />
         <Icon className="style" title="璋冩暣鏍峰紡" onClick={() => changeStyle(id)} type="font-colors" />
-        {['text', 'number'].includes(card.eleType) ? <MarkColumn columns={fields} marks={card.marks} onSubmit={(vals) => updateMarks({...card, marks: vals})} /> : null }
+        {['text', 'number', 'slider', 'sequence', 'formula'].includes(card.eleType) ? <MarkColumn columns={fields} type={card.eleType} marks={card.marks} onSubmit={(vals) => updateMarks({...card, marks: vals})} /> : null }
       </div>
     } trigger="hover">
       <div ref={node => drag(drop(node))} className={'ant-col card-cell ant-col-' + card.width}>
-        <div style={_style}>
+        <div style={_style} onClick={clickComponent} id={card.uuid}>
           {getContent()}
         </div>
       </div>

--
Gitblit v1.8.0