@nixweb/nixloc-ui 0.0.127 → 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 (88) hide show
  1. package/package.json +79 -79
  2. package/src/App.vue +13 -13
  3. package/src/component/forms/Button.vue +170 -170
  4. package/src/component/forms/CheckboxGroup.vue +72 -66
  5. package/src/component/forms/CheckboxSimple.vue +46 -42
  6. package/src/component/forms/Color.vue +38 -38
  7. package/src/component/forms/DateTime.vue +167 -163
  8. package/src/component/forms/Dropdown.vue +218 -224
  9. package/src/component/forms/EditorHtml.vue +126 -126
  10. package/src/component/forms/FileUpload.vue +185 -185
  11. package/src/component/forms/ImageUpload.vue +12 -4
  12. package/src/component/forms/IncrementDecrement.vue +101 -0
  13. package/src/component/forms/InputDecimal.vue +142 -138
  14. package/src/component/forms/InputNumber.vue +154 -154
  15. package/src/component/forms/InputPassword.vue +135 -135
  16. package/src/component/forms/InputText.vue +162 -157
  17. package/src/component/forms/Modal.vue +65 -65
  18. package/src/component/forms/RadioGroup.vue +50 -50
  19. package/src/component/forms/Select.vue +349 -340
  20. package/src/component/forms/SelectStatic.vue +127 -127
  21. package/src/component/forms/Slider.vue +18 -18
  22. package/src/component/forms/TextArea.vue +126 -126
  23. package/src/component/layout/Alert.vue +92 -92
  24. package/src/component/layout/Badge.vue +103 -103
  25. package/src/component/layout/FixedBar.vue +100 -68
  26. package/src/component/layout/Header.vue +38 -35
  27. package/src/component/layout/LoadingFullPage.vue +27 -27
  28. package/src/component/layout/Menu.vue +210 -215
  29. package/src/component/layout/Molded.vue +28 -27
  30. package/src/component/layout/Panel.vue +140 -140
  31. package/src/component/layout/Popover.vue +126 -126
  32. package/src/component/layout/ScrollBar.vue +42 -42
  33. package/src/component/layout/Tab.vue +135 -0
  34. package/src/component/layout/Wizard.vue +211 -211
  35. package/src/component/rental/DisplayPeriodRent.vue +81 -0
  36. package/src/component/rental/DisplayTotalization.vue +47 -0
  37. package/src/component/shared/Collapse.vue +131 -131
  38. package/src/component/shared/DocumentPreview.vue +1 -1
  39. package/src/component/shared/DocumentPublic.vue +34 -0
  40. package/src/component/shared/ExportPDF.vue +116 -116
  41. package/src/component/shared/HeaderReport.vue +1 -1
  42. package/src/component/shared/HorizontalFilter.vue +59 -59
  43. package/src/component/shared/Loading.vue +107 -107
  44. package/src/component/shared/LoadingMoreButton.vue +23 -23
  45. package/src/component/shared/Messages.vue +81 -81
  46. package/src/component/shared/PDFViewer.vue +22 -22
  47. package/src/component/shared/Pagination.vue +52 -52
  48. package/src/component/shared/ProgressBar.vue +22 -22
  49. package/src/component/shared/QueryButton.vue +66 -66
  50. package/src/component/shared/{BodyReport.vue → Report.vue} +8 -7
  51. package/src/component/shared/SaveCancel.vue +6 -1
  52. package/src/component/shared/Search.vue +154 -154
  53. package/src/component/shared/SelectOption.vue +18 -9
  54. package/src/component/shared/Table.vue +163 -254
  55. package/src/component/shared/TableButton.vue +36 -36
  56. package/src/component/shared/TableDraggable.vue +127 -0
  57. package/src/component/shared/TableItem.vue +177 -0
  58. package/src/component/shared/TableTotalization.vue +47 -47
  59. package/src/component/shared/Tip.vue +42 -42
  60. package/src/component/shared/Toast.vue +54 -54
  61. package/src/component/shared/TotalizationReport.vue +59 -0
  62. package/src/component/shared/VerticalFilter.vue +97 -97
  63. package/src/component/shared/query-builder/AddRule.vue +181 -181
  64. package/src/component/shared/query-builder/ConvertToOdata.js +3 -9
  65. package/src/component/shared/query-builder/DynamicComponent.vue +5 -1
  66. package/src/component/shared/query-builder/DynamicComponentList.vue +73 -62
  67. package/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  68. package/src/component/shared/query-builder/utilities.js +21 -21
  69. package/src/component/template/ListViewWithDataHandler.vue +260 -238
  70. package/src/component/template/ReportCreateUpdate.vue +9 -2
  71. package/src/component/template/ViewTemplateConfiguration.vue +64 -63
  72. package/src/component/template/ViewTemplateDocumentView.vue +1 -0
  73. package/src/component/template/ViewTemplateReportPreview.vue +56 -12
  74. package/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  75. package/src/component/template/ViewTemplateWithTable.vue +56 -56
  76. package/src/component/value-objects/Contact.vue +7 -0
  77. package/src/component/value-objects/Person.vue +15 -0
  78. package/src/config/axios.js +9 -9
  79. package/src/config/dicas.js +14 -14
  80. package/src/config/router.js +13 -13
  81. package/src/config/token.js +14 -14
  82. package/src/main.js +23 -23
  83. package/src/store/modules/generic.js +512 -494
  84. package/src/store/modules/report.js +37 -19
  85. package/src/store/modules/user.js +3 -0
  86. package/src/store/modules/validation.js +38 -38
  87. package/src/store/store.js +13 -13
  88. package/src/component/shared/query-builder/Totalization.vue +0 -38
