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,3 +1,4 @@
|
|
|
1
|
+
import Vue from 'vue';
|
|
1
2
|
import crypto from 'crypto';
|
|
2
3
|
|
|
3
4
|
const UtFormConfig = {
|
|
@@ -4855,6 +4856,12 @@ let __applyRefProps = function (input, refConfig) {
|
|
|
4855
4856
|
}
|
|
4856
4857
|
};
|
|
4857
4858
|
|
|
4859
|
+
let __filterInputsByMultiple = function (inputs, multiple) {
|
|
4860
|
+
return inputs.filter(i => {
|
|
4861
|
+
return i.multiple && multiple || !i.multiple && !multiple;
|
|
4862
|
+
});
|
|
4863
|
+
};
|
|
4864
|
+
|
|
4858
4865
|
let fcInputs = {
|
|
4859
4866
|
string: {
|
|
4860
4867
|
text: 'Текст',
|
|
@@ -5020,26 +5027,40 @@ const UtFormConstructor = {
|
|
|
5020
5027
|
},
|
|
5021
5028
|
|
|
5022
5029
|
getInputTypes(field) {
|
|
5030
|
+
let inputs = [];
|
|
5031
|
+
|
|
5023
5032
|
if (!field) {
|
|
5024
|
-
return
|
|
5033
|
+
return inputs;
|
|
5025
5034
|
}
|
|
5026
5035
|
|
|
5027
5036
|
if (field.dict && !this.config.refInputs[field.ref]) {
|
|
5028
|
-
|
|
5037
|
+
inputs = __filterInputsByMultiple(this.config.dictInputs, field.multiple);
|
|
5038
|
+
} else if (field.ref) {
|
|
5039
|
+
inputs = __filterInputsByMultiple(this.config.refInputs[field.ref], field.multiple);
|
|
5040
|
+
} else {
|
|
5041
|
+
inputs = __filterInputsByMultiple(this.config.primitiveInputs[field.type], field.multiple);
|
|
5029
5042
|
}
|
|
5030
5043
|
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
}
|
|
5044
|
+
return inputs;
|
|
5045
|
+
},
|
|
5034
5046
|
|
|
5035
|
-
|
|
5047
|
+
hasMultipleInputTypes(field) {
|
|
5048
|
+
let inputs = this.getInputTypes({ ...field,
|
|
5049
|
+
multiple: true
|
|
5050
|
+
});
|
|
5051
|
+
return inputs && inputs.length > 0;
|
|
5036
5052
|
},
|
|
5037
5053
|
|
|
5038
5054
|
getDefaultInput(field) {
|
|
5039
5055
|
let input = null;
|
|
5056
|
+
let inputs = this.getInputTypes(field);
|
|
5057
|
+
|
|
5058
|
+
if (!inputs) {
|
|
5059
|
+
input = this.primitiveInputs[0];
|
|
5060
|
+
}
|
|
5040
5061
|
|
|
5041
5062
|
if (field.ref && this.config.refInputs[field.ref]) {
|
|
5042
|
-
input = __clone(
|
|
5063
|
+
input = __clone(inputs[0]);
|
|
5043
5064
|
|
|
5044
5065
|
__applyDefaultProps(input);
|
|
5045
5066
|
|
|
@@ -5047,12 +5068,12 @@ const UtFormConstructor = {
|
|
|
5047
5068
|
__applyRefProps(input, this.config.refInputConfigs[field.ref][input.name]);
|
|
5048
5069
|
}
|
|
5049
5070
|
} else if (field.dict) {
|
|
5050
|
-
input = __clone(
|
|
5071
|
+
input = __clone(inputs[0]);
|
|
5051
5072
|
input.props.dict.default = field.ref;
|
|
5052
5073
|
|
|
5053
5074
|
__applyDefaultProps(input);
|
|
5054
5075
|
} else {
|
|
5055
|
-
input = __clone(
|
|
5076
|
+
input = __clone(inputs[0]);
|
|
5056
5077
|
|
|
5057
5078
|
__applyDefaultProps(input);
|
|
5058
5079
|
}
|
|
@@ -5094,17 +5115,12 @@ const UtFormConstructor = {
|
|
|
5094
5115
|
runRule(context, script) {
|
|
5095
5116
|
context = context ? context : {};
|
|
5096
5117
|
context['console'] = console;
|
|
5097
|
-
let appendScript = '';
|
|
5098
|
-
/*for(let v in context) {
|
|
5099
|
-
appendScript = appendScript + `var ${v} = this.${v};\n`;
|
|
5100
|
-
}
|
|
5101
|
-
appendScript = appendScript? appendScript + '\n': '';*/
|
|
5102
5118
|
|
|
5103
5119
|
let func = function (script) {
|
|
5104
5120
|
return notevil(script, context);
|
|
5105
5121
|
};
|
|
5106
5122
|
|
|
5107
|
-
func.call(context,
|
|
5123
|
+
func.call(context, script);
|
|
5108
5124
|
}
|
|
5109
5125
|
|
|
5110
5126
|
};
|
|
@@ -10793,6 +10809,14 @@ var script$4 = {
|
|
|
10793
10809
|
}));
|
|
10794
10810
|
this.innerFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
10795
10811
|
this.allFacets = JSON.parse(JSON.stringify(innerFacets));
|
|
10812
|
+
},
|
|
10813
|
+
|
|
10814
|
+
getVisibleFields(facet) {
|
|
10815
|
+
if (!facet || !facet.fields) {
|
|
10816
|
+
return [];
|
|
10817
|
+
}
|
|
10818
|
+
|
|
10819
|
+
return facet.fields.filter(field => !field.hiddenOnFormConfig);
|
|
10796
10820
|
}
|
|
10797
10821
|
|
|
10798
10822
|
},
|
|
@@ -10834,7 +10858,7 @@ var __vue_render__$4 = function () {
|
|
|
10834
10858
|
})], 1)], 1)], 1)], 1), _vm._v(" "), _c('div', {
|
|
10835
10859
|
staticClass: "rb-facet-list"
|
|
10836
10860
|
}, _vm._l(_vm.innerFacets, function (facet) {
|
|
10837
|
-
return
|
|
10861
|
+
return _vm.getVisibleFields(facet).length > 0 ? _c('div', {
|
|
10838
10862
|
key: facet.name,
|
|
10839
10863
|
staticClass: "rb-facet"
|
|
10840
10864
|
}, [_c('h6', {
|
|
@@ -10873,7 +10897,7 @@ var __vue_render__$4 = function () {
|
|
|
10873
10897
|
},
|
|
10874
10898
|
expression: "facet.fields"
|
|
10875
10899
|
}
|
|
10876
|
-
}, _vm._l(facet
|
|
10900
|
+
}, _vm._l(_vm.getVisibleFields(facet), function (field) {
|
|
10877
10901
|
return _c('b-list-group-item', {
|
|
10878
10902
|
key: field.name,
|
|
10879
10903
|
staticClass: "cursor-pointer"
|
|
@@ -10986,13 +11010,24 @@ var script$3 = {
|
|
|
10986
11010
|
type: Object,
|
|
10987
11011
|
default: () => ({})
|
|
10988
11012
|
},
|
|
10989
|
-
|
|
10990
|
-
type:
|
|
10991
|
-
default:
|
|
11013
|
+
refDataSuffix: {
|
|
11014
|
+
type: String,
|
|
11015
|
+
default: 'Data'
|
|
10992
11016
|
}
|
|
10993
11017
|
},
|
|
11018
|
+
|
|
11019
|
+
data() {
|
|
11020
|
+
return {
|
|
11021
|
+
validationState: {}
|
|
11022
|
+
};
|
|
11023
|
+
},
|
|
11024
|
+
|
|
10994
11025
|
methods: {
|
|
10995
11026
|
onEventFired(eventName, event, field) {
|
|
11027
|
+
if (eventName === 'input' && field.ref) {
|
|
11028
|
+
this.doc[field.name + this.refDataSuffix] = null;
|
|
11029
|
+
}
|
|
11030
|
+
|
|
10996
11031
|
if (field.rules) {
|
|
10997
11032
|
field.rules.forEach(rule => {
|
|
10998
11033
|
if (rule.event === eventName && rule.script) {
|
|
@@ -11005,6 +11040,34 @@ var script$3 = {
|
|
|
11005
11040
|
}
|
|
11006
11041
|
});
|
|
11007
11042
|
}
|
|
11043
|
+
},
|
|
11044
|
+
|
|
11045
|
+
validate() {
|
|
11046
|
+
this.formConfig.sections.forEach(s => {
|
|
11047
|
+
s.columns.forEach(c => {
|
|
11048
|
+
c.fields.forEach(f => {
|
|
11049
|
+
if (f.required && this.doc[f.name] == null) {
|
|
11050
|
+
Vue.set(this.validationState, f.name, false);
|
|
11051
|
+
Vue.set(this.validationState, `${f.name}__feedback`, `Поле ${f.labelRu} обязательно`);
|
|
11052
|
+
} else {
|
|
11053
|
+
Vue.set(this.validationState, f.name, null);
|
|
11054
|
+
}
|
|
11055
|
+
|
|
11056
|
+
this.onEventFired('validate', {
|
|
11057
|
+
validationState: this.validationState,
|
|
11058
|
+
doc: this.doc
|
|
11059
|
+
}, f);
|
|
11060
|
+
});
|
|
11061
|
+
});
|
|
11062
|
+
});
|
|
11063
|
+
|
|
11064
|
+
for (let fieldName in this.validationState) {
|
|
11065
|
+
if (this.validationState[fieldName] === false) {
|
|
11066
|
+
return false;
|
|
11067
|
+
}
|
|
11068
|
+
}
|
|
11069
|
+
|
|
11070
|
+
return true;
|
|
11008
11071
|
}
|
|
11009
11072
|
|
|
11010
11073
|
},
|
|
@@ -11085,7 +11148,7 @@ var __vue_render__$3 = function () {
|
|
|
11085
11148
|
},
|
|
11086
11149
|
expression: "doc[field.name]"
|
|
11087
11150
|
}
|
|
11088
|
-
}, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
|
|
11151
|
+
}, '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()];
|
|
11089
11152
|
})], 2);
|
|
11090
11153
|
}), 0)]) : _vm._e();
|
|
11091
11154
|
}), 0);
|
|
@@ -11427,7 +11490,11 @@ var __vue_render__$2 = function () {
|
|
|
11427
11490
|
attrs: {
|
|
11428
11491
|
"value": 'click'
|
|
11429
11492
|
}
|
|
11430
|
-
}, [_vm._v("\n Клик\n ")])
|
|
11493
|
+
}, [_vm._v("\n Клик\n ")]), _vm._v(" "), _c('b-form-select-option', {
|
|
11494
|
+
attrs: {
|
|
11495
|
+
"value": 'validate'
|
|
11496
|
+
}
|
|
11497
|
+
}, [_vm._v("\n Валидация\n ")])], 1)], 1)], 1), _vm._v(" "), _c('b-col', {
|
|
11431
11498
|
attrs: {
|
|
11432
11499
|
"lg": "12"
|
|
11433
11500
|
}
|
|
@@ -11603,6 +11670,14 @@ var script$1 = {
|
|
|
11603
11670
|
|
|
11604
11671
|
rules() {
|
|
11605
11672
|
return UtFormConstructor.getAvailableFieldRules(this.field);
|
|
11673
|
+
},
|
|
11674
|
+
|
|
11675
|
+
hasMultipleInputTypes() {
|
|
11676
|
+
return UtFormConstructor.hasMultipleInputTypes(this.field);
|
|
11677
|
+
},
|
|
11678
|
+
|
|
11679
|
+
multiple() {
|
|
11680
|
+
return this.field && this.field.multiple;
|
|
11606
11681
|
}
|
|
11607
11682
|
|
|
11608
11683
|
},
|
|
@@ -11626,6 +11701,11 @@ var script$1 = {
|
|
|
11626
11701
|
|
|
11627
11702
|
currentInputName() {
|
|
11628
11703
|
this.field.input = UtFormConstructor.getInputTypeByName(this.currentInputName, this.field);
|
|
11704
|
+
},
|
|
11705
|
+
|
|
11706
|
+
multiple() {
|
|
11707
|
+
let input = UtFormConstructor.getDefaultInput(this.field);
|
|
11708
|
+
this.currentInputName = input.name;
|
|
11629
11709
|
}
|
|
11630
11710
|
|
|
11631
11711
|
},
|
|
@@ -11804,7 +11884,8 @@ var __vue_render__$1 = function () {
|
|
|
11804
11884
|
}
|
|
11805
11885
|
}, [_c('b-checkbox', {
|
|
11806
11886
|
attrs: {
|
|
11807
|
-
"size": "lg"
|
|
11887
|
+
"size": "lg",
|
|
11888
|
+
"disabled": !_vm.hasMultipleInputTypes
|
|
11808
11889
|
},
|
|
11809
11890
|
model: {
|
|
11810
11891
|
value: _vm.field.multiple,
|
|
@@ -11813,7 +11894,7 @@ var __vue_render__$1 = function () {
|
|
|
11813
11894
|
},
|
|
11814
11895
|
expression: "field.multiple"
|
|
11815
11896
|
}
|
|
11816
|
-
}, [_vm._v("
|
|
11897
|
+
}, [_vm._v("\n Множественное\n ")])], 1)], 1), _vm._v(" "), _c('b-form-row', [_c('b-col', {
|
|
11817
11898
|
attrs: {
|
|
11818
11899
|
"lg": "12"
|
|
11819
11900
|
}
|