Compare commits
9 Commits
luannv24-f
...
dev-luannv
Author | SHA1 | Date | |
---|---|---|---|
4074f0cfca | |||
b20bf33b28 | |||
3b16421518 | |||
85a14633be | |||
ce4dd0c2a4 | |||
bbf332019f | |||
6350c31c50 | |||
50aefda2a0 | |||
f5465885d8 |
BIN
assets/images/loading.png
Normal file
BIN
assets/images/loading.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
@ -10,6 +10,14 @@
|
|||||||
&-container {
|
&-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|
||||||
|
.tui-select-box-input {
|
||||||
|
p {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: inherit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&-content-area {
|
&-content-area {
|
||||||
@ -23,6 +31,7 @@
|
|||||||
|
|
||||||
&-no-scroll-y {
|
&-no-scroll-y {
|
||||||
.tui-grid-rside-area {
|
.tui-grid-rside-area {
|
||||||
|
|
||||||
.tui-grid-header-area,
|
.tui-grid-header-area,
|
||||||
.tui-grid-summary-area {
|
.tui-grid-summary-area {
|
||||||
margin-right: 0 !important;
|
margin-right: 0 !important;
|
||||||
@ -150,6 +159,15 @@
|
|||||||
|
|
||||||
.tui-select-box-input {
|
.tui-select-box-input {
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
|
||||||
|
.tui-select-box-icon {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: contain;
|
||||||
|
margin-top: -20px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tui-select-box-dropdown {
|
.tui-select-box-dropdown {
|
||||||
@ -158,7 +176,9 @@
|
|||||||
padding: 4px;
|
padding: 4px;
|
||||||
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
|
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
|
||||||
|
|
||||||
|
|
||||||
.tui-select-box-item {
|
.tui-select-box-item {
|
||||||
|
font-size: 14px;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
@ -204,44 +224,6 @@
|
|||||||
@include theme($theme);
|
@include theme($theme);
|
||||||
|
|
||||||
.v-application.#{$theme}-mode {
|
.v-application.#{$theme}-mode {
|
||||||
.enrg-effc {
|
|
||||||
.tui-grid-rside-area {
|
|
||||||
.tui-grid-table {
|
|
||||||
tr {
|
|
||||||
|
|
||||||
td:nth-child(4),
|
|
||||||
td:nth-child(10) {
|
|
||||||
.tui-grid-cell-content {
|
|
||||||
color: map-deep-get($config,
|
|
||||||
#{$theme},
|
|
||||||
"router-tab-item-active-color"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tui-grid {
|
|
||||||
|
|
||||||
&-row-odd,
|
|
||||||
&-row-even {
|
|
||||||
&:hover {
|
|
||||||
|
|
||||||
>td:nth-child(4),
|
|
||||||
td:nth-child(10) {
|
|
||||||
.tui-grid-cell-content {
|
|
||||||
color: map-deep-get($config,
|
|
||||||
#{$theme},
|
|
||||||
"router-tab-item-active-color"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tui-grid-content-area {
|
.tui-grid-content-area {
|
||||||
.tui-grid-header-area {
|
.tui-grid-header-area {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
@ -715,7 +697,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&-tree-button-expand {
|
&-tree-button-expand {
|
||||||
z-index: 9999;
|
z-index: 7;
|
||||||
|
|
||||||
.tui-grid-btn-tree {
|
.tui-grid-btn-tree {
|
||||||
i {
|
i {
|
||||||
@ -735,7 +717,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&-tree-button-collapse {
|
&-tree-button-collapse {
|
||||||
z-index: 9999;
|
z-index: 7;
|
||||||
|
|
||||||
.tui-grid-btn-tree {
|
.tui-grid-btn-tree {
|
||||||
i {
|
i {
|
||||||
@ -862,6 +844,17 @@
|
|||||||
"tui-grid-cell-color"
|
"tui-grid-cell-color"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
.tui-select-box-icon {
|
||||||
|
|
||||||
|
@if $theme ==dark {
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2217%22%20height%3D%2216%22%20viewBox%3D%220%200%2017%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20fill%3D%22rgba(255%2C%20255%2C%20255%2C%200.45)%22%20d%3D%22M1.90728%203.65546L8.20371%2012.3358C8.43228%2012.6501%208.90014%2012.6501%209.12692%2012.3358L15.4251%203.65546C15.4406%203.63411%2015.4499%203.60889%2015.452%203.58259C15.454%203.55628%2015.4487%203.52993%2015.4367%203.50644C15.4247%203.48296%2015.4064%203.46326%2015.3839%203.44954C15.3613%203.43581%2015.3354%203.42859%2015.3091%203.42868H13.9698C13.8787%203.42868%2013.793%203.47332%2013.7394%203.54653L8.66621%2010.5394L3.593%203.54653C3.53942%203.47332%203.45371%203.42868%203.36264%203.42868H2.02335C1.90728%203.42868%201.83943%203.56082%201.90728%203.65546Z%22/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
@else {
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2217%22%20height%3D%2216%22%20viewBox%3D%220%200%2017%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20fill%3D%22rgba(0%2C%200%2C%200%2C%200.45)%22%20d%3D%22M1.90728%203.65546L8.20371%2012.3358C8.43228%2012.6501%208.90014%2012.6501%209.12692%2012.3358L15.4251%203.65546C15.4406%203.63411%2015.4499%203.60889%2015.452%203.58259C15.454%203.55628%2015.4487%203.52993%2015.4367%203.50644C15.4247%203.48296%2015.4064%203.46326%2015.3839%203.44954C15.3613%203.43581%2015.3354%203.42859%2015.3091%203.42868H13.9698C13.8787%203.42868%2013.793%203.47332%2013.7394%203.54653L8.66621%2010.5394L3.593%203.54653C3.53942%203.47332%203.45371%203.42868%203.36264%203.42868H2.02335C1.90728%203.42868%201.83943%203.56082%201.90728%203.65546Z%22/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tui-select-box-dropdown {
|
.tui-select-box-dropdown {
|
||||||
@ -886,7 +879,8 @@
|
|||||||
|
|
||||||
|
|
||||||
.tui-select-box-highlight {
|
.tui-select-box-highlight {
|
||||||
background:none !important;
|
background: none !important;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
background: map-deep-get($config,
|
background: map-deep-get($config,
|
||||||
#{$theme},
|
#{$theme},
|
||||||
|
@ -1,18 +1,27 @@
|
|||||||
.loading {
|
.loading-container {
|
||||||
z-index: 99;
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 50%;
|
top: 0;
|
||||||
left: 50%;
|
left: 0;
|
||||||
width: 100%;
|
width: 100vw;
|
||||||
height: 100%;
|
height: 100vh;
|
||||||
transform: translate(-50%, -50%);
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 9999;
|
||||||
background-color: rgba(0, 0, 0, 0.4);
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
//box-shadow: rgba(68, 67, 67, 0.9) 0 0 0 9999px;
|
//box-shadow: rgba(68, 67, 67, 0.9) 0 0 0 9999px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-spinner {
|
.loading-img {
|
||||||
top: 50%;
|
width: 64px;
|
||||||
left: 50%;
|
height: 64px;
|
||||||
|
animation: spin 3s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes spin {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// Gauge chart options
|
// Gauge chart options
|
||||||
export default function getGaugeChartOption({ title, min = 0, max = 160, unit = '%', isDarkMode = false, backgroundRadius = 97 }) {
|
export default function getGaugeChartOption({ title, min = 0, max = 160, unit = '%', isDarkMode = false, backgroundRadius = 97,
|
||||||
|
value = 0 }) {
|
||||||
const colorRanges = isDarkMode
|
const colorRanges = isDarkMode
|
||||||
? [
|
? [
|
||||||
[60 / 160, '#49AA19'], // Dark Green
|
[60 / 160, '#49AA19'], // Dark Green
|
||||||
@ -24,6 +25,9 @@ export default function getGaugeChartOption({ title, min = 0, max = 160, unit =
|
|||||||
// [0.8, "#f7931e"],
|
// [0.8, "#f7931e"],
|
||||||
// [1.0, "#ed1c24"],
|
// [1.0, "#ed1c24"],
|
||||||
// ];
|
// ];
|
||||||
|
|
||||||
|
const valueLength = String(value).length;
|
||||||
|
const dynamicFontSize = valueLength >= 4 ? 21 : 30;
|
||||||
return {
|
return {
|
||||||
grid: {
|
grid: {
|
||||||
// top: '-10%',
|
// top: '-10%',
|
||||||
@ -109,7 +113,7 @@ export default function getGaugeChartOption({ title, min = 0, max = 160, unit =
|
|||||||
valueAnimation: true,
|
valueAnimation: true,
|
||||||
fontWeight: 500, // or "normal", "lighter", "bolder", or a number like 600
|
fontWeight: 500, // or "normal", "lighter", "bolder", or a number like 600
|
||||||
fontFamily: "Oxanium, sans-serif", // or any custom font
|
fontFamily: "Oxanium, sans-serif", // or any custom font
|
||||||
fontSize: 30,
|
fontSize: dynamicFontSize,
|
||||||
lineHeight: 25,
|
lineHeight: 25,
|
||||||
offsetCenter: [0, "60%"],
|
offsetCenter: [0, "60%"],
|
||||||
color: isDarkMode ? "#fff" : "#333333",
|
color: isDarkMode ? "#fff" : "#333333",
|
||||||
@ -130,7 +134,7 @@ export default function getGaugeChartOption({ title, min = 0, max = 160, unit =
|
|||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
value: 16,
|
value: value,
|
||||||
name: "에너지사용효율", // "Energy Usage Efficiency"
|
name: "에너지사용효율", // "Energy Usage Efficiency"
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -112,10 +112,10 @@ export default {
|
|||||||
bodyHeight: gridHeight,
|
bodyHeight: gridHeight,
|
||||||
minBodyHeight: gridHeight,
|
minBodyHeight: gridHeight,
|
||||||
header: {
|
header: {
|
||||||
height: 28,
|
height: 37,
|
||||||
},
|
},
|
||||||
rowHeight: 29,
|
rowHeight: 37,
|
||||||
minRowHeight: 29,
|
minRowHeight: 37,
|
||||||
selectionUnit: 'row',
|
selectionUnit: 'row',
|
||||||
editingEvent: 'click',
|
editingEvent: 'click',
|
||||||
};
|
};
|
||||||
|
@ -155,9 +155,8 @@
|
|||||||
</v-row>
|
</v-row>
|
||||||
</v-container>
|
</v-container>
|
||||||
<div v-if="loadingStackCnt > 0" class="loading-container">
|
<div v-if="loadingStackCnt > 0" class="loading-container">
|
||||||
<div class="loading">
|
<!-- <Fade-loader color="#717577" /> -->
|
||||||
<Fade-loader />
|
<img class="loading-img" src="@/assets/images/loading.png" alt="Loading..." />
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</v-main>
|
</v-main>
|
||||||
</fullscreen>
|
</fullscreen>
|
||||||
|
@ -505,3 +505,10 @@ const myDetail = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1085,4 +1085,11 @@ function sha512(str) {
|
|||||||
.update(str)
|
.update(str)
|
||||||
.digest('hex');
|
.digest('hex');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -522,3 +522,10 @@ const myDetail = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -1029,3 +1029,10 @@ const myDetail = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1005,3 +1005,10 @@ const dataPathDataExample = getPathDataExample({
|
|||||||
field2: '2222',
|
field2: '2222',
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -452,3 +452,10 @@ const myColumns = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep{
|
||||||
|
.tui-grid-layer-state{
|
||||||
|
top: 40px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -69,12 +69,12 @@
|
|||||||
<div ref="gridParent" class="w100 h100 enrg-effc">
|
<div ref="gridParent" class="w100 h100 enrg-effc">
|
||||||
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
<component :ref="gridName" :is="loadGrid ? 'Grid' : null" :gridName="gridName"
|
||||||
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
|
:parentPrgmId="myPrgmId" :columnClickEventFlag="true" @columnClick="columnClick" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-center justify-center pa-5 pb-0" v-if="loadGrid && totalCount > 0">
|
<div class="d-flex align-center justify-center pa-5 pb-0" v-if="loadGrid && totalCount > 0">
|
||||||
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
<pagination id="pagination" :total-count="totalCount" :page-num="page" :limit="limit"
|
||||||
@loadData="changeGrid" />
|
@loadData="changeGrid" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -589,6 +589,39 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const _this = this;
|
const _this = this;
|
||||||
|
class CustomButton {
|
||||||
|
constructor(props) {
|
||||||
|
const { grid, rowKey, columnInfo } = props;
|
||||||
|
|
||||||
|
const gridData = grid.store.data.rawData;
|
||||||
|
const value = gridData[rowKey][columnInfo.name];
|
||||||
|
|
||||||
|
this.disabled = columnInfo.renderer.options.disabled || false;
|
||||||
|
const elDiv = document.createElement('div');
|
||||||
|
if (value != null) {
|
||||||
|
elDiv.innerHTML = `<span>${value}</span>`;
|
||||||
|
$(elDiv).addClass('tui-grid-cell-content d-flex justify-space-between');
|
||||||
|
const el2 = document.createElement('button');
|
||||||
|
$(el2).addClass('edit-btn blue--text');
|
||||||
|
el2.innerText = '보기';
|
||||||
|
elDiv.appendChild(el2);
|
||||||
|
} else {
|
||||||
|
elDiv.innerHTML = `<span></span>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.el = elDiv;
|
||||||
|
|
||||||
|
}
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
getValue() {
|
||||||
|
// return this.el.value;
|
||||||
|
}
|
||||||
|
mounted() {
|
||||||
|
// this.el.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
const myColumns = [
|
const myColumns = [
|
||||||
{
|
{
|
||||||
header: 'FAB',
|
header: 'FAB',
|
||||||
@ -633,7 +666,13 @@ export default {
|
|||||||
{
|
{
|
||||||
header: '가이드명',
|
header: '가이드명',
|
||||||
name: 'gdIdxNm',
|
name: 'gdIdxNm',
|
||||||
width: 200,
|
width: 250,
|
||||||
|
renderer: {
|
||||||
|
type: CustomButton,
|
||||||
|
options: {
|
||||||
|
value: "보기",
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: '주의',
|
header: '주의',
|
||||||
@ -668,6 +707,12 @@ export default {
|
|||||||
name: 'ngCnt',
|
name: 'ngCnt',
|
||||||
align: 'right',
|
align: 'right',
|
||||||
width: 80,
|
width: 80,
|
||||||
|
renderer: {
|
||||||
|
type: CustomButton,
|
||||||
|
options: {
|
||||||
|
value: "보기",
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -442,7 +442,7 @@ export default {
|
|||||||
|
|
||||||
chartOption = getGaugeChartOption({
|
chartOption = getGaugeChartOption({
|
||||||
title: chartKey,
|
title: chartKey,
|
||||||
value: 75,
|
value: currentChartData["effcRt"],
|
||||||
isDarkMode: this.isDarkMode,
|
isDarkMode: this.isDarkMode,
|
||||||
backgroundRadius: 89,
|
backgroundRadius: 89,
|
||||||
});
|
});
|
||||||
|
@ -613,20 +613,34 @@ export default {
|
|||||||
apiKey = "selectMonthlyEnrgUseMainIdx";
|
apiKey = "selectMonthlyEnrgUseMainIdx";
|
||||||
apiKey2 = "selectMonthlyEnrgUseMainIdxPageTotal";
|
apiKey2 = "selectMonthlyEnrgUseMainIdxPageTotal";
|
||||||
}
|
}
|
||||||
var res = await this.postApiReturn({
|
|
||||||
apiKey: apiKey,
|
|
||||||
resKey: "eqpmIndMntrData",
|
|
||||||
sendParam: params,
|
|
||||||
});
|
|
||||||
|
|
||||||
var res2 = await this.postApiReturn({
|
|
||||||
apiKey: apiKey2,
|
var [res, res2] = await Promise.all([
|
||||||
resKey: "eqpmIndMntrPageTotal",
|
this.postApiReturn({
|
||||||
sendParam: params,
|
apiKey: apiKey,
|
||||||
});
|
resKey: "eqpmIndMntrData",
|
||||||
|
sendParam: params,
|
||||||
|
}),
|
||||||
|
this.postApiReturn({
|
||||||
|
apiKey: apiKey2,
|
||||||
|
resKey: "eqpmIndMntrPageTotal",
|
||||||
|
sendParam: params,
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
// var res = await this.postApiReturn({
|
||||||
|
// apiKey: apiKey,
|
||||||
|
// resKey: "eqpmIndMntrData",
|
||||||
|
// sendParam: params,
|
||||||
|
// });
|
||||||
|
|
||||||
|
// var res2 = await this.postApiReturn({
|
||||||
|
// apiKey: apiKey2,
|
||||||
|
// resKey: "eqpmIndMntrPageTotal",
|
||||||
|
// sendParam: params,
|
||||||
|
// });
|
||||||
|
|
||||||
this.totalCount = res2[0].totalcount;
|
this.totalCount = res2[0].totalcount;
|
||||||
|
|
||||||
this.enrgUseMainIdxDesc = await this.postApiReturn({
|
this.enrgUseMainIdxDesc = await this.postApiReturn({
|
||||||
apiKey: "selectEnrgUseMainIdxDesc",
|
apiKey: "selectEnrgUseMainIdxDesc",
|
||||||
resKey: "eqpmIndMntrData",
|
resKey: "eqpmIndMntrData",
|
||||||
@ -642,14 +656,12 @@ export default {
|
|||||||
no: i + 1,
|
no: i + 1,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setGridData({
|
this.setGridData({
|
||||||
gridKey: this.gridName,
|
gridKey: this.gridName,
|
||||||
value: newRes,
|
value: newRes,
|
||||||
});
|
});
|
||||||
|
|
||||||
this.loadGrid = true;
|
this.loadGrid = true;
|
||||||
|
|
||||||
this.makeTooltip();
|
this.makeTooltip();
|
||||||
},
|
},
|
||||||
async search() {
|
async search() {
|
||||||
|
Reference in New Issue
Block a user