From cec96a86ed6b3fba6a10d6d46818e9755ac3b5ca Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 10 三月 2023 11:13:51 +0800
Subject: [PATCH] 2023-03-10

---
 src/tabviews/custom/components/form/tab-form/index.jsx       |    6 ++
 src/templates/zshare/modalform/index.jsx                     |    2 
 src/tabviews/custom/components/chart/antv-bar-line/index.jsx |    2 
 src/menu/components/form/step-form/index.jsx                 |   19 +++---
 src/templates/zshare/formconfig.jsx                          |   16 ++---
 src/menu/components/form/tab-form/index.jsx                  |   19 +++---
 src/tabviews/custom/components/chart/antv-G6/index.jsx       |    2 
 src/tabviews/custom/components/card/cardItem/index.jsx       |    2 
 src/menu/components/form/simple-form/index.jsx               |   19 +++---
 src/tabviews/zshare/mutilform/index.jsx                      |   23 ++++---
 src/templates/modalconfig/index.jsx                          |   10 ---
 src/tabviews/custom/components/form/step-form/index.jsx      |    6 ++
 src/menu/modalconfig/index.jsx                               |   10 ---
 src/tabviews/custom/components/form/simple-form/index.jsx    |    6 ++
 src/mob/modalconfig/index.jsx                                |   10 ---
 15 files changed, 75 insertions(+), 77 deletions(-)

diff --git a/src/menu/components/form/simple-form/index.jsx b/src/menu/components/form/simple-form/index.jsx
index 28dcb23..2b1e483 100644
--- a/src/menu/components/form/simple-form/index.jsx
+++ b/src/menu/components/form/simple-form/index.jsx
@@ -125,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] || '' : ''
@@ -151,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}鈥濇槸鍚︽湁鏁坄})
           }
@@ -163,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
@@ -334,7 +343,6 @@
     let _tabfields = []
     let _linkableFields = []
     let _linksupFields = []
-    let _allFields = []
     let standardform = null
 
     let uniq = new Map()
@@ -344,13 +352,6 @@
     card.subcards[0].fields.forEach((item, i) => {
       if (_form.uuid === item.uuid) {
         index = i
-      }
-
-      if (item.field) {
-        _allFields.push({
-          field: item.field,
-          label: item.label
-        })
       }
 
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) {
@@ -422,7 +423,7 @@
       standardform,
       visible: true,
       editform: _form,
-      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, _allFields, card.columns)
+      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, card.columns)
     })
   }
 
diff --git a/src/menu/components/form/step-form/index.jsx b/src/menu/components/form/step-form/index.jsx
index 0886155..3f37ddf 100644
--- a/src/menu/components/form/step-form/index.jsx
+++ b/src/menu/components/form/step-form/index.jsx
@@ -132,6 +132,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] || '' : ''
@@ -158,6 +159,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: `璇锋鏌ュ垎缁勨��${item.setting.title}鈥濅腑鍏宠仈涓昏〃鈥�${m.label}鈥濇槸鍚︽湁鏁坄})
           }
@@ -170,12 +174,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: `璇锋鏌ュ垎缁勨��${item.setting.title}鈥濅腑鍏宠仈涓昏〃鈥�${m.label}鈥濇槸鍚︽湁鏁坄})
           }
         })
       })
     }
+
+    card.idCtrl = idCtrl
 
     this.setState({
       card: card
@@ -435,7 +444,6 @@
     let _tabfields = []
     let _linkableFields = []
     let _linksupFields = []
-    let _allFields = []
     let standardform = null
 
     let uniq = new Map()
@@ -445,13 +453,6 @@
     group.fields.forEach((item, i) => {
       if (_form.uuid === item.uuid) {
         index = i
-      }
-
-      if (item.field) {
-        _allFields.push({
-          field: item.field,
-          label: item.label
-        })
       }
 
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) {
@@ -524,7 +525,7 @@
       standardform,
       visible: true,
       editform: _form,
-      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, _allFields, card.columns)
+      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, card.columns)
     })
   }
 
