@nixweb/nixloc-ui 0.0.125 → 0.0.128

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 (111) hide show
  1. package/docs/src/component/template/ViewTemplateReportPreview.drawio +210 -0
  2. package/package.json +79 -77
  3. package/src/App.vue +13 -13
  4. package/src/component/forms/Button.vue +170 -169
  5. package/src/component/forms/CheckboxGroup.vue +72 -63
  6. package/src/component/forms/CheckboxSimple.vue +46 -27
  7. package/src/component/forms/Color.vue +38 -38
  8. package/src/component/forms/DateTime.vue +167 -177
  9. package/src/component/forms/Dropdown.vue +218 -224
  10. package/src/component/forms/EditorHtml.vue +126 -123
  11. package/src/component/forms/FileUpload.vue +185 -189
  12. package/src/component/forms/ImageUpload.vue +230 -0
  13. package/src/component/forms/IncrementDecrement.vue +101 -0
  14. package/src/component/forms/InputDecimal.vue +142 -137
  15. package/src/component/forms/InputNumber.vue +154 -149
  16. package/src/component/forms/InputPassword.vue +135 -135
  17. package/src/component/forms/InputText.vue +162 -157
  18. package/src/component/forms/Modal.vue +65 -60
  19. package/src/component/forms/RadioGroup.vue +50 -50
  20. package/src/component/forms/Select.vue +349 -337
  21. package/src/component/forms/SelectStatic.vue +127 -120
  22. package/src/component/forms/Slider.vue +18 -18
  23. package/src/component/forms/TextArea.vue +126 -126
  24. package/src/component/layout/Alert.vue +92 -92
  25. package/src/component/layout/Badge.vue +103 -103
  26. package/src/component/layout/FixedBar.vue +100 -68
  27. package/src/component/layout/Header.vue +38 -35
  28. package/src/component/layout/LoadingFullPage.vue +27 -27
  29. package/src/component/layout/Menu.vue +210 -214
  30. package/src/component/layout/Molded.vue +28 -27
  31. package/src/component/layout/Panel.vue +140 -142
  32. package/src/component/layout/Popover.vue +126 -126
  33. package/src/component/layout/ScrollBar.vue +42 -43
  34. package/src/component/layout/Tab.vue +135 -0
  35. package/src/component/layout/Tag.vue +3 -3
  36. package/src/component/layout/Wizard.vue +211 -213
  37. package/src/component/rental/DisplayPeriodRent.vue +81 -0
  38. package/src/component/rental/DisplayTotalization.vue +47 -0
  39. package/src/component/shared/Collapse.vue +131 -131
  40. package/src/component/shared/Confirmation.vue +2 -2
  41. package/src/component/shared/DocumentEditor.vue +1 -1
  42. package/src/component/shared/DocumentPreview.vue +1 -1
  43. package/src/component/shared/DocumentPublic.vue +34 -0
  44. package/src/component/shared/ExportExcel.vue +1 -8
  45. package/src/component/shared/ExportPDF.vue +116 -116
  46. package/src/component/shared/{HeaderPrint.vue → HeaderReport.vue} +4 -4
  47. package/src/component/shared/HorizontalFilter.vue +59 -59
  48. package/src/component/shared/Loading.vue +107 -107
  49. package/src/component/shared/LoadingMoreButton.vue +23 -23
  50. package/src/component/shared/Messages.vue +81 -83
  51. package/src/component/shared/PDFViewer.vue +22 -22
  52. package/src/component/shared/Pagination.vue +52 -53
  53. package/src/component/shared/{LegendaParametro.vue → ParameterLegend.vue} +22 -26
  54. package/src/component/shared/ProgressBar.vue +22 -21
  55. package/src/component/shared/QueryButton.vue +66 -66
  56. package/src/component/shared/Report.vue +187 -0
  57. package/src/component/shared/SaveCancel.vue +26 -5
  58. package/src/component/shared/Search.vue +154 -154
  59. package/src/component/shared/SelectOption.vue +146 -0
  60. package/src/component/shared/Table.vue +163 -243
  61. package/src/component/shared/TableButton.vue +36 -36
  62. package/src/component/shared/TableDraggable.vue +127 -0
  63. package/src/component/shared/TableItem.vue +177 -0
  64. package/src/component/shared/TableTotalRecords.vue +9 -10
  65. package/src/component/shared/TableTotalization.vue +47 -47
  66. package/src/component/shared/Tip.vue +42 -42
  67. package/src/component/shared/Toast.vue +54 -54
  68. package/src/component/shared/TotalizationReport.vue +59 -0
  69. package/src/component/shared/VerticalFilter.vue +97 -145
  70. package/src/component/shared/query-builder/AddRule.vue +181 -187
  71. package/src/component/shared/query-builder/ConvertToOdata.js +34 -43
  72. package/src/component/shared/query-builder/DynamicComponent.vue +21 -16
  73. package/src/component/shared/query-builder/DynamicComponentList.vue +73 -0
  74. package/src/component/shared/query-builder/Fields.vue +29 -63
  75. package/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  76. package/src/component/shared/query-builder/Rules.vue +2 -14
  77. package/src/component/shared/query-builder/SelectRule.vue +15 -15
  78. package/src/component/shared/query-builder/Tags.vue +24 -8
  79. package/src/component/shared/query-builder/utilities.js +21 -21
  80. package/src/component/template/{ListViewWithHandlerData.vue → ListViewWithDataHandler.vue} +260 -231
  81. package/src/component/template/{AddEditReport.vue → ReportCreateUpdate.vue} +40 -22
  82. package/src/component/template/ViewTemplateConfiguration.vue +64 -69
  83. package/src/component/template/ViewTemplateDocumentView.vue +22 -25
  84. package/src/component/template/ViewTemplateReportList.vue +39 -57
  85. package/src/component/template/ViewTemplateReportPreview.vue +270 -341
  86. package/src/component/template/ViewTemplateReportPreviewCOPIASEGURANCA.vue +497 -0
  87. package/src/component/template/ViewTemplateSelectOption.vue +60 -0
  88. package/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  89. package/src/component/template/ViewTemplateWithTable.vue +56 -49
  90. package/src/component/template/model/Report.js +2 -2
  91. package/src/component/value-objects/Address.js +11 -0
  92. package/src/component/value-objects/{Endereco.vue → Address.vue} +39 -40
  93. package/src/component/value-objects/{DadosContato.js → Contact.js} +2 -2
  94. package/src/component/value-objects/{DadosContato.vue → Contact.vue} +24 -17
  95. package/src/component/value-objects/Person.js +10 -0
  96. package/src/component/value-objects/{DadosPessoa.vue → Person.vue} +50 -35
  97. package/src/config/axios.js +9 -9
  98. package/src/config/dicas.js +14 -14
  99. package/src/config/router.js +13 -13
  100. package/src/config/token.js +14 -14
  101. package/src/main.js +23 -23
  102. package/src/store/modules/generic.js +512 -488
  103. package/src/store/modules/report.js +156 -127
  104. package/src/store/modules/user.js +6 -0
  105. package/src/store/modules/validation.js +38 -38
  106. package/src/store/store.js +13 -13
  107. package/docs/src/component/template/ModeloRelatorioView.drawio +0 -160
  108. package/src/component/shared/query-builder/ListDynamicComponent.vue +0 -42
  109. package/src/component/shared/query-builder/Totalization.vue +0 -38
  110. package/src/component/value-objects/DadosPessoa.js +0 -10
  111. package/src/component/value-objects/Endereco.js +0 -11
