rb-document-form-constructor 0.3.2 → 0.3.3
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 +88 -23
- package/dist/rb-document-form-constructor.min.js +2 -2
- package/dist/rb-document-form-constructor.ssr.js +89 -32
- package/package.json +1 -1
- package/src/components/DocForm.vue +37 -1
- 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
|
};
|
|
@@ -10986,15 +11002,18 @@ var script$3 = {
|
|
|
10986
11002
|
type: Object,
|
|
10987
11003
|
default: () => ({})
|
|
10988
11004
|
},
|
|
10989
|
-
validationState: {
|
|
10990
|
-
type: Object,
|
|
10991
|
-
default: () => ({})
|
|
10992
|
-
},
|
|
10993
11005
|
refDataSuffix: {
|
|
10994
11006
|
type: String,
|
|
10995
11007
|
default: 'Data'
|
|
10996
11008
|
}
|
|
10997
11009
|
},
|
|
11010
|
+
|
|
11011
|
+
data() {
|
|
11012
|
+
return {
|
|
11013
|
+
validationState: {}
|
|
11014
|
+
};
|
|
11015
|
+
},
|
|
11016
|
+
|
|
10998
11017
|
methods: {
|
|
10999
11018
|
onEventFired(eventName, event, field) {
|
|
11000
11019
|
if (eventName === 'input' && field.ref) {
|
|
@@ -11013,6 +11032,34 @@ var script$3 = {
|
|
|
11013
11032
|
}
|
|
11014
11033
|
});
|
|
11015
11034
|
}
|
|
11035
|
+
},
|
|
11036
|
+
|
|
11037
|
+
validate() {
|
|
11038
|
+
this.formConfig.sections.forEach(s => {
|
|
11039
|
+
s.columns.forEach(c => {
|
|
11040
|
+
c.fields.forEach(f => {
|
|
11041
|
+
if (f.required && this.doc[f.name] == null) {
|
|
11042
|
+
Vue.set(this.validationState, f.name, false);
|
|
11043
|
+
Vue.set(this.validationState, `${f.name}__feedback`, `Поле ${f.labelRu} обязательно`);
|
|
11044
|
+
} else {
|
|
11045
|
+
Vue.set(this.validationState, f.name, null);
|
|
11046
|
+
}
|
|
11047
|
+
|
|
11048
|
+
this.onEventFired('validate', {
|
|
11049
|
+
validationState: this.validationState,
|
|
11050
|
+
doc: this.doc
|
|
11051
|
+
}, f);
|
|
11052
|
+
});
|
|
11053
|
+
});
|
|
11054
|
+
});
|
|
11055
|
+
|
|
11056
|
+
for (let fieldName in this.validationState) {
|
|
11057
|
+
if (!this.validationState[fieldName]) {
|
|
11058
|
+
return false;
|
|
11059
|
+
}
|
|
11060
|
+
}
|
|
11061
|
+
|
|
11062
|
+
return true;
|
|
11016
11063
|
}
|
|
11017
11064
|
|
|
11018
11065
|
},
|
|
@@ -11093,7 +11140,7 @@ var __vue_render__$3 = function () {
|
|
|
11093
11140
|
},
|
|
11094
11141
|
expression: "doc[field.name]"
|
|
11095
11142
|
}
|
|
11096
|
-
}, 'component', field.input.propsData, false))], 1)], 1)], 1) : _vm._e()];
|
|
11143
|
+
}, '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()];
|
|
11097
11144
|
})], 2);
|
|
11098
11145
|
}), 0)]) : _vm._e();
|
|
11099
11146
|
}), 0);
|
|
@@ -11435,7 +11482,11 @@ var __vue_render__$2 = function () {
|
|
|
11435
11482
|
attrs: {
|
|
11436
11483
|
"value": 'click'
|
|
11437
11484
|
}
|
|
11438
|
-
}, [_vm._v("\n Клик\n ")])
|
|
11485
|
+
}, [_vm._v("\n Клик\n ")]), _vm._v(" "), _c('b-form-select-option', {
|
|
11486
|
+
attrs: {
|
|
11487
|
+
"value": 'validate'
|
|
11488
|
+
}
|
|
11489
|
+
}, [_vm._v("\n Валидация\n ")])], 1)], 1)], 1), _vm._v(" "), _c('b-col', {
|
|
11439
11490
|
attrs: {
|
|
11440
11491
|
"lg": "12"
|
|
11441
11492
|
}
|
|
@@ -11611,6 +11662,14 @@ var script$1 = {
|
|
|
11611
11662
|
|
|
11612
11663
|
rules() {
|
|
11613
11664
|
return UtFormConstructor.getAvailableFieldRules(this.field);
|
|
11665
|
+
},
|
|
11666
|
+
|
|
11667
|
+
hasMultipleInputTypes() {
|
|
11668
|
+
return UtFormConstructor.hasMultipleInputTypes(this.field);
|
|
11669
|
+
},
|
|
11670
|
+
|
|
11671
|
+
multiple() {
|
|
11672
|
+
return this.field && this.field.multiple;
|
|
11614
11673
|
}
|
|
11615
11674
|
|
|
11616
11675
|
},
|
|
@@ -11634,6 +11693,11 @@ var script$1 = {
|
|
|
11634
11693
|
|
|
11635
11694
|
currentInputName() {
|
|
11636
11695
|
this.field.input = UtFormConstructor.getInputTypeByName(this.currentInputName, this.field);
|
|
11696
|
+
},
|
|
11697
|
+
|
|
11698
|
+
multiple() {
|
|
11699
|
+
let input = UtFormConstructor.getDefaultInput(this.field);
|
|
11700
|
+
this.currentInputName = input.name;
|
|
11637
11701
|
}
|
|
11638
11702
|
|
|
11639
11703
|
},
|
|
@@ -11812,7 +11876,8 @@ var __vue_render__$1 = function () {
|
|
|
11812
11876
|
}
|
|
11813
11877
|
}, [_c('b-checkbox', {
|
|
11814
11878
|
attrs: {
|
|
11815
|
-
"size": "lg"
|
|
11879
|
+
"size": "lg",
|
|
11880
|
+
"disabled": !_vm.hasMultipleInputTypes
|
|
11816
11881
|
},
|
|
11817
11882
|
model: {
|
|
11818
11883
|
value: _vm.field.multiple,
|
|
@@ -11821,7 +11886,7 @@ var __vue_render__$1 = function () {
|
|
|
11821
11886
|
},
|
|
11822
11887
|
expression: "field.multiple"
|
|
11823
11888
|
}
|
|
11824
|
-
}, [_vm._v("
|
|
11889
|
+
}, [_vm._v("\n Множественное\n ")])], 1)], 1), _vm._v(" "), _c('b-form-row', [_c('b-col', {
|
|
11825
11890
|
attrs: {
|
|
11826
11891
|
"lg": "12"
|
|
11827
11892
|
}
|