@@ -1,66 +1,66 @@
1
- <template>
2
- <div>
3
- <div class="alignment" v-for="item in items" :key="item.title">
4
- <button
5
- :class="{
6
- 'button-query': true,
7
- }"
8
- @click="execute(item.valor)"
9
- >
10
- <span class="icon"> <i :class="item.classIcon"></i></span>
11
- <span class="title">{{ item.title }}</span>
12
- </button>
13
- </div>
14
- </div>
15
- </template>
16
- <script>
17
- export default {
18
- name: "QueryButton",
19
- props: ["items", "value", "clicked"],
20
- data() {
21
- return {
22
- currentValue: 0,
23
- };
24
- },
25
- methods: {
26
- execute(valor) {
27
- this.currentValue = valor;
28
- this.$emit("input", valor);
29
- if (this.clicked) this.clicked();
30
- },
31
- },
32
- };
33
- </script>
34
- <style scoped>
35
- .button-query {
36
- cursor: pointer;
37
- height: 35px;
38
- border: 1px solid #d5d5d5;
39
- background-color: white;
40
- border-radius: 3px;
41
- padding-left: 10px;
42
- padding-right: 7px;
43
- margin-right: 10px;
44
- margin-bottom: 10px;
45
- font-size: 16px;
46
- font-weight: normal;
47
- }
48
-
49
- .button-query:hover {
50
- background-color: #d98621;
51
- color: white;
52
- border: none;
53
- }
54
-
55
- .icon {
56
- font-size: 13px;
57
- }
58
-
59
- .title {
60
- font-size: 16px;
61
- }
62
-
63
- .alignment {
64
- display: inline-block;
65
- }
66
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="alignment" v-for="item in items" :key="item.title">
4
+ <button
5
+ :class="{
6
+ 'button-query': true,
7
+ }"
8
+ @click="execute(item.valor)"
9
+ >
10
+ <span class="icon"> <i :class="item.classIcon"></i></span>
11
+ <span class="title">{{ item.title }}</span>
12
+ </button>
13
+ </div>
14
+ </div>
15
+ </template>
16
+ <script>
17
+ export default {
18
+ name: "QueryButton",
19
+ props: ["items", "value", "clicked"],
20
+ data() {
21
+ return {
22
+ currentValue: 0,
23
+ };
24
+ },
25
+ methods: {
26
+ execute(valor) {
27
+ this.currentValue = valor;
28
+ this.$emit("input", valor);
29
+ if (this.clicked) this.clicked();
30
+ },
31
+ },
32
+ };
33
+ </script>
34
+ <style scoped>
35
+ .button-query {
36
+ cursor: pointer;
37
+ height: 35px;
38
+ border: 1px solid #d5d5d5;
39
+ background-color: white;
40
+ border-radius: 3px;
41
+ padding-left: 10px;
42
+ padding-right: 7px;
43
+ margin-right: 10px;
44
+ margin-bottom: 10px;
45
+ font-size: 16px;
46
+ font-weight: normal;
47
+ }
48
+
49
+ .button-query:hover {
50
+ background-color: #d98621;
51
+ color: white;
52
+ border: none;
53
+ }
54
+
55
+ .icon {
56
+ font-size: 13px;
57
+ }
58
+
59
+ .title {
60
+ font-size: 16px;
61
+ }
62
+
63
+ .alignment {
64
+ display: inline-block;
65
+ }
66
+ </style>
@@ -61,6 +61,9 @@
61
61
  </tr>
62
62
  </tbody>
63
63
  </table>
64
+ <div>
65
+ <TotalizationReport :totalization="totalization" :totalRecords="data.length" />
66
+ </div>
64
67
  </div>