diff --git a/src/menu/components/form/tab-form/index.jsx b/src/menu/components/form/tab-form/index.jsx
index daac3de..65b84aa 100644
--- a/src/menu/components/form/tab-form/index.jsx
+++ b/src/menu/components/form/tab-form/index.jsx
@@ -144,6 +144,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] || '' : ''
@@ -170,6 +171,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: `璇锋鏌ュ垎缁勨��${item.setting.title}鈥濅腑鍏宠仈涓昏〃鈥�${m.label}鈥濇槸鍚︽湁鏁坄})
           }
@@ -182,12 +186,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: `璇锋鏌ュ垎缁勨��${item.setting.title}鈥濅腑鍏宠仈涓昏〃鈥�${m.label}鈥濇槸鍚︽湁鏁坄})
           }
         })
       })
     }
+
+    card.idCtrl = idCtrl
 
     this.setState({
       card: card
@@ -441,7 +450,6 @@
     let _tabfields = []
     let _linkableFields = []
     let _linksupFields = []
-    let _allFields = []
     let standardform = null
 
     let uniq = new Map()
@@ -451,13 +459,6 @@
     group.fields.forEach((item, i) => {
       if (_form.uuid === item.uuid) {
         index = i
-      }
-
-      if (item.field) {
-        _allFields.push({
-          field: item.field,
-          label: item.label
-        })
       }
 
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) {
@@ -529,7 +530,7 @@
       standardform,
       visible: true,
       editform: _form,
-      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, _allFields, card.columns)
+      formlist: getModalForm(_form, _inputfields, _tabfields, _linkableFields, _linksupFields, card.columns)
     })
   }
 
diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx
index fc9ed4f..c0da35b 100644
--- a/src/menu/modalconfig/index.jsx
+++ b/src/menu/modalconfig/index.jsx
@@ -113,7 +113,6 @@
     let _tabfields = []
     let _linkableFields = []
     let _linksupFields = []
-    let _allFields = []
     let standardform = null
 
     let uniq = new Map()
@@ -123,13 +122,6 @@
     config.fields.forEach((item, i) => {
       if (card.uuid === item.uuid) {
         index = i
-      }
-
-      if (item.field) {
-        _allFields.push({
-          field: item.field,
-          label: item.label
-        })
       }
 
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) {
@@ -208,7 +200,7 @@
       standardform,
       visible: true,
       card: card,
-      formlist: getModalForm(card, _inputfields, _tabfields, _linkableFields, _linksupFields, _allFields, columns)
+      formlist: getModalForm(card, _inputfields, _tabfields, _linkableFields, _linksupFields, columns)
     })
   }
 
diff --git a/src/mob/modalconfig/index.jsx b/src/mob/modalconfig/index.jsx
index ac7c4ba..8bcad78 100644
--- a/src/mob/modalconfig/index.jsx
+++ b/src/mob/modalconfig/index.jsx
@@ -134,7 +134,6 @@
     let _tabfields = []
     let _linkableFields = []
     let _linksupFields = []
-    let _allFields = []
     let standardform = null
 
     let uniq = new Map()
@@ -144,13 +143,6 @@
     config.fields.forEach((item, i) => {
       if (card.uuid === item.uuid) {
         index = i
-      }
-
-      if (item.field) {
-        _allFields.push({
-          field: item.field,
-          label: item.label
-        })
       }
 
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) {
@@ -222,7 +214,7 @@
       standardform,
       visible: true,
       card: card,
-      formlist: getModalForm(card, _inputfields, _tabfields, _linkableFields, _linksupFields, _allFields, columns)
+      formlist: getModalForm(card, _inputfields, _tabfields, _linkableFields, _linksupFields, columns)
     })
   }
 
