@nixweb/nixloc-ui 0.0.128 → 0.0.129

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.
Files changed (84) hide show
  1. package/package.json +87 -79
  2. package/src/App.vue +13 -13
  3. package/src/component/forms/Button.vue +171 -170
  4. package/src/component/forms/ButtonGroup.vue +57 -0
  5. package/src/component/forms/ButtonSub.vue +98 -0
  6. package/src/component/forms/CheckboxGroup.vue +73 -72
  7. package/src/component/forms/CheckboxSimple.vue +46 -46
  8. package/src/component/forms/Color.vue +38 -38
  9. package/src/component/forms/DateTime.vue +167 -167
  10. package/src/component/forms/Dropdown.vue +242 -218
  11. package/src/component/forms/EditorHtml.vue +126 -126
  12. package/src/component/forms/FileUpload.vue +185 -185
  13. package/src/component/forms/IncrementDecrement.vue +7 -2
  14. package/src/component/forms/InputDecimal.vue +150 -142
  15. package/src/component/forms/InputDecimalDiscount.vue +92 -0
  16. package/src/component/forms/InputNumber.vue +160 -154
  17. package/src/component/forms/InputPassword.vue +135 -135
  18. package/src/component/forms/InputText.vue +174 -162
  19. package/src/component/forms/InputTextEdit.vue +68 -0
  20. package/src/component/forms/Modal.vue +65 -65
  21. package/src/component/forms/RadioGroup.vue +50 -50
  22. package/src/component/forms/Select.vue +351 -349
  23. package/src/component/forms/SelectStatic.vue +127 -127
  24. package/src/component/forms/Slider.vue +18 -18
  25. package/src/component/forms/TextArea.vue +126 -126
  26. package/src/component/forms/Toggle.vue +3 -1
  27. package/src/component/layout/Account.vue +3 -3
  28. package/src/component/layout/Alert.vue +92 -92
  29. package/src/component/layout/Badge.vue +104 -103
  30. package/src/component/layout/FixedBar.vue +100 -100
  31. package/src/component/layout/Gantt.vue +130 -0
  32. package/src/component/layout/Header.vue +38 -38
  33. package/src/component/layout/IconMolded.vue +48 -0
  34. package/src/component/layout/LoadingFullPage.vue +27 -27
  35. package/src/component/layout/Menu.vue +213 -210
  36. package/src/component/layout/Molded.vue +28 -28
  37. package/src/component/layout/Panel.vue +140 -140
  38. package/src/component/layout/Popover.vue +126 -126
  39. package/src/component/layout/ScrollBar.vue +42 -42
  40. package/src/component/layout/Wizard.vue +211 -211
  41. package/src/component/rental/DisplayCalculatePeriod.vue +49 -0
  42. package/src/component/rental/DisplayPeriodRent.vue +19 -44
  43. package/src/component/rental/DisplayTotalization.vue +11 -2
  44. package/src/component/shared/Collapse.vue +131 -131
  45. package/src/component/shared/Confirmation.vue +21 -2
  46. package/src/component/shared/DocumentPreview.vue +2 -1
  47. package/src/component/shared/ExportPDF.vue +116 -116
  48. package/src/component/shared/FullCalendar.vue +159 -0
  49. package/src/component/shared/HorizontalFilter.vue +59 -59
  50. package/src/component/shared/Loading.vue +107 -107
  51. package/src/component/shared/LoadingMoreButton.vue +23 -23
  52. package/src/component/shared/Messages.vue +81 -81
  53. package/src/component/shared/PDFViewer.vue +22 -22
  54. package/src/component/shared/Pagination.vue +52 -52
  55. package/src/component/shared/ProgressBar.vue +22 -22
  56. package/src/component/shared/QueryButton.vue +66 -66
  57. package/src/component/shared/SaveCancel.vue +3 -2
  58. package/src/component/shared/Search.vue +154 -154
  59. package/src/component/shared/Table.vue +163 -163
  60. package/src/component/shared/TableButton.vue +36 -36
  61. package/src/component/shared/TableTotalization.vue +47 -47
  62. package/src/component/shared/TimeLine.vue +47 -0
  63. package/src/component/shared/Tip.vue +42 -42
  64. package/src/component/shared/Toast.vue +54 -54
  65. package/src/component/shared/VerticalFilter.vue +97 -97
  66. package/src/component/shared/query-builder/AddRule.vue +181 -181
  67. package/src/component/shared/query-builder/DynamicComponentList.vue +73 -73
  68. package/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  69. package/src/component/shared/query-builder/utilities.js +21 -21
  70. package/src/component/template/ListViewWithDataHandler.vue +260 -260
  71. package/src/component/template/ViewTemplateConfiguration.vue +64 -64
  72. package/src/component/template/ViewTemplateReportList.vue +1 -1
  73. package/src/component/template/ViewTemplateReportPreview.vue +0 -1
  74. package/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  75. package/src/component/template/ViewTemplateWithTable.vue +56 -56
  76. package/src/config/axios.js +9 -9
  77. package/src/config/dicas.js +14 -14
  78. package/src/config/router.js +13 -13
  79. package/src/config/token.js +14 -14
  80. package/src/main.js +23 -23
  81. package/src/store/modules/generic.js +543 -512
  82. package/src/store/modules/user.js +3 -0
  83. package/src/store/modules/validation.js +38 -38
  84. package/src/store/store.js +13 -13