65
68
  </ScrollBar>
66
69
  </div>
@@ -69,6 +72,7 @@
69
72
  <script>
70
73
  import ScrollBar from "@nixweb/nixloc-ui/src/component/layout/ScrollBar.vue";
71
74
  import HeaderReport from "../shared/HeaderReport.vue";
75
+ import TotalizationReport from "../shared/TotalizationReport.vue";
72
76
  import ExportExcel from "@nixweb/nixloc-ui/src/component/shared/ExportExcel";
73
77
  import print from "vue-print-nb";
74
78
 
@@ -78,11 +82,8 @@ export default {
78
82
  directives: {
79
83
  print,
80
84
  },
81
- props: {
82
- header: Array,
83
- data: Array,
84
- },
85
- components: { ScrollBar, HeaderReport, ExportExcel },
85
+ props: ["header", "data", "totalization"],
86
+ components: { ScrollBar, HeaderReport, TotalizationReport, ExportExcel },
86
87
  methods: {
87
88
  convertClass(fieldComparison, classCssBody) {
88
89
  if (Array.isArray(classCssBody)) {
@@ -108,8 +109,8 @@ table tbody tr td {
108
109
  }
109
110
 
110
111
  .table thead tr {
111
- border-top: 1px solid rgb(172, 172, 172);
112
- border-bottom: 1px solid rgb(172, 172, 172);
112
+ border-top: 1px solid black;
113
+ border-bottom: 1px solid black;
113
114
  }
114
115
 
115
116
  .table th,
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <FixedBar position="footer" v-show="formDirty && !modal.open">
4
- <div>
4
+ <div class="margin">
5
5
  <Button
6
6
  _key="cancelSaveCancel"
7
7
  eventName="cancelSaveCancel"
@@ -70,3 +70,8 @@ export default {
70
70
  },
71
71
  };
72
72
  </script>
73
+ <style scoped>
74
+ .margin{
75
+ margin-left: 0px;
76
+ }
77
+ </style>
@@ -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="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 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>
@@ -12,13 +12,18 @@
12
12
  >
13
13
  <div class="div-content text-center">
14
14
  <span :style="'font-size:' + option.titleSize + 'px;'">
15
- {{ option.title }}</span
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;'"
16
22
  >
17
- <div class="icon" :style="'font-size:' + option.iconSize + 'px;'">
18
23
  <i :class="option.icon"></i>
19
24
  </div>
20
25
  </div>
21
- <div>
26
+ <div v-if="option.tipId">
22
27
  <i
23
28
  v-b-tooltip.hover
24
29
  :title="tip(option.tipId)"
@@ -27,7 +32,7 @@
27
32
  </div>
28
33
  </div>
29
34
  </div>
30
- <div class="div-btn">
35
+ <div class="div-btn" v-if="showButtonNext">
31
36
  <Button
32
37
  _key="btnClickedNext"
33
38
  type="info"
@@ -55,6 +60,8 @@ export default {
55
60
  titleSize: Number,
56
61
  buttonSize: String,
57
62
  buttonClassIcon: String,
63
+ showButtonNext: { type: Boolean, default: true },
64
+ size: { type: String, default: "medium" },
58
65
  width: Number,
59
66
  height: Number,
60
67
  options: Array,
@@ -90,7 +97,7 @@ export default {
90
97
 
91
98
  .option {
92
99
  cursor: pointer;
93
- border: 1px solid #dbdfe9;
100
+ border: 1px solid #e5e4e8;
94
101
  background-color: white;
95
102
  border-radius: 8px;
96
103
  padding-left: 10px;
@@ -99,6 +106,7 @@ export default {
99
106
  margin-bottom: 10px;
100
107
  font-size: 16px;
101
108
  font-weight: normal;
109
+ box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 2%);
102
110
  }
103
111
 
104
112
  .alignment {
@@ -106,7 +114,7 @@ export default {
106
114
  }
107
115
 
108
116
  .option:hover {
109
- background-color: #fafafc;
117
+ background-color: white;
110
118
  }
111
119
 
112
120
  .div-content {
@@ -114,7 +122,8 @@ export default {
114
122
  }
115
123
 
116
124
  .selected {
117
- background-color: #fafafc;
125
+ background-color: white;
126
+ border-color: #4680A5;
118
127
  }
119
128
 
120
129
  .icon {
@@ -128,10 +137,10 @@ export default {
128
137
  }
129
138
 
130
139
  .title {
131
- margin-bottom: 20px;
140
+ margin-bottom: 10px;
132
141
  }
133
142
 
134
143
  .div-btn {
135
- margin-top: 20px;
144
+ margin-top: 10px;
136
145
  }
137
146
  </style>