From f06c1bea7ba72a3bb0b155222a66f74dd1ed3e9d Mon Sep 17 00:00:00 2001 From: "huanglei.hl" Date: Thu, 12 Sep 2019 15:39:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E7=9A=84=E6=8E=A7=E5=88=B6=E8=83=BD=E5=8A=9B=EF=BC=8C=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E7=BB=84=E4=BB=B6=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BC=A0=E5=85=A5=20lockRoot:=20=E6=A0=B9=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E4=B8=8D=E5=8F=AF=E7=BC=96=E8=BE=91=20hideElements:?= =?UTF-8?q?=20=E9=9A=90=E8=97=8F=E9=83=A8=E5=88=86=E5=85=83=E7=B4=A0('desc?= =?UTF-8?q?ription-addon',=20'advanced-settings',=20'import-json')?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package/App.js | 17 +++++++++++------ .../components/SchemaComponents/SchemaJson.js | 14 ++++++++------ package/index.js | 13 +++++++++++++ 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/package/App.js b/package/App.js index 770fbb1..b61c35b 100644 --- a/package/App.js +++ b/package/App.js @@ -274,9 +274,12 @@ class jsonSchema extends React.Component { return (
- + { + !this.props.Model.__controlHideElements.includes('import-json') && + + } this.changeType(`type`, e)} value={schema.type || 'object'} + disabled={this.props.Model.__controlLockRoot} > {SCHEMA_TYPE.map((item, index) => { return ( @@ -428,7 +432,7 @@ class jsonSchema extends React.Component { )} @@ -439,14 +443,15 @@ class jsonSchema extends React.Component { placeholder={'description'} value={schema.description} onChange={e => this.changeValue(['description'], e.target.value)} + disabled={this.props.Model.__controlLockRoot} /> - this.showAdv([], this.props.schema)}> + {!this.props.Model.__controlHideElements.includes('advanced-settings') && this.showAdv([], this.props.schema)}> - + } {schema.type === 'object' ? ( this.addChildField('properties')}> diff --git a/package/components/SchemaComponents/SchemaJson.js b/package/components/SchemaComponents/SchemaJson.js index 6fdf4b0..f0b297b 100644 --- a/package/components/SchemaComponents/SchemaJson.js +++ b/package/components/SchemaComponents/SchemaJson.js @@ -394,7 +394,7 @@ class SchemaItem extends PureComponent { this.handleShowEdit('description')} />} + addonAfter={!this.context.Model.__controlHideElements.includes('description-addon') && this.handleShowEdit('description')} />} placeholder={LocaleProvider('description')} value={value.description} onChange={this.handleChangeDesc} @@ -403,11 +403,13 @@ class SchemaItem extends PureComponent { - - - - - + {!this.context.Model.__controlHideElements.includes('advanced-settings') && + + + + + + } diff --git a/package/index.js b/package/index.js index db3a00a..8cc56d1 100644 --- a/package/index.js +++ b/package/index.js @@ -23,6 +23,19 @@ module.exports = (config = {})=>{ Model.__jsonSchemaMock = config.mock } + if(config.lockRoot) { + // 根节点属性不可修改 + Model.__controlLockRoot = config.lockRoot + } + + // 支持: 'description-addon', 'advanced-settings', 'import-json' + if(config.hideElements) { + // 隐藏一些元素 + Model.__controlHideElements = config.hideElements + } else { + Model.__controlHideElements = [] + } + const store = Model.getStore(); From d6683a709ded784ca228bccc4b395fcb87cbd275 Mon Sep 17 00:00:00 2001 From: "huanglei.hl" Date: Mon, 16 Sep 2019 10:10:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0readonly=E8=83=BD?= =?UTF-8?q?=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package/App.js | 8 +++---- .../components/SchemaComponents/SchemaJson.js | 24 ++++++++++++------- package/index.js | 4 ++++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/package/App.js b/package/App.js index b61c35b..ddfbb86 100644 --- a/package/App.js +++ b/package/App.js @@ -390,7 +390,7 @@ class jsonSchema extends React.Component { this.changeType(`type`, e)} value={schema.type || 'object'} - disabled={this.props.Model.__controlLockRoot} + disabled={this.props.Model.__controlLockRoot || this.props.Model.__controlReadonly} > {SCHEMA_TYPE.map((item, index) => { return ( @@ -443,7 +443,7 @@ class jsonSchema extends React.Component { placeholder={'description'} value={schema.description} onChange={e => this.changeValue(['description'], e.target.value)} - disabled={this.props.Model.__controlLockRoot} + disabled={this.props.Model.__controlLockRoot || this.props.Model.__controlReadonly} /> @@ -452,7 +452,7 @@ class jsonSchema extends React.Component { } - {schema.type === 'object' ? ( + {schema.type === 'object' && !this.props.Model.__controlReadonly ? ( this.addChildField('properties')}> diff --git a/package/components/SchemaComponents/SchemaJson.js b/package/components/SchemaComponents/SchemaJson.js index f0b297b..5cc60f6 100644 --- a/package/components/SchemaComponents/SchemaJson.js +++ b/package/components/SchemaComponents/SchemaJson.js @@ -337,7 +337,7 @@ class SchemaItem extends PureComponent { @@ -360,7 +361,8 @@ class SchemaItem extends PureComponent { className="type-select-style" onChange={this.handleChangeType} value={value.type} - > + disabled={this.context.Model.__controlReadonly} + > {SCHEMA_TYPE.map((item, index) => { return ( } - - - - {value.type === 'object' ? ( + { !this.context.Model.__controlReadonly && + + + + } + {!this.context.Model.__controlReadonly && + (value.type === 'object' ? ( ) : ( @@ -421,7 +429,7 @@ class SchemaItem extends PureComponent { - )} + ))}
{mapping(prefixArray, value, showEdit, showAdv)}
diff --git a/package/index.js b/package/index.js index 8cc56d1..f7983b6 100644 --- a/package/index.js +++ b/package/index.js @@ -27,6 +27,10 @@ module.exports = (config = {})=>{ // 根节点属性不可修改 Model.__controlLockRoot = config.lockRoot } + if (config.readonly) { + // 整体只读 + Model.__controlReadonly = config.readonly + } // 支持: 'description-addon', 'advanced-settings', 'import-json' if(config.hideElements) {