@@ -1,181 +1,181 @@
1
- <template>
2
- <div>
3
- <div class="vqb-group card">
4
- <div class="vqb-group-body card-body">
5
- <div class="rule-actions form-inline">
6
- <div class="div-custom">
7
- <b-row>
8
- <b-col sm="6">
9
- <SelectRule :options="rules" class="select" v-model="selectedRule" />
10
- </b-col>
11
- <b-col sm="3">
12
- <RadioGroup
13
- :options="[
14
- { text: 'e', value: 'and' },
15
- { text: 'ou', value: 'or' },
16
- ]"
17
- v-model="andOr"
18
- />
19
- </b-col>
20
- <b-col sm="3">
21
- <button type="button" class="btn btn-secondary" @click="add">
22
- + Adicionar
23
- </button>
24
- </b-col>
25
- </b-row>
26
- </div>
27
- </div>
28
- </div>
29
- </div>
30
- <DynamicComponentList />
31
- </div>
32
- </template>
33
-
34
- <script>
35
- import SelectRule from "./SelectRule.vue";
36
- import DynamicComponent from "./DynamicComponent.vue";
37
- import RadioGroup from "@nixweb/nixloc-ui/src/component/forms/RadioGroup.vue";
38
- import DynamicComponentList from "@nixweb/nixloc-ui/src/component/shared/query-builder/DynamicComponentList.vue";
39
-
40
- import { mapGetters, mapMutations } from "vuex";
41
-
42
- export default {
43
- name: "AddRule",
44
- components: {
45
- SelectRule,
46
- DynamicComponent,
47
- RadioGroup,
48
- DynamicComponentList,
49
- },
50
- props: {
51
- rules: Array,
52
- },
53
- data() {
54
- return {
55
- selectedRule: this.rules[0],
56
- andOr: "or",
57
- duplicate: [],
58
- };
59
- },
60
- computed: {
61
- ...mapGetters("generic", ["event"]),
62
- },
63
- methods: {
64
- ...mapMutations("generic", ["addNotifications"]),
65
- ...mapMutations("report", ["addSelectedRules"]),
66
- add() {
67
- this.selectedRule.andOr = this.andOr;
68
- this.addRule();
69
- },
70
- addRule() {
71
- let obj = this.mountObject();
72
-
73
- if (!this.verifyIfExist(obj.name)) {
74
- this.addSelectedRules(obj);
75
- if (obj.notDuplicate) this.duplicate.push(obj);
76
- } else {
77
- var error = {
78
- property: "ERRO QUERY BUILDER",
79
- message: `Não é possível adicionar o filter ${obj.title} 2 vezes!`,
80
- };
81
- this.addNotifications([error]);
82
- }
83
- },
84
- mountObject() {
85
- let obj = {
86
- id: this.generateId(),
87
- name: this.selectedRule.name,
88
- title: this.selectedRule.title,
89
- typeField: this.selectedRule.typeField,
90
- type: this.selectedRule.type,
91
- options: this.selectedRule.options,
92
- props: this.selectedRule.props,
93
- classCss: this.selectedRule.classCss,
94
- icon: this.selectedRule.icon,
95
- operators: this.selectedRule.operators,
96
- operator: null,
97
- andOr: this.selectedRule.andOr,
98
- isRequired: this.selectedRule.isRequired,
99
- notDuplicate: this.selectedRule.notDuplicate,
100
- value: null,
101
- };
102
- return obj;
103
- },
104
- generateId() {
105
- return Math.random()
106
- .toString(36)
107
- .replace(/[^a-z]+/g, "")
108
- .substr(0, 5);
109
- },
110
- verifyIfExist(name) {
111
- var hasRule = this.duplicate.find((rule) => {
112
- return rule.name === name;
113
- });
114
- if (hasRule) return true;
115
- return false;
116
- },
117
- },
118
- watch: {
119
- event: {
120
- handler(event) {
121
- // se a tag ou a rule que está selecionada foi removida, é necessário remove tambem do array "duplicate" para liberar e adicionar novamente.
122
- if (event.name == "tagRemoved" || event.name == "selectedRuleRemoved") {
123
- var duplicate = this.duplicate.filter((item) => {
124
- return item.id != event.data.id;
125
- });
126
- this.duplicate = duplicate;
127
- }
128
- },
129
- deep: true,
130
- },
131
- },
132
- };
133
- </script>
134
-
135
- <style>
136
- .title-option {
137
- padding: 10px;
138
- }
139
-
140
- .div-custom {
141
- width: 100%;
142
- }
143
-
144
- .vue-query-builder .vqb-group .rule-actions {
145
- margin-bottom: 20px;
146
- }
147
-
148
- .vue-query-builder .vqb-rule {
149
- margin-top: 15px;
150
- margin-bottom: 15px;
151
- background-color: #f5f5f5;
152
- border-color: #ddd;
153
- padding: 15px;
154
- }
155
-
156
- .vue-query-builder .vqb-group.depth-1 .vqb-rule,
157
- .vue-query-builder .vqb-group.depth-2 {
158
- border-left: 2px solid #8bc34a;
159
- }
160
-
161
- .vue-query-builder .vqb-group.depth-2 .vqb-rule,
162
- .vue-query-builder .vqb-group.depth-3 {
163
- border-left: 2px solid #00bcd4;
164
- }
165
-
166
- .vue-query-builder .vqb-group.depth-3 .vqb-rule,
167
- .vue-query-builder .vqb-group.depth-4 {
168
- border-left: 2px solid #ff5722;
169
- }
170
-
171
- .vue-query-builder .close {
172
- opacity: 1;
173
- color: rgb(150, 150, 150);
174
- }
175
-
176
- @media (min-width: 768px) {
177
- .vue-query-builder .vqb-rule.form-inline .form-group {
178
- display: block;
179
- }
180
- }
181
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="vqb-group card">
4
+ <div class="vqb-group-body card-body">
5
+ <div class="rule-actions form-inline">
6
+ <div class="div-custom">
7
+ <b-row>
8
+ <b-col sm="6">
9
+ <SelectRule :options="rules" class="select" v-model="selectedRule" />
10
+ </b-col>
11
+ <b-col sm="3">
12
+ <RadioGroup
13
+ :options="[
14
+ { text: 'e', value: 'and' },
15
+ { text: 'ou', value: 'or' },
16
+ ]"
17
+ v-model="andOr"
18
+ />
19
+ </b-col>
20
+ <b-col sm="3">
21
+ <button type="button" class="btn btn-secondary" @click="add">
22
+ + Adicionar
23
+ </button>
24
+ </b-col>
25
+ </b-row>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <DynamicComponentList />
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ import SelectRule from "./SelectRule.vue";
36
+ import DynamicComponent from "./DynamicComponent.vue";
37
+ import RadioGroup from "@nixweb/nixloc-ui/src/component/forms/RadioGroup.vue";
38
+ import DynamicComponentList from "@nixweb/nixloc-ui/src/component/shared/query-builder/DynamicComponentList.vue";
39
+
40
+ import { mapGetters, mapMutations } from "vuex";
41
+
42
+ export default {
43
+ name: "AddRule",
44
+ components: {
45
+ SelectRule,
46
+ DynamicComponent,
47
+ RadioGroup,
48
+ DynamicComponentList,
49
+ },
50
+ props: {
51
+ rules: Array,
52
+ },
53
+ data() {
54
+ return {
55
+ selectedRule: this.rules[0],
56
+ andOr: "or",
57
+ duplicate: [],
58
+ };
59
+ },
60
+ computed: {
61
+ ...mapGetters("generic", ["event"]),
62
+ },
63
+ methods: {
64
+ ...mapMutations("generic", ["addNotifications"]),
65
+ ...mapMutations("report", ["addSelectedRules"]),
66
+ add() {
67
+ this.selectedRule.andOr = this.andOr;
68
+ this.addRule();
69
+ },
70
+ addRule() {
71
+ let obj = this.mountObject();
72
+
73
+ if (!this.verifyIfExist(obj.name)) {
74
+ this.addSelectedRules(obj);
75
+ if (obj.notDuplicate) this.duplicate.push(obj);
76
+ } else {
77
+ var error = {
78
+ property: "ERRO QUERY BUILDER",
79
+ message: `Não é possível adicionar o filter ${obj.title} 2 vezes!`,
80
+ };
81
+ this.addNotifications([error]);
82
+ }
83
+ },
84
+ mountObject() {
85
+ let obj = {
86
+ id: this.generateId(),
87
+ name: this.selectedRule.name,
88
+ title: this.selectedRule.title,
89
+ typeField: this.selectedRule.typeField,
90
+ type: this.selectedRule.type,
91
+ options: this.selectedRule.options,
92
+ props: this.selectedRule.props,
93
+ classCss: this.selectedRule.classCss,
94
+ icon: this.selectedRule.icon,
95
+ operators: this.selectedRule.operators,
96
+ operator: null,
97
+ andOr: this.selectedRule.andOr,
98
+ isRequired: this.selectedRule.isRequired,
99
+ notDuplicate: this.selectedRule.notDuplicate,
100
+ value: null,
101
+ };
102
+ return obj;
103
+ },
104
+ generateId() {
105
+ return Math.random()
106
+ .toString(36)
107
+ .replace(/[^a-z]+/g, "")
108
+ .substr(0, 5);
109
+ },
110
+ verifyIfExist(name) {
111
+ var hasRule = this.duplicate.find((rule) => {
112
+ return rule.name === name;
113
+ });
114
+ if (hasRule) return true;
115
+ return false;
116
+ },
117
+ },
118
+ watch: {
119
+ event: {
120
+ handler(event) {
121
+ // se a tag ou a rule que está selecionada foi removida, é necessário remove tambem do array "duplicate" para liberar e adicionar novamente.
122
+ if (event.name == "tagRemoved" || event.name == "selectedRuleRemoved") {
123
+ var duplicate = this.duplicate.filter((item) => {
124
+ return item.id != event.data.id;
125
+ });
126
+ this.duplicate = duplicate;
127
+ }
128
+ },
129
+ deep: true,
130
+ },
131
+ },
132
+ };
133
+ </script>
134
+
135
+ <style>
136
+ .title-option {
137
+ padding: 10px;
138
+ }
139
+
140
+ .div-custom {
141
+ width: 100%;
142
+ }
143
+
144
+ .vue-query-builder .vqb-group .rule-actions {
145
+ margin-bottom: 20px;
146
+ }
147
+
148
+ .vue-query-builder .vqb-rule {
149
+ margin-top: 15px;
150
+ margin-bottom: 15px;
151
+ background-color: #f5f5f5;
152
+ border-color: #ddd;
153
+ padding: 15px;
154
+ }
155
+
156
+ .vue-query-builder .vqb-group.depth-1 .vqb-rule,
157
+ .vue-query-builder .vqb-group.depth-2 {
158
+ border-left: 2px solid #8bc34a;
159
+ }
160
+
161
+ .vue-query-builder .vqb-group.depth-2 .vqb-rule,
162
+ .vue-query-builder .vqb-group.depth-3 {
163
+ border-left: 2px solid #00bcd4;
164
+ }
165
+
166
+ .vue-query-builder .vqb-group.depth-3 .vqb-rule,
167
+ .vue-query-builder .vqb-group.depth-4 {
168
+ border-left: 2px solid #ff5722;
169
+ }
170
+
171
+ .vue-query-builder .close {
172
+ opacity: 1;
173
+ color: rgb(150, 150, 150);
174
+ }
175
+
176
+ @media (min-width: 768px) {
177
+ .vue-query-builder .vqb-rule.form-inline .form-group {
178
+ display: block;
179
+ }
180
+ }
181
+ </style>
@@ -1,73 +1,73 @@
1
- <template>
2
- <div>
3
- <div class="component">
4
- <span v-if="selectedRules.length > 0">
5
- <i class="fas fa-expand-arrows-alt"></i> Clique e arraste para ordenar
6
- </span>
7
- <draggable :list="selectedRules">
8
- <component
9
- :is="component()"
10
- v-for="(rule, index) in selectedRules"
11
- :key="index"
12
- :rule="rule"
13
- />
14
- </draggable>
15
- <br />
16
- <div v-if="selectedRules.length == 0">
17
- <Alert type="info"> Selecione o filtro desejado e clique em +Adicionar</Alert>
18
- </div>
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script>
24
- import Alert from "@nixweb/nixloc-ui/src/component/layout/Alert";
25
-
26
- import draggable from "vuedraggable";
27
-
28
- import { mapState, mapMutations } from "vuex";
29
-
30
- export default {
31
- components: {
32
- Alert,
33
- draggable,
34
- },
35
- data() {
36
- return {
37
- dynamicComponent: null,
38
- };
39
- },
40
- computed: {
41
- ...mapState("report", ["selectedRules"]),
42
- },
43
- mounted() {
44
- this.dynamicComponent = this.$parent.$options.components["DynamicComponent"];
45
- },
46
- methods: {
47
- ...mapMutations("report", ["mountFinalQueryFormatOData"]),
48
- component() {
49
- return this.dynamicComponent;
50
- },
51
- },
52
- watch: {
53
- selectedRules: {
54
- handler(value) {
55
- this.mountFinalQueryFormatOData(value);
56
- },
57
- deep: true,
58
- },
59
- },
60
- };
61
- </script>
62
-
63
- <style scoped>
64
- .component {
65
- min-height: 380px;
66
- max-height: 380px;
67
- overflow-y: visible;
68
- overflow-x: hidden;
69
- padding-left: 10px;
70
- padding-right: 10px;
71
- margin-top: 10px;
72
- }
73
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="component">
4
+ <span v-if="selectedRules.length > 0">
5
+ <i class="fas fa-expand-arrows-alt"></i> Clique e arraste para ordenar
6
+ </span>
7
+ <draggable :list="selectedRules">
8
+ <component
9
+ :is="component()"
10
+ v-for="(rule, index) in selectedRules"
11
+ :key="index"
12
+ :rule="rule"
13
+ />
14
+ </draggable>
15
+ <br />
16
+ <div v-if="selectedRules.length == 0">
17
+ <Alert type="info"> Selecione o filtro desejado e clique em +Adicionar</Alert>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ import Alert from "@nixweb/nixloc-ui/src/component/layout/Alert";
25
+
26
+ import draggable from "vuedraggable";
27
+
28
+ import { mapState, mapMutations } from "vuex";
29
+
30
+ export default {
31
+ components: {
32
+ Alert,
33
+ draggable,
34
+ },
35
+ data() {
36
+ return {
37
+ dynamicComponent: null,
38
+ };
39
+ },
40
+ computed: {
41
+ ...mapState("report", ["selectedRules"]),
42
+ },
43
+ mounted() {
44
+ this.dynamicComponent = this.$parent.$options.components["DynamicComponent"];
45
+ },
46
+ methods: {
47
+ ...mapMutations("report", ["mountFinalQueryFormatOData"]),
48
+ component() {
49
+ return this.dynamicComponent;
50
+ },
51
+ },
52
+ watch: {
53
+ selectedRules: {
54
+ handler(value) {
55
+ this.mountFinalQueryFormatOData(value);
56
+ },
57
+ deep: true,
58
+ },
59
+ },
60
+ };
61
+ </script>
62
+
63
+ <style scoped>
64
+ .component {
65
+ min-height: 380px;
66
+ max-height: 380px;
67
+ overflow-y: visible;
68
+ overflow-x: hidden;
69
+ padding-left: 10px;
70
+ padding-right: 10px;
71
+ margin-top: 10px;
72
+ }
73
+ </style>
@@ -1,69 +1,69 @@
1
- <template>
2
- <div class="vue-query-builder">
3
- <slot v-bind="vqbProps">
4
- <AddRule v-bind="vqbProps" />
5
- </slot>
6
- </div>
7
- </template>
8
-
9
- <script>
10
- import AddRule from "./AddRule.vue";
11
-
12
- import { mapState } from "vuex";
13
-
14
- export default {
15
- name: "QueryBuilder",
16
- components: {
17
- AddRule,
18
- },
19
- data() {
20
- return {
21
- typeRule: {
22
- text: {
23
- id: "text-field",
24
- operators: ["igual", "diferente", "contem"],
25
- typeField: "text",
26
- },
27
- numeric: {
28
- id: "number-field",
29
- /* operators: ["=", "!=", "<", "<=", ">", ">="],*/
30
- operators: ["igual", "diferente", "menor", "menor ou igual", "maior", "maior ou igual"],
31
- typeField: "number",
32
- },
33
- radio: {
34
- id: "radio-field",
35
- operators: [],
36
- options: [],
37
- typeField: "radio",
38
- },
39
- checkbox: {
40
- id: "checkbox-field",
41
- operators: ["checkbox"],
42
- options: [],
43
- typeField: "checkbox",
44
- },
45
- },
46
- };
47
- },
48
- computed: {
49
- ...mapState("report", ["report"]),
50
- mergeRules() {
51
- var mergeRules = [];
52
- var self = this;
53
- self.report.rules.forEach(function (rule) {
54
- if (typeof self.typeRule[rule.typeField] !== "undefined") {
55
- mergeRules.push(Object.assign({}, self.typeRule[rule.typeField], rule));
56
- } else {
57
- mergeRules.push(rule);
58
- }
59
- });
60
- return mergeRules;
61
- },
62
- vqbProps() {
63
- return {
64
- rules: this.mergeRules,
65
- };
66
- },
67
- },
68
- };
69
- </script>
1
+ <template>
2
+ <div class="vue-query-builder">
3
+ <slot v-bind="vqbProps">
4
+ <AddRule v-bind="vqbProps" />
5
+ </slot>
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ import AddRule from "./AddRule.vue";
11
+
12
+ import { mapState } from "vuex";
13
+
14
+ export default {
15
+ name: "QueryBuilder",
16
+ components: {
17
+ AddRule,
18
+ },
19
+ data() {
20
+ return {
21
+ typeRule: {
22
+ text: {
23
+ id: "text-field",
24
+ operators: ["igual", "diferente", "contem"],
25
+ typeField: "text",
26
+ },
27
+ numeric: {
28
+ id: "number-field",
29
+ /* operators: ["=", "!=", "<", "<=", ">", ">="],*/
30
+ operators: ["igual", "diferente", "menor", "menor ou igual", "maior", "maior ou igual"],
31
+ typeField: "number",
32
+ },
33
+ radio: {
34
+ id: "radio-field",
35
+ operators: [],
36
+ options: [],
37
+ typeField: "radio",
38
+ },
39
+ checkbox: {
40
+ id: "checkbox-field",
41
+ operators: ["checkbox"],
42
+ options: [],
43
+ typeField: "checkbox",
44
+ },
45
+ },
46
+ };
47
+ },
48
+ computed: {
49
+ ...mapState("report", ["report"]),
50
+ mergeRules() {
51
+ var mergeRules = [];
52
+ var self = this;
53
+ self.report.rules.forEach(function (rule) {
54
+ if (typeof self.typeRule[rule.typeField] !== "undefined") {
55
+ mergeRules.push(Object.assign({}, self.typeRule[rule.typeField], rule));
56
+ } else {
57
+ mergeRules.push(rule);
58
+ }
59
+ });
60
+ return mergeRules;
61
+ },
62
+ vqbProps() {
63
+ return {
64
+ rules: this.mergeRules,
65
+ };
66
+ },
67
+ },
68
+ };
69
+ </script>