chore: install prettier
This commit is contained in:
@@ -1,26 +1,38 @@
|
||||
<template>
|
||||
<div class="container-fluid">
|
||||
<div class="mt-0" v-if="loading">
|
||||
<p>{{ isVietnamese ? 'Đang tải dữ liệu...' : 'Loading...' }}</p>
|
||||
<div
|
||||
class="mt-0"
|
||||
v-if="loading"
|
||||
>
|
||||
<p>{{ isVietnamese ? "Đang tải dữ liệu..." : "Loading..." }}</p>
|
||||
</div>
|
||||
|
||||
<div class="mt-0" v-else-if="entries.length === 0">
|
||||
<p>{{ isVietnamese ? 'Không có dữ liệu' : 'No data' }}</p>
|
||||
<div
|
||||
class="mt-0"
|
||||
v-else-if="entries.length === 0"
|
||||
>
|
||||
<p>{{ isVietnamese ? "Không có dữ liệu" : "No data" }}</p>
|
||||
</div>
|
||||
|
||||
<div v-else>
|
||||
<div v-for="(entry, index) in entries" :key="entry.code || index" class="entry-item mb-5">
|
||||
<h3 class="title is-5 mb-3">
|
||||
{{ isVietnamese ? 'Bút toán' : 'Entry' }} #{{ index + 1 }}
|
||||
</h3>
|
||||
|
||||
<div
|
||||
v-for="(entry, index) in entries"
|
||||
:key="entry.code || index"
|
||||
class="entry-item mb-5"
|
||||
>
|
||||
<h3 class="title is-5 mb-3">{{ isVietnamese ? "Bút toán" : "Entry" }} #{{ index + 1 }}</h3>
|
||||
|
||||
<div class="columns is-multiline mx-0">
|
||||
<!-- Mã bút toán -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Mã bút toán' : 'Code' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Mã bút toán" : "Code" }}</label>
|
||||
<div class="control">
|
||||
<span class="hyperlink" @click="$copyToClipboard(entry.code)">{{ entry.code }}</span>
|
||||
<span
|
||||
class="hyperlink"
|
||||
@click="$copyToClipboard(entry.code)"
|
||||
>{{ entry.code }}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -28,7 +40,7 @@
|
||||
<!-- Ngày bút toán -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Ngày bút toán' : 'Date' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Ngày bút toán" : "Date" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.date ? $dayjs(entry.date).format("DD/MM/YYYY") : "/" }}</span>
|
||||
</div>
|
||||
@@ -38,7 +50,7 @@
|
||||
<!-- Amount -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Số tiền' : 'Amount' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Số tiền" : "Amount" }}</label>
|
||||
<div class="control">
|
||||
<span>
|
||||
{{ $numtoString(entry.amount) }}
|
||||
@@ -50,9 +62,12 @@
|
||||
<!-- Mã quỹ -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Mã quỹ' : 'Account Code' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Mã quỹ" : "Account Code" }}</label>
|
||||
<div class="control">
|
||||
<span class="hyperlink" @click="$copyToClipboard(entry.account__code)">
|
||||
<span
|
||||
class="hyperlink"
|
||||
@click="$copyToClipboard(entry.account__code)"
|
||||
>
|
||||
{{ entry.account__code || "/" }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -62,7 +77,7 @@
|
||||
<!-- Tên quỹ -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Tên quỹ' : 'Account Type' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Tên quỹ" : "Account Type" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.account__type__name || "/" }}</span>
|
||||
</div>
|
||||
@@ -72,7 +87,7 @@
|
||||
<!-- Loại bút toán -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Loại bút toán' : 'Category' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Loại bút toán" : "Category" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.category__name || "/" }}</span>
|
||||
</div>
|
||||
@@ -82,7 +97,7 @@
|
||||
<!-- Loại tiền -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Loại tiền' : 'Currency' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Loại tiền" : "Currency" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.account__currency__code || "/" }}</span>
|
||||
</div>
|
||||
@@ -92,7 +107,7 @@
|
||||
<!-- Dư trước -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Dư trước' : 'Balance Before' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Dư trước" : "Balance Before" }}</label>
|
||||
<div class="control">
|
||||
<span>
|
||||
{{ $numtoString(entry.balance_before) }}
|
||||
@@ -104,9 +119,9 @@
|
||||
<!-- Ghi có -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Ghi có' : 'Credit' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Ghi có" : "Credit" }}</label>
|
||||
<div class="control">
|
||||
<span v-if="entry.type===1">
|
||||
<span v-if="entry.type === 1">
|
||||
{{ $numtoString(entry.amount) }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -116,9 +131,9 @@
|
||||
<!-- Trích nợ (Ghi nợ) -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Ghi nợ' : 'Debit' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Ghi nợ" : "Debit" }}</label>
|
||||
<div class="control">
|
||||
<span v-if="entry.type===2">
|
||||
<span v-if="entry.type === 2">
|
||||
{{ $numtoString(entry.amount) }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -128,7 +143,7 @@
|
||||
<!-- Dư sau -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Dư sau' : 'Balance After' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Dư sau" : "Balance After" }}</label>
|
||||
<div class="control">
|
||||
<span>
|
||||
{{ $numtoString(entry.balance_after) }}
|
||||
@@ -140,7 +155,7 @@
|
||||
<!-- Loại (Ghi có/ghi nợ) -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Loại' : 'Type' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Loại" : "Type" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.type__name || "/" }}</span>
|
||||
</div>
|
||||
@@ -150,9 +165,12 @@
|
||||
<!-- Người nhập -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Người nhập' : 'Inputer' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Người nhập" : "Inputer" }}</label>
|
||||
<div class="control">
|
||||
<span class="hyperlink" @click="openUser(entry.inputer)">
|
||||
<span
|
||||
class="hyperlink"
|
||||
@click="openUser(entry.inputer)"
|
||||
>
|
||||
{{ entry.inputer__fullname || "/" }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -162,9 +180,12 @@
|
||||
<!-- Người duyệt -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Người duyệt' : 'Approver' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Người duyệt" : "Approver" }}</label>
|
||||
<div class="control">
|
||||
<span class="hyperlink" @click="openUser(entry.approver)">
|
||||
<span
|
||||
class="hyperlink"
|
||||
@click="openUser(entry.approver)"
|
||||
>
|
||||
{{ entry.approver__fullname || "/" }}
|
||||
</span>
|
||||
</div>
|
||||
@@ -184,7 +205,7 @@
|
||||
<!-- Thời gian -->
|
||||
<div class="column is-3 pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Thời gian' : 'Create Time' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Thời gian" : "Create Time" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.create_time ? $dayjs(entry.create_time).format("DD/MM/YYYY HH:mm") : "/" }}</span>
|
||||
</div>
|
||||
@@ -194,7 +215,7 @@
|
||||
<!-- Nội dung -->
|
||||
<div class="column is-full pb-1 px-0">
|
||||
<div class="field">
|
||||
<label class="label">{{ isVietnamese ? 'Nội dung' : 'Content' }}</label>
|
||||
<label class="label">{{ isVietnamese ? "Nội dung" : "Content" }}</label>
|
||||
<div class="control">
|
||||
<span>{{ entry.content || "/" }}</span>
|
||||
</div>
|
||||
@@ -202,11 +223,18 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr v-if="index < entries.length - 1" class="my-4">
|
||||
<hr
|
||||
v-if="index < entries.length - 1"
|
||||
class="my-4"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Modal @close="showmodal = undefined" v-bind="showmodal" v-if="showmodal"></Modal>
|
||||
<Modal
|
||||
@close="showmodal = undefined"
|
||||
v-bind="showmodal"
|
||||
v-if="showmodal"
|
||||
></Modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -221,8 +249,8 @@ export default {
|
||||
props: {
|
||||
entryList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
default: () => [],
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -247,34 +275,34 @@ export default {
|
||||
handler() {
|
||||
this.fetchEntries();
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
parseEntryItem(item) {
|
||||
// Nếu item đã là object thì return luôn
|
||||
if (typeof item === 'object' && item !== null) {
|
||||
if (typeof item === "object" && item !== null) {
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
// Nếu item là string thì parse
|
||||
if (typeof item === 'string') {
|
||||
if (typeof item === "string") {
|
||||
try {
|
||||
// Thay thế single quotes bằng double quotes để parse JSON
|
||||
const jsonString = item.replace(/'/g, '"');
|
||||
return JSON.parse(jsonString);
|
||||
} catch (error) {
|
||||
console.error('Lỗi khi parse string thành JSON:', item, error);
|
||||
console.error("Lỗi khi parse string thành JSON:", item, error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
},
|
||||
|
||||
|
||||
async fetchEntries() {
|
||||
const { $getdata } = useNuxtApp();
|
||||
|
||||
|
||||
if (!this.entryList || this.entryList.length === 0) {
|
||||
this.entries = [];
|
||||
return;
|
||||
@@ -288,7 +316,7 @@ export default {
|
||||
for (const item of this.entryList) {
|
||||
// Parse item từ string sang object nếu cần
|
||||
const parsedItem = this.parseEntryItem(item);
|
||||
|
||||
|
||||
if (parsedItem && parsedItem.code) {
|
||||
try {
|
||||
const entryData = await $getdata("internalentry", { code: parsedItem.code }, undefined, true);
|
||||
@@ -300,7 +328,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
console.log(`Đã load ${this.entries.length} bút toán thành công`);
|
||||
} catch (error) {
|
||||
console.error("Lỗi khi load danh sách bút toán:", error);
|
||||
@@ -320,4 +348,4 @@ export default {
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user