@nixweb/nixloc-ui 0.0.201 → 0.0.202
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 +1 -1
- package/src/component/forms/Button.vue +1 -1
- package/src/component/forms/ButtonFilter.vue +5 -10
- package/src/component/forms/CheckboxGroup.vue +4 -8
- package/src/component/forms/CheckboxSimple.vue +1 -1
- package/src/component/forms/Dropdown.vue +19 -36
- package/src/component/forms/EditorHtml.vue +4 -10
- package/src/component/forms/InputTag.vue +1 -1
- package/src/component/forms/SelectStatic.vue +12 -9
- package/src/component/layout/Alert.vue +17 -21
- package/src/component/layout/HideShow.vue +7 -4
- package/src/component/layout/IconMolded.vue +8 -16
- package/src/component/layout/Menu.vue +7 -7
- package/src/component/layout/Tag.vue +1 -1
- package/src/component/rental/DisplayCalculatePeriod.vue +1 -1
- package/src/component/rental/DisplayPeriodRent.vue +1 -2
- package/src/component/rental/DisplayTotalization.vue +0 -1
- package/src/component/shared/Report.vue +1 -1
- package/src/component/shared/Search.vue +4 -14
- package/src/component/shared/SelectOption.vue +10 -11
- package/src/component/shared/TableDraggable.vue +8 -19
- package/src/component/shared/TableItem.vue +1 -1
- package/src/component/shared/file-manager/FileManager.vue +266 -0
- package/src/component/shared/query-builder/DynamicComponent.vue +17 -51
- package/src/component/shared/query-builder/SelectRule.vue +3 -3
- package/src/component/template/ViewTemplateReportList.vue +5 -4
package/package.json
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<div class="btn-container side-by-side text-center">
|
|
4
|
-
<div
|
|
5
|
-
|
|
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
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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,53 +1,36 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="side-by-side main-dropdown">
|
|
3
3
|
<div class="dropdown">
|
|
4
|
-
<button
|
|
5
|
-
|
|
6
|
-
:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11
|
-
class="
|
|
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;
|
|
@@ -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
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
5
|
-
:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
25
|
-
|
|
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
|
-
|
|
5
|
-
class="molded
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
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>
|
|
@@ -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">
|
|
@@ -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 ..."
|
|
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"
|
|
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>
|
|
@@ -95,7 +95,7 @@ export default {
|
|
|
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
|
-
.
|
|
116
|
-
|
|
115
|
+
.select-option:hover {
|
|
116
|
+
background-color: white;
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
.
|
|
120
|
-
|
|
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
|
-
|
|
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>
|
|
20
|
-
|
|
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
|
|
|
@@ -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
|
-
|
|
11
|
-
:
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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</
|
|
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>
|