From afb39f8ab004b2607bb718edab02e99c7a010114 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 22 三月 2023 14:36:44 +0800
Subject: [PATCH] 2023-03-22

---
 src/menu/components/form/simple-form/index.jsx |  139 ++++++++++++++++++++++++++-------------------
 1 files changed, 80 insertions(+), 59 deletions(-)

diff --git a/src/menu/components/form/simple-form/index.jsx b/src/menu/components/form/simple-form/index.jsx
index 20e3704..58a05f4 100644
--- a/src/menu/components/form/simple-form/index.jsx
+++ b/src/menu/components/form/simple-form/index.jsx
@@ -1,7 +1,7 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Popover, Modal, Button, Switch, notification } from 'antd'
+import { Popover, Modal, Button, Switch, notification, message } from 'antd'
 import { PlusOutlined, SettingOutlined, EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 import moment from 'moment'
 
@@ -55,8 +55,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        tabId: card.tabId || '',
-        parentId: card.parentId || '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
         pageable: false,    // 缁勪欢灞炴�� - 鏄惁鍙垎椤�
         switchable: false,  // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹�
@@ -107,10 +105,6 @@
     }
   }
 
-  componentDidMount () {
-    MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle)
-  }
-
   shouldComponentUpdate (nextProps, nextState) {
     return !is(fromJS(this.state), fromJS(nextState))
   }
@@ -122,24 +116,6 @@
     this.setState = () => {
       return
     }
