@nixweb/nixloc-ui 0.0.201 → 0.0.203

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 (29) hide show
  1. package/package.json +1 -1
  2. package/src/component/forms/Button.vue +1 -1
  3. package/src/component/forms/ButtonFilter.vue +5 -10
  4. package/src/component/forms/CheckboxGroup.vue +4 -8
  5. package/src/component/forms/CheckboxSimple.vue +1 -1
  6. package/src/component/forms/Dropdown.vue +19 -36
  7. package/src/component/forms/EditorHtml.vue +4 -10
  8. package/src/component/forms/InputDecimal.vue +6 -1
  9. package/src/component/forms/InputDecimalDiscount.vue +4 -3
  10. package/src/component/forms/InputTag.vue +1 -1
  11. package/src/component/forms/SelectStatic.vue +12 -9
  12. package/src/component/layout/Alert.vue +17 -21
  13. package/src/component/layout/HideShow.vue +7 -4
  14. package/src/component/layout/IconMolded.vue +8 -16
  15. package/src/component/layout/Menu.vue +7 -7
  16. package/src/component/layout/Tag.vue +1 -1
  17. package/src/component/rental/DisplayCalculatePeriod.vue +1 -1
  18. package/src/component/rental/DisplayPeriodRent.vue +1 -2
  19. package/src/component/rental/DisplayTotalization.vue +0 -1
  20. package/src/component/shared/Report.vue +1 -1
  21. package/src/component/shared/Search.vue +4 -14
  22. package/src/component/shared/SelectOption.vue +11 -12
  23. package/src/component/shared/TableDraggable.vue +8 -19
  24. package/src/component/shared/TableItem.vue +1 -1
  25. package/src/component/shared/Timer.vue +3 -2
  26. package/src/component/shared/file-manager/FileManager.vue +266 -0
  27. package/src/component/shared/query-builder/DynamicComponent.vue +17 -51
  28. package/src/component/shared/query-builder/SelectRule.vue +3 -3
  29. package/src/component/template/ViewTemplateReportList.vue +5 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nixweb/nixloc-ui",
3
- "version": "0.0.201",
3
+ "version": "0.0.203",
4
4
  "description": "Componentes UI",
5
5
  "author": "Fábio Ávila <fabio@nixweb.com.br>",
6
6
  "private": false,
