优化部分props

This commit is contained in:
zyqwst
2020-06-27 17:20:05 +08:00
parent 74696cf916
commit 73068c65cd
4 changed files with 104 additions and 6 deletions

View File

@@ -5,7 +5,7 @@
</div> </div>
<div class="container"> <div class="container">
<pre>{{tree}}</pre> <pre>{{tree}}</pre>
<json-schema-editor class="schema" :disabled="true" :value="tree" :root="true"/> <json-schema-editor class="schema" :value="tree"/>
</div> </div>
</div> </div>
</template> </template>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 585 B

95
package-lock.json generated
View File

@@ -2124,6 +2124,13 @@
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true "dev": true
}, },
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"dev": true,
"optional": true
},
"asn1": { "asn1": {
"version": "0.2.4", "version": "0.2.4",
"resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
@@ -5992,6 +5999,13 @@
"integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
"dev": true "dev": true
}, },
"image-size": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
"integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
"dev": true,
"optional": true
},
"import-cwd": { "import-cwd": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz",
@@ -6745,6 +6759,77 @@
"launch-editor": "^2.2.1" "launch-editor": "^2.2.1"
} }
}, },
"less": {
"version": "3.11.3",
"resolved": "https://registry.npmjs.org/less/-/less-3.11.3.tgz",
"integrity": "sha512-VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw==",
"dev": true,
"requires": {
"clone": "^2.1.2",
"errno": "^0.1.1",
"graceful-fs": "^4.1.2",
"image-size": "~0.5.0",
"make-dir": "^2.1.0",
"mime": "^1.4.1",
"promise": "^7.1.1",
"request": "^2.83.0",
"source-map": "~0.6.0",
"tslib": "^1.10.0"
},
"dependencies": {
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"dev": true
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true,
"optional": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true
}
}
},
"less-loader": {
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.1.2.tgz",
"integrity": "sha512-80g+EURm8H98wirYTNnIJMxVnJU9NYIXRs7rxsghL8C+UyuGzsqDXPgQcLUrNlItMwUviYeBfSOEyULI6iza+g==",
"dev": true,
"requires": {
"clone": "^2.1.2",
"less": "^3.11.3",
"loader-utils": "^2.0.0",
"schema-utils": "^2.7.0"
},
"dependencies": {
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"dev": true
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
}
}
},
"leven": { "leven": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz", "resolved": "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz",
@@ -8761,6 +8846,16 @@
"integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=",
"dev": true "dev": true
}, },
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"dev": true,
"optional": true,
"requires": {
"asap": "~2.0.3"
}
},
"promise-inflight": { "promise-inflight": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",

View File

@@ -5,7 +5,7 @@
<div :style="{marginLeft:`${20*deep}px`}" class="ant-col-name-c"> <div :style="{marginLeft:`${20*deep}px`}" class="ant-col-name-c">
<a-button v-if="pickValue.type==='object'" type="link" :icon="hidden?'caret-right':'caret-down'" style="color:rgba(0,0,0,.65)" @click="hidden = !hidden"/> <a-button v-if="pickValue.type==='object'" type="link" :icon="hidden?'caret-right':'caret-down'" style="color:rgba(0,0,0,.65)" @click="hidden = !hidden"/>
<span v-else style="width:32px;display:inline-block"></span> <span v-else style="width:32px;display:inline-block"></span>
<a-input :disabled="disabled" :value="pickKey" class="ant-col-name-input" @input="onInputName"/> <a-input :disabled="disabled || root" :value="pickKey" class="ant-col-name-input" @input="onInputName"/>
</div> </div>
<a-tooltip v-if="root"> <a-tooltip v-if="root">
<span slot="title">全选</span> <span slot="title">全选</span>
@@ -46,10 +46,10 @@
</a-col> </a-col>
</a-row> </a-row>
<template v-if="!hidden&&pickValue.properties && !isArray"> <template v-if="!hidden&&pickValue.properties && !isArray">
<json-schema-editor v-for="(item,key,index) in pickValue.properties" :value="{[key]:item}" :parent="pickValue" :key="index" :deep="deep+1" class="children"/> <json-schema-editor v-for="(item,key,index) in pickValue.properties" :value="{[key]:item}" :parent="pickValue" :key="index" :deep="deep+1" :root="false" class="children"/>
</template> </template>
<template v-if="isArray"> <template v-if="isArray">
<json-schema-editor :value="{items:pickValue.items}" :deep="deep+1" disabled isItem class="children"/> <json-schema-editor :value="{items:pickValue.items}" :deep="deep+1" disabled isItem :root="false" class="children"/>
</template> </template>
</div> </div>
</template> </template>
@@ -71,7 +71,10 @@ export default {
ATooltip: Tooltip, ATooltip: Tooltip,
}, },
props:{ props:{
value: Object, value: {
type: Object,
required:true
},
disabled: { //name不可编辑根节点name不可编辑,数组元素name不可编辑 disabled: { //name不可编辑根节点name不可编辑,数组元素name不可编辑
type: Boolean, type: Boolean,
default: false default: false
@@ -86,7 +89,7 @@ export default {
}, },
root:{ //是否root节点 root:{ //是否root节点
type:Boolean, type:Boolean,
default:false default:true
}, },
parent: { //父节点 parent: { //父节点
type: Object, type: Object,