Browse Source

Merge remote-tracking branch 'origin/master'

luoyifan 3 years ago
parent
commit
94a9e0c657
4 changed files with 42 additions and 1 deletions
  1. 2 0
      src/Defaults.ts
  2. 37 0
      src/controls/fieldset.js
  3. 2 0
      src/init.ts
  4. 1 1
      src/lib/systemLib.ts

+ 2 - 0
src/Defaults.ts

@@ -111,6 +111,8 @@ export const tbseparator = {}
 
 export const button = {}
 
+export const fieldSet = {}
+
 export const panel = {}
 
 export const splitter = {}

+ 37 - 0
src/controls/fieldset.js

@@ -0,0 +1,37 @@
+import _ from 'lodash'
+import $ from 'jquery'
+import {baseConfig} from "./base";
+import {fieldSet} from "../Defaults";
+import {
+    disabled,
+    fieldLabel,
+    gravity, height, metaId,
+    PropertyDescriptionTable,
+    tooltip,
+    value, width,
+    YvBase
+} from "../PropertyDescriptionTable";
+import {PropertyDescription} from "../PropertyDescription";
+
+export default function () {
+    /**
+     *
+     */
+    const ct = Ext.form.FieldSet.prototype.constructor
+    Ext.form.FieldSet.override({
+        constructor: function (config) {
+            const newConfig = _.defaultsDeep({}, config, baseConfig(config, "rows-container"), fieldSet)
+            ct.call(this, newConfig)
+        }
+    });
+
+    PropertyDescriptionTable.set(
+        'fieldSet',
+        new PropertyDescription(YvBase, {
+            props: [
+                fieldLabel, value, disabled,
+                gravity, tooltip, metaId, width, height
+            ],
+        })
+    )
+}

+ 2 - 0
src/init.ts

@@ -14,6 +14,7 @@ import initCheckbox from './controls/input/checkbox'
 import initCheckboxGroup from './controls/input/checkboxgroup'
 import initRadio from './controls/input/radio'
 import initRadioGroup from './controls/input/radiogroup'
+import initFieldset from './controls/fieldset'
 import initCombotree from './controls/input/combotree'
 import initPickerPlus from './controls/input/pickerplus'
 import initCombogrid from './controls/input/combogrid'
@@ -125,6 +126,7 @@ export function init() {
     initCheckboxGroup()
     initRadio()
     initRadioGroup()
+    initFieldset()
     initCombotree()
     initPickerPlus()
     initCombogrid()

+ 1 - 1
src/lib/systemLib.ts

@@ -24,7 +24,7 @@ export function calcExpress(data, express) {
         // '{foo}' 简单表达式
         const path = express.substring(1, express.length - 1);
         const ret = _.get(data, path)
-        return ret.isModel ? ret.data : ret
+        return ret?.isModel ? ret.data : ret
     }
 
     while (true) {