@nixweb/nixloc-ui 0.0.270 → 0.0.272

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nixweb/nixloc-ui",
3
- "version": "0.0.270",
3
+ "version": "0.0.272",
4
4
  "description": "Componentes UI",
5
5
  "author": "Fábio Ávila <fabio@nixweb.com.br>",
6
6
  "private": false,
@@ -71,6 +71,11 @@ export default {
71
71
  },
72
72
  mounted() {
73
73
  this.getAll();
74
+
75
+ if (this.value.length > 0) {
76
+ this.selected = this.value;
77
+ }
78
+
74
79
  },
75
80
  computed: {
76
81
  ...mapGetters("generic", ["showModal", "event"]),
@@ -22,10 +22,8 @@
22
22
  </b-row>
23
23
  </div>
24
24
  </div>
25
- <div v-if="getFilterStorage($route.name)">
26
- <div v-if="getFilterStorage($route.name).paramsFilter.length !== 0
27
- || getFilterStorage($route.name).baseParams.search !== ''
28
- || getFilterStorage($route.name).baseParams.currentPage !== 1">
25
+ <div v-if="hasActiveFilter">
26
+ <div>
29
27
  <div class="div-filter">
30
28
  Filtro Ativo
31
29
  <span class="icon-close" @click="removeFilter()">
@@ -34,7 +32,6 @@
34
32
  </div>
35
33
  </div>
36
34
  </div>
37
-
38
35
  </b-col>
39
36
  <b-col xs="4" sm="4" md="4" lg="4" xl="4">
40
37
  <div class="div-button">
@@ -63,6 +60,7 @@ export default {
63
60
  }
64
61
  },