@@ -1,214 +1,210 @@
1
- <template>
2
- <div class="menu-container" :class="{ 'menu-open': subMenuFirstLevel }">
3
- <ul class="menu">
4
- <li v-if="urlImage">
5
- <div class="div-logo text-center">
6
- <img :src="urlImage" />
7
- </div>
8
- </li>
9
- <li>
10
- <div :class="{ 'menu-active': menuActive == 'Dashboard' }">
11
- <a
12
- href="#"
13
- @click.prevent="navegateTo({ routeName: 'dashboard', module: 'Dashboard' })"
14
- :class="highlightSession('home')"
15
- >
16
- <div class="div-icon side-by-side">
17
- <i
18
- :class="{
19
- 'icon-active': menuActive == 'Dashboard',
20
- 'icon-normal': menuActive != 'Dashboard',
21
- }"
22
- class="fas fa-chart-area icon-dash"
23
- ></i>
24
- </div>
25
- <div class="title">Dashboard</div>
26
- </a>
27
- </div>
28
- </li>
29
- <li v-for="(item, index) in menuFilter(true)" :key="index">
30
- <div :class="{ 'menu-active': menuActive == item.module }">
31
- <a
32
- href="#"
33
- @click.prevent="openSubMenu(item.module)"
34
- :class="highlightSession(item.module)"
35
- >
36
- <div class="div-icon side-by-side">
37
- <span
38
- :class="{
39
- 'icon-active': menuActive == item.module,
40
- 'icon-normal': menuActive != item.module,
41
- }"
42
- >
43
- <i :class="item.icon"></i>
44
- </span>
45
- </div>
46
- <div class="title">{{ item.title }}</div>
47
- </a>
48
- </div>
49
- </li>
50
- </ul>
51
-
52
- <transition name="slide-fade">
53
- <div class="context-menu-container" v-if="subMenuFirstLevel">
54
- <ul class="context-menu">
55
- <li v-for="(item, index) in subMenuFilter(false)" :key="index">
56
- <h5 v-if="item.type === 'group'" class="context-menu__title">
57
- <span class="sub-title"> {{ item.grupoNome }}</span>
58
- <span
59
- v-if="index === 0"
60
- @click.prevent="hideSubMenu"
61
- class="context-menu__btn-close icon-close"
62
- href="#"
63
- >
64
- <i class="fas fa-times-circle"></i>
65
- </span>
66
- </h5>
67
-
68
- <a
69
- v-else
70
- href="#"
71
- @click.prevent="navegateTo(item)"
72
- :class="classSubMenu(item.title)"
73
- >
74
- <b-row>
75
- <b-col sm="1"> <i :class="item.icon" aria-hidden="true"></i></b-col>
76
- <b-col sm="10">
77
- <span class="title-sub"> {{ item.title }}</span></b-col
78
- ></b-row
79
- >
80
- </a>
81
- </li>
82
- </ul>
83
- </div>
84
- </transition>
85
- </div>
86
- </template>
87
-
88
- <script>
89
- import { mapState } from "vuex";
90
- export default {
91
- name: "Menu",
92
- props: {
93
- baseColor: {
94
- type: String,
95
- default: "#4680A5",
96
- },
97
- baseColorActive: {
98
- type: String,
99
- default: "#3F529B",
100
- },
101
- urlImage: String,
102
- },
103
- data() {
104
- return {
105
- module: "",
106
- subMenuFirstLevel: false,
107
- menuActive: "Dashboard",
108
- };
109
- },
110
- methods: {
111
- openSubMenu(module) {
112
- this.subMenuFirstLevel = true;
113
- this.module = module;
114
- },
115
- hideSubMenu() {
116
- this.subMenuFirstLevel = false;
117
- this.menuItens = [];
118
- },
119
- highlightSession(section) {
120
- return {
121
- menu__link: true,
122
- "menu__link--active": section === this.contextSection,
123
- };
124
- },
125
- classSubMenu(subMenuName) {
126
- return {
127
- "context-menu__link": true,
128
- "context-menu__link--active": this.activeSubMenu === subMenuName,
129
- };
130
- },
131
- navegateTo(item) {
132
- this.$router.push({
133
- name: item.routeName,
134
- });
135
- this.hideSubMenu();
136
- },
137
- menuFilter(isModule) {
138
- let filter = [];
139
- this.menu.items.forEach(function (obj) {
140
- if (obj.isModule == isModule) filter.push(obj);
141
- });
142
- return filter;
143
- },
144
- subMenuFilter(isModule) {
145
- let filter = [];
146
- let self = this;
147
- this.menu.items.forEach(function (obj) {
148
- if (obj.isModule == isModule && obj.module === self.module) filter.push(obj);
149
- });
150
- return filter;
151
- },
152
- },
153
- computed: {
154
- ...mapState("user", ["menu"]),
155
- },
156
- watch: {
157
- $route: {
158
- handler: function (router) {
159
- this.menuActive = router.matched[0].props.default.module;
160
- },
161
- deep: true,
162
- },
163
- },
164
- };
165
- </script>
166
-
167
- <style scoped>
168
- .menu-open {
169
- width: 350px;
170
- z-index: 1000;
171
- }
172
-
173
- .div-logo {
174
- padding-top: 2px;
175
- padding-bottom: 16px;
176
- }
177
-
178
- .div-icon {
179
- width: 35px;
180
- height: 35px;
181
- padding-top: 5px;
182
- margin-left: 38px;
183
- }
184
-
185
- .icon-close {
186
- margin-right: 60px;
187
- }
188
- .icon {
189
- font-size: 20px;
190
- }
191
- .icon-dash {
192
- font-size: 22px;
193
- }
194
- .title {
195
- font-size: 13px;
196
- font-weight: 400;
197
- margin-top: -6px;
198
- text-align: center;
199
- width: 100%;
200
- }
201
- .title-sub {
202
- margin-left: 5px;
203
- font-weight: 400;
204
- }
205
- .sub-title {
206
- font-size: 16px;
207
- font-weight: normal;
208
- }
209
-
210
- img {
211
- height: 22px;
212
- margin-top: 10px;
213
- }
214
- </style>
1
+ <template>
2
+ <div class="menu-container" :class="{ 'menu-open': subMenuFirstLevel }">
3
+ <ul class="menu">
4
+ <li v-if="urlImage">
5
+ <div class="div-logo text-center">
6
+ <img :src="urlImage" />
7
+ </div>
8
+ </li>
9
+ <li>
10
+ <div :class="{ 'menu-active': menuActive == 'Dashboard' }">
11
+ <a
12
+ href="#"
13
+ @click.prevent="navegateTo({ routeName: 'dashboard', module: 'Dashboard' })"
14
+ :class="highlightSession('home')"
15
+ >
16
+ <div class="div-icon side-by-side">
17
+ <i
18
+ :class="{
19
+ 'icon-active': menuActive == 'Dashboard',
20
+ 'icon-normal': menuActive != 'Dashboard',
21
+ }"
22
+ class="fas fa-chart-area icon-dash"
23
+ ></i>
24
+ </div>
25
+ <div class="title">Dashboard</div>
26
+ </a>
27
+ </div>
28
+ </li>
29
+ <li v-for="(item, index) in menuFilter(true)" :key="index">
30
+ <div :class="{ 'menu-active': menuActive == item.module }">
31
+ <a
32
+ href="#"
33
+ @click.prevent="openSubMenu(item.module)"
34
+ :class="highlightSession(item.module)"
35
+ >
36
+ <div class="div-icon side-by-side">
37
+ <span
38
+ :class="{
39
+ 'icon-active': menuActive == item.module,
40
+ 'icon-normal': menuActive != item.module,
41
+ }"
42
+ >
43
+ <i :class="item.icon"></i>
44
+ </span>
45
+ </div>
46
+ <div class="title">{{ item.title }}</div>
47
+ </a>
48
+ </div>
49
+ </li>
50
+ </ul>
51
+
52
+ <transition name="slide-fade">
53
+ <div class="context-menu-container" v-if="subMenuFirstLevel">
54
+ <ul class="context-menu">
55
+ <li v-for="(item, index) in subMenuFilter(false)" :key="index">
56
+ <h5 v-if="item.type === 'group'" class="context-menu__title">
57
+ <span class="sub-title"> {{ item.groupName }}</span>
58
+ <span
59
+ v-if="index === 0"
60
+ @click.prevent="hideSubMenu"
61
+ class="context-menu__btn-close icon-close"
62
+ href="#"
63
+ >
64
+ <i class="fas fa-times-circle"></i>
65
+ </span>
66
+ </h5>
67
+
68
+ <a
69
+ v-else
70
+ href="#"
71
+ @click.prevent="navegateTo(item)"
72
+ :class="classSubMenu(item.title)"
73
+ >
74
+ <b-row>
75
+ <b-col sm="1"> <i :class="item.icon" aria-hidden="true"></i></b-col>
76
+ <b-col sm="10">
77
+ <span class="title-sub"> {{ item.title }}</span></b-col
78
+ ></b-row
79
+ >
80
+ </a>
81
+ </li>
82
+ </ul>
83
+ </div>
84
+ </transition>
85
+ </div>
86
+ </template>
87
+
88
+ <script>
89
+ import { mapState } from "vuex";
90
+ export default {
91
+ name: "Menu",
92
+ props: {
93
+ baseColor: {
94
+ type: String,
95
+ default: "#4680A5",
96
+ },
97
+ baseColorActive: {
98
+ type: String,
99
+ default: "#3F529B",
100
+ },
101
+ urlImage: String,
102
+ },
103
+ data() {
104
+ return {
105
+ module: "",
106
+ subMenuFirstLevel: false,
107
+ menuActive: "Dashboard",
108
+ };
109
+ },
110
+ methods: {
111
+ openSubMenu(module) {
112
+ this.subMenuFirstLevel = true;
113
+ this.module = module;
114
+ },
115
+ hideSubMenu() {
116
+ this.subMenuFirstLevel = false;
117
+ this.menuItens = [];
118
+ },
119
+ highlightSession(section) {
120
+ return {
121
+ menu__link: true,
122
+ "menu__link--active": section === this.contextSection,
123
+ };
124
+ },
125
+ classSubMenu(subMenuName) {
126
+ return {
127
+ "context-menu__link": true,
128
+ "context-menu__link--active": this.activeSubMenu === subMenuName,
129
+ };
130
+ },
131
+ navegateTo(item) {
132
+ this.$router.push({
133
+ name: item.routeName,
134
+ });
135
+ this.hideSubMenu();
136
+ },
137
+ menuFilter(isModule) {
138
+ let filter = [];
139
+ this.menu.items.forEach(function (obj) {
140
+ if (obj.isModule == isModule) filter.push(obj);
141
+ });
142
+ return filter.sort((a, b) => a.order - b.order);
143
+ },
144
+ subMenuFilter(isModule) {
145
+ let filter = [];
146
+ let self = this;
147
+ this.menu.items.forEach(function (obj) {
148
+ if (obj.isModule == isModule && obj.module === self.module) filter.push(obj);
149
+ });
150
+ return filter;
151
+ },
152
+ },
153
+ computed: {
154
+ ...mapState("user", ["menu"]),
155
+ },
156
+ watch: {
157
+ $route: {
158
+ handler: function (router) {
159
+ this.menuActive = router.matched[0].props.default.module;
160
+ },
161
+ deep: true,
162
+ },
163
+ },
164
+ };
165
+ </script>
166
+
167
+ <style scoped>
168
+ .menu-open {
169
+ width: 350px;
170
+ z-index: 1000;
171
+ }
172
+ .div-logo {
173
+ padding-top: 2px;
174
+ padding-bottom: 16px;
175
+ }
176
+ .div-icon {
177
+ width: 35px;
178
+ height: 35px;
179
+ padding-top: 5px;
180
+ margin-left: 38px;
181
+ }
182
+ .icon-close {
183
+ margin-right: 60px;
184
+ }
185
+ .icon {
186
+ font-size: 20px;
187
+ }
188
+ .icon-dash {
189
+ font-size: 22px;
190
+ }
191
+ .title {
192
+ font-size: 13px;
193
+ font-weight: 400;
194
+ margin-top: -5px;
195
+ text-align: center;
196
+ width: 100%;
197
+ }
198
+ .title-sub {
199
+ margin-left: -3px;
200
+ font-weight: 400;
201
+ }
202
+ .sub-title {
203
+ font-size: 16px;
204
+ font-weight: normal;
205
+ }
206
+ img {
207
+ height: 36px;
208
+ margin-top: 5px;
209
+ }
210
+ </style>
@@ -1,27 +1,28 @@
1
- <template>
2
- <div class="molded" :style="'border-radius:' + borderRadius + 'px'">
3
- <slot></slot>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- name: "Molded",
10
- props: {
11
- borderRadius: {
12
- type: Number,
13
- default: 8,
14
- },
15
- },
16
- };
17
- </script>
18
- <style scoped>
19
- .molded {
20
- border: 1px solid #dbdfe9;
21
- background-color: transparent;
22
- padding-top: 15px;
23
- padding-left: 30px;
24
- padding-right: 30px;
25
- padding-bottom: 10px;
26
- }
27
- </style>
1
+ <template>
2
+ <div class="molded" :style="'border-radius:' + borderRadius + 'px'">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: "Molded",
10
+ props: {
11
+ borderRadius: {
12
+ type: Number,
13
+ default: 6,
14
+ },
15
+ },
16
+ };
17
+ </script>
18
+ <style scoped>
19
+ .molded {
20
+ border: 1px solid #EAEDF3;
21
+ background-color: white;
22
+ padding-top: 15px;
23
+ padding-left: 30px;
24
+ padding-right: 30px;
25
+ padding-bottom: 10px;
26
+ box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 3%);
27
+ }
28
+ </style>