From ffd61635232e99401c08d6f093ff426ed7c85037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=92=E8=A8=80?= Date: Mon, 9 Dec 2019 09:28:31 +0800 Subject: [PATCH] feat: add globalConfig.status for preview status (#2) * feat: add globalConst.disabled for disable all form-item * feat: support dx expression * feat: add globalConfig.status for form status * feat: preliminary adapte preview status * chore: adjust code indent * feat: tune-up standard components preview status realization * chore: unified code indent --- .../src/mixins/vue/control-mixin.js | 6 +- .../src/mixins/vue/layout-array-mixin.js | 8 + .../src/mixins/vue/layout-object-mixin.js | 4 + packages/ncform-common/src/ncform-utils.js | 1 + .../examples/preview.html | 402 ++++++++++++++++++ .../src/components/control-comps/checkbox.vue | 2 +- .../components/control-comps/color-picker.vue | 26 +- .../components/control-comps/date-picker.vue | 44 +- .../components/control-comps/input-number.vue | 29 +- .../src/components/control-comps/input.vue | 4 +- .../src/components/control-comps/radio.vue | 31 +- .../src/components/control-comps/rate.vue | 41 +- .../src/components/control-comps/select.vue | 53 ++- .../src/components/control-comps/slider.vue | 22 +- .../src/components/control-comps/switch.vue | 30 +- .../src/components/control-comps/textarea.vue | 32 +- .../src/components/control-comps/upload.vue | 151 ++++--- .../components/layout-comps/array-table.vue | 18 +- .../components/layout-comps/array-tabs.vue | 4 +- .../src/components/layout-comps/array.vue | 18 +- .../src/components/vue-ncform/form-item.vue | 19 +- 21 files changed, 732 insertions(+), 213 deletions(-) create mode 100644 packages/ncform-theme-elementui/examples/preview.html diff --git a/packages/ncform-common/src/mixins/vue/control-mixin.js b/packages/ncform-common/src/mixins/vue/control-mixin.js index 8dde49b..033e6ba 100755 --- a/packages/ncform-common/src/mixins/vue/control-mixin.js +++ b/packages/ncform-common/src/mixins/vue/control-mixin.js @@ -48,6 +48,10 @@ export default { type: Object }, + globalStatus: { + type: String + }, + idxChain: { type: String, default: "" @@ -68,7 +72,7 @@ export default { computed: { disabled() { - return this._analyzeVal(this.config.disabled); + return this.globalStatus === 'preview' || this._analyzeVal(this.config.disabled); }, readonly() { return this._analyzeVal(this.config.readonly); diff --git a/packages/ncform-common/src/mixins/vue/layout-array-mixin.js b/packages/ncform-common/src/mixins/vue/layout-array-mixin.js index 60ede3d..8805d73 100755 --- a/packages/ncform-common/src/mixins/vue/layout-array-mixin.js +++ b/packages/ncform-common/src/mixins/vue/layout-array-mixin.js @@ -57,6 +57,10 @@ export default { type: Object }, + globalStatus: { + type: String + }, + idxChain: { type: String, default: "" @@ -68,6 +72,7 @@ export default { collapsed: false, defaultConfig: { collapsed: false, + disabled: false, disableCollapse: false, disableReorder: false, disableAdd: false, @@ -86,6 +91,9 @@ export default { }, computed: { + disabled() { + return this._analyzeVal(this.config.disabled); + }, mergeConfig() { let newConfig = extend( true, diff --git a/packages/ncform-common/src/mixins/vue/layout-object-mixin.js b/packages/ncform-common/src/mixins/vue/layout-object-mixin.js index 2b2cde9..690a17b 100755 --- a/packages/ncform-common/src/mixins/vue/layout-object-mixin.js +++ b/packages/ncform-common/src/mixins/vue/layout-object-mixin.js @@ -33,6 +33,10 @@ export default { type: Object }, + globalStatus: { + type: String + }, + idxChain: { type: String, default: "" diff --git a/packages/ncform-common/src/ncform-utils.js b/packages/ncform-common/src/ncform-utils.js index 5614c7d..4c31085 100755 --- a/packages/ncform-common/src/ncform-utils.js +++ b/packages/ncform-common/src/ncform-utils.js @@ -135,6 +135,7 @@ const ncformUtils = { // 根节点 const defaultGlobalConfig = { // 全局配置 + status: "edit", style: { formCls: "", // form class invalidFeedbackCls: "" // invalid feedback class diff --git a/packages/ncform-theme-elementui/examples/preview.html b/packages/ncform-theme-elementui/examples/preview.html new file mode 100644 index 0000000..601a417 --- /dev/null +++ b/packages/ncform-theme-elementui/examples/preview.html @@ -0,0 +1,402 @@ + + + + + + + preview demo + + + + + + + + + + +
+
+

{{ item.title }}

+
+
+ +
+
+
{{ JSON.stringify(originFormSchemas[idx].schema.properties, null, 2) }}
+
+
+
{{ item.schema.value }}
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/ncform-theme-elementui/src/components/control-comps/checkbox.vue b/packages/ncform-theme-elementui/src/components/control-comps/checkbox.vue index 6a991a9..1cb487b 100755 --- a/packages/ncform-theme-elementui/src/components/control-comps/checkbox.vue +++ b/packages/ncform-theme-elementui/src/components/control-comps/checkbox.vue @@ -1,7 +1,7 @@