feat: Upload layout done.

This commit is contained in:
chiayin
2023-12-14 09:34:35 +08:00
parent 67b0ee47df
commit 9c7fd4a202
6 changed files with 105 additions and 5 deletions

View File

@@ -9,6 +9,13 @@
'GRAD' 0, 'GRAD' 0,
'opsz' 40 'opsz' 40
} }
.material-fill {
font-variation-settings:
'FILL' 1,
'wght' 400,
'GRAD' 0,
'opsz' 40
}
/* vue-toast-notification */ /* vue-toast-notification */
.v-toast__item { .v-toast__item {

View File

@@ -8,7 +8,7 @@
<IconUploarding class="loader-arrow-upward"></IconUploarding> <IconUploarding class="loader-arrow-upward"></IconUploarding>
<p class="text-neutral-900">Click or drag a file here.</p> <p class="text-neutral-900">Click or drag a file here.</p>
<p class="text-neutral-500">(Only <span class="text-primary">.csv</span> is supported)</p> <p class="text-neutral-500">(Only <span class="text-primary">.csv</span> is supported)</p>
<p class="btn btn-lg btn-c-primary">下一頁</p> <router-link class="btn btn-lg btn-c-primary" :to="{name: 'Upload', replace: true}">下一頁路徑不添進歷史紀錄</router-link>
<p class="btn btn-lg btn-c-primary" @click="uploadFailde">上傳失敗 Modal</p> <p class="btn btn-lg btn-c-primary" @click="uploadFailde">上傳失敗 Modal</p>
<p class="btn btn-lg btn-c-primary" @click="uploadSuccess">上傳成功 Modal</p> <p class="btn btn-lg btn-c-primary" @click="uploadSuccess">上傳成功 Modal</p>
<p class="btn btn-lg btn-c-primary" @click="uploadConfirm">是否上傳 Modal</p> <p class="btn btn-lg btn-c-primary" @click="uploadConfirm">是否上傳 Modal</p>
@@ -33,7 +33,7 @@ export default {
uploadFailde, uploadFailde,
uploadSuccess, uploadSuccess,
uploadConfirm, uploadConfirm,
} },
} }
</script> </script>
<style scoped> <style scoped>

View File

@@ -37,6 +37,8 @@
<UploadModal :visible="uploadModal" @closeModal="uploadModal = $event"></UploadModal> <UploadModal :visible="uploadModal" @closeModal="uploadModal = $event"></UploadModal>
</div> </div>
</div> </div>
<!-- Upload 無按鈕行為 -->
<div v-else-if="navViewName === 'UPLOAD'"></div>
<!-- Other Page: Save and Download --> <!-- Other Page: Save and Download -->
<!-- Save data 跳重新命名沒有 data 跳要不要儲存沒有動都不跳 --> <!-- Save data 跳重新命名沒有 data 跳要不要儲存沒有動都不跳 -->
<div v-else class="space-x-4"> <div v-else class="space-x-4">

View File

@@ -3,6 +3,7 @@ import AuthContainer from '@/views/AuthContainer.vue';
import MainContainer from '@/views/MainContainer.vue'; import MainContainer from '@/views/MainContainer.vue';
import Login from '@/views/Login/index.vue'; import Login from '@/views/Login/index.vue';
import Files from '@/views/Files/index.vue'; import Files from '@/views/Files/index.vue';
import Upload from '@/views/Upload/index.vue';
import Map from '@/views/Discover/Map/index.vue'; import Map from '@/views/Discover/Map/index.vue';
import Conformance from '@/views/Discover/Conformance/index.vue'; import Conformance from '@/views/Discover/Conformance/index.vue';
import MemberArea from '@/views/MemberArea/index.vue'; import MemberArea from '@/views/MemberArea/index.vue';
@@ -44,6 +45,11 @@ const routes = [
name: "Files", name: "Files",
component: Files, component: Files,
}, },
{
path: "/upload", // router.push({ replace: true }) 路徑不添進歷史紀錄
name: "Upload",
component: Upload
},
{ {
path: "/discover", path: "/discover",
name: "Discover", name: "Discover",

View File

@@ -3,10 +3,9 @@
<Header/> <Header/>
<Navbar/> <Navbar/>
</header> </header>
<main> <main class="w-full">
<Loading v-if="loadingStore.isLoading" /> <Loading v-if="loadingStore.isLoading" />
<router-view> <router-view></router-view>
</router-view>
</main> </main>
</template> </template>

View File

@@ -0,0 +1,86 @@
<template>
<section class="h-screen-main w-full px-4 flex flex-col justify-between items-start">
<!-- Upload Content -->
<div class="w-full">
<!-- File name -->
<p class="font-bold text-base leading-[48px] border-b border-neutral-300">File Name(點擊可以改名字)</p>
<!-- Upload notification -->
<div class="flex justify-start items-center space-x-2 ml-2 py-2">
<span class="material-symbols-outlined text-neutral-700" v-tooltip.right="tooltipUpload">info</span>
<span class="w-px h-7 bg-neutral-300"></span>
<div class="flex items-center">
<span class="material-symbols-outlined text-primary">notifications</span>
<span class="material-symbols-outlined material-fill text-danger">warning</span>
</div>
<!-- Upload text -->
<div class="flex justify-start items-center">
<p class="text-primary text-sm">
Please verify the label for each column before uploading.
</p>
<p class="text-danger text-sm">
Need to select [A], [B], [C].
</p>
<div class=" space-y-1">
<p class="text-danger text-sm">
[Case ID] has been assigned.
</p>
<p class="text-danger text-sm">
[Case ID], [Activity] have been assigned.
</p>
</div>
</div>
</div>
<!-- Upload table -->
</div>
<!-- Upload button -->
<div class="w-full text-right space-x-4 px-8 py-4">
<button type="button" class="btn btn-sm btn-neutral" @click="reset">Cancel</button>
<button type="button" class="btn btn-sm" @click="submit" :disabled="isDisabled" :class="isDisabled ? 'btn-disable' : 'btn-neutral'">Upload</button>
</div>
</section>
</template>
<script>
import { storeToRefs } from 'pinia';
import LoadingStore from '@/stores/loading.js';
export default {
setup() {
const loadingStore = LoadingStore();
const { isLoading } = storeToRefs(loadingStore);
return { isLoading }
},
data() {
return {
isDisabled: true,
tooltipUpload: {
value: `1. Case ID: A unique identifier for each case.
2. Activity: A process step executed by either a system (automated) or humans (manual).
3. Activity Instance ID: A unique identifier for a single occurrence of an activity.
4. Timestamp: The time of occurrence of a particular event, such as the start or end of an activity.
5. Status: Activity status, such as Start or Complete.
6. Attribute: A property that can be associated with a case to provide additional information about that case.
7. Resource: A resource refers to any entity that is required to carry out a business process. This can include people, equipment, software, or any other type of asset.`,
class: '!max-w-[400px] !text-[10px]',
autoHide: false,
}
}
},
methods: {
/**
* Cancel Button
*/
reset() {},
/**
* Upload Button
*/
submit() {},
},
mounted() {
this.isLoading = false;
},
}
// beforeRouteUpdate(){}
</script>
<style scoped>
</style>