From 31ec63f0419895876cbaba99637a884a32d33d0d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 01 九月 2021 10:31:45 +0800
Subject: [PATCH] 2021-09-01

---
 src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx |   77 ++++++++++++++++++++------------------
 1 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx b/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
index ddd5807..416646d 100644
--- a/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
+++ b/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
@@ -1,14 +1,16 @@
 import React from 'react'
 import { useDrag, useDrop } from 'react-dnd'
-import { Icon, Select, DatePicker, Input, Popover } from 'antd'
+import { Icon, Select, DatePicker, Input, Popover, Form } from 'antd'
 import moment from 'moment'
 
 import DateGroup from '../dategroup'
+import asyncComponent from '@/utils/asyncComponent'
 import './index.scss'
 
 const { MonthPicker, WeekPicker, RangePicker } = DatePicker
+const CheckCard = asyncComponent(() => import('@/templates/modalconfig/checkCard'))
 
-const Card = ({ id, card, moveCard, copyCard, findCard, editCard, delCard }) => {
+const Card = ({ id, card, showField, moveCard, copyCard, findCard, editCard, delCard }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
     item: { type: 'search', id, originalIndex },
@@ -51,10 +53,34 @@
       try {
         let _initval = JSON.parse(card.initval)
         _defaultValue = [moment().subtract(_initval[0], 'days'), moment().subtract(_initval[1], 'days')]
-      } catch {
+      } catch (e) {
         _defaultValue = [null, null]
       }
     }
+  }
+
+  let formItem = null
+  if (card.type === 'text') {
+    formItem = (<Input style={{marginTop: '4px'}} placeholder={card.labelShow === 'false' ? card.label : ''} value={card.initval} />)
+  } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') {
+    formItem = (<Select value={_defaultValue}></Select>)
+  } else if (card.type === 'date') {
+    formItem = (<DatePicker value={card.initval ? moment().subtract(card.initval, 'days') : null} />)
+  } else if (card.type === 'dateweek') {
+    formItem = (<WeekPicker value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} />)
+  } else if (card.type === 'datemonth') {
+    formItem = (<MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} />)
+  } else if (card.type === 'daterange') {
+    formItem = (<RangePicker
+      className="data-range"
+      placeholder={['BeginTime', 'EndTime']}
+      renderExtraFooter={() => 'extra footer'}
+      value={_defaultValue}
+    />)
+  } else if (card.type === 'group') {
+    formItem = (<DateGroup card={card} />)
+  } else if (card.type === 'checkcard') {
+    formItem = <CheckCard config={card} />
   }
 
   return (
@@ -65,40 +91,17 @@
         <Icon className="close" title="delete" type="close" onClick={() => delCard(id)} />
       </div>
     } trigger="hover">
-      <div className="page-card" style={{ opacity: opacity}}>
-        <div ref={node => drag(drop(node))}>
-          <div className="ant-row ant-form-item">
-            <div className="ant-col ant-form-item-label ant-col-xs-24 ant-col-sm-8">
-              <label className={card.required === 'true' ? 'ant-form-item-required' : ''} title={card.label}>{card.label}</label>
-            </div>
-            <div className="ant-col ant-form-item-control-wrapper ant-col-xs-24 ant-col-sm-16">
-              {card.type === 'text' ?
-                <Input style={{marginTop: '4px'}} value={card.initval} /> : null
-              }
-              {(card.type === 'multiselect' || card.type === 'select' || card.type === 'link') ?
-                <Select value={_defaultValue}></Select> : null
-              }
-              {card.type === 'date' ?
-                <DatePicker value={card.initval ? moment().subtract(card.initval, 'days') : null} /> : null
-              }
-              {card.type === 'dateweek' ?
-                <WeekPicker value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} /> : null
-              }
-              {card.type === 'datemonth' ?
-                <MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} /> : null
-              }
-              {card.type === 'daterange' ?
-                <RangePicker
-                  className="data-range"
-                  placeholder={['BeginTime', 'EndTime']}
-                  renderExtraFooter={() => 'extra footer'}
-                  value={_defaultValue}
-                /> : null
-              }
-              {card.type === 'group' ? <DateGroup card={card} /> : null }
-              <div className="input-mask"></div>
-            </div>
-          </div>
+      <div className={'page-card ' + (card.labelShow || '')} style={{ opacity: opacity}}>
+        <div ref={node => drag(drop(node))} onDoubleClick={() => editCard(id)}>
+          <Form.Item
+            labelCol={{xs: { span: 24 }, sm: { span: 8 }}}
+            wrapperCol = {{xs: { span: 24 }, sm: { span: 16 }}}
+            label={card.labelShow !== 'false' ? card.label : ''}
+            required={card.required === 'true'}
+            help={showField ? card.field + (card.datefield ? ', ' + card.datefield : '') : ''}
+          >
+            {formItem}
+          </Form.Item>
         </div>
       </div>
     </Popover>

--
Gitblit v1.8.0