65
62
  computed: {
63
+ ...mapState("generic", ["queryTags"]),
66
64
  ...mapGetters("generic", ["getFilterStorage"]),
67
65
  search: {
68
66
  get() {
@@ -72,6 +70,14 @@ export default {
72
70
  this.updateSearch(value);
73
71
  },
74
72
  },
73
+ hasActiveFilter() {
74
+ const filterStorage = this.getFilterStorage(this.$route.name);
75
+ return filterStorage && (
76
+ filterStorage.baseParams.search !== '' ||
77
+ filterStorage.baseParams.currentPage !== 1 ||
78
+ this.queryTags.length > 0
79
+ );
80
+ },
75
81
  },
76
82
  methods: {
77
83
  ...mapMutations("generic", [
@@ -93,6 +99,7 @@ export default {
93
99
  },
94
100
  removeFilter() {
95
101
  this.addEvent({ name: "filterStorageRemoved" });
102
+ this.executeClean();
96
103
  }
97
104
  },
98
105
  };
@@ -5,12 +5,6 @@
5
5
  <SelectStatic title="Tipo" :onlyQuery="true" :data="options" :markFormDirty="true"
6
6
  v-model="filterSelected" />
7
7
  </b-col>
8
- <b-col sm="3">
9
- <div class="div-btn">
10
- <Button _key="btnAddFilter" backGroundColor="#017AFF" color="white"
11
- classIcon="fa-regular fa-plus-large" size="small" :clicked="add" />
12
- </div>
13
- </b-col>
14
8
  </b-row>
15
9
  <div>
16
10
  <div v-for="item in filtersAdded">
@@ -19,13 +13,11 @@
19
13
  <b-col sm="11">
20
14
  <CheckboxGroup v-if="item.type == 'options'" :title="item.title" :options="item.options"
21
15
  :initialValue="item.value" v-model="item.value" />
22
-
23
16
  <div class="div-date">
24
17
  <DateTime v-if="item.type == 'date' || item.type == 'dateRange'" :title="item.title"
25
18
  format="DD/MM/YYYY" type="date" :range="true" :confirm="true" confirmText="Ok"
26
19
  placeholder v-model="item.value" />
27
20
  </div>
28
-
29
21
  <div v-if="item.type == 'decimal'">
30
22
  <b-row>
31
23
  <b-col sm="6">
@@ -36,12 +28,10 @@
36
28
  </b-col>
37
29
  </b-row>
38
30
  </div>
39
-
40
31
  <div v-if="item.type == 'multiOptions'">
41
32
  <div class="div-multi-options">
42
33
  <CheckboxServer :title="item.title" :url="item.url" v-model="item.value" />
43
34
  </div>
44
-
45
35
  </div>
46
36
  <InputText v-if="item.type == 'text'" :title="item.title" v-model="item.value" />
47
37
  </b-col>
@@ -72,7 +62,7 @@ import CheckboxServer from "@nixweb/nixloc-ui/src/component/forms/CheckboxServer
72
62
  import ScrollBar from "@nixweb/nixloc-ui/src/component/layout/ScrollBar.vue";
73
63
  import DateTime from "@nixweb/nixloc-ui/src/component/forms/DateTime";
74
64
 
75
- import { mapMutations, mapGetters } from "vuex";
65
+ import { mapMutations, mapState, mapGetters } from "vuex";
76
66
 
77
67
  export default {
78
68
  name: "FilterBuilder",
@@ -81,14 +71,17 @@ export default {
81
71
  data() {
82
72
  return {
83
73
  filterSelected: {},
84
- filtersAdded: [{ "id": "dateRange", "content": "Período de Locação", "field": "PeriodRent", "title": "Período de Locação", "type": "dateRange", "value": ["06/08/2024", "31/08/2024"] }, { "id": "options", "content": "Faturamento", "field": "StatusInvoiceName", "options": [{ "text": "Faturado", "value": "Faturado" }, { "text": "Parcial", "value": "Parcial" }, { "text": "Não Faturado", "value": "Não Faturado" }, { "text": "Não Fatura", "value": "Não Fatura" }], "title": "Faturamento", "type": "options", "value": ["Parcial", "Não Faturado"] }, { "id": "decimal", "content": "Valor", "field": "TotalValue", "title": "Valor", "type": "decimal", "valueStart": 100, "valueEnd": 200 }],
74
+ filtersAdded: [],
85
75
  }
86
76
  },
87
77
  mounted() {
78
+ var filterStorage = this.getQueryFilter(this.$route.name);
79
+ this.filtersAdded = filterStorage.filtersAdded;
88
80
  this.addEvent({ name: "stringFilter", data: this.filterFinal });
89
81
  },
90
82
  computed: {
91
- ...mapGetters("generic", ["event"]),
83
+ ...mapGetters("generic", ["event", "getQueryFilter"]),
84
+ ...mapState("generic", ["filterQuery"]),
92
85
  options() {
93
86
  let options = [];
94
87
  this.filters.forEach(filter => {
@@ -117,7 +110,7 @@ export default {
117
110
  },
118
111
  },
119
112
  methods: {
120
- ...mapMutations("generic", ["addEvent", "hideModal", "removeLoading"]),
113
+ ...mapMutations("generic", ["addEvent", "hideModal", "removeLoading", "addFilterQuery"]),
121
114
  add() {
122
115
  if (this.filterSelected.id && !this.contentExists(this.filterSelected.field)) {
123
116
  this.filtersAdded.push(this.filterSelected);
@@ -144,12 +137,24 @@ export default {
144
137
  this.removeItem(event.data.field);
145
138
  this.addEvent({ name: "stringFilter" });
146
139
  }
140
+
141
+ if (event.name == "filterStorageRemoved") {
142
+ this.filtersAdded = [];
143
+ this.addEvent({ name: "stringFilter", data: this.filterFinal });
144
+ }
147
145
  },
148
146
  deep: true,
149
147
  },
150
148
  filterFinal: {
151
149
  handler(filterFinal) {
152
150
  this.$emit("input", filterFinal);
151
+ this.addFilterQuery({ routeName: this.$route.name, filtersAdded: this.filtersAdded });
152
+ },
153
+ deep: true,
154
+ },
155
+ filterSelected: {
156
+ handler(filterSelected) {
157
+ this.add();
153
158
  },
154
159
  deep: true,
155
160
  },
@@ -44,7 +44,7 @@ export default {
44
44
  ...mapGetters("generic", ["showModal", "event"]),
45
45
  },
46
46
  methods: {
47
- ...mapMutations("generic", ["openModal", "addEvent", "removeLoading"]),
47
+ ...mapMutations("generic", ["openModal", "addEvent", "removeLoading", "updateQueryTags"]),
48
48
  openFilter() {
49
49
  this.openModal("filter");
50
50
  this.removeLoading(["btnFilter"]);
@@ -70,6 +70,12 @@ export default {
70
70
  },
71
71
  deep: true,
72
72
  },
73
+ tags: {
74
+ handler(tags) {
75
+ this.updateQueryTags(tags);
76
+ },
77
+ deep: true,
78
+ },
73
79
  },
74
80
 
75
81
  }
@@ -10,12 +10,11 @@
10
10
  </div>
11
11
  <div slot="content-main">
12
12
  <slot name="content-between-search-table"></slot>
13
- <div class="div-tag">
14
- <div class="side-by-side" v-for="tag in tags">
15
- <Tag :_key="tag.key" :disabled="propsParam.showAll" :title="tag.tag" />
16
- </div>
17
- </div>
13
+ <!-- <FilterQuery v-if="filters.length > 0" :filters="filters" v-model="stringFilter" />-->
18
14
  <Molded>
15
+ <!-- <ListViewWithDataHandler :templateList="templateList"
16
+ :propsParam="{ stringFilter: JSON.stringify(stringFilter) }" :isFilterStorage="true"
17
+ :buttonRemove="buttonRemove">-->
19
18
  <ListViewWithDataHandler :templateList="templateList" :propsParam="propsParam" :isFilterStorage="true"
20
19
  :buttonRemove="buttonRemove">
21
20
  <div slot="content-buttons-table-header">
@@ -37,26 +36,29 @@
37
36
  <script>
38
37
  import Panel from "@nixweb/nixloc-ui/src/component/layout/Panel.vue";
39
38
  import Molded from "@nixweb/nixloc-ui/src/component/layout/Molded";
40
- import Tag from "@nixweb/nixloc-ui/src/component/layout/Tag.vue";
41
-
42
39
  import ListViewWithDataHandler from "@nixweb/nixloc-ui/src/component/template/ListViewWithDataHandler.vue";
43
-
44
- import { mapState } from "vuex";
40
+ import FilterQuery from '@nixweb/nixloc-ui/src/component/shared/filter-builder/FilterQuery.vue'
45
41
 
46
42
  export default {
47
43
  name: "TemplateView",
48
- components: { Panel, Molded, Tag, ListViewWithDataHandler },
44
+ components: { Panel, Molded, ListViewWithDataHandler, FilterQuery },
49
45
  props: {
50
46
  panel: Object,
51
47
  templateList: Object,
52
48
  propsParam: Object,
49
+ filters: {
50
+ type: Array,
51
+ default: [],
52
+ },
53
53
  buttonRemove: {
54
54
  type: Boolean,
55
55
  default: true,
56
56
  },
57
57
  },
58
- computed: {
59
- ...mapState("generic", ["tags"]),
58
+ data() {
59
+ return {
60
+ stringFilter: [],
61
+ }
60
62
  },
61
63
  };
62
64
  </script>
@@ -41,6 +41,8 @@ export default {
41
41
  clearedSearch: false,
42
42
  methodExecutedApi: undefined,
43
43
  filterStorage: [],
44
+ filterQuery: [],
45
+ queryTags: [],
44
46
  },
45
47
  getters: {
46
48
  tip: (state) => (tipId) => {
@@ -69,6 +71,9 @@ export default {
69
71
  getFilterStorage: (state) => (key) => {
70
72
  return state.filterStorage.find(x => x.key === key);
71
73
  },
74
+ getQueryFilter: (state) => (routeName) => {
75
+ return state.filterQuery.find(x => x.routeName === routeName);
76
+ },
72
77
  paramsFilterStorage: (state) => (route, key, returnIfNull) => {
73
78
  var filter = state.filterStorage.find(x => x.key === route);
74
79
 
@@ -360,6 +365,19 @@ export default {
360
365
  let filter = state.filterStorage.filter(x => x.key != key);
361
366
  state.filterStorage = filter;
362
367
  },
368
+ addFilterQuery: (state, obj) => {
369
+ // função abaixo é para não deixar duplicidade
370
+ const index = state.filterQuery.findIndex(x => x.routeName === obj.routeName);
371
+ if (index !== -1) {
372
+ state.filterQuery[index] = obj;
373
+
374
+ } else {
375
+ state.filterQuery.push(obj);
376
+ }
377
+ },
378
+ updateQueryTags: (state, tags) => {
379
+ state.queryTags = tags;
380
+ },
363
381
  },
364
382
  actions: {
365
383
  postApi: async function (context, params) {