create-m2m-bo-template-vue 1.0.7 → 1.0.9
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/template/src/components/DataGrid/DataGrid.vue +1 -9
- package/template/src/pages/admin/AdminRolesPage.vue +1 -1
- package/template/src/pages/c2c/products/UserProductModerationPage.vue +1 -0
- package/template/src/pages/c2c/purchases/PurchaseActivityHistoryPage.vue +1 -1
- package/template/src/pages/c2c/purchases/PurchaseHistoryPage.vue +1 -1
- package/template/src/pages/c2c/sales/SalesActivityHistoryPage.vue +1 -1
- package/template/src/pages/c2c/sales/SalesTradesPage.vue +1 -1
- package/template/src/pages/c2c/sales/SellerListPage.vue +1 -1
- package/template/src/pages/c2c/sales/SellerProductsPage.vue +1 -1
- package/template/src/pages/cartconversion/CartConversionPage.vue +0 -24
- package/template/src/pages/common/ModulePlaceholderPage.vue +1 -1
- package/template/src/pages/cs/AdminMemosPage.vue +1 -1
- package/template/src/pages/cs/CsInquiriesPage.vue +1 -1
- package/template/src/pages/cs/ResponseTemplatesPage.vue +1 -1
- package/template/src/pages/inventory/InboundManagementPage.vue +1 -1
- package/template/src/pages/inventory/InventoryAdjustmentPage.vue +1 -1
- package/template/src/pages/inventory/InventoryAlertsPage.vue +1 -1
- package/template/src/pages/inventory/InventoryStatusPage.vue +1 -1
- package/template/src/pages/inventory/SafetyStockPage.vue +1 -1
- package/template/src/pages/inventory/StockMovementHistoryPage.vue +1 -1
- package/template/src/pages/inventory/StockOutboundManagementPage.vue +1 -1
- package/template/src/pages/logs/SecurityLogPage.vue +1 -1
- package/template/src/pages/notifications/NotificationDispatchPage.vue +1 -1
- package/template/src/pages/products/MinOrderQtyPage.vue +1 -0
- package/template/src/pages/products/PartnerPricingPage.vue +1 -0
- package/template/src/pages/products/ProductsListPage.vue +2 -1
- package/template/src/pages/products/SupplyPricePage.vue +1 -0
- package/template/src/pages/system/CommonCodesPage.vue +1 -1
- package/template/src/pages/system/IntegrationManagementPage.vue +1 -1
- package/template/src/pages/system/JobManagementPage.vue +1 -1
- package/template/src/pages/system/ServiceSettingsPage.vue +1 -1
- package/template/src/style.css +20 -1
package/package.json
CHANGED
|
@@ -172,7 +172,6 @@ function cellFgColor(cell: Cell): string | undefined {
|
|
|
172
172
|
|
|
173
173
|
const rootRef = ref<HTMLDivElement | null>(null);
|
|
174
174
|
const internalSelected = ref<Set<string | number>>(new Set());
|
|
175
|
-
const autoSelectable = ref(false);
|
|
176
175
|
const pageSize = ref<number | null>(null);
|
|
177
176
|
const currentPage = ref(1);
|
|
178
177
|
const sortColumnIndex = ref<number | null>(props.defaultSortColumn ?? null);
|
|
@@ -186,19 +185,12 @@ function handlePageSize(event: Event) {
|
|
|
186
185
|
currentPage.value = 1;
|
|
187
186
|
}
|
|
188
187
|
|
|
189
|
-
function updateAutoSelectable() {
|
|
190
|
-
if (props.selectable !== undefined) return;
|
|
191
|
-
autoSelectable.value = Boolean(rootRef.value?.ownerDocument.querySelector('[data-excel-download]'));
|
|
192
|
-
}
|
|
193
|
-
|
|
194
188
|
onMounted(() => {
|
|
195
189
|
rootRef.value?.addEventListener(DATA_GRID_PAGE_SIZE_EVENT, handlePageSize);
|
|
196
|
-
updateAutoSelectable();
|
|
197
190
|
});
|
|
198
191
|
onUnmounted(() => {
|
|
199
192
|
rootRef.value?.removeEventListener(DATA_GRID_PAGE_SIZE_EVENT, handlePageSize);
|
|
200
193
|
});
|
|
201
|
-
watch(() => props.selectable, updateAutoSelectable);
|
|
202
194
|
|
|
203
195
|
const totalPageCount = computed(() => (pageSize.value ? Math.max(1, Math.ceil(props.rows.length / pageSize.value)) : 1));
|
|
204
196
|
watch(totalPageCount, (count) => {
|
|
@@ -214,7 +206,7 @@ watch(
|
|
|
214
206
|
}
|
|
215
207
|
);
|
|
216
208
|
|
|
217
|
-
const effectiveSelectable = computed(() => props.selectable ??
|
|
209
|
+
const effectiveSelectable = computed(() => props.selectable ?? false);
|
|
218
210
|
const pageStart = computed(() => (pageSize.value ? (currentPage.value - 1) * pageSize.value : 0));
|
|
219
211
|
const visibleSourceRows = computed(() => (pageSize.value ? props.rows.slice(pageStart.value, pageStart.value + pageSize.value) : props.rows));
|
|
220
212
|
|
|
@@ -520,7 +520,7 @@ function dlgBtnStyle(kind: DialogButton['kind']) {
|
|
|
520
520
|
v-for="[key, label] in TAB_OPTIONS"
|
|
521
521
|
:key="key"
|
|
522
522
|
type="button"
|
|
523
|
-
|
|
523
|
+
variant="secondary"
|
|
524
524
|
size="md"
|
|
525
525
|
:class-names="[common.button, tab === key ? common['button_primary-light'] : common.button_secondary, common.size_md, tabShared.qfBtn, tab === key ? tabShared.quickActive : '']"
|
|
526
526
|
@click="tab = key"
|
|
@@ -120,7 +120,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
120
120
|
</ControlArea>
|
|
121
121
|
<GridArea>
|
|
122
122
|
<ResultBar :count="filtered.length" unit="건" hide-size-select>
|
|
123
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
123
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="50개씩">
|
|
124
124
|
<option>50개씩</option>
|
|
125
125
|
<option>100개씩</option>
|
|
126
126
|
</PageSizeSelect>
|
|
@@ -143,7 +143,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
143
143
|
</ControlArea>
|
|
144
144
|
<GridArea>
|
|
145
145
|
<ResultBar :count="filtered.length" unit="건" hide-size-select>
|
|
146
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
146
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
147
147
|
<option>20개씩</option>
|
|
148
148
|
<option>50개씩</option>
|
|
149
149
|
</PageSizeSelect>
|
|
@@ -130,7 +130,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
130
130
|
</ControlArea>
|
|
131
131
|
<GridArea>
|
|
132
132
|
<ResultBar :count="filtered.length" unit="건" hide-size-select>
|
|
133
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
133
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="50개씩">
|
|
134
134
|
<option>50개씩</option>
|
|
135
135
|
<option>100개씩</option>
|
|
136
136
|
</PageSizeSelect>
|
|
@@ -138,7 +138,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
138
138
|
</ControlArea>
|
|
139
139
|
<GridArea>
|
|
140
140
|
<ResultBar :count="filtered.length" unit="건" hide-size-select>
|
|
141
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
141
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
142
142
|
<option>20개씩</option>
|
|
143
143
|
<option>50개씩</option>
|
|
144
144
|
</PageSizeSelect>
|
|
@@ -146,7 +146,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
146
146
|
</ControlArea>
|
|
147
147
|
<GridArea>
|
|
148
148
|
<ResultBar :count="filtered.length" hide-size-select>
|
|
149
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
149
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
150
150
|
<option>20개씩</option>
|
|
151
151
|
<option>50개씩</option>
|
|
152
152
|
</PageSizeSelect>
|
|
@@ -147,7 +147,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
147
147
|
</ControlArea>
|
|
148
148
|
<GridArea>
|
|
149
149
|
<ResultBar :count="filtered.length" unit="개" hide-size-select>
|
|
150
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
150
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
151
151
|
<option>20개씩</option>
|
|
152
152
|
<option>50개씩</option>
|
|
153
153
|
</PageSizeSelect>
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, ref } from 'vue';
|
|
3
3
|
import { useRouter } from 'vue-router';
|
|
4
|
-
import { RotateCcw } from 'lucide-vue-next';
|
|
5
|
-
import { Button } from 'm2m-uiux-vue/Button';
|
|
6
|
-
import { Checkbox } from 'm2m-uiux-vue/Checkbox';
|
|
7
|
-
import { Segmented } from 'm2m-uiux-vue/Segmented';
|
|
8
4
|
import { ExcelDownloadButton } from '../../components/common';
|
|
9
5
|
import { StatisticsBarChart } from '../../components/charts';
|
|
10
6
|
import { downloadStatisticsReport } from '../../lib/statisticsReport';
|
|
11
|
-
import DatePicker from '../../components/forms/DatePicker.vue';
|
|
12
7
|
import shared from '../ops/opsShared.module.css';
|
|
13
8
|
import styles from '../stats/TransactionStatsPage.module.css';
|
|
14
9
|
import extra from './cartConversionExtra.module.css';
|
|
@@ -33,7 +28,6 @@ import {
|
|
|
33
28
|
type DropoffThreshold,
|
|
34
29
|
type Granularity,
|
|
35
30
|
type PeriodAggregate,
|
|
36
|
-
type QuickRange,
|
|
37
31
|
} from './cartConversionData';
|
|
38
32
|
|
|
39
33
|
type Tab = 'overview' | 'dropoff' | 'funnel';
|
|
@@ -42,7 +36,6 @@ const TABS: [Tab, string][] = [
|
|
|
42
36
|
['dropoff', '이탈 분석'],
|
|
43
37
|
['funnel', '구매 퍼널'],
|
|
44
38
|
];
|
|
45
|
-
const QUICK_RANGES: QuickRange[] = ['오늘', '어제', '최근 7일', '최근 30일', '이번 달', '지난 달'];
|
|
46
39
|
const METRICS = ['cartUsers', 'buyUsers', 'conversionRate'] as const;
|
|
47
40
|
type Metric = (typeof METRICS)[number];
|
|
48
41
|
const METRIC_LABEL: Record<Metric, string> = { cartUsers: '장바구니 사용자', buyUsers: '구매 사용자', conversionRate: '전환율' };
|
|
@@ -60,17 +53,6 @@ const granularity = ref<Granularity>('일별');
|
|
|
60
53
|
const metric = ref<Metric>('cartUsers');
|
|
61
54
|
const threshold = ref<DropoffThreshold>('24시간');
|
|
62
55
|
|
|
63
|
-
function applyQuick(range: QuickRange) {
|
|
64
|
-
const [s, e] = quickRangeDates(range);
|
|
65
|
-
start.value = s;
|
|
66
|
-
end.value = e;
|
|
67
|
-
}
|
|
68
|
-
function resetFilters() {
|
|
69
|
-
channel.value = '전체';
|
|
70
|
-
category.value = '전체';
|
|
71
|
-
applyQuick('최근 30일');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
56
|
const agg = computed<PeriodAggregate>(() => aggregate(start.value, end.value, channel.value, category.value));
|
|
75
57
|
const prevRange = computed(() => previousPeriod(start.value, end.value));
|
|
76
58
|
const prevStart = computed(() => prevRange.value[0]);
|
|
@@ -97,12 +79,6 @@ const steps = computed(() => funnelSteps(agg.value));
|
|
|
97
79
|
const prevSteps = computed(() => funnelSteps(prevAgg.value));
|
|
98
80
|
const finalConv = computed(() => (steps.value[0].count ? (steps.value[steps.value.length - 1].count / steps.value[0].count) * 100 : 0));
|
|
99
81
|
const prevFinalConv = computed(() => (prevSteps.value[0].count ? (prevSteps.value[prevSteps.value.length - 1].count / prevSteps.value[0].count) * 100 : 0));
|
|
100
|
-
const activeQuickRange = computed(() =>
|
|
101
|
-
QUICK_RANGES.find((range) => {
|
|
102
|
-
const [rangeStart, rangeEnd] = quickRangeDates(range);
|
|
103
|
-
return rangeStart === start.value && rangeEnd === end.value;
|
|
104
|
-
})
|
|
105
|
-
);
|
|
106
82
|
|
|
107
83
|
function deltaClass(deltaValue: number | undefined, positiveIsBad?: boolean) {
|
|
108
84
|
if (deltaValue == null) return undefined;
|
|
@@ -389,7 +389,7 @@ function downloadAnalytics() {
|
|
|
389
389
|
<span :class="styles.resultLabel">총 {{ filtered.length }}건</span>
|
|
390
390
|
<div :class="styles.resultActions">
|
|
391
391
|
<ExcelDownloadButton data-grid-download @click="download" />
|
|
392
|
-
<PageSizeSelect :class="styles.pageSizeSelect">
|
|
392
|
+
<PageSizeSelect :class="styles.pageSizeSelect" default-value="20개씩">
|
|
393
393
|
<option>20개씩</option>
|
|
394
394
|
<option>50개씩</option>
|
|
395
395
|
</PageSizeSelect>
|
|
@@ -396,7 +396,7 @@ function handleBulkFollowUpAssignee(event: Event) {
|
|
|
396
396
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건</span>
|
|
397
397
|
<div :class="shared.resultActions">
|
|
398
398
|
<ExcelDownloadButton @click="modal = 'download'" />
|
|
399
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
399
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
400
400
|
<option>20개씩</option>
|
|
401
401
|
<option>50개씩</option>
|
|
402
402
|
</PageSizeSelect>
|
|
@@ -378,7 +378,7 @@ const metrics = computed(() => [
|
|
|
378
378
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건</span>
|
|
379
379
|
<div :class="shared.resultActions">
|
|
380
380
|
<ExcelDownloadButton @click="download(filtered)" />
|
|
381
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
381
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
382
382
|
<option>20개씩</option>
|
|
383
383
|
<option>50개씩</option>
|
|
384
384
|
</PageSizeSelect>
|
|
@@ -367,7 +367,7 @@ function handleBulkStatusChange(event: Event) {
|
|
|
367
367
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건</span>
|
|
368
368
|
<div :class="shared.resultActions">
|
|
369
369
|
<ExcelDownloadButton @click="download(filtered)" />
|
|
370
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
370
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
371
371
|
<option>20개씩</option>
|
|
372
372
|
<option>50개씩</option>
|
|
373
373
|
</PageSizeSelect>
|
|
@@ -506,7 +506,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
506
506
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건 · 도착/정상/재고 반영 수량 분리</span>
|
|
507
507
|
<div :class="shared.resultActions">
|
|
508
508
|
<ExcelDownloadButton data-grid-download @click="download" />
|
|
509
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
509
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
510
510
|
<option>20개씩</option>
|
|
511
511
|
<option>50개씩</option>
|
|
512
512
|
</PageSizeSelect>
|
|
@@ -414,7 +414,7 @@ const detailRecord = computed(() => records.value.find((r) => r.id === detailId.
|
|
|
414
414
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건 · 조정 Record 기준</span>
|
|
415
415
|
<div :class="shared.resultActions">
|
|
416
416
|
<ExcelDownloadButton data-grid-download @click="download" />
|
|
417
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
417
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
418
418
|
<option>20개씩</option>
|
|
419
419
|
<option>50개씩</option>
|
|
420
420
|
</PageSizeSelect>
|
|
@@ -238,7 +238,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
238
238
|
<span :class="shared.resultLabel">총 {{ filtered.length }}개 알림 대상 SKU</span>
|
|
239
239
|
<div :class="shared.resultActions">
|
|
240
240
|
<ExcelDownloadButton />
|
|
241
|
-
<PageSizeSelect aria-label="페이지당 표시 개수" :class="shared.pageSizeSelect">
|
|
241
|
+
<PageSizeSelect aria-label="페이지당 표시 개수" :class="shared.pageSizeSelect" default-value="20개씩">
|
|
242
242
|
<option>20개씩</option>
|
|
243
243
|
<option>50개씩</option>
|
|
244
244
|
</PageSizeSelect>
|
|
@@ -471,7 +471,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
471
471
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건 · 상품 집계</span>
|
|
472
472
|
<div :class="shared.resultActions">
|
|
473
473
|
<ExcelDownloadButton @click="download(filtered)" />
|
|
474
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
474
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
475
475
|
<option>20개씩</option>
|
|
476
476
|
<option>50개씩</option>
|
|
477
477
|
</PageSizeSelect>
|
|
@@ -215,7 +215,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
215
215
|
<span :class="shared.resultLabel">총 {{ filtered.length }}개 SKU</span>
|
|
216
216
|
<div :class="shared.resultActions">
|
|
217
217
|
<ExcelDownloadButton />
|
|
218
|
-
<PageSizeSelect aria-label="페이지당 표시 개수" :class="shared.pageSizeSelect">
|
|
218
|
+
<PageSizeSelect aria-label="페이지당 표시 개수" :class="shared.pageSizeSelect" default-value="20개씩">
|
|
219
219
|
<option>20개씩</option>
|
|
220
220
|
<option>50개씩</option>
|
|
221
221
|
</PageSizeSelect>
|
|
@@ -309,7 +309,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
309
309
|
<div :class="shared.resultActions">
|
|
310
310
|
<span :class="styles.filterHint">수정·삭제·일괄 수량 변경 불가</span>
|
|
311
311
|
<ExcelDownloadButton data-grid-download @click="exportOpen = true" />
|
|
312
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
312
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
313
313
|
<option>20개씩</option>
|
|
314
314
|
<option>50개씩</option>
|
|
315
315
|
</PageSizeSelect>
|
|
@@ -493,7 +493,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
493
493
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건 · 재고 Transaction 기준</span>
|
|
494
494
|
<div :class="shared.resultActions">
|
|
495
495
|
<ExcelDownloadButton data-grid-download @click="download()" />
|
|
496
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
496
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
497
497
|
<option>20개씩</option>
|
|
498
498
|
<option>50개씩</option>
|
|
499
499
|
</PageSizeSelect>
|
|
@@ -196,7 +196,7 @@ const rows = computed<GridRow[]>(() =>
|
|
|
196
196
|
</span>
|
|
197
197
|
<div :class="shared.resultActions">
|
|
198
198
|
<ExcelDownloadButton @click="download" />
|
|
199
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
199
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="100개씩">
|
|
200
200
|
<option>100개씩</option>
|
|
201
201
|
<option>200개씩</option>
|
|
202
202
|
</PageSizeSelect>
|
|
@@ -689,7 +689,7 @@ function closeMenu() {
|
|
|
689
689
|
<span :class="shared.resultLabel">총 {{ filtered.length }}건</span>
|
|
690
690
|
<div :class="shared.resultActions">
|
|
691
691
|
<ExcelDownloadButton @click="download" />
|
|
692
|
-
<PageSizeSelect :class="shared.pageSizeSelect">
|
|
692
|
+
<PageSizeSelect :class="shared.pageSizeSelect" default-value="20개씩">
|
|
693
693
|
<option>20개씩</option>
|
|
694
694
|
<option>50개씩</option>
|
|
695
695
|
</PageSizeSelect>
|
|
@@ -317,7 +317,7 @@ function confirmSale() {
|
|
|
317
317
|
/>
|
|
318
318
|
</label>
|
|
319
319
|
<div :class="styles.spacer" />
|
|
320
|
-
<Button type="button" variant="secondary" size="sm" class-names="
|
|
320
|
+
<Button type="button" variant="secondary" size="sm" :class-names="styles.dashedBtn">
|
|
321
321
|
<SlidersHorizontal :size="14" />
|
|
322
322
|
상세 필터
|
|
323
323
|
</Button>
|
|
@@ -349,6 +349,7 @@ function confirmSale() {
|
|
|
349
349
|
|
|
350
350
|
<div :class="styles.gridWrap">
|
|
351
351
|
<DataGrid
|
|
352
|
+
selectable
|
|
352
353
|
:columns="COLUMNS"
|
|
353
354
|
:rows="rows"
|
|
354
355
|
:grid-template="GRID_TEMPLATE"
|
|
@@ -87,7 +87,7 @@ function toggleStatus() {
|
|
|
87
87
|
v-for="status in QUICK_STATUSES"
|
|
88
88
|
:key="status"
|
|
89
89
|
type="button"
|
|
90
|
-
|
|
90
|
+
variant="secondary"
|
|
91
91
|
size="md"
|
|
92
92
|
:class-names="[common.button, quick === status ? common['button_primary-light'] : common.button_secondary, common.size_md, shared.qfBtn, quick === status ? shared.quickActive : '']"
|
|
93
93
|
@click="quick = status"
|
|
@@ -87,7 +87,7 @@ function toggleStatus() {
|
|
|
87
87
|
v-for="status in QUICK_STATUSES"
|
|
88
88
|
:key="status"
|
|
89
89
|
type="button"
|
|
90
|
-
|
|
90
|
+
variant="secondary"
|
|
91
91
|
size="md"
|
|
92
92
|
:class-names="[common.button, quick === status ? common['button_primary-light'] : common.button_secondary, common.size_md, shared.qfBtn, quick === status ? shared.quickActive : '']"
|
|
93
93
|
@click="quick = status"
|
|
@@ -87,7 +87,7 @@ function toggleStatus() {
|
|
|
87
87
|
v-for="status in QUICK_STATUSES"
|
|
88
88
|
:key="status"
|
|
89
89
|
type="button"
|
|
90
|
-
|
|
90
|
+
variant="secondary"
|
|
91
91
|
size="md"
|
|
92
92
|
:class-names="[common.button, quick === status ? common['button_primary-light'] : common.button_secondary, common.size_md, shared.qfBtn, quick === status ? shared.quickActive : '']"
|
|
93
93
|
@click="quick = status"
|
|
@@ -87,7 +87,7 @@ function toggleStatus() {
|
|
|
87
87
|
v-for="status in QUICK_STATUSES"
|
|
88
88
|
:key="status"
|
|
89
89
|
type="button"
|
|
90
|
-
|
|
90
|
+
variant="secondary"
|
|
91
91
|
size="md"
|
|
92
92
|
:class-names="[common.button, quick === status ? common['button_primary-light'] : common.button_secondary, common.size_md, shared.qfBtn, quick === status ? shared.quickActive : '']"
|
|
93
93
|
@click="quick = status"
|
package/template/src/style.css
CHANGED
|
@@ -386,6 +386,25 @@ html[data-theme='dark'] {
|
|
|
386
386
|
field-sizing: content;
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
+
/* SearchField 내부 input의 테두리/배경/반경을 리셋하여 외부 컨테이너 테두리와 겹쳐 두 줄로 보이는 현상 완벽 방지 */
|
|
390
|
+
:where(
|
|
391
|
+
[class*="SearchField"],
|
|
392
|
+
[class*="searchField"],
|
|
393
|
+
[class*="field"],
|
|
394
|
+
[class*="control"]
|
|
395
|
+
)
|
|
396
|
+
input {
|
|
397
|
+
border: 0 !important;
|
|
398
|
+
border-radius: 0 !important;
|
|
399
|
+
outline: none !important;
|
|
400
|
+
box-shadow: none !important;
|
|
401
|
+
background: transparent !important;
|
|
402
|
+
width: 100% !important;
|
|
403
|
+
max-width: none !important;
|
|
404
|
+
height: 100% !important;
|
|
405
|
+
padding: 0 62px 0 10px !important;
|
|
406
|
+
}
|
|
407
|
+
|
|
389
408
|
/* searchRow / filterRow1 내부의 form 태그도 flex 정렬 보장 */
|
|
390
409
|
:where(
|
|
391
410
|
[class*="filterBox"],
|
|
@@ -1133,7 +1152,7 @@ html[data-theme='dark'] {
|
|
|
1133
1152
|
|
|
1134
1153
|
html,
|
|
1135
1154
|
body,
|
|
1136
|
-
#
|
|
1155
|
+
#root {
|
|
1137
1156
|
height: 100%;
|
|
1138
1157
|
overflow: hidden;
|
|
1139
1158
|
}
|