mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-05-06 20:42:57 +08:00
✨ Feature(custom): optimize upload modal ui
This commit is contained in:
@@ -54,13 +54,7 @@ html
|
||||
padding 0
|
||||
margin 0
|
||||
height 100%
|
||||
font-family "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif
|
||||
#app
|
||||
height 100%
|
||||
user-select none
|
||||
overflow hidden
|
||||
.el-button-group
|
||||
width 100%
|
||||
.el-button
|
||||
width 50%
|
||||
</style>
|
||||
|
||||
@@ -40,20 +40,22 @@
|
||||
|
||||
<div class="nav-menu">
|
||||
<router-link
|
||||
:to="navigationItems[0].path"
|
||||
v-for="item in navigationItems.slice(0, 3)"
|
||||
:key="item.path"
|
||||
:to="item.path"
|
||||
class="nav-item"
|
||||
:title="`${navigationItems[0].name}`"
|
||||
:title="`${item.name}`"
|
||||
>
|
||||
<div class="nav-icon-container">
|
||||
<component
|
||||
:is="navigationItems[0].icon"
|
||||
:is="item.icon"
|
||||
:size="18"
|
||||
/>
|
||||
</div>
|
||||
<span
|
||||
v-if="!isCollapsed"
|
||||
class="nav-label"
|
||||
>{{ navigationItems[0].name }}</span>
|
||||
>{{ item.name }}</span>
|
||||
</router-link>
|
||||
|
||||
<Disclosure
|
||||
@@ -88,6 +90,7 @@
|
||||
v-else
|
||||
class="nav-item collapsed-picbed"
|
||||
:title="t('navigation.picbed')"
|
||||
@click="isCollapsed = !isCollapsed"
|
||||
>
|
||||
<div class="nav-icon-container">
|
||||
<DatabaseIcon :size="18" />
|
||||
@@ -95,7 +98,7 @@
|
||||
</div>
|
||||
|
||||
<router-link
|
||||
v-for="item in navigationItems.slice(1)"
|
||||
v-for="item in navigationItems.slice(3)"
|
||||
:key="item.path"
|
||||
:to="item.path"
|
||||
class="nav-item"
|
||||
|
||||
@@ -1,59 +1,61 @@
|
||||
<template>
|
||||
<div class="toolbox-handler">
|
||||
<button
|
||||
class="handler-button"
|
||||
@click="() => props.handler(value)"
|
||||
>
|
||||
{{ props.handlerText }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
interface IProps {
|
||||
status: string
|
||||
value: any
|
||||
handlerText: string
|
||||
handler: (value: any) => void | Promise<void>
|
||||
}
|
||||
|
||||
const props = defineProps<IProps>()
|
||||
</script>
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: 'ToolboxHandler'
|
||||
}
|
||||
</script>
|
||||
<style lang="stylus">
|
||||
.toolbox-handler {
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
|
||||
.handler-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.5rem 1rem;
|
||||
background: var(--color-accent);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: var(--radius-md);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: var(--transition-fast);
|
||||
font-family: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.handler-button:hover {
|
||||
background: var(--color-accent-hover);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
.handler-button:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<div class="toolbox-handler">
|
||||
<button
|
||||
class="handler-button"
|
||||
@click="() => props.handler(value)"
|
||||
>
|
||||
{{ props.handlerText }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
interface IProps {
|
||||
status: string
|
||||
value: any
|
||||
handlerText: string
|
||||
handler: (value: any) => void | Promise<void>
|
||||
}
|
||||
|
||||
const props = defineProps<IProps>()
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: 'ToolboxHandler'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus">
|
||||
.toolbox-handler {
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
|
||||
.handler-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.5rem 1rem;
|
||||
background: var(--color-accent);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: var(--radius-md);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: var(--transition-fast);
|
||||
font-family: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.handler-button:hover {
|
||||
background: var(--color-accent-hover);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
.handler-button:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -620,6 +620,7 @@
|
||||
"prepareDownload": "Preparing to download, click to cancel",
|
||||
"keepDirStructure": "Keep directory structure",
|
||||
"noKeepDirStructure": "Do not keep directory structure",
|
||||
"uploadFile": "Upload File",
|
||||
"dragUpload": "Drag and drop upload supports directories",
|
||||
"clickUpload": "Or: Click to select files",
|
||||
"readingDir": "Reading, please wait",
|
||||
|
||||
@@ -615,6 +615,7 @@
|
||||
"prepareDownload": "准备下载中,点击取消",
|
||||
"keepDirStructure": "保持目录结构",
|
||||
"noKeepDirStructure": "不保持目录结构",
|
||||
"uploadFile": "上传文件",
|
||||
"dragUpload": "拖拽上传 支持目录",
|
||||
"clickUpload": "或: 点击选择文件",
|
||||
"readingDir": "读取中,请稍候",
|
||||
|
||||
@@ -615,6 +615,7 @@
|
||||
"prepareDownload": "正在準備下載,點擊取消",
|
||||
"keepDirStructure": "保持目錄結構",
|
||||
"noKeepDirStructure": "不保持目錄結構",
|
||||
"uploadFile": "上傳檔案",
|
||||
"dragUpload": "拖曳上傳 支援目錄",
|
||||
"clickUpload": "或: 點擊選擇檔案",
|
||||
"readingDir": "讀取中,請稍候",
|
||||
|
||||
@@ -956,7 +956,7 @@
|
||||
>
|
||||
<div class="drawer-header">
|
||||
<h3 class="drawer-title">
|
||||
Upload Files
|
||||
{{ t('pages.manage.bucket.uploadFile') }}
|
||||
</h3>
|
||||
<div class="switch-container">
|
||||
<label class="switch">
|
||||
|
||||
@@ -862,7 +862,7 @@ input:checked + .switch-slider:before {
|
||||
/* Drawer */
|
||||
.drawer-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
top: 32px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
@@ -873,7 +873,7 @@ input:checked + .switch-slider:before {
|
||||
}
|
||||
|
||||
.drawer-container {
|
||||
background: var(--color-surface);
|
||||
background: var(--color-background-secondary);
|
||||
width: 60%;
|
||||
max-width: 800px;
|
||||
height: 100%;
|
||||
|
||||
Reference in New Issue
Block a user