-    MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle)
-  }
-
-  updateComponentStyle = (parentId, keys, style) => {
-    const { card } = this.state
-
-    if (card.uuid !== parentId) return
-
-    let subcards = card.subcards.map(item => {
-      if (keys.includes(item.uuid)) {
-        item.style = {...item.style, ...style}
-      }
-      return item
-    })
-
-    this.setState({card: {...card, subcards: []}}, () => {
-      this.updateComponent({...card, subcards: subcards})
-    })
   }
 
   /**
@@ -149,6 +125,7 @@
     card.width = card.wrap.width
     card.name = card.wrap.name
     card.errors = []
+    let idCtrl = false
 
     if (card.wrap.datatype !== 'static') {
       let supModule = card.setting.supModule ? card.setting.supModule[card.setting.supModule.length - 1] || '' : ''
@@ -175,6 +152,9 @@
 
       card.subcards.forEach(item => {
         item.fields.forEach(m => {
+          if (m.dataSource && /@ID@/ig.test(m.dataSource)) {
+            idCtrl = true
+          }
           if (m.type === 'linkMain' && !supModule) {
             card.errors.push({ level: 1, detail: `璇锋鏌ュ叧鑱斾富琛ㄢ��${m.label}鈥濇槸鍚︽湁鏁坄})
           }
@@ -187,12 +167,17 @@
 
       card.subcards.forEach(item => {
         item.fields.forEach(m => {
+          if (m.dataSource && /@ID@/ig.test(m.dataSource)) {
+            idCtrl = true
+          }
           if (m.type === 'linkMain' && !supModule) {
             card.errors.push({ level: 1, detail: `璇锋鏌ュ叧鑱斾富琛ㄢ��${m.label}鈥濇槸鍚︽湁鏁坄})
           }
         })
       })
     }
+
+    card.idCtrl = idCtrl
 
     this.setState({
       card: card
@@ -218,7 +203,7 @@
   changeStyle = () => {
     const { card } = this.state
 
-    MKEmitter.emit('changeStyle', ['height', 'background', 'border', 'padding', 'margin', 'shadow'], card.style, this.getStyle)
+    MKEmitter.emit('changeStyle', ['height', 'background', 'border', 'padding', 'margin', 'shadow', 'clear', 'minHeight'], card.style, this.getStyle)
   }
 
   getStyle = (style) => {
@@ -364,38 +349,28 @@
     let index = null
     uniq.set(_form.field, true)
 
-    let _inputIndex = 1
-    let _tabIndex = 1
-    let _linkIndex = 1
     card.subcards[0].fields.forEach((item, i) => {
       if (_form.uuid === item.uuid) {
         index = i
       }
 
-      let label = item.label || ''
-      if (item.field && item.field.toLowerCase() !== label.toLowerCase()) {
-        label = label + ' (' + item.field + ')'
-      }
-
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) {
         _inputfields.push({
           field: item.field,
-          label: _inputIndex + '銆�' + label
+          label: item.label
         })
-        _inputIndex++
       }
       if (_form.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) {
         _tabfields.push({
           field: item.field,
-          label: _tabIndex + '銆�' + label
+          label: item.label
         })
-        _tabIndex++
       }
 
       if (item.type === 'switch') {
         _linksupFields.push({
           field: item.field,
-          label: _linkIndex + '銆�' + label
+          label: item.label
         })
       }
       
@@ -405,19 +380,15 @@
         uniq.set(item.field, true)
 
         _linkableFields.push({
-          value: item.field,
-          text: _linkIndex + '銆�' + item.label + ' (琛ㄥ崟)'
+          field: item.field,
+          label: item.label + '-琛ㄥ崟'
         })
         _linksupFields.push({
-          value: item.field,
-          text: _linkIndex + '銆�' + label
+          field: item.field,
+          label: item.label
         })
-
-        _linkIndex++
       }
     })
-
-    _tabfields.unshift({field: '', label: '鍘熻〃鍗�'})
 
     if (index !== null) {
       if (index === 0) {
@@ -433,9 +404,8 @@
 
         _linkableFields.push({
           field: col.field,
-          label: _linkIndex + '銆�' + col.label + ' (鏄剧ず鍒�)'
+          label: col.label + '-鏄剧ず鍒�'
         })
-        _linkIndex++
       }
     })
 
@@ -453,7 +423,7 @@
       standardform,
       visible: true,
       editform: _form,
-      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields)
+      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, card.columns)
     })
   }
 
@@ -492,6 +462,8 @@
         return
       }
 
+      window.GLOB.formId = res.uuid
+      
       if (['select', 'multiselect', 'link', 'checkbox', 'radio', 'checkcard'].includes(res.type) && res.resourceType === '1' && /\s/.test(res.dataSource)) {
         this.setState({
           sqlVerifing: true
@@ -500,11 +472,13 @@
         let param = {
           func: 's_debug_sql',
           exec_type: 'y',
-          LText: res.dataSource
+          LText: `declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20)
+            ${res.dataSource}`
         }
 
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
         param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id)@/ig, `'${param.timestamp}'`)
+        param.LText = param.LText.replace(/\n/g, ' ')
         
         param.LText = Utils.formatOptions(param.LText)
         param.secretkey = Utils.encrypt('', param.timestamp)
@@ -543,7 +517,7 @@
     let _config = fromJS(this.state.card).toJS()
 
     if (res.subButton) {
-      let _this = this
+      let that = this
 
       _config.subcards[0].setting.focus = res.focus
       _config.subcards[0].setting.cache = res.cache
@@ -564,12 +538,38 @@
       })
 
       confirm({
-        content: `鏇挎崲琛ㄥ崟鍙婃寜閽厤缃紵`,
+        content: '鏇挎崲琛ㄥ崟鍙婃寜閽厤缃紵',
         onOk() {
-          _this.updateComponent(_config)
+          that.updateComponent(_config)
         },
         onCancel() {}
       })
+      return
+    } else if (res.fields) {
+      if (_config.subcards[0].fields.length > 0) {
+        let that = this
+        _config.subcards[0].fields = res.fields.map(item => {
+          item.uuid = Utils.getuuid()
+          return item
+        })
+
+        confirm({
+          title: '纭畾鏇挎崲琛ㄥ崟鍚楋紵',
+          content: '鍘熻〃鍗曞皢鍒犻櫎銆�',
+          onOk() {
+            that.updateComponent(_config)
+          },
+          onCancel() {}
+        })
+      } else {
+        _config.subcards[0].fields = res.fields.map(item => {
+          item.uuid = Utils.getuuid()
+          return item
+        })
+
+        this.updateComponent(_config)
+      }
+
       return
     }
 
@@ -607,7 +607,8 @@
   }
 
   updateWrap = (res) => {
-    let _card = {...this.state.card, wrap: res}
+    let _card = fromJS(this.state.card).toJS()
+    _card.wrap = res
 
     if (res.datatype === 'static') {
       if (res.supModule && res.supModule.length > 0) {
@@ -622,6 +623,12 @@
     _card.subcards[0].setting.align = _card.wrap.align
     _card.subcards[0].setting.enable = _card.wrap.enable
     _card.subcards[0].setting.verticalSpace = _card.wrap.verticalSpace
+
+    if (_card.wrap.closeEnable === 'true' && !_card.subcards[0].closeButton) {
+      _card.subcards[0].closeButton = {label: '鍏抽棴', enable: 'true', type: 'close', style: {backgroundColor: '#ffffff', color: 'rgba(0,0,0,0.65)', borderColor: '#d9d9d9', borderWidth: '1px', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px', marginLeft: '10px'}}
+    } else if (_card.subcards[0].closeButton) {
+      _card.subcards[0].closeButton.enable = _card.wrap.closeEnable
+    }
 
     this.updateComponent(_card)
   }
@@ -644,7 +651,13 @@
   clickComponent = (e) => {
     if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') {
       e.stopPropagation()
-      MKEmitter.emit('clickComponent', this.state.card)
+      MKEmitter.emit('clickComponent', this.state.card.uuid, null, (style) => {
+        let _card = {...this.state.card}
+        _card.style = {..._card.style, ...style}
+
+        this.setState({ card: _card })
+        this.props.updateConfig(_card)
+      })
     }
   }
 
@@ -660,7 +673,7 @@
               <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="simpleform" card={card}/>
-            <PasteComponent config={card} options={['form', 'formgroup']} updateConfig={this.pasteForm} />
+            <PasteComponent config={card} options={['form', 'forms', 'formgroup']} updateConfig={this.pasteForm} />
             <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <UserComponent config={card}/>
             <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
@@ -670,7 +683,7 @@
         } trigger="hover">
           <ToolOutlined />
         </Popover>
-        <div className="form-area">
+        <div className={`form-area mk-${card.wrap.formStyle || ''}`}>
           <PlusOutlined className="plus" title="娣诲姞琛ㄥ崟" onClick={this.addForm}/>
           <FieldsComponent config={card.subcards[0]} type="form" plusFields={this.plusFields} />
           <span style={{color: 'red', marginLeft: '30px', cursor: 'pointer'}} onClick={this.clearGroup}>娓呯┖</span>
@@ -699,7 +712,15 @@
         </div>
         <div className="component-name">
           <div className="center">
-            <div className="title">{card.name}</div>
+            <div className="title" onDoubleClick={() => {
+              let oInput = document.createElement('input')
+              oInput.value = card.uuid
+              document.body.appendChild(oInput)
+              oInput.select()
+              document.execCommand('Copy')
+              document.body.removeChild(oInput)
+              message.success('澶嶅埗鎴愬姛銆�')
+            }}>{card.name}</div>
             <div className="content">
               {card.errors && card.errors.map((err, index) => {
                 if (err.level === 0) {

--
Gitblit v1.8.0