chore: install prettier

This commit is contained in:
Viet An
2026-05-04 15:22:27 +07:00
parent 93d29ca7d8
commit bd58e2b847
267 changed files with 22950 additions and 13581 deletions

View File

@@ -5,7 +5,10 @@
<div class="field">
<label class="label">
<span class="icon-text">
<span>Người nhận {{ selectedName ? `(Đang mở: ${selectedName})` : "" }}<b class="ml-1 has-text-danger">*</b></span>
<span
>Người nhận {{ selectedName ? `(Đang mở: ${selectedName})` : ""
}}<b class="ml-1 has-text-danger">*</b></span
>
</span>
</label>
<div class="field is-flex">
@@ -19,7 +22,7 @@
v-model="formData.content.receiver"
placeholder="Nhập địa chỉ email người nhận, ngăn cách bằng dấu chấm phẩy (;)"
@input="handleInputChange('receiver', $event)"
></input>
/>
</div>
<div class="control">
<div class="buttons is-flex is-flex-wrap-nowrap">
@@ -74,7 +77,10 @@
</span>
</label>
<div class="control">
<div class="box" style="padding: 0">
<div
class="box"
style="padding: 0"
>
<Editor
:key="quillKey"
:text="formData.content.content"
@@ -119,7 +125,11 @@
</div>
<div class="level-right">
<div class="level-item">
<button type="button" @click="addLinkUrl" class="button is-normal">
<button
type="button"
@click="addLinkUrl"
class="button is-normal"
>
<span class="icon">
<SvgIcon v-bind="{ name: 'add4.svg', type: 'black', size: 16 }"></SvgIcon>
</span>
@@ -174,16 +184,27 @@
</div>
<!-- Keywords Section -->
<div v-if="detectedKeywords.length > 0" class="field">
<div
v-if="detectedKeywords.length > 0"
class="field"
>
<label class="label">
<span class="icon-text">
<span>Từ khóa</span>
</span>
</label>
<div class="box">
<div v-for="(keyword, index) in detectedKeywords" :key="index" class="field has-addons mb-2 columns">
<div
v-for="(keyword, index) in detectedKeywords"
:key="index"
class="field has-addons mb-2 columns"
>
<div class="control column is-4 pr-0 pb-0">
<span style="width: 100%" class="button is-static is-small">{{ keyword }}</span>
<span
style="width: 100%"
class="button is-static is-small"
>{{ keyword }}</span
>
</div>
<div class="control is-expanded column is-8 pb-0">
<input
@@ -201,7 +222,11 @@
<!-- Submit Button -->
<div class="field">
<div class="control">
<button class="button is-primary has-text-white" :class="{ 'is-loading': loading }" :disabled="loading">
<button
class="button is-primary has-text-white"
:class="{ 'is-loading': loading }"
:disabled="loading"
>
<span v-if="loading">Đang gửi</span>
<template v-else>
<span class="icon">
@@ -214,7 +239,12 @@
</div>
</form>
</div>
<Modal @dataevent="handleRowClick" @close="showmodal = undefined" v-bind="showmodal" v-if="showmodal"></Modal>
<Modal
@dataevent="handleRowClick"
@close="showmodal = undefined"
v-bind="showmodal"
v-if="showmodal"
></Modal>
</template>
<script setup lang="ts">
@@ -343,7 +373,7 @@ const getKeywordValue = (keyword: string): string => {
const handleInputChange = (field: keyof FormContent | "name" | "template", eventOrValue: Event | string) => {
const value =
typeof eventOrValue === "string" ? eventOrValue : (eventOrValue.target as HTMLInputElement)?.value ?? "";
typeof eventOrValue === "string" ? eventOrValue : ((eventOrValue.target as HTMLInputElement)?.value ?? "");
if (field === "receiver" && value.trim() === "") {
selectedName.value = "";
}
@@ -372,7 +402,7 @@ const handleQuillChange = (content: string) => {
const handleLinkUrlChange = (index: number, eventOrValue: Event | string) => {
const value =
typeof eventOrValue === "string" ? eventOrValue : (eventOrValue.target as HTMLInputElement)?.value ?? "";
typeof eventOrValue === "string" ? eventOrValue : ((eventOrValue.target as HTMLInputElement)?.value ?? "");
const newLinkUrl = [...formData.value.content.linkUrl];
newLinkUrl[index] = value;
formData.value = {
@@ -384,7 +414,7 @@ const handleLinkUrlChange = (index: number, eventOrValue: Event | string) => {
const handleTextLinkUrlChange = (index: number, eventOrValue: Event | string) => {
const value =
typeof eventOrValue === "string" ? eventOrValue : (eventOrValue.target as HTMLInputElement)?.value ?? "";
typeof eventOrValue === "string" ? eventOrValue : ((eventOrValue.target as HTMLInputElement)?.value ?? "");
const newTextLinkUrl = [...formData.value.content.textLinkUrl];
newTextLinkUrl[index] = value;
formData.value = {
@@ -396,7 +426,7 @@ const handleTextLinkUrlChange = (index: number, eventOrValue: Event | string) =>
const handleKeywordValueChange = (keyword: string, eventOrValue: Event | string) => {
const value =
typeof eventOrValue === "string" ? eventOrValue : (eventOrValue.target as HTMLInputElement)?.value ?? "";
typeof eventOrValue === "string" ? eventOrValue : ((eventOrValue.target as HTMLInputElement)?.value ?? "");
const keywordIndex = formData.value.content.keyword.findIndex((kw) => kw.keyword === keyword);
if (keywordIndex !== -1) {
const newKeywords = [...formData.value.content.keyword];
@@ -430,7 +460,11 @@ const removeLinkUrl = (index: number) => {
const newTextLinkUrl = formData.value.content.textLinkUrl.filter((_, i) => i !== index);
formData.value = {
...formData.value,
content: { ...formData.value.content, linkUrl: newLinkUrl, textLinkUrl: newTextLinkUrl },
content: {
...formData.value.content,
linkUrl: newLinkUrl,
textLinkUrl: newTextLinkUrl,
},
};
props.onDataChange(formData.value);
}
@@ -499,11 +533,15 @@ const handleSendEmail = async () => {
});
}
const response = await nuxtApp.$insertapi("sendemail", {
const response = await nuxtApp.$insertapi(
"sendemail",
{
to: formData.value.content.receiver,
content: finalEmailHtml,
subject: formData.value.content.subject || "Thông báo từ BigDataTech",
}, undefined, false
},
undefined,
false,
);
if (response !== null) {
@@ -633,7 +671,7 @@ watch(
formData.value = { ...formData.value, ...newValue };
}
},
{ deep: true }
{ deep: true },
);
watch(
@@ -667,7 +705,7 @@ watch(
props.onDataChange(formData.value);
}
},
{ immediate: true }
{ immediate: true },
);
</script>