@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,154 +1,154 @@
1
- <template>
2
- <b-row>
3
- <b-col xs="12" sm="12" md="12" lg="7" xl="6">
4
- <div class="margem">
5
- <div class="molded">
6
- <b-row>
7
- <b-col sm="9">
8
- <input
9
- type="text"
10
- name="search"
11
- placeholder="Pesquisar ..."
12
- @keyup="verificaLimpaPesquisa()"
13
- @keyup.enter.prevent="buscaPesquisa()"
14
- v-model="search.content"
15
- /></b-col>
16
- <b-col sm="3">
17
- <div class="div-select">
18
- <SelectStatic
19
- fieldTarget="filter"
20
- :onlyQuery="true"
21
- :initialValue="{ content: 'Contém', id: 'contem' }"
22
- v-model="search.filter"
23
- :showBorder="false"
24
- :data="[
25
- { content: 'Contém', id: 'contem' },
26
- { content: 'Igual', id: 'igual' },
27
- ]"
28
- />
29
- </div>
30
- </b-col>
31
- </b-row>
32
- </div>
33
- </div>
34
- </b-col>
35
- <b-col xs="4" sm="4" md="4" lg="4" xl="4">
36
- <div class="div-button">
37
- <Button
38
- key="search"
39
- type="info"
40
- title="Buscar"
41
- classIcon="fas fa-search"
42
- size="small"
43
- :clicked="buscaPesquisa"
44
- />
45
- <Button
46
- key="clean"
47
- type="info"
48
- title="Limpar"
49
- classIcon="fas fa-broom"
50
- size="small"
51
- :clicked="limpaPesquisa"
52
- />
53
- </div>
54
- </b-col>
55
- </b-row>
56
- </template>
57
-
58
- <script>
59
- import Button from "../forms/Button";
60
- import SelectStatic from "../forms/SelectStatic.vue";
61
-
62
- import { mapMutations } from "vuex";
63
-
64
- export default {
65
- components: { Button, SelectStatic },
66
- name: "Pesquisa",
67
- computed: {
68
- search: {
69
- get() {
70
- return this.$store.state.generic.search;
71
- },
72
- set(value) {
73
- this.updateSearch(value);
74
- },
75
- },
76
- },
77
- methods: {
78
- ...mapMutations("generic", [
79
- "updateSearch",
80
- "executedSearch",
81
- "clearedSearch",
82
- ]),
83
- buscaPesquisa() {
84
- this.executedSearch();
85
- },
86
- limpaPesquisa() {
87
- this.clearedSearch();
88
- let search = { content: "", filter: { content: "contem", id: "contem" } };
89
- this.updateSearch(search);
90
- },
91
- verificaLimpaPesquisa() {
92
- if (this.search.content.length == 0) this.clearedSearch();
93
- },
94
- },
95
- };
96
- </script>
97
-
98
- <style scoped>
99
- .icon-search {
100
- font-size: 20px;
101
- color: #577696;
102
- display: inline-block;
103
- }
104
-
105
- .input {
106
- display: inline-block;
107
- }
108
-
109
- .margem {
110
- padding-top: 28px;
111
- }
112
-
113
- .div-button {
114
- padding-top: 33px;
115
- }
116
-
117
- ::placeholder {
118
- color: #b8c4d2;
119
- }
120
-
121
- .molded {
122
- width: 100%;
123
- height: 45px;
124
- font-size: 14px;
125
- padding: 5px 8px 6px 15px;
126
- background-color: rgb(255, 255, 255);
127
- border: 1px solid rgb(220, 221, 221);
128
- border-radius: 40px;
129
- box-sizing: border-box;
130
- box-shadow: none;
131
- color: rgb(38, 41, 44);
132
- opacity: 1;
133
- transition: background-color 0.1s ease-in 0s, border 0.1s ease-in 0s;
134
- }
135
-
136
- input[type="text"] {
137
- width: 100%;
138
- height: 30px;
139
- font-size: 14px;
140
- border: 0px solid white;
141
- background-color: rgb(255, 255, 255);
142
- margin-bottom: 50px;
143
- }
144
-
145
- input[type="text"]:focus {
146
- outline: none;
147
- }
148
-
149
- .div-select {
150
- margin-top: -30px;
151
- margin-right: 5px;
152
- }
153
-
154
- </style>
1
+ <template>
2
+ <b-row>
3
+ <b-col xs="12" sm="12" md="12" lg="7" xl="6">
4
+ <div class="margin">
5
+ <div class="molded">
6
+ <b-row>
7
+ <b-col sm="9">
8
+ <input
9
+ type="text"
10
+ name="search"
11
+ placeholder="Pesquisar ..."
12
+ @keyup="verifyCleanSearch()"
13
+ @keyup.enter.prevent="executeSearch()"
14
+ v-model="search.content"
15
+ /></b-col>
16
+ <b-col sm="3">
17
+ <div class="div-select">
18
+ <SelectStatic
19
+ fieldTarget="filter"
20
+ :onlyQuery="true"
21
+ :initialValue="{ content: 'Contém', id: 'contains' }"
22
+ v-model="search.filter"
23
+ :showBorder="false"
24
+ :data="[
25
+ { content: 'Contém', id: 'contains' },
26
+ { content: 'Igual', id: 'equal' },
27
+ ]"
28
+ />
29
+ </div>
30
+ </b-col>
31
+ </b-row>
32
+ </div>
33
+ </div>
34
+ </b-col>
35
+ <b-col xs="4" sm="4" md="4" lg="4" xl="4">
36
+ <div class="div-button">
37
+ <Button
38
+ _key="btnSearch"
39
+ type="info"
40
+ title="Buscar"
41
+ classIcon="fas fa-search"
42
+ size="small"
43
+ :clicked="executeSearch"
44
+ />
45
+ <Button
46
+ _key="btnClean"
47
+ type="info"
48
+ title="Limpar"
49
+ classIcon="fas fa-broom"
50
+ size="small"
51
+ :clicked="executeClean"
52
+ />
53
+ </div>
54
+ </b-col>
55
+ </b-row>
56
+ </template>
57
+
58
+ <script>
59
+ import Button from "../forms/Button";
60
+ import SelectStatic from "../forms/SelectStatic.vue";
61
+
62
+ import { mapMutations } from "vuex";
63
+
64
+ export default {
65
+ components: { Button, SelectStatic },
66
+ name: "Search",
67
+ computed: {
68
+ search: {
69
+ get() {
70
+ return this.$store.state.generic.search;
71
+ },
72
+ set(value) {
73
+ this.updateSearch(value);
74
+ },
75
+ },
76
+ },
77
+ methods: {
78
+ ...mapMutations("generic", [
79
+ "updateSearch",
80
+ "executedSearch",
81
+ "clearedSearch",
82
+ ]),
83
+ executeSearch() {
84
+ this.executedSearch();
85
+ },
86
+ executeClean() {
87
+ this.clearedSearch();
88
+ let search = { content: "", filter: { content: "Contém", id: "contains" } };
89
+ this.updateSearch(search);
90
+ },
91
+ verifyCleanSearch() {
92
+ if (this.search.content.length == 0) this.clearedSearch();
93
+ },
94
+ },
95
+ };
96
+ </script>
97
+
98
+ <style scoped>
99
+ .icon-search {
100
+ font-size: 20px;
101
+ color: #577696;
102
+ display: inline-block;
103
+ }
104
+
105
+ .input {
106
+ display: inline-block;
107
+ }
108
+
109
+ .margin {
110
+ padding-top: 28px;
111
+ }
112
+
113
+ .div-button {
114
+ padding-top: 33px;
115
+ }
116
+
117
+ ::placeholder {
118
+ color: #b8c4d2;
119
+ }
120
+
121
+ .molded {
122
+ width: 100%;
123
+ height: 45px;
124
+ font-size: 14px;
125
+ padding: 5px 8px 6px 15px;
126
+ background-color: rgb(255, 255, 255);
127
+ border: 1px solid #E5E4E8;
128
+ border-radius: 40px;
129
+ box-sizing: border-box;
130
+ box-shadow: none;
131
+ color: rgb(38, 41, 44);
132
+ opacity: 1;
133
+ transition: background-color 0.1s ease-in 0s, border 0.1s ease-in 0s;
134
+ }
135
+
136
+ input[type="text"] {
137
+ width: 100%;
138
+ height: 30px;
139
+ font-size: 14px;
140
+ border: 0px solid white;
141
+ background-color: rgb(255, 255, 255);
142
+ margin-bottom: 50px;
143
+ }
144
+
145
+ input[type="text"]:focus {
146
+ outline: none;
147
+ }
148
+
149
+ .div-select {
150
+ margin-top: -30px;
151
+ margin-right: 5px;
152
+ }
153
+
154
+ </style>
@@ -0,0 +1,146 @@
1
+ <template>
2
+ <div class="div-main text-center">
3
+ <div class="title" :style="'font-size:' + titleSize + 'px;'">
4
+ {{ title }}
5
+ </div>
6
+ <div class="alignment" v-for="option in options">
7
+ <div
8
+ class="option"
9
+ :style="'width:' + width + 'px; height:' + height + 'px'"
10
+ :class="{ selected: option.value == selected }"
11
+ @click="optionSelected(option.value)"
12
+ >
13
+ <div class="div-content text-center">
14
+ <span :style="'font-size:' + option.titleSize + 'px;'">
15
+ <i v-if="size === 'small'" :class="option.icon"></i>
16
+ {{ option.title }}
17
+ </span>
18
+ <div
19
+ v-if="size === 'medium'"
20
+ class="icon"
21
+ :style="'font-size:' + option.iconSize + 'px;'"
22
+ >
23
+ <i :class="option.icon"></i>
24
+ </div>
25
+ </div>
26
+ <div v-if="option.tipId">
27
+ <i
28
+ v-b-tooltip.hover
29
+ :title="tip(option.tipId)"
30
+ class="fas fa-question-circle"
31
+ ></i>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ <div class="div-btn" v-if="showButtonNext">
36
+ <Button
37
+ _key="btnClickedNext"
38
+ type="info"
39
+ title="Avançar"
40
+ :disabled="selected == null"
41
+ :classIcon="buttonClassIcon"
42
+ :size="buttonSize"
43
+ :clicked="execute"
44
+ />
45
+ </div>
46
+ </div>
47
+ </template>
48
+ <script>
49
+ import Button from "@nixweb/nixloc-ui/src/component/forms/Button";
50
+
51
+ import { mapMutations, mapGetters } from "vuex";
52
+
53
+ export default {
54
+ name: "SelectOption",
55
+ components: {
56
+ Button,
57
+ },
58
+ props: {
59
+ title: String,
60
+ titleSize: Number,
61
+ buttonSize: String,
62
+ buttonClassIcon: String,
63
+ showButtonNext: { type: Boolean, default: true },
64
+ size: { type: String, default: "medium" },
65
+ width: Number,
66
+ height: Number,
67
+ options: Array,
68
+ value: Number,
69
+ clickedNext: Function,
70
+ },
71
+ data() {
72
+ return {
73
+ selected: null,
74
+ };
75
+ },
76
+ methods: {
77
+ ...mapMutations("generic", ["removeLoading"]),
78
+ optionSelected(value) {
79
+ this.selected = value;
80
+ this.$emit("input", value);
81
+ },
82
+ execute() {
83
+ if (this.clickedNext) this.clickedNext();
84
+ this.removeLoading(["btnClickedNext"]);
85
+ },
86
+ },
87
+ computed: {
88
+ ...mapGetters("generic", ["tip"]),
89
+ },
90
+ };
91
+ </script>
92
+ <style scoped>
93
+ .div-main {
94
+ margin: auto;
95
+ padding: 10px;
96
+ }
97
+
98
+ .option {
99
+ cursor: pointer;
100
+ border: 1px solid #e5e4e8;
101
+ background-color: white;
102
+ border-radius: 8px;
103
+ padding-left: 10px;
104
+ padding-right: 7px;
105
+ margin-right: 10px;
106
+ margin-bottom: 10px;
107
+ font-size: 16px;
108
+ font-weight: normal;
109
+ box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 2%);
110
+ }
111
+
112
+ .alignment {
113
+ display: inline-block;
114
+ }
115
+
116
+ .option:hover {
117
+ background-color: white;
118
+ }
119
+
120
+ .div-content {
121
+ padding: 10px;
122
+ }
123
+
124
+ .selected {
125
+ background-color: white;
126
+ border-color: #4680A5;
127
+ }
128
+
129
+ .icon {
130
+ margin-top: 5px;
131
+ color: #577696;
132
+ }
133
+
134
+ .text {
135
+ font-size: 16px;
136
+ margin-top: 8px;
137
+ }
138
+
139
+ .title {
140
+ margin-bottom: 10px;
141
+ }
142
+
143
+ .div-btn {
144
+ margin-top: 10px;
145
+ }
146
+ </style>