diff --git a/src/tabviews/custom/components/card/cardItem/index.jsx b/src/tabviews/custom/components/card/cardItem/index.jsx
index d02f496..92777c5 100644
--- a/src/tabviews/custom/components/card/cardItem/index.jsx
+++ b/src/tabviews/custom/components/card/cardItem/index.jsx
@@ -51,7 +51,7 @@
       let menu = null
       
       if (card.menus && card.menus.length > 0) {
-        let s = data[card.setting.menuType] || ''
+        let s = data[card.setting.menuType] + ''
         card.menus.forEach(m => {
           if (s !== m.sign) return
           menu = m
diff --git a/src/tabviews/custom/components/chart/antv-G6/index.jsx b/src/tabviews/custom/components/chart/antv-G6/index.jsx
index c2fec02..ac96d6b 100644
--- a/src/tabviews/custom/components/chart/antv-G6/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-G6/index.jsx
@@ -1494,7 +1494,7 @@
       let menu = null
       
       if (plot.menus && plot.menus.length > 0) {
-        let s = data[plot.menuType] || ''
+        let s = data[plot.menuType] + ''
         plot.menus.forEach(m => {
           if (s !== m.sign) return
           menu = m
diff --git a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx
index a60ff92..7e4180a 100644
--- a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx
@@ -1780,7 +1780,7 @@
         let menu = null
         
         if (plot.menus && plot.menus.length > 0) {
-          let s = data[plot.menuType] || ''
+          let s = data[plot.menuType] + ''
           plot.menus.forEach(m => {
             if (s !== m.sign) return
             menu = m
diff --git a/src/tabviews/custom/components/form/simple-form/index.jsx b/src/tabviews/custom/components/form/simple-form/index.jsx
index 336de9c..96156c2 100644
--- a/src/tabviews/custom/components/form/simple-form/index.jsx
+++ b/src/tabviews/custom/components/form/simple-form/index.jsx
@@ -63,6 +63,7 @@
           _data = _data[0] || {$$empty: true}
         }
         _sync = false
+        _data.$$uuid = _data[config.setting.primaryKey] || ''
       }
     } else {
       _data = {$$empty: true}
@@ -127,6 +128,8 @@
           _data = _data[0] || {$$empty: true}
         }
       }
+
+      _data.$$uuid = _data[config.setting.primaryKey] || ''
 
       this.setState({sync: false, data: _data})
     } else if (config.setting.useMSearch && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {
@@ -244,6 +247,8 @@
     if (result.status) {
       let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true}
 
+      _data.$$uuid = _data[config.setting.primaryKey] || ''
+
       this.setState({
         data: null,
         loading: false
@@ -289,6 +294,7 @@
     const { config, loading, BID, BData, data, group, dict } = this.state
 
     if (config.wrap.empty === 'hidden' && (!data || data.$$empty)) return null
+    if (config.idCtrl && (!data || data.$$empty)) return null
     
     return (
       <div className="custom-simple-form-box" id={'anchor' + config.uuid} style={{...config.style}}>
diff --git a/src/tabviews/custom/components/form/step-form/index.jsx b/src/tabviews/custom/components/form/step-form/index.jsx
index f3711b3..83349ad 100644
--- a/src/tabviews/custom/components/form/step-form/index.jsx
+++ b/src/tabviews/custom/components/form/step-form/index.jsx
@@ -62,6 +62,7 @@
           _data = _data[0] || {$$empty: true}
         }
         _sync = false
+        _data.$$uuid = _data[config.setting.primaryKey] || ''
       }
     } else {
       _data = {$$empty: true}
@@ -168,6 +169,8 @@
           _data = _data[0] || {$$empty: true}
         }
       }
+
+      _data.$$uuid = _data[config.setting.primaryKey] || ''
 
       if (config.wrap.statusControl && _data[config.wrap.statusControl]) {
         let _status = _data[config.wrap.statusControl]
@@ -304,6 +307,8 @@
       let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true}
       let _group = this.state.group
 
+      _data.$$uuid = _data[config.setting.primaryKey] || ''
+
       if (type === 'refresh') {
         _group = config.subcards[0]
       }
@@ -391,6 +396,7 @@
     const { config, loading, BID, BData, data, group, dict, step } = this.state
 
     if (config.wrap.empty === 'hidden' && (!data || data.$$empty)) return null
+    if (config.idCtrl && (!data || data.$$empty)) return null
     
     return (
       <div className="custom-normal-form-box" id={'anchor' + config.uuid} style={{...config.style}}>
diff --git a/src/tabviews/custom/components/form/tab-form/index.jsx b/src/tabviews/custom/components/form/tab-form/index.jsx
index 695bbec..0538eed 100644
--- a/src/tabviews/custom/components/form/tab-form/index.jsx
+++ b/src/tabviews/custom/components/form/tab-form/index.jsx
@@ -61,6 +61,7 @@
           _data = _data[0] || {$$empty: true}
         }
         _sync = false
+        _data.$$uuid = _data[config.setting.primaryKey] || ''
       }
     } else {
       _data = {$$empty: true}
@@ -142,6 +143,8 @@
           _data = _data[0] || {$$empty: true}
         }
       }
+
+      _data.$$uuid = _data[config.setting.primaryKey] || ''
 
       this.setState({sync: false, data: _data, group: null}, () => {
         this.setState({group: _group})
@@ -260,6 +263,8 @@
     if (result.status) {
       let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true}
 
+      _data.$$uuid = _data[config.setting.primaryKey] || ''
+
       this.setState({
         data: null,
         loading: false
@@ -307,6 +312,7 @@
     const { config, loading, BID, BData, data, group, dict } = this.state
 
     if (config.wrap.empty === 'hidden' && (!data || data.$$empty)) return null
+    if (config.idCtrl && (!data || data.$$empty)) return null
     
     return (
       <div className="custom-tab-form-box" id={'anchor' + config.uuid} style={{...config.style}}>
diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx
index 479a3d3..a1ea659 100644
--- a/src/tabviews/zshare/mutilform/index.jsx
+++ b/src/tabviews/zshare/mutilform/index.jsx
@@ -104,6 +104,12 @@
         delete item.style.marginRight
       }
 
+      if (item.type === 'split' && item.splitctrl) {
+        if (data.hasOwnProperty(item.splitctrl.toLowerCase()) && data[item.splitctrl.toLowerCase()] === '') {
+          return false
+        }
+      }
+
       if (item.type === 'split' || item.type === 'formula') return true
       if (item.type === 'hint') {
         if (item.field && data[item.field.toLowerCase()]) {
@@ -165,6 +171,10 @@
           })
         }
         item.oriOptions = fromJS(item.options).toJS()
+
+        if (item.empty === 'hidden' && item.oriOptions.length === 0) {
+          item.hidden = true
+        }
       }
 
       let newval = '$empty'
@@ -810,6 +820,10 @@
             })
           }
         }