@@ -71,7 +71,7 @@ export default {
71
71
  cursor: pointer;
72
72
  border: none;
73
73
  min-width: 33px;
74
- border-radius: 40px !important;
74
+ border-radius: 30px !important;
75
75
  font-size: 13px !important;
76
76
  font-weight: 400;
77
77
  letter-spacing: 1px !important;
@@ -1,13 +1,8 @@
1
1
  <template>
2
2
  <div>
3
3
  <div class="btn-container side-by-side text-center">
4
- <div
5
- v-for="option in options"
6
- class="btn-item side-by-side"
7
- :class="{ selected: option.value == selected }"
8
- @click="execute(option)"
9
- :key="option.title"
10
- >
4
+ <div v-for="option in options" class="btn-item-button-filter side-by-side"
5
+ :class="{ 'selected-button-filter': option.value == selected }" @click="execute(option)" :key="option.title">
11
6
  <i :class="option.classIcon"></i>
12
7
  <span class="btn-title">{{ option.title }}</span>
13
8
  </div>
@@ -61,7 +56,7 @@ export default {
61
56
  margin-left: 10px;
62
57
  }
63
58
 
64
- .btn-item {
59
+ .btn-item-button-filter {
65
60
  margin-top: 5px;
66
61
  margin-left: 10px;
67
62
  margin-right: 10px;
@@ -70,9 +65,9 @@ export default {
70
65
  cursor: pointer;
71
66
  }
72
67
 
73
- .selected {
68
+ .selected-button-filter {
74
69
  background-color: #4BB4E2;
75
- color:white;
70
+ color: white;
76
71
  padding-left: 10px;
77
72
  padding-right: 10px;
78
73
  border-radius: 15px;
@@ -1,13 +1,9 @@
1
1
  <template>
2
2
  <div>
3
- <b-form-group :label="title">
4
- <b-form-checkbox-group
5
- v-model="selected"
6
- :options="options"
7
- :stacked="stacked"
8
- disabled-field="disabled"
9
- @click.native="execute"
10
- ></b-form-checkbox-group>
3
+ <span class="title">{{ title }}</span>
4
+ <b-form-group>
5
+ <b-form-checkbox-group v-model="selected" :options="options" :stacked="stacked" disabled-field="disabled"
6
+ @click.native="execute"></b-form-checkbox-group>
11
7
  </b-form-group>
12
8
  </div>
13
9
  </template>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <b-form-checkbox v-model="valueLocal" :value="true" :unchecked-value="false">
4
- {{ title }}
4
+ <span class="title">{{ title }}</span>
5
5
  <Tip :field="field" :formName="formName" />
6
6
  </b-form-checkbox>
7
7
  </div>
@@ -1,53 +1,36 @@
1
1
  <template>
2
2
  <div class="side-by-side main-dropdown">
3
3
  <div class="dropdown">
4
- <button
5
- class="button dropbtn"
6
- :class="{
7
- small: size === 'small',
8
- medium: size === 'medium',
9
- large: size === 'large',
10
- primary: type === 'primary',
11
- success: type === 'success',
12
- warning: type === 'warning',
13
- info: type === 'info',
14
- edit: type === 'edit',
15
- danger: type === 'danger',
16
- disabled: disabled,
17
- }"
18
- :disabled="disabled"
19
- @click="toggle()"
20
- >
4
+ <button class="button dropbtn" :class="{
5
+ small: size === 'small',
6
+ medium: size === 'medium',
7
+ large: size === 'large',
8
+ primary: type === 'primary',
9
+ success: type === 'success',
10
+ warning: type === 'warning',
11
+ info: type === 'info',
12
+ edit: type === 'edit',
13
+ danger: type === 'danger',
14
+ disabled: disabled,
15
+ }" :disabled="disabled" @click="toggle()">
21
16
  {{ title }}
22
17
  <span class="icon-dropdown"><i :class="classIcon"></i></span>
23
18
  </button>
24
- <div
25
- v-show="show"
26
- class="text-left dropdown-content"
27
- :style="'right:' + right"
28
- @mouseleave="show = false"
29
- >
19
+ <div v-show="show" class="text-left dropdown-content" :style="'right:' + right" @mouseleave="show = false">
30
20
  <Molded :borderRadius="15">
31
21
  <div v-for="item in items" :key="item.eventName">
32
- <div
33
- v-if="isVisible(item.conditionVisibility)"
34
- :style="item.style"
35
- class="item"
36
- @click="execute(item.eventName)"
37
- >
22
+ <div v-if="isVisible(item.conditionVisibility)" :style="item.style" class="item-dropdown"
23
+ @click="execute(item.eventName)">
38
24
  <b-row>
39
25
  <b-col sm="2">
40
- <i :class="item.classIcon"></i>
26
+ <i class="icon-dropdown" :class="item.classIcon"></i>
41
27
  </b-col>
42
28
  <b-col sm="10">
43
29
  <span class="title"> {{ item.title }}</span>
44
30
  </b-col>
45
31
  </b-row>
46
32
  </div>
47
- <hr
48
- v-if="item.hr && isVisible(item.conditionVisibility)"
49
- class="hr-dropdown"
50
- />
33
+ <hr v-if="item.hr && isVisible(item.conditionVisibility)" class="hr-dropdown" />
51
34
  </div>
52
35
  </Molded>
53
36
  </div>
@@ -114,7 +97,7 @@ export default {
114
97
  margin: 0px !important;
115
98
  }
116
99
 
117
- .item {
100
+ .item-dropdown {
118
101
  cursor: pointer;
119
102
  padding-bottom: 5px;
120
103
  }
@@ -123,7 +106,7 @@ export default {
123
106
  margin-left: 5px;
124
107
  }
125
108
 
126
- .item:hover {
109
+ .item-dropdown:hover {
127
110
  background-color: #fafafc;
128
111
  }
129
112
 
@@ -6,16 +6,9 @@
6
6
  <Tip :field="field" :formName="formName" />
7
7
  </label>
8
8
  <div class="inner-addon right-addon">
9
- <i
10
- v-if="notifications.length > 0 && formDirty"
11
- class="required glyphicon fas fa-exclamation-triangle"
12
- ></i>
13
- <vue-editor
14
- v-model.trim="value"
15
- :editorToolbar="customToolbar"
16
- :disabled="disabled"
17
- :class="{ disabled: disabled }"
18
- ></vue-editor>
9
+ <i v-if="notifications.length > 0 && formDirty" class="required glyphicon fas fa-exclamation-triangle"></i>
10
+ <vue-editor v-model.trim="value" :editorToolbar="customToolbar" :disabled="disabled"
11
+ :class="{ disabled: disabled }"></vue-editor>
19
12
  </div>
20
13
 
21
14
  <div v-if="formDirty">
@@ -127,6 +120,7 @@ export default {
127
120
  color: #94aa2a;
128
121
  font-size: 14px;
129
122
  }
123
+
130
124
  .invalid {
131
125
  color: #f0134d;
132
126
  font-size: 14px;
@@ -12,7 +12,8 @@
12
12
  <slot v-else></slot>
13
13
  <vue-numeric :style="_style" class="form-control" v-on:keyup.enter.native="pressedEnter"
14
14
  :class="{ 'is-invalid': notifications.length > 0 && formDirty }" :placeholder="placeholder" :disabled="disabled"
15
- currency="R$" separator="." :minus="allowNegative" v-bind:precision="2" v-model="valueLocal"></vue-numeric>
15
+ currency="R$" separator="." :minus="allowNegative" v-bind:precision="precision"
16
+ v-model="valueLocal"></vue-numeric>
16
17
  </div>
17
18
 
18
19
  <div v-if="formDirty">
@@ -39,6 +40,10 @@ export default {
39
40
  placeholder: String,
40
41
  formName: String,
41
42
  _style: String,
43
+ precision: {
44
+ type: Number,
45
+ default: 2,
46
+ },
42
47
  markFormDirty: {
43
48
  type: Boolean,
44
49
  default: true,
@@ -1,7 +1,8 @@
1
1
  <template>
2
2
  <div>
3
- <InputDecimal v-if="!discount.discountByPercentage" :markFormDirty="markFormDirty" :title="title" field="discount"
4
- :required="required" :formName="formName" _style="color:red;" :disabled="disabled" v-model="discount.discount">
3
+ <InputDecimal v-if="!discount.discountByPercentage" :markFormDirty="markFormDirty" :title="title"
4
+ :precision="precision" field="discount" :required="required" :formName="formName" _style="color:red;"
5
+ :disabled="disabled" v-model="discount.discount">
5
6
  <div class="glyphicon margin-button">
6
7
  <Button _key="btnDiscount" title="" type="primary" classIcon="fa-solid fa-brazilian-real-sign" size="small"
7
8
  :disabled="disabled" :clicked="change" />
@@ -32,7 +33,7 @@ export default {
32
33
  InputDecimal,
33
34
  Button,
34
35
  },
35
- props: ["formName", "disabled", "_style", "required", "markFormDirty", "value"],
36
+ props: ["formName", "disabled", "_style", "required", "precision", "markFormDirty", "value"],
36
37
  data() {
37
38
  return {
38
39
  title: "Desconto em R$",
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div>
3
- <div>{{ title }}
3
+ <div><span class="title">{{ title }}</span>
4
4
  <span class="required" v-if="required">*</span>
5
5
  </div>
6
6
  <div class="email-input-container">
@@ -4,15 +4,17 @@
4
4
  <span class="title">{{ title }} </span>
5
5
  <span class="required" v-if="required">*</span>
6
6
  </label>
7
- <div class="select" :class="{ border: showBorder }">
8
- <multiselect @open="onOpen" @select="onSelected" @search-change="onSearch" :options="data"
9
- v-model.trim="currentValue" :custom-label="label" :disabled="disabled" placeholder :showLabels="true"
10
- :noResult="false" ref="multiselect" selectLabel deselectLabel selectedLabel>
11
- <div slot="beforeList" class="after-list">
12
- <Button v-if="showBtnClean" key="cleanSelect" title="Limpar" type="warning" classIcon="fas fa-broom"
13
- size="small" :clicked="cleanSelectStatic" />
14
- </div>
15
- </multiselect>
7
+ <div>
8
+ <div class="select" :class="{ border: showBorder, classCss }">
9
+ <multiselect @open="onOpen" @select="onSelected" @search-change="onSearch" :options="data"
10
+ v-model.trim="currentValue" :custom-label="label" :disabled="disabled" placeholder :showLabels="true"
11
+ :noResult="false" ref="multiselect" selectLabel deselectLabel selectedLabel>
12
+ <div slot="beforeList" class="after-list">
13
+ <Button v-if="showBtnClean" key="cleanSelect" title="Limpar" type="warning" classIcon="fas fa-broom"
14
+ size="small" :clicked="cleanSelectStatic" />
15
+ </div>
16
+ </multiselect>
17
+ </div>
16
18
  </div>
17
19
  </div>
18
20
  </template>
@@ -27,6 +29,7 @@ export default {
27
29
  props: {
28
30
  title: String,
29
31
  formName: String,
32
+ classCss: String,
30
33
  field: String,
31
34
  initialFieldTarget: Object,
32
35
  fieldTarget: String,
@@ -1,28 +1,24 @@
1
1
  <template>
2
2
  <div>
3
- <div
4
- class="warning"
5
- :class="{
6
- primary: type === 'primary',
7
- success: type === 'success',
8
- warning: type === 'warning',
9
- info: type === 'info',
10
- danger: type === 'danger',
11
- }"
12
- >
3
+ <div class="warning" :class="{
4
+ 'alert-primary': type === 'primary',
5
+ 'alert-success': type === 'success',
6
+ 'alert-warning': type === 'warning',
7
+ 'alert-info': type === 'info',
8
+ 'alert-danger': type === 'danger',
9
+ }">
13
10
  <span v-if="type === 'success'" class="success-icon">
14
11
  <i class="fas fa-check-circle"></i>
15
12
  </span>
16
13
  <span v-if="type === 'danger'" class="danger-icon">
17
- <i class="fas fa-times-circle"></i
18
- ></span>
14
+ <i class="fas fa-times-circle"></i></span>
19
15
  <span v-if="type === 'warning'" class="warning-icon">
20
- <i class="fas fa-exclamation-triangle"></i
21
- ></span>
16
+ <i class="fas fa-exclamation-triangle"></i></span>
22
17
  <span v-if="type === 'info'" class="info-icon">
23
- <i class="fas fa-exclamation-circle"></i
24
- ></span>
25
- <span class="message"><slot></slot></span>
18
+ <i class="fas fa-exclamation-circle"></i></span>
19
+ <span class="message">
20
+ <slot></slot>
21
+ </span>
26
22
  </div>
27
23
  </div>
28
24
  </template>
@@ -54,22 +50,22 @@ export default {
54
50
  margin-left: 5px;
55
51
  }
56
52
 
57
- .success {
53
+ .alert-success {
58
54
  background-color: #f6ffed !important;
59
55
  border: 1px solid #b7eb8f !important;
60
56
  }
61
57
 
62
- .warning {
58
+ .alert-warning {
63
59
  background-color: #fffbe6;
64
60
  border: 1px solid #ffe58f;
65
61
  }
66
62
 
67
- .info {
63
+ .alert-info {
68
64
  background-color: #e6f7ff;
69
65
  border: 1px solid #91d5ff;
70
66
  }
71
67
 
72
- .danger {
68
+ .alert-danger {
73
69
  background-color: #fff1f0;
74
70
  border: 1px solid #ffa39e;
75
71
  }
@@ -2,9 +2,9 @@
2
2
  <div>
3
3
  <div class="div-icon" :class="classCss" :style="'font-size:' + iconSize + 'px'" v-if="!show">
4
4
  <div class="icon-eye" @click="show = true">
5
- <i class="fa-solid fa-circle-small"></i>
6
- <i class="fa-solid fa-circle-small"></i>
7
- <i class="fa-solid fa-circle-small"></i>
5
+ <i class="icon-separate fa-solid fa-circle-small"></i>
6
+ <i class="icon-separate fa-solid fa-circle-small"></i>
7
+ <i class="icon-separate fa-solid fa-circle-small"></i>
8
8
  </div>
9
9
  </div>
10
10
  <div class="div-icon" v-if="show" @click="show = false">
@@ -52,8 +52,11 @@ export default {
52
52
  cursor: pointer;
53
53
  }
54
54
 
55
- .icon-eye{
55
+ .icon-eye {
56
56
  color: #dce3e9;
57
57
  }
58
58
 
59
+ .icon-separate {
60
+ padding: 3px;
61
+ }
59
62
  </style>
@@ -1,19 +1,11 @@
1
1
  <template>
2
2
  <div>
3
- <div
4
- v-for="icon in icons"
5
- class="molded side-by-side"
6
- @click="executeEvent(icon.eventName)"
7
- v-b-tooltip.hover
8
- :title="icon.tooltip"
9
- >
10
- <div
11
- class="icon-molded"
12
- :class="{
13
- 'icon-active-top': menuActive == icon.module,
14
- 'icon-normal-top': menuActive != icon.module,
15
- }"
16
- >
3
+ <div v-for="icon in icons" class="molded-icon side-by-side" @click="executeEvent(icon.eventName)" v-b-tooltip.hover
4
+ :title="icon.tooltip">
5
+ <div class="icon-molded-icon" :class="{
6
+ 'icon-active-top': menuActive == icon.module,
7
+ 'icon-normal-top': menuActive != icon.module,
8
+ }">
17
9
  <i :class="icon.icon"></i>
18
10
  </div>
19
11
  </div>
@@ -51,7 +43,7 @@ export default {
51
43
  </script>
52
44
 
53
45
  <style scoped>
54
- .molded {
46
+ .molded-icon {
55
47
  height: 38px;
56
48
  width: 38px;
57
49
  margin-left: 10px;
@@ -59,7 +51,7 @@ export default {
59
51
  cursor: pointer;
60
52
  }
61
53
 
62
- .icon-molded {
54
+ .icon-molded-icon {
63
55
  font-size: 20px;
64
56
  margin-left: 10px;
65
57
  color: white;
@@ -6,7 +6,7 @@
6
6
  <img :src="urlImage" />
7
7
  </div>
8
8
  </li>
9
- <li class="molded">
9
+ <li class="molded-menu">
10
10
  <div class="text-center div-photo" @click="editProfile">
11
11
  <img class="photo" :src="urlPhoto" />
12
12
  </div>
@@ -20,14 +20,14 @@
20
20
  <b-col sm="12">
21
21
  <div class="box-icon text-center">
22
22
  <i :class="item.icon"></i><br />
23
- <div class="div-title">{{ item.title }}</div>
23
+ <div class="div-title-menu">{{ item.title }}</div>
24
24
  </div>
25
25
  </b-col>
26
26
  </b-row>
27
27
 
28
28
  <!-- <b-row v-if="false">
29
29
  <b-col sm="12">
30
- <div class="div-title text-center">
30
+ <div class="div-title-menu text-center">
31
31
  <span
32
32
  :class="{
33
33
  'title-active': menuActive == item.module,
@@ -62,7 +62,7 @@
62
62
  <i class="menu-icon" :style="'color:' + item.iconColor" :class="item.icon"></i>
63
63
  </b-col>
64
64
  <b-col sm="10">
65
- <span class="title-sub"> {{ item.title }}</span>
65
+ <span class="title-sub"> {{ item.title }} </span>
66
66
  </b-col>
67
67
  </b-row>
68
68
  </a>
@@ -213,7 +213,7 @@ export default {
213
213
  border-radius: 18px;
214
214
  }
215
215
 
216
- .div-title {
216
+ .div-title-menu {
217
217
  margin-top: -10px;
218
218
  font-size: 12.5px;
219
219
  font-weight: 300;
@@ -243,12 +243,12 @@ img {
243
243
  font-size: 15px;
244
244
  }
245
245
 
246
- .molded {
246
+ .molded-menu {
247
247
  margin-top: 5px;
248
248
  margin-left: 8px;
249
249
  padding: 5px;
250
250
  padding-bottom: 1px !important;
251
- background-color: white !important;
251
+ background-color: white;
252
252
  border: 1px solid #e8eaed;
253
253
  border-radius: 12px !important;
254
254
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="div-tag">
3
3
  <div class="tag" :class="{ 'tag-disabled': disabled }">
4
- <span @click="execute()">{{ title }} <span v-if="value">:</span> {{ value }}</span>
4
+ <span class="title-tag" @click="execute()">{{ title }} <span v-if="value">:</span> {{ value }}</span>
5
5
  <i v-if="showButtonClose && !disabled" @click="remove()" class="icon-tag fas fa-times-circle"></i>
6
6
  </div>
7
7
  </div>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span>
2
+ <span class="title">
3
3
  <span> (</span>
4
4
 
5
5
  <span :style="'font-size:' + fontSize + 'px'" v-if="periodRent.year > 0">
@@ -3,8 +3,7 @@
3
3
  <span>
4
4
  <slot name="start"></slot>
5
5
  </span>
6
- <span class="title-delivery" v-if="showDeliveryDevolution"
7
- >{{ periodRent.deliveryDateHour }}
6
+ <span class="title-delivery" v-if="showDeliveryDevolution">{{ periodRent.deliveryDateHour }}
8
7
  </span>
9
8
 
10
9
  <span v-show="!showOnlyDeliveryDevolution">
@@ -51,7 +51,6 @@ export default {
51
51
 
52
52
  .title {
53
53
  padding-left: 10px;
54
- color: black !important;
55
54
  font-weight: 500;
56
55
  }
57
56
 
@@ -12,7 +12,7 @@
12
12
  <br />
13
13
  <div id="printMe" class="a4 footer">
14
14
  <HeaderReport />
15
- <table class="table table-responsive-xs">
15
+ <table class="table table-responsive-md">
16
16
  <thead>
17
17
  <tr>
18
18
  <th v-for="(obj, ind) in header" :key="ind">
@@ -5,12 +5,12 @@
5
5
  <div class="molded">
6
6
  <b-row>
7
7
  <b-col sm="9">
8
- <input type="text" name="search" placeholder="Pesquisar ..." @keyup="verifyCleanSearch()"
9
- @keyup.enter.prevent="executeSearch()" v-model="search.content" /></b-col>
8
+ <input class="input-search" type="text" name="search" placeholder="Pesquisar ..."
9
+ @keyup="verifyCleanSearch()" @keyup.enter.prevent="executeSearch()" v-model="search.content" /></b-col>
10
10
  <b-col sm="3">
11
11
  <div class="div-select">
12
- <SelectStatic fieldTarget="filter" :onlyQuery="true" :initialValue="{ content: 'Contém', id: 'contains' }"
13
- v-model="search.filter" :showBorder="false" :data="[
12
+ <SelectStatic classCss="select-search" fieldTarget="filter" :onlyQuery="true"
13
+ :initialValue="{ content: 'Contém', id: 'contains' }" v-model="search.filter" :showBorder="false" :data="[
14
14
  { content: 'Contém', id: 'contains' },
15
15
  { content: 'Igual', id: 'equal' },
16
16
  ]" />
@@ -72,16 +72,6 @@ export default {
72
72
  </script>
73
73
 
74
74
  <style scoped>
75
- .icon-search {
76
- font-size: 20px;
77
- color: #577696;
78
- display: inline-block;
79
- }
80
-
81
- .input {
82
- display: inline-block;
83
- }
84
-
85
75
  .margin {
86
76
  padding-top: 28px;
87
77
  }
@@ -4,10 +4,10 @@
4
4
  {{ title }}
5
5
  </div>
6
6
  <div class="alignment" v-for="option in options">
7
- <div class="option" :style="'width:' + width + 'px; height:' + height + 'px'"
8
- :class="{ selected: option.value == selected }" @click="optionSelected(option.value)">
7
+ <div class="select-option" :style="'width:' + width + 'px; height:' + height + 'px'"
8
+ :class="{ 'selected-option': option.value == selected }" @click="optionSelected(option.value)">
9
9
  <div class="text-center">
10
- <span :class="{ disabled: disabled }" :style="'font-size:' + option.titleSize + 'px;'">
10
+ <span class="title" :class="{ disabled: disabled }" :style="'font-size:' + option.titleSize + 'px;'">
11
11
  <i v-if="size === 'small'" :class="option.icon" :style="option.iconStyle"></i>
12
12
  {{ option.title }}
13
13
  </span>
@@ -91,11 +91,11 @@ export default {
91
91
  </script>
92
92
  <style scoped>
93
93
  .div-main {
94
- margin: auto;
94
+
95
95
  padding: 0px;
96
96
  }
97
97
 
98
- .option {
98
+ .select-option {
99
99
  cursor: pointer;
100
100
  border: 1px solid #e5e4e8;
101
101
  background-color: white;
@@ -112,15 +112,15 @@ export default {
112
112
  box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 2%);
113
113
  }
114
114
 
115
- .alignment {
116
- display: inline-block;
115
+ .select-option:hover {
116
+ background-color: white;
117
117
  }
118
118
 
119
- .option:hover {
120
- background-color: white;
119
+ .alignment {
120
+ display: inline-block;
121
121
  }
122
122
 
123
- .selected {
123
+ .selected-option {
124
124
  background-color: white;
125
125
  border-color: #4680a5;
126
126
  }
@@ -148,8 +148,7 @@ export default {
148
148
  opacity: 0.5;
149
149
  }
150
150
 
151
- .div-icon{
151
+ .div-icon {
152
152
  margin-right: 10px;
153
153
  }
154
-
155
154
  </style>
@@ -1,23 +1,13 @@
1
1
  <template>
2
2
  <div>
3
3
  <div class="margin">
4
- <Button
5
- _key="btnCancelTableDraggable"
6
- title="Cancelar"
7
- type="danger"
8
- size="small"
9
- :clicked="cancel"
10
- />
11
- <Button
12
- _key="btnCheckMoveTableDraggable"
13
- title="Confirmar"
14
- type="success"
15
- size="small"
16
- :clicked="checkMove"
17
- />
4
+ <Button _key="btnCancelTableDraggable" title="Cancelar" type="danger" size="small" :clicked="cancel" />
5
+ <Button _key="btnCheckMoveTableDraggable" title="Confirmar" type="success" size="small" :clicked="checkMove" />
18
6
  </div>
19
- <i class="fa-regular fa-maximize icon-order"></i> Clique e arraste para
20
- ordenar
7
+ <i class="fa-regular fa-maximize icon-order"></i>
8
+ <span class="title">
9
+ Clique e arraste para ordenar
10
+ </span>
21
11
  <table class="table table-responsive-xs">
22
12
  <thead>
23
13
  <tr>
@@ -28,7 +18,7 @@
28
18
  </thead>
29
19
  <draggable v-model="dataLocal" tag="tbody">
30
20
  <tr v-for="item in dataLocal">
31
- <td class="item">
21
+ <td class="item-draggable">
32
22
  <i class="fa-solid fa-grip-lines icon-order"></i>
33
23
  <span v-if="item.name"> {{ item.name }}</span>
34
24
  <span class="without-group" v-else> Sem grupo</span>
@@ -111,8 +101,7 @@ export default {
111
101
  text-transform: uppercase;
112
102
  }
113
103
 
114
- .item {
115
- background-color: #f1f4f9;
104
+ .item-draggable {
116
105
  cursor: move;
117
106
  }
118
107
 
@@ -105,7 +105,7 @@ export default {
105
105
  </script>
106
106
  <style scoped>
107
107
  .field-second {
108
- color: rgb(83, 82, 82) !important;
108
+ color: rgb(83, 82, 82);
109
109
  }
110
110
 
111
111
  .table-currency {
@@ -1,7 +1,8 @@
1
1
  <template>
2
2
  <div>
3
- {{ title }}
4
- <span class="timer">{{ time }}</span> segundos...
3
+ <span class="title"> {{ title }}</span>
4
+ <span class="title timer"> {{ time }} </span>
5
+ <span class="title">segundos...</span>
5
6
  </div>
6
7
  </template>
7
8
  <script>
@@ -0,0 +1,266 @@
1
+ <template>
2
+ <div>
3
+ <b-row>
4
+ <b-col sm="3">
5
+ <div class="file">
6
+ <button class="button small primary" @click="openCamera">
7
+ <span><i class="fa-regular fa-camera-web"></i> Câmera</span>
8
+ </button>
9
+ </div>
10
+ <div class="file">
11
+ <button class="button small primary">
12
+ <span><i class="fa-solid fa-upload"></i> Carregar arquivos</span>
13
+ </button>
14
+ <input type="file" name="myfile" ref="file" @change="handleFileChange" multiple />
15
+ </div>
16
+ </b-col>
17
+ <b-col sm="9">
18
+ <div class="side-by-side" v-for="attachment in attachments">
19
+ <div class="text-center box-file">
20
+ <div v-if="attachment.extension == 'png' || attachment.extension == 'jpg'">
21
+ <img class="img" :src="urlBase + attachment.fileName">
22
+ </div>
23
+ <div class="icon-generic" v-else>
24
+ <i class="fa-light fa-file"></i>
25
+ <div><span class="name">{{ attachment.name }}</span></div>
26
+ </div>
27
+ <div class="icon side-by-side">
28
+ <i class="fa-solid fa-download"></i>
29
+ </div>
30
+ <div class="icon icon-close side-by-side">
31
+ <i class="fa-solid fa-circle-xmark"></i>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </b-col>
36
+ </b-row>
37
+ <Modal title="Câmera" :width="600" :height="750" v-if="showModal('webcam')" :onHideModal="stopCamera">
38
+ <div class="text-center">
39
+ <WebCam ref="webcam" :autoplay="false" width="400" height="100%"></WebCam>
40
+ <br>
41
+ <div class="side-by-side">
42
+ <button class="button primary" @click="captureImage">
43
+ <i class="fa-solid fa-camera"></i>
44
+ Capturar
45
+ </button>
46
+ </div>
47
+ </div>
48
+ </Modal>
49
+ </div>
50
+ </template>
51
+ <script>
52
+
53
+ import Modal from "@nixweb/nixloc-ui/src/component/forms/Modal";
54
+
55
+ import { WebCam } from 'vue-cam-vision'
56
+
57
+ import { mapState, mapGetters, mapMutations } from "vuex";
58
+
59
+ export default {
60
+ components: {
61
+ WebCam,
62
+ Modal
63
+ },
64
+ props: {
65
+ baseUrl: {
66
+ type: String,
67
+ default: "https://espaco.blob.core.windows.net",
68
+ },
69
+ container: {
70
+ type: String,
71
+ default: "nixloc-attachment",
72
+ }
73
+ },
74
+ data() {
75
+ return {
76
+ files: [],
77
+ attachments: [
78
+ {
79
+ fileName: "T7I300FDB9_3.png",
80
+ extension: "png",
81
+ },
82
+ {
83
+ fileName: "T7I300FDB9_3.png",
84
+ extension: "png",
85
+ },
86
+ {
87
+ fileName: "T7I300FDB9_3.png",
88
+ extension: "png",
89
+ },
90
+ {
91
+ fileName: "T7I300FDB9_3.png",
92
+ extension: "png",
93
+ },
94
+ {
95
+ name: "screensh...",
96
+ fileName: "T7I300FDB9_3.png",
97
+ extension: "txt",
98
+ },
99
+ {
100
+ fileName: "T7I300FDB9_3.png",
101
+ extension: "png",
102
+ },
103
+ {
104
+ fileName: "T7I300FDB9_3.png",
105
+ extension: "png",
106
+ },
107
+ {
108
+ fileName: "T7I300FDB9_3.png",
109
+ extension: "png",
110
+ },
111
+ {
112
+ fileName: "T7I300FDB9_3.png",
113
+ extension: "png",
114
+ },
115
+ {
116
+ name: "screensh...",
117
+ fileName: "T7I300FDB9_3.png",
118
+ extension: "txt",
119
+ },
120
+ {
121
+ fileName: "T7I300FDB9_3.png",
122
+ extension: "png",
123
+ },
124
+ {
125
+ fileName: "T7I300FDB9_3.png",
126
+ extension: "png",
127
+ },
128
+ {
129
+ fileName: "T7I300FDB9_3.png",
130
+ extension: "png",
131
+ },
132
+ {
133
+ fileName: "T7I300FDB9_3.png",
134
+ extension: "png",
135
+ },
136
+ {
137
+ name: "screensh...",
138
+ fileName: "T7I300FDB9_3.png",
139
+ extension: "txt",
140
+ },
141
+ ],
142
+ captures: [],
143
+ imgReport: [],
144
+ };
145
+ },
146
+ methods: {
147
+ ...mapMutations("generic", ["openModal", "hideModal"]),
148
+ handleFileChange() {
149
+ this.files = this.$refs.file.files;
150
+ },
151
+ openCamera() {
152
+ this.openModal("webcam");
153
+ this.startCamera();
154
+ },
155
+ startCamera() {
156
+ if (this.$refs.webcam) {
157
+ this.$refs.webcam.start();
158
+ }
159
+ },
160
+ stopCamera() {
161
+ if (this.$refs.webcam) {
162
+ this.$refs.webcam.stop();
163
+ this.hideModal();
164
+ }
165
+ },
166
+ captureImage() {
167
+ if (this.$refs.webcam) {
168
+ this.$refs.webcam.capture().then((base64String) => {
169
+ console.log(base64String);
170
+ });
171
+ }
172
+ },
173
+ },
174
+ computed: {
175
+ ...mapGetters("generic", ["showModal"]),
176
+ },
177
+ };
178
+ </script>
179
+
180
+ <style scoped>
181
+ .file {
182
+ position: relative;
183
+ overflow: hidden;
184
+ display: inline-block;
185
+ cursor: pointer;
186
+ }
187
+
188
+ .button {
189
+ padding: 8px 12px;
190
+ cursor: pointer;
191
+ border: none;
192
+ border-radius: 40px !important;
193
+ font-size: 14px;
194
+ font-weight: 400;
195
+ margin-left: 10px;
196
+ }
197
+
198
+ .primary {
199
+ background: #577696;
200
+ border-color: #577696;
201
+ color: #fff;
202
+ }
203
+
204
+ .primary:hover {
205
+ background: #355472;
206
+ }
207
+
208
+ .danger {
209
+ background: red;
210
+ border-color: red;
211
+ color: #fff;
212
+ }
213
+
214
+ .file input[type="file"] {
215
+ font-size: 100px;
216
+ position: absolute;
217
+ left: 0;
218
+ top: 0;
219
+ opacity: 0;
220
+ }
221
+
222
+ .small {
223
+ padding: 3px 8px;
224
+ font-size: 13px;
225
+ }
226
+
227
+ .box-file {
228
+ width: 120px !important;
229
+ height: 110px !important;
230
+ border: 1px solid #e8eaed;
231
+ background-color: #fff;
232
+ border-radius: 13px;
233
+ margin: 10px;
234
+ font-size: 23px;
235
+ font-weight: 400;
236
+ align-items: center;
237
+ justify-content: center;
238
+ }
239
+
240
+ .img {
241
+ margin: 10px;
242
+ width: 45px;
243
+ height: 45px;
244
+ }
245
+
246
+ .icon-generic {
247
+ font-size: 16px;
248
+ }
249
+
250
+ .name {
251
+ font-size: 14px;
252
+ }
253
+
254
+ .icon {
255
+ font-size: 20px;
256
+ cursor: pointer;
257
+ }
258
+
259
+ .icon-close {
260
+ color: red;
261
+ }
262
+
263
+ .btn-webcam {}
264
+ </style>
265
+
266
+
@@ -2,77 +2,43 @@
2
2
  <div class="vqb-rule card move">
3
3
  <div class="form-inline">
4
4
  <label :class="rule.classCss" class="mr-5">
5
- <i :class="rule.icon"></i>
6
- <span style="margin-left: 10px">{{ rule.title }} </span>
5
+ <i class="icon-query-builder" :class="rule.icon"></i>
6
+ <span class="title" style="margin-left: 10px">{{ rule.title }} </span>
7
7
  </label>
8
8
  <div style="margin-right: 20px">
9
- <RadioGroup
10
- v-if="index > 0"
11
- :options="[
12
- { text: 'e', value: 'and' },
13
- { text: 'ou', value: 'or' },
14
- ]"
15
- v-model="rule.andOr"
16
- />
9
+ <RadioGroup v-if="index > 0" :options="[
10
+ { text: 'e', value: 'and' },
11
+ { text: 'ou', value: 'or' },
12
+ ]" v-model="rule.andOr" />
17
13
  </div>
18
- <select
19
- v-if="rule.typeField == 'text' || rule.typeField == 'numeric'"
20
- v-model="rule.operator"
21
- class="form-control mr-2"
22
- >
14
+ <select v-if="rule.typeField == 'text' || rule.typeField == 'numeric'" v-model="rule.operator"
15
+ class="select-query-builder form-control mr-2">
23
16
  <option v-for="operator in rule.operators" :key="operator">
24
- {{ operator }}
17
+ <span>{{ operator }}</span>
25
18
  </option>
26
19
  </select>
27
- <input
28
- v-if="rule.typeField == 'text' || rule.typeField == 'numeric'"
29
- class="form-control"
30
- :type="rule.typeField == 'text' ? 'text' : 'number'"
31
- placeholder="Valor"
32
- v-model="rule.value"
33
- />
34
- <CheckboxGroup
35
- v-if="rule.typeField == 'checkbox'"
36
- :options="options"
37
- :initialValue="rule.value"
38
- v-model="rule.value"
39
- />
20
+ <input v-if="rule.typeField == 'text' || rule.typeField == 'numeric'" class="form-control"
21
+ :type="rule.typeField == 'text' ? 'text' : 'number'" placeholder="Valor" v-model="rule.value" />
22
+ <CheckboxGroup v-if="rule.typeField == 'checkbox'" :options="options" :initialValue="rule.value"
23
+ v-model="rule.value" />
40
24
  <div v-if="rule.typeField == 'dateTime'">
41
25
  <div class="side-by-side">
42
- <DateTime
43
- :format="rule.props.format"
44
- :type="rule.props.type"
45
- :range="rule.props.range"
46
- v-model="rule.value"
47
- />
26
+ <DateTime :format="rule.props.format" :type="rule.props.type" :range="rule.props.range" v-model="rule.value" />
48
27
  </div>
49
28
  <div class="side-by-side margin">ou</div>
50
29
  <div class="side-by-side margin">
51
- <select
52
- @change="verifyCalculate"
53
- v-model="rule.value[2]"
54
- class="form-control mr-2"
55
- >
30
+ <select @change="verifyCalculate" v-model="rule.value[2]" class="form-control mr-2">
56
31
  <option v-for="period in optionsPeriodCustom" :key="period">
57
32
  {{ period }}
58
33
  </option>
59
34
  </select>
60
35
  </div>
61
36
  <div v-if="rule.props.filterByField">
62
- <RadioGroup
63
- v-if="rule.props.filterByField"
64
- :options="rule.props.filterByField"
65
- v-model="rule.name"
66
- />
37
+ <RadioGroup v-if="rule.props.filterByField" :options="rule.props.filterByField" v-model="rule.name" />
67
38
  </div>
68
39
  </div>
69
40
 
70
- <Select
71
- v-if="rule.typeField == 'select'"
72
- :showNewRegister="false"
73
- :url="rule.props.url"
74
- v-model="rule.value"
75
- />
41
+ <Select v-if="rule.typeField == 'select'" :showNewRegister="false" :url="rule.props.url" v-model="rule.value" />
76
42
  <div @click="removeRule" class="ml-auto btn-remove">
77
43
  <i class="fas fa-times"></i>
78
44
  </div>
@@ -1,14 +1,14 @@
1
1
  <template>
2
2
  <div class="selected-filter" @blur="open = false">
3
3
  <div class="selected" :class="{ open: open }" @click="open = !open">
4
- {{ selected }}
4
+ <span class="title">{{ selected }}</span>
5
5
  </div>
6
6
  <div class="items" :class="{ hide: !open }">
7
7
  <div v-for="(options, i) of options" :key="i">
8
8
  <div @click="select(options)">
9
9
  <span :class="options.classCss">
10
- <i :class="options.icon"></i>
11
- <span> {{ options.title }}</span>
10
+ <i class="icon-query-builder" :class="options.icon"></i>
11
+ <span class="title"> {{ options.title }}</span>
12
12
  </span>
13
13
  </div>
14
14
  </div>
@@ -5,7 +5,8 @@
5
5
  <div slot="content-main">
6
6
  <b-row>
7
7
  <b-col xs="12" sm="12" md="12" lg="6" xl="6" v-if="allReports.saved.length > 0">
8
- <div><i class="fas fa-file-alt icon-saved"></i> Personalizado</div>
8
+ <div><i class="fas fa-file-alt icon-report-title icon-saved"></i> <span class="title">Personalizado</span>
9
+ </div>
9
10
  <hr class="hr" />
10
11
  <div class="div-molded" v-for="report in allReports.saved">
11
12
  <div>
@@ -15,7 +16,7 @@
15
16
  <i class="fas fa-file-alt icon-report"></i>
16
17
  </b-col>
17
18
  <b-col sm="10" @click="navegateTo(report)">
18
- <div>{{ report.name }}</div>
19
+ <div class="title-report">{{ report.name }}</div>
19
20
  </b-col>
20
21
  <b-col sm="1">
21
22
  <Confirmation title="Deseja excluir?" type="danger" :data="report" :confirmed="confirmDelete">
@@ -31,7 +32,7 @@
31
32
  </b-col>
32
33
  <b-col xs="12" sm="12" md="12" lg="6" xl="6">
33
34
  <div>
34
- <i class="fas fa-file-chart-line icon-default"></i> Padrão
35
+ <i class="fas fa-file-chart-line icon-report-title icon-default"></i> <span class="title">Padrão</span>
35
36
  </div>
36
37
  <hr class="hr" />
37
38
  <div class="div-molded" v-for="report in allReports.default">
@@ -42,7 +43,7 @@
42
43
  <i class="fas fa-file-alt icon-report"></i>
43
44
  </b-col>
44
45
  <b-col sm="11" @click="navegateTo(report)">
45
- <div class="side-by-side">{{ report.name }}</div>
46
+ <div class="title-report side-by-side">{{ report.name }}</div>
46
47
  </b-col>
47
48
  </b-row>
48
49
  </Molded>