rb-document-form-constructor 0.3.1 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rb-document-form-constructor.esm.js +105 -24
- package/dist/rb-document-form-constructor.min.js +2 -2
- package/dist/rb-document-form-constructor.ssr.js +108 -34
- package/package.json +2 -2
- package/src/components/DocForm.vue +42 -1
- package/src/components/DocTemplateFacetList.vue +10 -2
- package/src/components/DocTemplateFieldSidebar.vue +13 -2
- package/src/components/FieldRuleFormModal.vue +3 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var crypto=require('crypto');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var crypto__default=/*#__PURE__*/_interopDefaultLegacy(crypto);function ownKeys(object, enumerableOnly) {
|
|
1
|
+
'use strict';var Vue=require('vue'),crypto=require('crypto');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var Vue__default=/*#__PURE__*/_interopDefaultLegacy(Vue);var crypto__default=/*#__PURE__*/_interopDefaultLegacy(crypto);function ownKeys(object, enumerableOnly) {
|
|
2
2
|
var keys = Object.keys(object);
|
|
3
3
|
|
|
4
4
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -4949,6 +4949,12 @@ var __applyRefProps = function __applyRefProps(input, refConfig) {
|
|
|
4949
4949
|
}
|
|
4950
4950
|
};
|
|
4951
4951
|
|
|
4952
|
+
var __filterInputsByMultiple = function __filterInputsByMultiple(inputs, multiple) {
|
|
4953
|
+
return inputs.filter(function (i) {
|
|
4954
|
+
return i.multiple && multiple || !i.multiple && !multiple;
|
|
4955
|
+
});
|
|
4956
|
+
};
|
|
4957
|
+
|
|
4952
4958
|
var fcInputs = {
|
|
4953
4959
|
string: {
|
|
4954
4960
|
text: 'Текст',
|
|
@@ -5112,25 +5118,38 @@ var UtFormConstructor = {
|
|
|
5112
5118
|
}
|
|
5113
5119
|
},
|
|
5114
5120
|
getInputTypes: function getInputTypes(field) {
|
|
5121
|
+
var inputs = [];
|
|
5122
|
+
|
|
5115
5123
|
if (!field) {
|
|
5116
|
-
return
|
|
5124
|
+
return inputs;
|
|
5117
5125
|
}
|
|
5118
5126
|
|
|
5119
5127
|
if (field.dict && !this.config.refInputs[field.ref]) {
|
|
5120
|
-
|
|
5121
|
-
}
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5128
|
+
inputs = __filterInputsByMultiple(this.config.dictInputs, field.multiple);
|
|
5129
|
+
} else if (field.ref) {
|
|
5130
|
+
inputs = __filterInputsByMultiple(this.config.refInputs[field.ref], field.multiple);
|
|
5131
|
+
} else {
|
|
5132
|
+
inputs = __filterInputsByMultiple(this.config.primitiveInputs[field.type], field.multiple);
|
|
5125
5133
|
}
|
|
5126
5134
|
|
|
5127
|
-
return
|
|
5135
|
+
return inputs;
|
|
5136
|
+
},
|
|
5137
|
+
hasMultipleInputTypes: function hasMultipleInputTypes(field) {
|
|
5138
|
+
var inputs = this.getInputTypes(_objectSpread2(_objectSpread2({}, field), {}, {
|
|
5139
|
+
multiple: true
|
|
5140
|
+
}));
|
|
5141
|
+
return inputs && inputs.length > 0;
|
|
5128
5142
|
},
|
|
5129
5143
|
getDefaultInput: function getDefaultInput(field) {
|
|
5130
5144
|
var input = null;
|
|
5145
|
+
var inputs = this.getInputTypes(field);
|
|
5146
|
+
|
|
5147
|
+
if (!inputs) {
|
|
5148
|
+
input = this.primitiveInputs[0];
|
|
5149
|
+
}
|
|
5131
5150
|
|
|
5132
5151
|
if (field.ref && this.config.refInputs[field.ref]) {
|
|
5133
|
-
input = __clone(
|
|
5152
|
+
input = __clone(inputs[0]);
|
|
5134
5153
|
|
|
5135
5154
|
__applyDefaultProps(input);
|
|
5136
5155
|
|
|
@@ -5138,12 +5157,12 @@ var UtFormConstructor = {
|
|
|
5138
5157
|
__applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
|
|
5139
5158
|
}
|
|
5140
5159
|
} else if (field.dict) {
|
|
5141
|
-
input = __clone(
|
|
5160
|
+
input = __clone(inputs[0]);
|
|
5142
5161
|
input.props.dict.default = field.ref;
|
|
5143
5162
|
|
|
5144
5163
|
__applyDefaultProps(input);
|
|
5145
5164
|
} else {
|
|
5146
|
-
input = __clone(
|
|
5165
|
+
input = __clone(inputs[0]);
|
|
5147
5166
|
|
|
5148
5167
|
__applyDefaultProps(input);
|
|
5149
5168
|
}
|
|
@@ -5181,17 +5200,12 @@ var UtFormConstructor = {
|
|
|
5181
5200
|
runRule: function runRule(context, script) {
|
|
5182
5201
|
context = context ? context : {};
|
|
5183
5202
|
context['console'] = console;
|
|
5184
|
-
var appendScript = '';
|
|
5185
|
-
/*for(let v in context) {
|
|
5186
|
-
appendScript = appendScript + `var ${v} = this.${v};\n`;
|
|
5187
|
-
}
|
|
5188
|
-
appendScript = appendScript? appendScript + '\n': '';*/
|
|
5189
5203
|
|
|
5190
5204
|
var func = function func(script) {
|
|
5191
5205
|
return notevil(script, context);
|
|
5192
5206
|
};
|
|
5193
5207
|
|
|
5194
|
-
func.call(context,
|
|
5208
|
+
func.call(context, script);
|
|
5195
5209
|
}
|
|
5196
5210
|
};//
|
|
5197
5211
|
//
|
|
@@ -10856,6 +10870,15 @@ if (typeof window !== "undefined" && "Vue" in window) {
|
|
|
10856
10870
|
});
|
|
10857
10871
|
this.innerFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
10858
10872
|
this.allFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
10873
|
+
},
|
|
10874
|
+
getVisibleFields: function getVisibleFields(facet) {
|
|
10875
|
+
if (!facet || !facet.fields) {
|
|
10876
|
+
return [];
|
|
10877
|
+
}
|
|
10878
|
+
|
|
10879
|
+
return facet.fields.filter(function (field) {
|
|
10880
|
+
return !field.hiddenOnFormConfig;
|
|
10881
|
+
});
|
|
10859
10882
|
}
|
|
10860
10883
|
},
|
|
10861
10884
|
created: function created() {
|
|
@@ -10890,7 +10913,7 @@ var __vue_render__$4 = function __vue_render__() {
|
|
|
10890
10913
|
expression: "facetSearchStr"
|
|
10891
10914
|
}
|
|
10892
10915
|
})], 1)], 1)], 1)], 1), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"rb-facet-list\">", "</div>", _vm._l(_vm.innerFacets, function (facet) {
|
|
10893
|
-
return
|
|
10916
|
+
return _vm.getVisibleFields(facet).length > 0 ? _vm._ssrNode("<div class=\"rb-facet\">", "</div>", [_vm._ssrNode("<h6 class=\"rb-facet-label d-flex cursor-pointer\">", "</h6>", [_c('rb-text', {
|
|
10894
10917
|
staticClass: "flex-fill"
|
|
10895
10918
|
}, [_vm._v(_vm._s(facet.labelRu))]), _vm._ssrNode(" "), _c('rb-icon', {
|
|
10896
10919
|
attrs: {
|
|
@@ -10919,7 +10942,7 @@ var __vue_render__$4 = function __vue_render__() {
|
|
|
10919
10942
|
},
|
|
10920
10943
|
expression: "facet.fields"
|
|
10921
10944
|
}
|
|
10922
|
-
}, _vm._l(facet
|
|
10945
|
+
}, _vm._l(_vm.getVisibleFields(facet), function (field) {
|
|
10923
10946
|
return _c('b-list-group-item', {
|
|
10924
10947
|
key: field.name,
|
|
10925
10948
|
staticClass: "cursor-pointer"
|
|
@@ -10937,7 +10960,7 @@ var __vue_inject_styles__$4 = undefined;
|
|
|
10937
10960
|
var __vue_scope_id__$4 = undefined;
|
|
10938
10961
|
/* module identifier */
|
|
10939
10962
|
|
|
10940
|
-
var __vue_module_identifier__$4 = "data-v-
|
|
10963
|
+
var __vue_module_identifier__$4 = "data-v-be2c30ac";
|
|
10941
10964
|
/* functional template */
|
|
10942
10965
|
|
|
10943
10966
|
var __vue_is_functional_template__$4 = false;
|
|
@@ -11022,17 +11045,24 @@ var script$3 = {
|
|
|
11022
11045
|
return {};
|
|
11023
11046
|
}
|
|
11024
11047
|
},
|
|
11025
|
-
|
|
11026
|
-
type:
|
|
11027
|
-
default:
|
|
11028
|
-
return {};
|
|
11029
|
-
}
|
|
11048
|
+
refDataSuffix: {
|
|
11049
|
+
type: String,
|
|
11050
|
+
default: 'Data'
|
|
11030
11051
|
}
|
|
11031
11052
|
},
|
|
11053
|
+
data: function data() {
|
|
11054
|
+
return {
|
|
11055
|
+
validationState: {}
|
|
11056
|
+
};
|
|
11057
|
+
},
|
|
11032
11058
|
methods: {
|
|
11033
11059
|
onEventFired: function onEventFired(eventName, event, field) {
|
|
11034
11060
|
var _this = this;
|
|
11035
11061
|
|
|
11062
|
+
if (eventName === 'input' && field.ref) {
|
|
11063
|
+
this.doc[field.name + this.refDataSuffix] = null;
|
|
11064
|
+
}
|
|
11065
|
+
|
|
11036
11066
|
if (field.rules) {
|
|
11037
11067
|
field.rules.forEach(function (rule) {
|
|
11038
11068
|
if (rule.event === eventName && rule.script) {
|
|
@@ -11045,16 +11075,45 @@ var script$3 = {
|
|
|
11045
11075
|
}
|
|
11046
11076
|
});
|
|
11047
11077
|
}
|
|
11078
|
+
},
|
|
11079
|
+
validate: function validate() {
|
|
11080
|
+
var _this2 = this;
|
|
11081
|
+
|
|
11082
|
+
this.formConfig.sections.forEach(function (s) {
|
|
11083
|
+
s.columns.forEach(function (c) {
|
|
11084
|
+
c.fields.forEach(function (f) {
|
|
11085
|
+
if (f.required && _this2.doc[f.name] == null) {
|
|
11086
|
+
Vue__default["default"].set(_this2.validationState, f.name, false);
|
|
11087
|
+
Vue__default["default"].set(_this2.validationState, "".concat(f.name, "__feedback"), "\u041F\u043E\u043B\u0435 ".concat(f.labelRu, " \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E"));
|
|
11088
|
+
} else {
|
|
11089
|
+
Vue__default["default"].set(_this2.validationState, f.name, null);
|
|
11090
|
+
}
|
|
11091
|
+
|
|
11092
|
+
_this2.onEventFired('validate', {
|
|
11093
|
+
validationState: _this2.validationState,
|
|
11094
|
+
doc: _this2.doc
|
|
11095
|
+
}, f);
|
|
11096
|
+
});
|
|
11097
|
+
});
|
|
11098
|
+
});
|
|
11099
|
+
|
|
11100
|
+
for (var fieldName in this.validationState) {
|
|
11101
|
+
if (this.validationState[fieldName] === false) {
|
|
11102
|
+
return false;
|
|
11103
|
+
}
|
|
11104
|
+
}
|
|
11105
|
+
|
|
11106
|
+
return true;
|
|
11048
11107
|
}
|
|
11049
11108
|
},
|
|
11050
11109
|
created: function created() {
|
|
11051
|
-
var
|
|
11110
|
+
var _this3 = this;
|
|
11052
11111
|
|
|
11053
11112
|
if (this.applyDefaultValues) {
|
|
11054
11113
|
this.formConfig.sections.forEach(function (r) {
|
|
11055
11114
|
r.columns.forEach(function (c) {
|
|
11056
11115
|
c.fields.forEach(function (f) {
|
|
11057
|
-
|
|
11116
|
+
_this3.$set(_this3.doc, f.name, f.defaultValue == null ? null : f.defaultValue);
|
|
11058
11117
|
});
|
|
11059
11118
|
});
|
|
11060
11119
|
});
|
|
@@ -11122,7 +11181,7 @@ var __vue_render__$3 = function __vue_render__() {
|
|
|
11122
11181
|
},
|
|
11123
11182
|
expression: "doc[field.name]"
|
|
11124
11183
|
}
|
|
11125
|
-
}, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
|
|
11184
|
+
}, 'component', field.input.propsData, false)), _vm._v(" "), !_vm.validationState[field.name] ? _c('b-form-invalid-feedback', [_vm._v("\n " + _vm._s(_vm.validationState[field.name + "__feedback"]) + "\n ")]) : _vm._e()], 1)], 1)], 1) : _vm._e()];
|
|
11126
11185
|
})], 2);
|
|
11127
11186
|
}), 0)]) : _vm._e();
|
|
11128
11187
|
}), 0);
|
|
@@ -11137,7 +11196,7 @@ var __vue_inject_styles__$3 = undefined;
|
|
|
11137
11196
|
var __vue_scope_id__$3 = undefined;
|
|
11138
11197
|
/* module identifier */
|
|
11139
11198
|
|
|
11140
|
-
var __vue_module_identifier__$3 = "data-v-
|
|
11199
|
+
var __vue_module_identifier__$3 = "data-v-6a1523d3";
|
|
11141
11200
|
/* functional template */
|
|
11142
11201
|
|
|
11143
11202
|
var __vue_is_functional_template__$3 = false;
|
|
@@ -11445,7 +11504,11 @@ var __vue_render__$2 = function __vue_render__() {
|
|
|
11445
11504
|
attrs: {
|
|
11446
11505
|
"value": 'click'
|
|
11447
11506
|
}
|
|
11448
|
-
}, [_vm._v("\n Клик\n ")])
|
|
11507
|
+
}, [_vm._v("\n Клик\n ")]), _vm._v(" "), _c('b-form-select-option', {
|
|
11508
|
+
attrs: {
|
|
11509
|
+
"value": 'validate'
|
|
11510
|
+
}
|
|
11511
|
+
}, [_vm._v("\n Валидация\n ")])], 1)], 1)], 1), _vm._v(" "), _c('b-col', {
|
|
11449
11512
|
attrs: {
|
|
11450
11513
|
"lg": "12"
|
|
11451
11514
|
}
|
|
@@ -11553,7 +11616,7 @@ var __vue_inject_styles__$2 = undefined;
|
|
|
11553
11616
|
var __vue_scope_id__$2 = undefined;
|
|
11554
11617
|
/* module identifier */
|
|
11555
11618
|
|
|
11556
|
-
var __vue_module_identifier__$2 = "data-v-
|
|
11619
|
+
var __vue_module_identifier__$2 = "data-v-397a42e7";
|
|
11557
11620
|
/* functional template */
|
|
11558
11621
|
|
|
11559
11622
|
var __vue_is_functional_template__$2 = false;
|
|
@@ -11612,6 +11675,12 @@ var FieldRuleFormModal = __vue_component__$3;var script$1 = {
|
|
|
11612
11675
|
},
|
|
11613
11676
|
rules: function rules() {
|
|
11614
11677
|
return UtFormConstructor.getAvailableFieldRules(this.field);
|
|
11678
|
+
},
|
|
11679
|
+
hasMultipleInputTypes: function hasMultipleInputTypes() {
|
|
11680
|
+
return UtFormConstructor.hasMultipleInputTypes(this.field);
|
|
11681
|
+
},
|
|
11682
|
+
multiple: function multiple() {
|
|
11683
|
+
return this.field && this.field.multiple;
|
|
11615
11684
|
}
|
|
11616
11685
|
},
|
|
11617
11686
|
watch: {
|
|
@@ -11631,6 +11700,10 @@ var FieldRuleFormModal = __vue_component__$3;var script$1 = {
|
|
|
11631
11700
|
},
|
|
11632
11701
|
currentInputName: function currentInputName() {
|
|
11633
11702
|
this.field.input = UtFormConstructor.getInputTypeByName(this.currentInputName, this.field);
|
|
11703
|
+
},
|
|
11704
|
+
multiple: function multiple() {
|
|
11705
|
+
var input = UtFormConstructor.getDefaultInput(this.field);
|
|
11706
|
+
this.currentInputName = input.name;
|
|
11634
11707
|
}
|
|
11635
11708
|
},
|
|
11636
11709
|
methods: {
|
|
@@ -11802,7 +11875,8 @@ var __vue_render__$1 = function __vue_render__() {
|
|
|
11802
11875
|
}
|
|
11803
11876
|
}, [_c('b-checkbox', {
|
|
11804
11877
|
attrs: {
|
|
11805
|
-
"size": "lg"
|
|
11878
|
+
"size": "lg",
|
|
11879
|
+
"disabled": !_vm.hasMultipleInputTypes
|
|
11806
11880
|
},
|
|
11807
11881
|
model: {
|
|
11808
11882
|
value: _vm.field.multiple,
|
|
@@ -11811,7 +11885,7 @@ var __vue_render__$1 = function __vue_render__() {
|
|
|
11811
11885
|
},
|
|
11812
11886
|
expression: "field.multiple"
|
|
11813
11887
|
}
|
|
11814
|
-
}, [_vm._v("
|
|
11888
|
+
}, [_vm._v("\n Множественное\n ")])], 1)], 1), _vm._v(" "), _c('b-form-row', [_c('b-col', {
|
|
11815
11889
|
attrs: {
|
|
11816
11890
|
"lg": "12"
|
|
11817
11891
|
}
|
|
@@ -11980,7 +12054,7 @@ var __vue_inject_styles__$1 = undefined;
|
|
|
11980
12054
|
var __vue_scope_id__$1 = undefined;
|
|
11981
12055
|
/* module identifier */
|
|
11982
12056
|
|
|
11983
|
-
var __vue_module_identifier__$1 = "data-v-
|
|
12057
|
+
var __vue_module_identifier__$1 = "data-v-e86e382e";
|
|
11984
12058
|
/* functional template */
|
|
11985
12059
|
|
|
11986
12060
|
var __vue_is_functional_template__$1 = false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rb-document-form-constructor",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/rb-document-form-constructor.ssr.js",
|
|
6
6
|
"browser": "dist/rb-document-form-constructor.esm.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"prebuild": "rimraf ./dist",
|
|
17
17
|
"build": "cross-env NODE_ENV=production rollup --config build/rollup.config.js",
|
|
18
18
|
"build:ssr": "cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs",
|
|
19
|
-
"build:es": "cross-env NODE_ENV=
|
|
19
|
+
"build:es": "cross-env NODE_ENV=pеroduction rollup --config build/rollup.config.js --format es",
|
|
20
20
|
"build:unpkg": "cross-env kNODE_ENV=production rollup --config build/rollup.config.js --format iife"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
@change="onEventFired('change', $event, field)"
|
|
20
20
|
@click="onEventFired('click', $event, field)"
|
|
21
21
|
v-bind="field.input.propsData"></component>
|
|
22
|
+
<b-form-invalid-feedback v-if="!validationState[field.name]">
|
|
23
|
+
{{validationState[`${field.name}__feedback`]}}
|
|
24
|
+
</b-form-invalid-feedback>
|
|
22
25
|
</b-form-group>
|
|
23
26
|
</b-col>
|
|
24
27
|
</b-form-row>
|
|
@@ -30,6 +33,7 @@
|
|
|
30
33
|
</template>
|
|
31
34
|
|
|
32
35
|
<script>
|
|
36
|
+
import Vue from 'vue';
|
|
33
37
|
import {UtFormConstructor} from "../utils/UtFormConstructor";
|
|
34
38
|
|
|
35
39
|
export default {
|
|
@@ -38,10 +42,19 @@
|
|
|
38
42
|
formConfig: Object,
|
|
39
43
|
applyDefaultValues: {type: Boolean, default: true},
|
|
40
44
|
doc: {type: Object, default: () => ({})},
|
|
41
|
-
|
|
45
|
+
refDataSuffix: {type: String, default: 'Data'}
|
|
46
|
+
},
|
|
47
|
+
data() {
|
|
48
|
+
return {
|
|
49
|
+
validationState: {}
|
|
50
|
+
}
|
|
42
51
|
},
|
|
43
52
|
methods: {
|
|
44
53
|
onEventFired(eventName, event, field) {
|
|
54
|
+
if (eventName === 'input' && field.ref) {
|
|
55
|
+
this.doc[field.name + this.refDataSuffix] = null;
|
|
56
|
+
}
|
|
57
|
+
|
|
45
58
|
if (field.rules) {
|
|
46
59
|
field.rules.forEach(rule => {
|
|
47
60
|
if (rule.event === eventName && rule.script) {
|
|
@@ -54,6 +67,34 @@
|
|
|
54
67
|
}
|
|
55
68
|
})
|
|
56
69
|
}
|
|
70
|
+
},
|
|
71
|
+
validate() {
|
|
72
|
+
this.formConfig.sections.forEach(s => {
|
|
73
|
+
s.columns.forEach(c => {
|
|
74
|
+
c.fields.forEach(f => {
|
|
75
|
+
if (f.required && this.doc[f.name] == null) {
|
|
76
|
+
Vue.set(this.validationState, f.name, false);
|
|
77
|
+
Vue.set(this.validationState, `${f.name}__feedback`,
|
|
78
|
+
`Поле ${f.labelRu} обязательно`);
|
|
79
|
+
} else {
|
|
80
|
+
Vue.set(this.validationState, f.name, null);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
this.onEventFired('validate', {
|
|
84
|
+
validationState: this.validationState,
|
|
85
|
+
doc: this.doc,
|
|
86
|
+
}, f);
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
for (let fieldName in this.validationState) {
|
|
92
|
+
if (this.validationState[fieldName] === false) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return true;
|
|
57
98
|
}
|
|
58
99
|
},
|
|
59
100
|
created() {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
</b-form>
|
|
14
14
|
<div class="rb-facet-list">
|
|
15
15
|
<div class="rb-facet" v-for="facet in innerFacets"
|
|
16
|
-
:key="facet.name" v-if="facet.
|
|
16
|
+
:key="facet.name" v-if="getVisibleFields(facet).length > 0">
|
|
17
17
|
<h6 class="rb-facet-label d-flex cursor-pointer" @click="facet.expanded = !facet.expanded">
|
|
18
18
|
<rb-text class="flex-fill">{{facet.labelRu}}</rb-text>
|
|
19
19
|
<rb-icon :icon="facet.expanded? iconCollapseFacet: iconExpandFacet"></rb-icon>
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
:group="{name: 'fields', pull: 'clone', put: false}"
|
|
27
27
|
@end="onFieldMoveEnd($event)"
|
|
28
28
|
ghost-class="rb-facet-field-moving">
|
|
29
|
-
<b-list-group-item v-for="field in facet
|
|
29
|
+
<b-list-group-item v-for="field in getVisibleFields(facet)"
|
|
30
|
+
:key="field.name"
|
|
30
31
|
class="cursor-pointer">
|
|
31
32
|
<rb-text>{{field.labelRu}}</rb-text>
|
|
32
33
|
</b-list-group-item>
|
|
@@ -103,6 +104,13 @@
|
|
|
103
104
|
let innerFacets = this.facets.map(f => ({...f, expanded: false}));
|
|
104
105
|
this.innerFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
105
106
|
this.allFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
107
|
+
},
|
|
108
|
+
getVisibleFields(facet) {
|
|
109
|
+
if (!facet || !facet.fields) {
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return facet.fields.filter(field => !field.hiddenOnFormConfig);
|
|
106
114
|
}
|
|
107
115
|
},
|
|
108
116
|
created() {
|
|
@@ -40,7 +40,9 @@
|
|
|
40
40
|
</b-form-row>
|
|
41
41
|
<b-form-row>
|
|
42
42
|
<b-col lg="12">
|
|
43
|
-
<b-checkbox size="lg" v-model="field.multiple"
|
|
43
|
+
<b-checkbox size="lg" v-model="field.multiple" :disabled="!hasMultipleInputTypes">
|
|
44
|
+
Множественное
|
|
45
|
+
</b-checkbox>
|
|
44
46
|
</b-col>
|
|
45
47
|
</b-form-row>
|
|
46
48
|
<b-form-row>
|
|
@@ -130,7 +132,6 @@
|
|
|
130
132
|
</template>
|
|
131
133
|
|
|
132
134
|
<script>
|
|
133
|
-
import {UtFormConfig} from "@/utils/UtFormConfig";
|
|
134
135
|
import FieldRuleFormModal from "./FieldRuleFormModal";
|
|
135
136
|
import {v4 as uuidv4} from 'uuid';
|
|
136
137
|
import {UtFormConstructor} from "../utils/UtFormConstructor";
|
|
@@ -177,6 +178,12 @@
|
|
|
177
178
|
},
|
|
178
179
|
rules() {
|
|
179
180
|
return UtFormConstructor.getAvailableFieldRules(this.field);
|
|
181
|
+
},
|
|
182
|
+
hasMultipleInputTypes() {
|
|
183
|
+
return UtFormConstructor.hasMultipleInputTypes(this.field);
|
|
184
|
+
},
|
|
185
|
+
multiple() {
|
|
186
|
+
return this.field && this.field.multiple;
|
|
180
187
|
}
|
|
181
188
|
},
|
|
182
189
|
watch: {
|
|
@@ -196,6 +203,10 @@
|
|
|
196
203
|
currentInputName() {
|
|
197
204
|
this.field.input = UtFormConstructor.getInputTypeByName(this.currentInputName, this.field);
|
|
198
205
|
},
|
|
206
|
+
multiple() {
|
|
207
|
+
let input = UtFormConstructor.getDefaultInput(this.field);
|
|
208
|
+
this.currentInputName = input.name;
|
|
209
|
+
}
|
|
199
210
|
},
|
|
200
211
|
methods: {
|
|
201
212
|
hide() {
|