refactor: clean code and handle

This commit is contained in:
puri-ph4tt 2023-11-28 09:22:44 +07:00 committed by Methapon2001
parent aa63e9c8c5
commit e682485bce
No known key found for this signature in database
GPG key ID: 849924FEF46BD132
3 changed files with 40 additions and 28 deletions

View file

@ -20,16 +20,10 @@ const { getFolder, createFolder, editFolder, uploadFile } = useTreeDataStore()
const drawer = ref<boolean>(false) const drawer = ref<boolean>(false)
const drawerFile = ref<boolean>(false) const drawerFile = ref<boolean>(false)
const drawerStatus = ref<'edit' | 'create'>('create') const drawerStatus = ref<'edit' | 'create'>('create')
const input = ref<string>('')
const inputFile = ref<File>() const inputFile = ref<File>()
const fileTitle = ref<string>('') const fileTitle = ref<string>('')
const fileDesc = ref<string>('') const fileDesc = ref<string>('')
const fileCategory = ref<string>('') const fileCategory = ref<string>('')
const optionsCategory = [
{ label: 'ศิลปะ', value: 'art' },
{ label: 'ภาพวาด', value: 'drawing' },
{ label: 'ภาษาไทย', value: 'thai' },
]
const fileKeyword = ref<string>('') const fileKeyword = ref<string>('')
const editPathname = ref<string>('') const editPathname = ref<string>('')
@ -181,7 +175,7 @@ async function handleSubmit() {
> >
<q-card-section class="column justify-center relative q-px-xl"> <q-card-section class="column justify-center relative q-px-xl">
<q-icon <q-icon
name="description" name="mdi-file"
class="add-icon" class="add-icon"
size="6em" size="6em"
color="primary" color="primary"
@ -259,10 +253,9 @@ async function handleSubmit() {
dense dense
/> />
<span class="text-weight-bold">กล/หมวดหม</span> <span class="text-weight-bold">กล/หมวดหม</span>
<q-select <q-input
class="q-my-md" class="q-my-md"
outlined outlined
:options="optionsCategory"
v-model="fileCategory" v-model="fileCategory"
placeholder="เลือกกลุ่ม/หมวดหมู่" placeholder="เลือกกลุ่ม/หมวดหมู่"
dense dense

View file

@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref } from 'vue'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { useFileInfoStore } from '@/stores/file-info-data' import { useFileInfoStore } from '@/stores/file-info-data'
@ -89,8 +88,13 @@ const { getType, getFormatDate, getSize } = useFileInfoStore()
<div class="col-2"> <div class="col-2">
<span>กล/หมวดหม</span> <span>กล/หมวดหม</span>
</div> </div>
<div class="col-grow" v-for="category in fileInfo?.category" :key="category"> <div class="col-grow">
<span class="text-grey">{{ category }}</span> <span
class="text-grey"
v-for="category in fileInfo?.category"
:key="category"
>{{ category }}</span
>
</div> </div>
</div> </div>
<q-separator /> <q-separator />
@ -98,8 +102,13 @@ const { getType, getFormatDate, getSize } = useFileInfoStore()
<div class="col-2"> <div class="col-2">
<span>คำสำค</span> <span>คำสำค</span>
</div> </div>
<div class="col-grow" v-for="keyword in fileInfo?.keyword" :key="keyword"> <div class="col-grow">
<span class="text-grey">{{ keyword }}</span> <span
class="text-grey"
v-for="keyword in fileInfo?.keyword"
:key="keyword"
>{{ keyword }}</span
>
</div> </div>
</div> </div>
<q-separator /> <q-separator />
@ -126,7 +135,9 @@ const { getType, getFormatDate, getSize } = useFileInfoStore()
<span>นทปโหลด</span> <span>นทปโหลด</span>
</div> </div>
<div class="col-grow"> <div class="col-grow">
<span class="text-grey">{{ getFormatDate(fileInfo?.createdAt) }}</span> <span class="text-grey">{{
getFormatDate(fileInfo?.createdAt)
}}</span>
</div> </div>
</div> </div>
</div> </div>

View file

@ -139,6 +139,9 @@ export const useFileInfoStore = defineStore('info', () => {
} }
function getFormatDate(dateTime: any): string { function getFormatDate(dateTime: any): string {
if (dateTime === undefined) {
return 'unknow date'
} else {
const date = new Date(dateTime) const date = new Date(dateTime)
const result = date.toLocaleDateString('th-TH', { const result = date.toLocaleDateString('th-TH', {
year: 'numeric', year: 'numeric',
@ -147,8 +150,12 @@ export const useFileInfoStore = defineStore('info', () => {
}) })
return result return result
} }
}
function getSize(size: any): string { function getSize(size: any): string {
if (size === undefined) {
return 'unknow size'
} else {
const units = ['B', 'KB', 'MB', 'GB', 'TB'] const units = ['B', 'KB', 'MB', 'GB', 'TB']
let i = 0 let i = 0
while (size >= 1024 && i < units.length - 1) { while (size >= 1024 && i < units.length - 1) {
@ -157,6 +164,7 @@ export const useFileInfoStore = defineStore('info', () => {
} }
return size.toFixed(2) + ' ' + units[i] return size.toFixed(2) + ' ' + units[i]
} }
}
async function getFileInfo(data: EhrFile) { async function getFileInfo(data: EhrFile) {
fileInfo.value = data fileInfo.value = data