@mixd-id/web-scaffold 0.1.230406249 → 0.1.230406251
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
package/src/components/Chart.vue
CHANGED
|
@@ -119,8 +119,20 @@ export default{
|
|
|
119
119
|
else{
|
|
120
120
|
for(let key in items[0] ?? {}){
|
|
121
121
|
if(key !== xAxis[0].key){
|
|
122
|
+
|
|
123
|
+
let label = key
|
|
124
|
+
|
|
125
|
+
const columnKey = yAxis[0].key
|
|
126
|
+
const column = this.preset.columns.find(column => column.key === columnKey)
|
|
127
|
+
switch(column.type){
|
|
128
|
+
case 'enum':
|
|
129
|
+
label = column.typeParams.find(_ => `${_.value}` === `${key}`)?.text ?? label
|
|
130
|
+
break
|
|
131
|
+
}
|
|
132
|
+
|
|
122
133
|
datasets.push({
|
|
123
|
-
|
|
134
|
+
key,
|
|
135
|
+
label,
|
|
124
136
|
data: [],
|
|
125
137
|
borderColor: this.borderColors[datasets.length % this.borderColors.length],
|
|
126
138
|
backgroundColor: this.backgroundColors[datasets.length % this.backgroundColors.length],
|
|
@@ -138,7 +150,7 @@ export default{
|
|
|
138
150
|
}
|
|
139
151
|
else{
|
|
140
152
|
for(let i in datasets){
|
|
141
|
-
datasets[i].data.push(item[datasets[i].
|
|
153
|
+
datasets[i].data.push(item[datasets[i].key])
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
}
|
|
@@ -230,7 +242,6 @@ export default{
|
|
|
230
242
|
}, 1000, { leading:true }),
|
|
231
243
|
|
|
232
244
|
onSignal(event, items){
|
|
233
|
-
console.log('onSignal', event, items)
|
|
234
245
|
|
|
235
246
|
const hasData = items.some(item => item._data)
|
|
236
247
|
if(hasData){
|
package/src/components/List.vue
CHANGED
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
|
|
27
27
|
<slot name="head"
|
|
28
28
|
:preset="preset"
|
|
29
|
-
:badge-count="badgeCount"
|
|
30
29
|
:presetSelector="$refs.presetSelector"
|
|
31
30
|
:compPrefix="compPrefix">
|
|
32
31
|
<div class="flex flex-col md:flex-row gap-3 md:items-start overflow-hidden leading-tight p-3 md:p-0 md:pl-3"
|
|
@@ -38,9 +37,6 @@
|
|
|
38
37
|
<h4 class="cursor-pointer whitespace-nowrap text-ellipsis overflow-hidden group hover:text-primary"
|
|
39
38
|
@click="openPreset">
|
|
40
39
|
{{ preset.name ?? 'Preset Name' }}
|
|
41
|
-
<span v-if="badgeCount > 0" class="inline mx-1 min-w-[19px] px-2 h-[19px] relative top-[-2px] rounded-full bg-primary text-white inline-flex items-center justify-center">
|
|
42
|
-
{{ badgeCount }}
|
|
43
|
-
</span>
|
|
44
40
|
<svg v-if="computedPresetMode === 'sidebar'" width="14" height="14" class="ml-1 inline fill-text pointer-events-none group-hover:fill-primary" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.0.0-alpha3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M280.3 134.4c-9.719-9-24.91-8.438-33.94 1.25c-9 9.719-8.469 24.88 1.25 33.94L314.9 232H144C130.8 232 120 242.8 120 256S130.8 280 144 280h170.9l-67.21 62.41c-9.719 9.062-10.25 24.22-1.25 33.94c9.031 9.688 24.22 10.25 33.94 1.25l112-104C397.2 269 400 262.7 400 256s-2.781-13.03-7.656-17.59L280.3 134.4zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z"/></svg>
|
|
45
41
|
<svg v-else-if="![ 'external' ].includes(computedPresetMode)" width="14" height="14" class="inline fill-text pointer-events-none group-hover:fill-primary" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"/></svg>
|
|
46
42
|
</h4>
|
|
@@ -51,7 +47,7 @@
|
|
|
51
47
|
<slot name="toolbar"></slot>
|
|
52
48
|
</div>
|
|
53
49
|
|
|
54
|
-
<div class="flex flex-row gap-2 gap-1">
|
|
50
|
+
<div class="flex flex-row gap-2 gap-1" v-if="Boolean(toolbar)">
|
|
55
51
|
<Textbox class="flex-1 bg-base-500 md:w-[240px]" placeholder="Search..." clearable="1"
|
|
56
52
|
v-model="preset.search"
|
|
57
53
|
@clear="delete preset.search; load()"
|
|
@@ -165,6 +161,10 @@ export default{
|
|
|
165
161
|
headerClass: String,
|
|
166
162
|
presetMode: String,
|
|
167
163
|
containerClass: String,
|
|
164
|
+
toolbar: {
|
|
165
|
+
type: [ String, Boolean ],
|
|
166
|
+
default: true
|
|
167
|
+
},
|
|
168
168
|
},
|
|
169
169
|
|
|
170
170
|
methods: {
|
|
@@ -215,6 +215,8 @@ export default{
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
this.data = data
|
|
218
|
+
|
|
219
|
+
this.$emit('after-load')
|
|
218
220
|
})
|
|
219
221
|
.catch(err => this.toast(err))
|
|
220
222
|
}
|
|
@@ -325,6 +327,7 @@ export default{
|
|
|
325
327
|
|
|
326
328
|
default:
|
|
327
329
|
this.socket.send(this.src, {
|
|
330
|
+
...this.preset,
|
|
328
331
|
id: items.map(item => item.id)
|
|
329
332
|
})
|
|
330
333
|
.then(({ items:nextItems }) => {
|
|
@@ -340,7 +343,7 @@ export default{
|
|
|
340
343
|
|
|
341
344
|
components: {PresetSelector, VirtualTable},
|
|
342
345
|
|
|
343
|
-
emits: [ 'open-preset' ],
|
|
346
|
+
emits: [ 'after-load', 'open-preset' ],
|
|
344
347
|
|
|
345
348
|
inject: [ 'socket', 'toast' ],
|
|
346
349
|
|
|
@@ -456,7 +459,6 @@ export default{
|
|
|
456
459
|
|
|
457
460
|
data(){
|
|
458
461
|
return {
|
|
459
|
-
badgeCount: 0,
|
|
460
462
|
readyState: 0,
|
|
461
463
|
data: {
|
|
462
464
|
itemsPerPage: 15,
|
|
@@ -527,7 +527,7 @@ const chartToSequelizeWhere = async (chart, opt) => {
|
|
|
527
527
|
attributes.push([literal(`SUM(CASE WHEN ${field} = '' THEN 1 ELSE 0 END)`), 'EMPTY'])
|
|
528
528
|
}
|
|
529
529
|
else{
|
|
530
|
-
attributes.push([literal(`SUM(CASE WHEN ${field} = '${group[yAxis[0].key]}' THEN 1 ELSE 0 END)`), group[yAxis[0].key]])
|
|
530
|
+
attributes.push([literal(`SUM(CASE WHEN ${field} = '${group[yAxis[0].key]}' THEN 1 ELSE 0 END)`), `${group[yAxis[0].key]}` ])
|
|
531
531
|
}
|
|
532
532
|
})
|
|
533
533
|
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
body-class="divide-y divide-text-50"
|
|
86
86
|
@reorder="(from, to) => { presetColumns.splice(to, 0, presetColumns.splice(from, 1)[0]); }">
|
|
87
87
|
<template v-slot="{ item }">
|
|
88
|
-
<div class="flex flex-row items-center gap-3 px-3 p-2 hover:bg-primary-100">
|
|
88
|
+
<div v-if="!item.key.startsWith('_') || (item.key.startsWith('_') && (preset.pivot && preset.pivot.enabled))" class="flex flex-row items-center gap-3 px-3 p-2 hover:bg-primary-100">
|
|
89
89
|
<div data-reorder>
|
|
90
90
|
<svg width="14" height="14" class="fill-text-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"/></svg>
|
|
91
91
|
</div>
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
|
|
105
105
|
<div class="flex-1 flex flex-col">
|
|
106
106
|
|
|
107
|
-
<div v-for="(filter, idx) in preset.filters"
|
|
107
|
+
<div v-for="(filter, idx) in preset.filters">
|
|
108
108
|
|
|
109
109
|
<div class="flex flex-row items-start gap-2">
|
|
110
110
|
<Checkbox v-model="filter.enabled" :default="true" />
|
|
@@ -522,10 +522,7 @@ export default{
|
|
|
522
522
|
this.preset.columns = JSON.parse(JSON.stringify(this.config.columns))
|
|
523
523
|
}
|
|
524
524
|
|
|
525
|
-
|
|
526
|
-
return this.preset.columns
|
|
527
|
-
}
|
|
528
|
-
return this.preset.columns.filter(_ => !_.key.startsWith('_'))
|
|
525
|
+
return this.preset.columns
|
|
529
526
|
},
|
|
530
527
|
|
|
531
528
|
presetPivot(){
|