From 8a1ee7d651500f848a3c2f05c7fe3be2b7114a43 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 10 四月 2024 00:47:56 +0800
Subject: [PATCH] 2024-04-10

---
 src/menu/components/card/cardcellcomponent/elementform/index.jsx |   93 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 64 insertions(+), 29 deletions(-)

diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx
index 651535c..ae23509 100644
--- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx
+++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx
@@ -1,7 +1,7 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader, Popover, message } from 'antd'
+import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader, Popover, message, AutoComplete } from 'antd'
 import { QuestionCircleOutlined } from '@ant-design/icons'
 
 import { formRule } from '@/utils/option.js'
@@ -61,7 +61,7 @@
       formlist: formlist.map(item => {
         item.hidden = !_options.includes(item.key)
 
-        if (item.key === 'field' || item.key === 'linkurl' || item.key === 'bgImage' || item.key === 'posterField') {
+        if ((item.key === 'field' || item.key === 'linkurl' || item.key === 'bgImage' || item.key === 'posterField') && item.type === 'select') {
           item.options = []
           
           if (side === 'sub') {
@@ -156,7 +156,7 @@
           item.required = card.eleType !== 'qrcode'
         }
         if (item.key === 'linkurl') {
-          item.type = card.link === 'dynamic' ? 'select' : 'textarea'
+          item.type = card.link === 'dynamic' ? item.defType : 'textarea'
         }
 
         return item
@@ -264,7 +264,7 @@
         item.initVal = this.record[item.key]
         item.hidden = !_options.includes(item.key)
 
-        if (item.key === 'field') {
+        if (item.key === 'field' && item.type === 'select') {
           item.options = []
 
           if (side === 'sub') {
@@ -364,7 +364,7 @@
           item.hidden = !_options.includes(item.key)
 
           if (item.key === 'linkurl') {
-            item.type = value === 'dynamic' ? 'select' : 'textarea'
+            item.type = value === 'dynamic' ? item.defType : 'textarea'
           }
           return item
         })
@@ -399,30 +399,65 @@
       if (item.hidden || item.forbid) return
 
       if (item.type === 'text') {
-        fields.push(
-          <Col span={12} key={index}>
-            <Form.Item label={item.tooltip ?
-              <Tooltip placement="topLeft" title={item.tooltip}>
-                <QuestionCircleOutlined className="mk-form-tip" />
-                {item.label}
-              </Tooltip> : item.label
-            }>
-              {getFieldDecorator(item.key, {
-                initialValue: item.initVal || '',
-                rules: [
-                  {
-                    required: item.readonly ? false : !!item.required,
-                    message: '璇疯緭鍏�' + item.label + '!'
-                  },
-                  {
-                    max: formRule.input.max,
-                    message: formRule.input.message
-                  }
-                ]
-              })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)}
-            </Form.Item>
-          </Col>
-        )
+        if (item.options && item.options.length > 0) {
+          fields.push(
+            <Col span={12} key={index}>
+              <Form.Item label={item.label}>
+                {getFieldDecorator(item.key, {
+                  initialValue: item.initVal || '',
+                  rules: [
+                    {
+                      required: !!item.required,
+                      message: '璇疯緭鍏�' + item.label + '!'
+                    },
+                    {
+                      pattern: formRule.field.pattern,
+                      message: formRule.field.message
+                    },
+                    {
+                      max: formRule.input.max,
+                      message: formRule.input.message
+                    }
+                  ]
+                })(
+                  <AutoComplete
+                    dataSource={item.options.map((cell, i) => <AutoComplete.Option value={cell.value} key={i}>
+                      {cell.value}
+                    </AutoComplete.Option>)}
+                    filterOption={(input, option) => option.props.children.indexOf(input) > -1}
+                  >
+                    <Input autoComplete="off" onPressEnter={this.handleSubmit} />
+                  </AutoComplete>
+                )}
+              </Form.Item>
+            </Col>
+          )
+        } else {
+          fields.push(
+            <Col span={12} key={index}>
+              <Form.Item label={item.tooltip ?
+                <Tooltip placement="topLeft" title={item.tooltip}>
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  {item.label}
+                </Tooltip> : item.label
+              }>
+                {getFieldDecorator(item.key, {
+                  initialValue: item.initVal || '',
+                  rules: [
+                    {
+                      required: item.readonly ? false : !!item.required,
+                      message: '璇疯緭鍏�' + item.label + '!'
+                    },
+                    {
+                      max: formRule.input.max,
+                      message: formRule.input.message
+                    }
+                  ]
+                })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)}
+              </Form.Item>
+            </Col>
+          )
+        }
       } else if (item.type === 'textarea') {
         fields.push(
           <Col span={24} className="textarea" key={index}>

--
Gitblit v1.8.0