+
+        if (item.empty === 'hidden' && item.oriOptions.length > 0) {
+          item.hidden = false
+        }
       }
       
       return item
@@ -901,17 +915,8 @@
 
     formlist.forEach((item, index) => {
       if (item.hidden) return
-      if (item.empty === 'hidden' && item.oriOptions.length === 0) return
 
       if (item.type === 'split') {
-        if (item.splitctrl) {
-          let cell = formlist.filter(m => m.field === item.splitctrl)[0]
-
-          if (cell && (cell.hidden || (cell.empty === 'hidden' && !cell.oriOptions.length))) {
-            return null
-          }
-        }
-        
         fields.push(
           <Col span={24} key={index}>
             <p className="mk-form-split-line" style={item.style}>{item.label}</p>
diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx
index 375ded0..b4d6d8b 100644
--- a/src/templates/modalconfig/index.jsx
+++ b/src/templates/modalconfig/index.jsx
@@ -243,7 +243,6 @@
     let _tabfields = []
     let _linkableFields = []
     let _linksupFields = []
-    let _allFields = []
     let standardform = null
 
     let uniq = new Map()
@@ -253,13 +252,6 @@
     config.fields.forEach((item, i) => {
       if (card.uuid === item.uuid) {
         index = i
-      }
-
-      if (item.field) {
-        _allFields.push({
-          field: item.field,
-          label: item.label
-        })
       }
 
       if (['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) {
@@ -358,7 +350,7 @@
       standardform,
       visible: true,
       card: card,
-      formlist: getModalForm(card, _inputfields, _tabfields, _linkableFields, _linksupFields, _allFields)
+      formlist: getModalForm(card, _inputfields, _tabfields, _linkableFields, _linksupFields)
     })
   }
 
diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx
index c462ad6..635f5a6 100644
--- a/src/templates/zshare/formconfig.jsx
+++ b/src/templates/zshare/formconfig.jsx
@@ -2388,7 +2388,7 @@
  * @param {*} linkableFields  // 鍙叧鑱旇〃鍗�
  * @param {*} linksupFields   // 涓婄骇琛ㄥ崟
  */
-export function getModalForm (card, inputfields = [], tabfields = [], linkableFields, linksupFields, allFields = [], columns = []) {
+export function getModalForm (card, inputfields = [], tabfields = [], linkableFields, linksupFields, columns = []) {
   let appType = sessionStorage.getItem('appType')
   let roleList = sessionStorage.getItem('sysRoles')
   if (roleList) {
@@ -2442,10 +2442,6 @@
   })
 
   linksupFields = linksupFields.map((item, index) => {
-    item.label = `${index + 1}銆�${item.field || ''}锛�${item.label}锛塦
-    return item
-  })
-  allFields = allFields.map((item, index) => {
     item.label = `${index + 1}銆�${item.field || ''}锛�${item.label}锛塦
     return item
   })
@@ -3485,13 +3481,13 @@
       }]
     },
     {
-      type: 'select',
+      type: 'text',
       key: 'splitctrl',
-      label: '鏄剧ず鎺у埗',
+      label: '鎺у埗瀛楁',
       initVal: card.splitctrl || '',
-      tooltip: '鍒嗗壊绾夸笌璇ヨ〃鍗曞悓姝ユ樉绀烘垨闅愯棌銆�',
-      allowClear: true,
-      options: allFields
+      tooltip: '閫夎涓旇涓搴斿瓧娈靛�间负绌烘椂闅愯棌銆�',
+      required: false,
+      options: columns
     },
     {
       type: 'radio',
diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx
index 312a6c0..aedab74 100644
--- a/src/templates/zshare/modalform/index.jsx
+++ b/src/templates/zshare/modalform/index.jsx
@@ -26,7 +26,7 @@
   radio: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'declare', 'linkSubField', 'span', 'labelwidth', 'tooltip', 'extra', 'setAll', 'emptyText', 'splitline', 'arrange', 'marginTop', 'marginBottom', 'empty'],
   checkcard: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'span', 'labelwidth', 'display', 'tooltip', 'extra', 'width', 'multiple', 'splitline', 'marginTop', 'marginBottom', 'empty'],
   multiselect: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'span', 'labelwidth', 'tooltip', 'extra', 'marginTop', 'marginBottom', 'dropdown', 'empty'],
-  link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'declare', 'setAll', 'linkField', 'linkSubField', 'span', 'place', 'labelwidth', 'tooltip', 'extra', 'emptyText', 'enter', 'splitline', 'dropdown', 'marginTop', 'marginBottom'],
+  link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'declare', 'setAll', 'linkField', 'linkSubField', 'span', 'place', 'labelwidth', 'tooltip', 'extra', 'emptyText', 'enter', 'splitline', 'dropdown', 'empty', 'marginTop', 'marginBottom'],
   fileupload: ['readonly', 'required', 'readin', 'fieldlength', 'maxfile', 'fileType', 'span', 'labelwidth', 'tooltip', 'extra', 'compress', 'miniSet', 'splitline', 'marginTop', 'marginBottom', 'maxSize'],
   switch: ['initval', 'openVal', 'closeVal', 'openText', 'closeText', 'readonly', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'splitline', 'marginTop', 'marginBottom'],
   date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'place', 'marginTop', 'marginBottom', 'minDate', 'maxDate', 'precision'],

--
Gitblit v1.8.0