quasar-factory-lib 0.0.37 → 0.0.39
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/dist/components/TaskNavBar/TaskNavBar.vue.d.ts +1 -0
- package/dist/layouts/PdaLayout.vue.d.ts +1184 -0
- package/dist/pages/NavBarPage.vue.d.ts +1 -0
- package/dist/pages/TablePage.vue.d.ts +16 -3
- package/dist/quasar-factory-lib.js +1671 -1672
- package/dist/quasar-factory-lib.umd.cjs +11 -11
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/Table/Table.vue +4 -0
- package/src/components/Table/components/TableFilter.vue +1 -1
- package/src/components/Table/components/TableSlotBody.vue +17 -12
- package/src/components/Table/components/TableSlotGrid.vue +11 -10
- package/src/components/Table/components/TableSlotHeader.vue +8 -2
- package/src/components/Table/utils/infiniteScroll.ts +0 -1
- package/src/components/TaskNavBar/TaskNavBar.vue +16 -9
- package/src/components/TaskNavBar/css/taskNavBar.css +14 -8
- package/src/css/app.css +7 -0
- package/src/layouts/MenuLayout.vue +6 -0
- package/src/layouts/PdaLayout.vue +364 -0
- package/src/pages/TablePage.vue +1 -24
- package/src/router/routes.ts +4 -0
- package/src/store/table.js +1 -1
- package/src/utils/infiniteScroll.ts +0 -1
package/package.json
CHANGED
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
</template>
|
|
71
71
|
<template #item="props">
|
|
72
72
|
<TableSlotGrid
|
|
73
|
+
v-if="!showSkeleton"
|
|
73
74
|
:table-props="props"
|
|
74
75
|
:selection-type="selectionType"
|
|
75
76
|
:popup-edit-number-options="popupEditNumberOptions"
|
|
@@ -223,6 +224,9 @@ export default defineComponent({
|
|
|
223
224
|
watch: {
|
|
224
225
|
rows (val) {
|
|
225
226
|
this.rowsData = val
|
|
227
|
+
},
|
|
228
|
+
visibleColumns (val: string [] | []) {
|
|
229
|
+
this.visibleColumnsData = val
|
|
226
230
|
}
|
|
227
231
|
},
|
|
228
232
|
mounted () {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<tr
|
|
3
|
-
:class="
|
|
3
|
+
:class="tablePropsData.row.rowBgColor || 'bg-main-color'"
|
|
4
4
|
>
|
|
5
5
|
<q-td
|
|
6
6
|
v-if="selectionType != 'none'"
|
|
7
|
-
:id="
|
|
7
|
+
:id="tablePropsData.row.id"
|
|
8
8
|
auto-width
|
|
9
9
|
>
|
|
10
10
|
<q-checkbox
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
/>
|
|
14
14
|
</q-td>
|
|
15
15
|
<q-td
|
|
16
|
-
v-for="col in
|
|
16
|
+
v-for="col in tablePropsData.cols"
|
|
17
17
|
:key="col.name"
|
|
18
|
-
:class="
|
|
19
|
-
:props="
|
|
20
|
-
:style="tablePropsData.row.tdStyle"
|
|
18
|
+
:class="tablePropsData.row.rowBgColor || 'bg-main-color'"
|
|
19
|
+
:props="tablePropsData"
|
|
21
20
|
>
|
|
22
21
|
<span
|
|
22
|
+
:style="tablePropsData.row.tdStyle"
|
|
23
23
|
v-if="getColumnValue(col)"
|
|
24
|
-
v-html="
|
|
24
|
+
v-html="tablePropsData.row[col.name]"
|
|
25
25
|
/>
|
|
26
26
|
<!-- fa-solid fa-pen-to-square -->
|
|
27
27
|
<q-icon
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
v-if="col.editable"
|
|
36
36
|
:model="tablePropsData.row[col.name] || ''"
|
|
37
37
|
:label="col.label"
|
|
38
|
-
:data-cy="col.popupEditDataCy + '-' +
|
|
38
|
+
:data-cy="col.popupEditDataCy + '-' + tablePropsData.row.id"
|
|
39
39
|
:input-max-length="col.inputMaxLength || 20"
|
|
40
40
|
:mask="col.popupEditMask || ''"
|
|
41
41
|
:input-type="col.popupEditInputtype || 'text'"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<BasicCheckBox
|
|
51
51
|
v-if="col.showBasicCheckbox"
|
|
52
52
|
:table-props="tablePropsData"
|
|
53
|
-
:data-cy="col.checkBoxDataCy + '-' +
|
|
53
|
+
:data-cy="col.checkBoxDataCy + '-' + tablePropsData.row.id || ''"
|
|
54
54
|
:model="tablePropsData.row[col.name]"
|
|
55
55
|
@check-box-emit="(val: object) => {
|
|
56
56
|
tablePropsData.row[col.name] = val
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
<CustomizedCheckBox
|
|
61
61
|
v-if="col.showCustomizedCheckBox"
|
|
62
62
|
:table-props="tablePropsData"
|
|
63
|
-
:data-cy="col.checkBoxDataCy + '-' +
|
|
63
|
+
:data-cy="col.checkBoxDataCy + '-' + tablePropsData.row.id || ''"
|
|
64
64
|
:model="tablePropsData.row[col.name]"
|
|
65
65
|
:check-box-color="tablePropsData.row[col.name] ? col.checkBoxColorCaseTrue : col.checkBoxColorCaseFalse"
|
|
66
66
|
:check-box-icon-size="'md'"
|
|
@@ -81,11 +81,11 @@
|
|
|
81
81
|
|
|
82
82
|
<CustomizedButton
|
|
83
83
|
v-if="col.showCustomizedButton"
|
|
84
|
-
:data-cy="col.colButtonDataCy + '-' +
|
|
84
|
+
:data-cy="col.colButtonDataCy + '-' + tablePropsData.row.id"
|
|
85
85
|
:btn-color="col.btnColor || 'primary'"
|
|
86
86
|
:btn-icon="col.btnIcon|| ''"
|
|
87
87
|
@on-click-button="() => {
|
|
88
|
-
$emit('onClickButton', col.btnEmit,
|
|
88
|
+
$emit('onClickButton', col.btnEmit, tablePropsData.row)
|
|
89
89
|
}"
|
|
90
90
|
/>
|
|
91
91
|
</q-td>
|
|
@@ -116,6 +116,11 @@ export default {
|
|
|
116
116
|
default: 'none'
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
|
+
watch: {
|
|
120
|
+
tableProps (val) {
|
|
121
|
+
this.tablePropsData = val
|
|
122
|
+
}
|
|
123
|
+
},
|
|
119
124
|
emits: ['onSaveValuePopupEdit', 'onUpdateBasicCheckboxValue', 'onClickButton', 'onUpdateCustomizedCheckboxValue'],
|
|
120
125
|
data () {
|
|
121
126
|
return {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
? $q.dark.isActive
|
|
13
13
|
? 'bg-grey-9'
|
|
14
14
|
: 'bg-grey-2'
|
|
15
|
-
:
|
|
15
|
+
: tablePropsData.row.rowBgColor || 'bg-main-color'
|
|
16
16
|
"
|
|
17
17
|
>
|
|
18
18
|
<q-card-section>
|
|
@@ -39,19 +39,20 @@
|
|
|
39
39
|
<q-item-label
|
|
40
40
|
v-if="getColumnValue(col)"
|
|
41
41
|
class="itemsFontSize text-almost-black"
|
|
42
|
+
:style="tablePropsData.row.tdStyle"
|
|
42
43
|
>
|
|
43
44
|
<q-icon
|
|
44
45
|
v-if="col.editable"
|
|
45
|
-
name="
|
|
46
|
+
name="edit"
|
|
46
47
|
color="primary"
|
|
47
48
|
size="sm"
|
|
48
49
|
class="cursor-pointer"
|
|
49
50
|
/>
|
|
50
|
-
<span v-html="
|
|
51
|
+
<span v-html="tablePropsData.row[col.name]" />
|
|
51
52
|
<TablePopupEdit
|
|
52
53
|
:model="tablePropsData.row[col.name] || ''"
|
|
53
54
|
:label="col.label"
|
|
54
|
-
:data-cy="col.popupEditDataCy + '-' +
|
|
55
|
+
:data-cy="col.popupEditDataCy + '-' + tablePropsData.row.id"
|
|
55
56
|
:input-max-length="col.inputMaxLength || 20"
|
|
56
57
|
:mask="col.popupEditMask || ''"
|
|
57
58
|
:input-type="col.popupEditInputtype || 'text'"
|
|
@@ -68,7 +69,7 @@
|
|
|
68
69
|
<BasicCheckBox
|
|
69
70
|
v-if="col.showBasicCheckbox"
|
|
70
71
|
:table-props="tablePropsData"
|
|
71
|
-
:data-cy="col.checkBoxDataCy + '-' +
|
|
72
|
+
:data-cy="col.checkBoxDataCy + '-' + tablePropsData.row.id || ''"
|
|
72
73
|
:model="tablePropsData.row[col.name]"
|
|
73
74
|
@check-box-emit="(val: object) => {
|
|
74
75
|
tablePropsData.row[col.name] = val
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
<CustomizedCheckBox
|
|
79
80
|
v-if="col.showCustomizedCheckBox"
|
|
80
81
|
:table-props="tablePropsData"
|
|
81
|
-
:data-cy="col.checkBoxDataCy + '-' +
|
|
82
|
+
:data-cy="col.checkBoxDataCy + '-' + tablePropsData.row.id || ''"
|
|
82
83
|
:model="tablePropsData.row[col.name]"
|
|
83
84
|
:check-box-color="tablePropsData.row[col.name] ? col.checkBoxColorCaseTrue : col.checkBoxColorCaseFalse"
|
|
84
85
|
:check-box-icon-size="'lg'"
|
|
@@ -105,11 +106,11 @@
|
|
|
105
106
|
<q-item-section>
|
|
106
107
|
<CustomizedButton
|
|
107
108
|
v-if="col.showCustomizedButton"
|
|
108
|
-
:data-cy="col.colButtonDataCy + '-' +
|
|
109
|
+
:data-cy="col.colButtonDataCy + '-' + tablePropsData.row.id"
|
|
109
110
|
:btn-color="col.btnColor || 'primary'"
|
|
110
111
|
:btn-icon="col.btnIcon|| ''"
|
|
111
112
|
@on-click-button="() => {
|
|
112
|
-
$emit('onClickButton', col.btnEmit,
|
|
113
|
+
$emit('onClickButton', col.btnEmit, tablePropsData.row)
|
|
113
114
|
}"
|
|
114
115
|
/>
|
|
115
116
|
</q-item-section>
|
|
@@ -161,8 +162,8 @@ export default {
|
|
|
161
162
|
}
|
|
162
163
|
},
|
|
163
164
|
watch: {
|
|
164
|
-
|
|
165
|
-
this.
|
|
165
|
+
tableProps (val) {
|
|
166
|
+
this.tablePropsData = val
|
|
166
167
|
}
|
|
167
168
|
},
|
|
168
169
|
mounted () {},
|
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
v-if="selectionType == 'multiple'"
|
|
10
10
|
v-model="tablePropsData.selected"
|
|
11
11
|
size="sm"
|
|
12
|
+
class="float-left"
|
|
12
13
|
/>
|
|
13
14
|
</q-th>
|
|
14
15
|
<q-th
|
|
15
|
-
v-for="col in
|
|
16
|
+
v-for="col in tablePropsData.cols"
|
|
16
17
|
v-if="!smallDevice"
|
|
17
18
|
:key="col.name"
|
|
18
|
-
:props="
|
|
19
|
+
:props="tablePropsData"
|
|
19
20
|
>
|
|
20
21
|
{{ col.label }}
|
|
21
22
|
</q-th>
|
|
@@ -45,6 +46,11 @@ export default {
|
|
|
45
46
|
showSearch: false
|
|
46
47
|
}
|
|
47
48
|
},
|
|
49
|
+
watch: {
|
|
50
|
+
tableProps (val) {
|
|
51
|
+
this.tablePropsData = val
|
|
52
|
+
}
|
|
53
|
+
},
|
|
48
54
|
methods: {
|
|
49
55
|
}
|
|
50
56
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
const infiniteScroll = {
|
|
4
4
|
handleInfiniteScrollNewTable (self: { $nextTick: (arg0: () => void) => void; totalPageModal: number; smallDevice: boolean, totalPage: number }): void {
|
|
5
5
|
self.$nextTick(() => {
|
|
6
|
-
// console.log('aqui')
|
|
7
6
|
const elemClass = self.smallDevice ? 'q-table__grid-content' : 'q-table__middle scroll'
|
|
8
7
|
const tableType = self.smallDevice ? 'Grid' : 'Table'
|
|
9
8
|
const qtableScrollElem = document.getElementsByClassName(elemClass) as HTMLCollectionOf<HTMLElement>
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
<div id="taskNavBar">
|
|
3
3
|
<q-toolbar class="q-toolbar-unset-height">
|
|
4
4
|
<div class="row full-width">
|
|
5
|
-
<div class="col-
|
|
5
|
+
<div class="col-7">
|
|
6
6
|
<img :src="logo" class="logo">
|
|
7
|
+
<span id="mobile-title">{{ title }}</span>
|
|
7
8
|
</div>
|
|
8
|
-
<div class="col-
|
|
9
|
-
|
|
10
|
-
<q-icon>
|
|
9
|
+
<div class="col-5 text-right">
|
|
10
|
+
<q-icon v-if="showBtnBack" size="md" class="cursor-pointer" @click="onClickBtnBack">
|
|
11
11
|
<svg class="text-h4" xmlns="http://www.w3.org/2000/svg" width="30" height="30"
|
|
12
12
|
viewBox="0 0 23.648 22.836">
|
|
13
13
|
<g id="Arrow_brand" data-name="Arrow brand" transform="translate(0 22.836) rotate(-90)">
|
|
@@ -17,10 +17,15 @@
|
|
|
17
17
|
</g>
|
|
18
18
|
</svg>
|
|
19
19
|
</q-icon>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
<q-icon
|
|
21
|
+
v-if="showBtnSearch"
|
|
22
|
+
color="primary"
|
|
23
|
+
:name="showIconSearch ?'search' : 'search_off'"
|
|
24
|
+
size="md"
|
|
25
|
+
class="q-ml-md cursor-pointer"
|
|
26
|
+
@click="onClickBtnSearch">
|
|
27
|
+
</q-icon>
|
|
28
|
+
<q-icon id="iconMenu" size="md" @click="onClickBtnMenu" class="q-ml-md cursor-pointer">
|
|
24
29
|
<svg xmlns="http://www.w3.org/2000/svg" width="30.448" height="28.247" viewBox="0 0 30.448 28.247">
|
|
25
30
|
<g id="Componente_11_3" data-name="Componente 11 – 3" transform="translate(0 1)">
|
|
26
31
|
<path id="Caminho_702" data-name="Caminho 702" d="M38.053,40.174H24"
|
|
@@ -35,7 +40,7 @@
|
|
|
35
40
|
</g>
|
|
36
41
|
</svg>
|
|
37
42
|
</q-icon>
|
|
38
|
-
|
|
43
|
+
|
|
39
44
|
</div>
|
|
40
45
|
</div>
|
|
41
46
|
</q-toolbar>
|
|
@@ -53,6 +58,7 @@ export default defineComponent({
|
|
|
53
58
|
data() {
|
|
54
59
|
return {
|
|
55
60
|
date,
|
|
61
|
+
showIconSearch: true,
|
|
56
62
|
rightDrawerOpen: false
|
|
57
63
|
}
|
|
58
64
|
},
|
|
@@ -81,6 +87,7 @@ export default defineComponent({
|
|
|
81
87
|
console.log('menu')
|
|
82
88
|
},
|
|
83
89
|
onClickBtnSearch() {
|
|
90
|
+
this.showIconSearch = !this.showIconSearch
|
|
84
91
|
this.$emit('onClickBtnSearch')
|
|
85
92
|
console.log('search')
|
|
86
93
|
},
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
#taskNavBar .logo {
|
|
2
2
|
display: block;
|
|
3
3
|
width: 125px;
|
|
4
|
-
height:
|
|
4
|
+
height: auto;
|
|
5
5
|
background-position: center;
|
|
6
6
|
background-repeat: no-repeat;
|
|
7
7
|
background-size: contain;
|
|
8
8
|
margin-bottom: 10px;
|
|
9
9
|
}
|
|
10
|
-
#taskNavBar #buttons .q-img {
|
|
11
|
-
margin-left: 20px;
|
|
12
|
-
}
|
|
13
10
|
|
|
14
11
|
#taskNavBar .q-toolbar__title {
|
|
15
|
-
font-family: "SangBleuKingdom-Light, sans-serif";
|
|
16
|
-
font-size: 25px;
|
|
17
|
-
margin: 0;
|
|
12
|
+
font-family: "SangBleuKingdom-Light, sans-serif";
|
|
13
|
+
font-size: 25px;
|
|
14
|
+
margin: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
#mobile-title {
|
|
18
|
+
display: none;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
@media only screen and (max-width: 1100px) {
|
|
@@ -24,9 +25,14 @@ margin: 0;
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
@media only screen and (max-width: 375px) {
|
|
27
|
-
#taskNavBar .logo {
|
|
28
|
+
#taskNavBar .logo, #taskNavBar .q-toolbar__title {
|
|
28
29
|
display: none;
|
|
29
30
|
}
|
|
31
|
+
#mobile-title {
|
|
32
|
+
display: block;
|
|
33
|
+
font-family: "SangBleuKingdom-Light, sans-serif";
|
|
34
|
+
font-size: 20px;
|
|
35
|
+
}
|
|
30
36
|
#taskNavBar .q-toolbar__title {
|
|
31
37
|
font-size: 18px;
|
|
32
38
|
}
|
package/src/css/app.css
CHANGED
|
@@ -28,6 +28,9 @@
|
|
|
28
28
|
.bg-main-color {
|
|
29
29
|
background-color: var(--main-color);
|
|
30
30
|
}
|
|
31
|
+
.bg-light-peach {
|
|
32
|
+
background-color: var(--light-peach);
|
|
33
|
+
}
|
|
31
34
|
.text-color-light-gray {
|
|
32
35
|
color: var(--light-gray);
|
|
33
36
|
}
|
|
@@ -37,4 +40,8 @@
|
|
|
37
40
|
.q-toolbar-unset-height .q-toolbar {
|
|
38
41
|
min-height: unset;
|
|
39
42
|
padding: 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.text-color-positive {
|
|
46
|
+
color: var(--positive);
|
|
40
47
|
}
|