mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-09-07 00:17:03 +08:00
✨ Feature: optimize memory use and loading and searching speed of manage page for 30 fold
This commit is contained in:
+2
-1
@@ -676,7 +676,7 @@ MANAGE_CONSTANT_SFTP_BUCKET_PLACEHOLDER: 'e.g. bucket1'
|
|||||||
MANAGE_CONSTANT_SFTP_BUCKET_TOOLTIP: This cannot be modified, only for software compatibility consideration
|
MANAGE_CONSTANT_SFTP_BUCKET_TOOLTIP: This cannot be modified, only for software compatibility consideration
|
||||||
|
|
||||||
MANAGE_LOGIN_PAGE_PANE_NAME: Saved Config
|
MANAGE_LOGIN_PAGE_PANE_NAME: Saved Config
|
||||||
MANAGE_LOGIN_PAGE_PANE_DESC: Click on the icon or alias to view details, Enter to view the file page, Delete to remove the configuration
|
MANAGE_LOGIN_PAGE_PANE_DESC: Click on the icon or alias to view details
|
||||||
MANAGE_LOGIN_PAGE_PANE_LOADING: Importing...
|
MANAGE_LOGIN_PAGE_PANE_LOADING: Importing...
|
||||||
MANAGE_LOGIN_PAGE_PANE_KEY_NAME: Configuration
|
MANAGE_LOGIN_PAGE_PANE_KEY_NAME: Configuration
|
||||||
MANAGE_LOGIN_PAGE_PANE_KEY_VALUE: Value
|
MANAGE_LOGIN_PAGE_PANE_KEY_VALUE: Value
|
||||||
@@ -725,6 +725,7 @@ MANAGE_BUCKET_SORT_SIZE: Size
|
|||||||
MANAGE_BUCKET_SORT_TYPE: Type
|
MANAGE_BUCKET_SORT_TYPE: Type
|
||||||
MANAGE_BUCKET_SORT_TIME: Time
|
MANAGE_BUCKET_SORT_TIME: Time
|
||||||
MANAGE_BUCKET_SORT_SELECTED: Selected status
|
MANAGE_BUCKET_SORT_SELECTED: Selected status
|
||||||
|
MANAGE_BUCKET_INIT: Init
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: Please enter URL(s), support multiple URLs separated by line breaks
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: Please enter URL(s), support multiple URLs separated by line breaks
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: Confirm
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: Confirm
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: Cancel
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: Cancel
|
||||||
|
|||||||
@@ -680,7 +680,7 @@ MANAGE_CONSTANT_SFTP_BUCKET_TOOLTIP: 此处不可修改,仅为软件兼容性
|
|||||||
|
|
||||||
|
|
||||||
MANAGE_LOGIN_PAGE_PANE_NAME: 已保存配置
|
MANAGE_LOGIN_PAGE_PANE_NAME: 已保存配置
|
||||||
MANAGE_LOGIN_PAGE_PANE_DESC: 点击图标和别名可查看详情,点击进入可查看文件页面,点击删除可删除配置
|
MANAGE_LOGIN_PAGE_PANE_DESC: 点击图标和别名可查看详情
|
||||||
MANAGE_LOGIN_PAGE_PANE_LOADING: 导入配置...
|
MANAGE_LOGIN_PAGE_PANE_LOADING: 导入配置...
|
||||||
MANAGE_LOGIN_PAGE_PANE_KEY_NAME: 配置项
|
MANAGE_LOGIN_PAGE_PANE_KEY_NAME: 配置项
|
||||||
MANAGE_LOGIN_PAGE_PANE_KEY_VALUE: 值
|
MANAGE_LOGIN_PAGE_PANE_KEY_VALUE: 值
|
||||||
@@ -729,6 +729,7 @@ MANAGE_BUCKET_SORT_SIZE: 大小
|
|||||||
MANAGE_BUCKET_SORT_TYPE: 类型
|
MANAGE_BUCKET_SORT_TYPE: 类型
|
||||||
MANAGE_BUCKET_SORT_TIME: 时间
|
MANAGE_BUCKET_SORT_TIME: 时间
|
||||||
MANAGE_BUCKET_SORT_SELECTED: 选中状态
|
MANAGE_BUCKET_SORT_SELECTED: 选中状态
|
||||||
|
MANAGE_BUCKET_INIT: 初始化
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: 请输入URL,支持多个URL,以换行分隔
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: 请输入URL,支持多个URL,以换行分隔
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: 确定
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: 确定
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: 取消
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: 取消
|
||||||
|
|||||||
@@ -676,7 +676,7 @@ MANAGE_CONSTANT_SFTP_BUCKET_PLACEHOLDER: '例如:bucket1'
|
|||||||
MANAGE_CONSTANT_SFTP_BUCKET_TOOLTIP: 此處不可修改,僅為軟體相容性考量
|
MANAGE_CONSTANT_SFTP_BUCKET_TOOLTIP: 此處不可修改,僅為軟體相容性考量
|
||||||
|
|
||||||
MANAGE_LOGIN_PAGE_PANE_NAME: 已保存配置
|
MANAGE_LOGIN_PAGE_PANE_NAME: 已保存配置
|
||||||
MANAGE_LOGIN_PAGE_PANE_DESC: 點擊圖標和別名可查看詳情,點擊進入可查看檔案頁面,點擊刪除可刪除配置
|
MANAGE_LOGIN_PAGE_PANE_DESC: 點擊圖標和別名可查看詳情
|
||||||
MANAGE_LOGIN_PAGE_PANE_LOADING: 導入配置...
|
MANAGE_LOGIN_PAGE_PANE_LOADING: 導入配置...
|
||||||
MANAGE_LOGIN_PAGE_PANE_KEY_NAME: 配置項
|
MANAGE_LOGIN_PAGE_PANE_KEY_NAME: 配置項
|
||||||
MANAGE_LOGIN_PAGE_PANE_KEY_VALUE: 值
|
MANAGE_LOGIN_PAGE_PANE_KEY_VALUE: 值
|
||||||
@@ -725,6 +725,7 @@ MANAGE_BUCKET_SORT_SIZE: 大小
|
|||||||
MANAGE_BUCKET_SORT_TYPE: 類型
|
MANAGE_BUCKET_SORT_TYPE: 類型
|
||||||
MANAGE_BUCKET_SORT_TIME: 時間
|
MANAGE_BUCKET_SORT_TIME: 時間
|
||||||
MANAGE_BUCKET_SORT_SELECTED: 選取狀態
|
MANAGE_BUCKET_SORT_SELECTED: 選取狀態
|
||||||
|
MANAGE_BUCKET_INIT: 初始化
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: 請輸入 URL,支援多個 URL,以換行分隔
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: 請輸入 URL,支援多個 URL,以換行分隔
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: 確定
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: 確定
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: 取消
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: 取消
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import {
|
|||||||
import {
|
import {
|
||||||
createProtocol
|
createProtocol
|
||||||
} from 'vue-cli-plugin-electron-builder/lib'
|
} from 'vue-cli-plugin-electron-builder/lib'
|
||||||
|
import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer'
|
||||||
import beforeOpen from '~/main/utils/beforeOpen'
|
import beforeOpen from '~/main/utils/beforeOpen'
|
||||||
import ipcList from '~/main/events/ipcList'
|
import ipcList from '~/main/events/ipcList'
|
||||||
import busEventList from '~/main/events/busEventList'
|
import busEventList from '~/main/events/busEventList'
|
||||||
@@ -137,6 +138,13 @@ class LifeCycle {
|
|||||||
const readyFunction = async () => {
|
const readyFunction = async () => {
|
||||||
console.log('on ready')
|
console.log('on ready')
|
||||||
createProtocol('picgo')
|
createProtocol('picgo')
|
||||||
|
if (isDevelopment && !process.env.IS_TEST) {
|
||||||
|
try {
|
||||||
|
await installExtension(VUEJS_DEVTOOLS)
|
||||||
|
} catch (e: any) {
|
||||||
|
console.error('Vue Devtools failed to install:', e.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
windowManager.create(IWindowList.TRAY_WINDOW)
|
windowManager.create(IWindowList.TRAY_WINDOW)
|
||||||
windowManager.create(IWindowList.SETTING_WINDOW)
|
windowManager.create(IWindowList.SETTING_WINDOW)
|
||||||
const isAutoListenClipboard = db.get('settings.isAutoListenClipboard') || false
|
const isAutoListenClipboard = db.get('settings.isAutoListenClipboard') || false
|
||||||
|
|||||||
@@ -36,6 +36,8 @@
|
|||||||
class="item"
|
class="item"
|
||||||
effect="dark"
|
effect="dark"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<template #content>
|
<template #content>
|
||||||
<span
|
<span
|
||||||
@@ -60,6 +62,8 @@
|
|||||||
v-else-if="item.type === 'list' && item.choices"
|
v-else-if="item.type === 'list' && item.choices"
|
||||||
v-model="ruleForm[item.name]"
|
v-model="ruleForm[item.name]"
|
||||||
:placeholder="item.message || item.name"
|
:placeholder="item.message || item.name"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="choice in item.choices"
|
v-for="choice in item.choices"
|
||||||
@@ -74,6 +78,8 @@
|
|||||||
:placeholder="item.message || item.name"
|
:placeholder="item.message || item.name"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="choice in item.choices"
|
v-for="choice in item.choices"
|
||||||
|
|||||||
@@ -39,6 +39,8 @@
|
|||||||
v-else-if="item.type === 'list' && item.choices"
|
v-else-if="item.type === 'list' && item.choices"
|
||||||
v-model="ruleForm[item.name]"
|
v-model="ruleForm[item.name]"
|
||||||
:placeholder="item.message || item.name"
|
:placeholder="item.message || item.name"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="choice in item.choices"
|
v-for="choice in item.choices"
|
||||||
@@ -53,6 +55,8 @@
|
|||||||
:placeholder="item.message || item.name"
|
:placeholder="item.message || item.name"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="choice in item.choices"
|
v-for="choice in item.choices"
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="props.tooltips"
|
:content="props.tooltips"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon style="margin-left: 4px">
|
<el-icon style="margin-left: 4px">
|
||||||
<QuestionFilled />
|
<QuestionFilled />
|
||||||
|
|||||||
@@ -213,6 +213,8 @@
|
|||||||
v-model="choosedPicBedForQRCode"
|
v-model="choosedPicBedForQRCode"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in picBed"
|
v-for="item in picBed"
|
||||||
|
|||||||
@@ -19,6 +19,8 @@
|
|||||||
v-model="currentCustomDomain"
|
v-model="currentCustomDomain"
|
||||||
:placeholder="$T('MANAGE_BUCKET_PAGE_CUSTOM_URL_SELECT_PLACEHOLDER')"
|
:placeholder="$T('MANAGE_BUCKET_PAGE_CUSTOM_URL_SELECT_PLACEHOLDER')"
|
||||||
style="width: 200px;"
|
style="width: 200px;"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handleChangeCustomUrl"
|
@change="handleChangeCustomUrl"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -54,6 +56,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_UPLOAD_FILES_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_UPLOAD_FILES_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
@@ -74,6 +78,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_UPLOAD_FROM_URL_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_UPLOAD_FROM_URL_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
@@ -97,6 +103,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_CREATE_FOLDER_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_CREATE_FOLDER_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
@@ -117,6 +125,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_DOWNLOAD_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_DOWNLOAD_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
@@ -137,6 +147,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_BATCH_RENAME_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_BATCH_RENAME_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
@@ -155,8 +167,12 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_BATCH_COPY_URL_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_BATCH_COPY_URL_TOOLTIP')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
|
>
|
||||||
|
<el-dropdown
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-dropdown>
|
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
size="25px"
|
size="25px"
|
||||||
@@ -196,6 +212,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_COPY_FILE_INFO_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_COPY_FILE_INFO_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="icon"
|
class="icon"
|
||||||
@@ -219,6 +237,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_PAGE_FORCE_REFRESH_TOOLTIP')"
|
:content="$T('MANAGE_BUCKET_PAGE_FORCE_REFRESH_TOOLTIP')"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
id="refresh"
|
id="refresh"
|
||||||
@@ -237,7 +257,6 @@
|
|||||||
style="margin-left: 10px;width: 200px;"
|
style="margin-left: 10px;width: 200px;"
|
||||||
clearable
|
clearable
|
||||||
size="small"
|
size="small"
|
||||||
@clear="searchText = ''"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-dir-view">
|
<div class="header-dir-view">
|
||||||
@@ -299,7 +318,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-show="selectedItems.length === 0"
|
v-if="selectedItems.length === 0"
|
||||||
class="header-buttom-view"
|
class="header-buttom-view"
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
@@ -314,7 +333,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-show="selectedItems.length > 0"
|
v-if="selectedItems.length > 0"
|
||||||
class="header-buttom-view"
|
class="header-buttom-view"
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
@@ -368,7 +387,9 @@
|
|||||||
{{ `${$T('MANAGE_BUCKET_DELETE_BTN')}${selectedItems.length}` }}
|
{{ `${$T('MANAGE_BUCKET_DELETE_BTN')}${selectedItems.length}` }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown>
|
<el-dropdown
|
||||||
|
teleported
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -393,6 +414,9 @@
|
|||||||
<el-dropdown-item @click="sortFile('check')">
|
<el-dropdown-item @click="sortFile('check')">
|
||||||
{{ $T('MANAGE_BUCKET_SORT_SELECTED') }}
|
{{ $T('MANAGE_BUCKET_SORT_SELECTED') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click="sortFile('init')">
|
||||||
|
{{ $T('MANAGE_BUCKET_INIT') }}
|
||||||
|
</el-dropdown-item>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
<el-button-group
|
<el-button-group
|
||||||
@@ -428,6 +452,7 @@
|
|||||||
draggable
|
draggable
|
||||||
center
|
center
|
||||||
align-center
|
align-center
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="urlToUpload"
|
v-model="urlToUpload"
|
||||||
@@ -451,7 +476,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<div
|
<div
|
||||||
v-show="layoutStyle === 'list'"
|
v-if="layoutStyle === 'list'"
|
||||||
class="layout-table"
|
class="layout-table"
|
||||||
style="margin: 0 15px 15px 15px;overflow-y: auto;overflow-x: hidden;height: 80vh;"
|
style="margin: 0 15px 15px 15px;overflow-y: auto;overflow-x: hidden;height: 80vh;"
|
||||||
>
|
>
|
||||||
@@ -462,7 +487,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
<el-table-v2
|
<el-table-v2
|
||||||
ref="fileTable"
|
ref="fileTable"
|
||||||
:columns="columns "
|
:columns="columns "
|
||||||
:data="currentPageFilesInfo"
|
:data="filterList"
|
||||||
:row-class="rowClass"
|
:row-class="rowClass"
|
||||||
:width="width"
|
:width="width"
|
||||||
:height="height"
|
:height="height"
|
||||||
@@ -471,7 +496,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
</el-auto-resizer>
|
</el-auto-resizer>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-show="layoutStyle === 'grid'"
|
v-if="layoutStyle === 'grid'"
|
||||||
class="layout-grid"
|
class="layout-grid"
|
||||||
style="margin: 0 15px 15px 15px;overflow-y: auto;overflow-x: hidden;height: 80vh;"
|
style="margin: 0 15px 15px 15px;overflow-y: auto;overflow-x: hidden;height: 80vh;"
|
||||||
>
|
>
|
||||||
@@ -482,7 +507,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
:gutter="16"
|
:gutter="16"
|
||||||
>
|
>
|
||||||
<el-col
|
<el-col
|
||||||
v-for="(item,index) in currentPageFilesInfo"
|
v-for="(item,index) in filterList"
|
||||||
:key="index"
|
:key="index"
|
||||||
:xs="24"
|
:xs="24"
|
||||||
:sm="12"
|
:sm="12"
|
||||||
@@ -491,7 +516,6 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
:xl="2"
|
:xl="2"
|
||||||
>
|
>
|
||||||
<el-card
|
<el-card
|
||||||
v-if="item.match || !searchText"
|
|
||||||
:body-style="{ padding: '0px', height: '150px', width: '100%', background: item.checked ? '#f2f2f2' : '#fff' }"
|
:body-style="{ padding: '0px', height: '150px', width: '100%', background: item.checked ? '#f2f2f2' : '#fff' }"
|
||||||
style="margin-bottom: 10px;"
|
style="margin-bottom: 10px;"
|
||||||
shadow="hover"
|
shadow="hover"
|
||||||
@@ -555,6 +579,8 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
placement="top"
|
placement="top"
|
||||||
effect="light"
|
effect="light"
|
||||||
:content="item.fileName"
|
:content="item.fileName"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-link
|
<el-link
|
||||||
style="font-size: 12px;font-family: Arial, Helvetica, sans-serif;"
|
style="font-size: 12px;font-family: Arial, Helvetica, sans-serif;"
|
||||||
@@ -589,7 +615,9 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
>
|
>
|
||||||
<Download />
|
<Download />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<el-dropdown>
|
<el-dropdown
|
||||||
|
teleported
|
||||||
|
>
|
||||||
<template #default>
|
<template #default>
|
||||||
<el-icon
|
<el-icon
|
||||||
size="15"
|
size="15"
|
||||||
@@ -677,7 +705,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
<el-checkbox
|
<el-checkbox
|
||||||
v-model="item.checked"
|
v-model="item.checked"
|
||||||
size="large"
|
size="large"
|
||||||
@change="handleCheckChange(item)"
|
@change="handleCheckChangeOther(item)"
|
||||||
/>
|
/>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
@@ -699,6 +727,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
center
|
center
|
||||||
align-center
|
align-center
|
||||||
draggable
|
draggable
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<template #header>
|
<template #header>
|
||||||
<el-button
|
<el-button
|
||||||
@@ -767,6 +796,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
<el-drawer
|
<el-drawer
|
||||||
v-model="isShowUploadPanel"
|
v-model="isShowUploadPanel"
|
||||||
size="60%"
|
size="60%"
|
||||||
|
append-to-body
|
||||||
@open="startRefreshUploadTask"
|
@open="startRefreshUploadTask"
|
||||||
@close="stopRefreshUploadTask"
|
@close="stopRefreshUploadTask"
|
||||||
>
|
>
|
||||||
@@ -788,7 +818,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
@click="openFileSelectDialog"
|
@click="openFileSelectDialog"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-show="!tableData.length"
|
v-if="!tableData.length"
|
||||||
id="upload-dragger"
|
id="upload-dragger"
|
||||||
style="position: relative;top: 0;right: 0;heigth: 100%;width: 100%;display: flex;justify-content: center;align-items: center;"
|
style="position: relative;top: 0;right: 0;heigth: 100%;width: 100%;display: flex;justify-content: center;align-items: center;"
|
||||||
>
|
>
|
||||||
@@ -841,6 +871,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
<el-tabs
|
<el-tabs
|
||||||
v-model="activeUpLoadTab"
|
v-model="activeUpLoadTab"
|
||||||
stretch
|
stretch
|
||||||
|
lazy
|
||||||
>
|
>
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
name="uploading"
|
name="uploading"
|
||||||
@@ -1007,12 +1038,14 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
v-model="isShowDownloadPanel"
|
v-model="isShowDownloadPanel"
|
||||||
:title="$T('MANAGE_BUCKET_DOWNLOAD_PAGE_TITLE')"
|
:title="$T('MANAGE_BUCKET_DOWNLOAD_PAGE_TITLE')"
|
||||||
size="60%"
|
size="60%"
|
||||||
|
append-to-body
|
||||||
@open="startRefreshDownloadTask"
|
@open="startRefreshDownloadTask"
|
||||||
@close="stopRefreshDownloadTask"
|
@close="stopRefreshDownloadTask"
|
||||||
>
|
>
|
||||||
<el-tabs
|
<el-tabs
|
||||||
v-model="activeDownLoadTab"
|
v-model="activeDownLoadTab"
|
||||||
stretch
|
stretch
|
||||||
|
lazy
|
||||||
>
|
>
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
name="downloading"
|
name="downloading"
|
||||||
@@ -1209,6 +1242,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
close-on-press-escape
|
close-on-press-escape
|
||||||
show-close
|
show-close
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
style="-webkit-user-select: text"
|
style="-webkit-user-select: text"
|
||||||
@@ -1233,6 +1267,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
close-on-press-escape
|
close-on-press-escape
|
||||||
show-close
|
show-close
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<highlightjs
|
<highlightjs
|
||||||
style="-webkit-user-select: text;"
|
style="-webkit-user-select: text;"
|
||||||
@@ -1258,6 +1293,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
close-on-press-escape
|
close-on-press-escape
|
||||||
show-close
|
show-close
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<video-player
|
<video-player
|
||||||
:src="videoFileUrl"
|
:src="videoFileUrl"
|
||||||
@@ -1285,6 +1321,7 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
align-center
|
align-center
|
||||||
draggable
|
draggable
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
|
append-to-body
|
||||||
@close="() => {
|
@close="() => {
|
||||||
isSingleRename = false
|
isSingleRename = false
|
||||||
isRenameIncludeExt = false
|
isRenameIncludeExt = false
|
||||||
@@ -1295,11 +1332,13 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
style="margin-bottom: 10px;"
|
style="margin-bottom: 10px;"
|
||||||
>
|
>
|
||||||
<span>
|
<span>
|
||||||
{{ $T('MANAGE_BUCKET_RENAME_FILE_INPUT_A') }}
|
{{ $T('MANAGE_BUCKET_RENAME_FILE_INPUT_A') }} - Matched: {{ matchedFilesNumber }}
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_RENAME_FILE_INPUT_A_TIPS')"
|
:content="$T('MANAGE_BUCKET_RENAME_FILE_INPUT_A_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
color="#409EFF"
|
color="#409EFF"
|
||||||
@@ -1324,6 +1363,8 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
effect="light"
|
effect="light"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="280"
|
width="280"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-icon
|
<el-icon
|
||||||
@@ -1381,6 +1422,8 @@ https://www.baidu.com/img/bd_logo1.png"
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_RENAME_FILE_EXT_TIPS')"
|
:content="$T('MANAGE_BUCKET_RENAME_FILE_EXT_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
color="#409EFF"
|
color="#409EFF"
|
||||||
@@ -1527,6 +1570,8 @@ const linkFormatArray = [
|
|||||||
{ key: 'Custom', value: 'custom' }
|
{ key: 'Custom', value: 'custom' }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
type sortTypeList = 'name' | 'size' | 'time' | 'ext' | 'check' | 'init'
|
||||||
|
|
||||||
// 路由相关
|
// 路由相关
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
// 页面状态变量相关
|
// 页面状态变量相关
|
||||||
@@ -1555,7 +1600,6 @@ const fileSortSizeReverse = ref(false)
|
|||||||
const fileSortTimeReverse = ref(false)
|
const fileSortTimeReverse = ref(false)
|
||||||
// 页面搜索相关
|
// 页面搜索相关
|
||||||
const searchText = ref('')
|
const searchText = ref('')
|
||||||
const selectedItems = reactive([] as any[])
|
|
||||||
// 上传页面相关
|
// 上传页面相关
|
||||||
const isDragover = ref(false)
|
const isDragover = ref(false)
|
||||||
const tableData = reactive([] as any[])
|
const tableData = reactive([] as any[])
|
||||||
@@ -1584,7 +1628,13 @@ const dialogVisible = ref(false)
|
|||||||
const urlToUpload = ref('')
|
const urlToUpload = ref('')
|
||||||
// 图片预览相关
|
// 图片预览相关
|
||||||
const previewedImage = ref('')
|
const previewedImage = ref('')
|
||||||
const ImagePreviewList = computed(() => currentPageFilesInfo.filter(item => item.isImage).map(item => item.url))
|
const filterList = computed(() => {
|
||||||
|
return getList()
|
||||||
|
})
|
||||||
|
const selectedItems = computed(() => filterList.value.filter(item => item.checked))
|
||||||
|
|
||||||
|
const ImagePreviewList = computed(() => filterList.value.filter(item => item.isImage).map(item => item.url))
|
||||||
|
|
||||||
const getCurrentPreviewIndex = computed(() => ImagePreviewList.value.indexOf(previewedImage.value))
|
const getCurrentPreviewIndex = computed(() => ImagePreviewList.value.indexOf(previewedImage.value))
|
||||||
// 快捷键相关
|
// 快捷键相关
|
||||||
const isShiftKeyPress = ref<boolean>(false)
|
const isShiftKeyPress = ref<boolean>(false)
|
||||||
@@ -1626,6 +1676,19 @@ const isShowCreateNewFolder = computed(() => ['aliyun', 'github', 'local', 'qini
|
|||||||
|
|
||||||
const isShowPresignedUrl = computed(() => ['aliyun', 'github', 'qiniu', 's3plist', 'tcyun', 'webdavplist'].includes(currentPicBedName.value))
|
const isShowPresignedUrl = computed(() => ['aliyun', 'github', 'qiniu', 's3plist', 'tcyun', 'webdavplist'].includes(currentPicBedName.value))
|
||||||
|
|
||||||
|
function getList () {
|
||||||
|
if (!searchText.value) {
|
||||||
|
return currentPageFilesInfo
|
||||||
|
}
|
||||||
|
return currentPageFilesInfo.filter((item: any) => {
|
||||||
|
if (isIgnoreCase.value) {
|
||||||
|
return item.fileName.toLowerCase().includes(searchText.value.toLowerCase())
|
||||||
|
} else {
|
||||||
|
return item.fileName.includes(searchText.value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 上传相关函数
|
// 上传相关函数
|
||||||
|
|
||||||
function handleUploadKeepDirChange (val: any) {
|
function handleUploadKeepDirChange (val: any) {
|
||||||
@@ -1762,7 +1825,7 @@ function webkitReadDataTransfer (dataTransfer: DataTransfer) {
|
|||||||
entry.file((file: any) => {
|
entry.file((file: any) => {
|
||||||
readFiles(file, entry.fullPath)
|
readFiles(file, entry.fullPath)
|
||||||
}, (err: any) => {
|
}, (err: any) => {
|
||||||
console.log(err)
|
console.error(err)
|
||||||
})
|
})
|
||||||
} else if (entry.isDirectory) {
|
} else if (entry.isDirectory) {
|
||||||
readDirectory(entry.createReader())
|
readDirectory(entry.createReader())
|
||||||
@@ -1773,7 +1836,7 @@ function webkitReadDataTransfer (dataTransfer: DataTransfer) {
|
|||||||
decrement()
|
decrement()
|
||||||
}
|
}
|
||||||
}, (err: any) => {
|
}, (err: any) => {
|
||||||
console.log(err)
|
console.error(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2155,7 +2218,6 @@ async function resetParam (force: boolean = false) {
|
|||||||
currentPageNumber.value = 1
|
currentPageNumber.value = 1
|
||||||
currentPageFilesInfo.length = 0
|
currentPageFilesInfo.length = 0
|
||||||
currentDownloadFileList.length = 0
|
currentDownloadFileList.length = 0
|
||||||
selectedItems.length = 0
|
|
||||||
searchText.value = ''
|
searchText.value = ''
|
||||||
urlToUpload.value = ''
|
urlToUpload.value = ''
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
@@ -2172,10 +2234,8 @@ async function resetParam (force: boolean = false) {
|
|||||||
const cachedData = await searchExistFileList()
|
const cachedData = await searchExistFileList()
|
||||||
if (cachedData.length > 0) {
|
if (cachedData.length > 0) {
|
||||||
currentPageFilesInfo.push(...cachedData[0].value.fullList)
|
currentPageFilesInfo.push(...cachedData[0].value.fullList)
|
||||||
const sortType = localStorage.getItem('sortType') as 'name' | 'size' | 'time' | 'ext' | 'check' | 'init' || ''
|
const sortType = localStorage.getItem('sortType') as sortTypeList || 'init'
|
||||||
if (['name', 'time', 'size', 'ext'].includes(sortType as string)) {
|
|
||||||
sortFile(sortType)
|
sortFile(sortType)
|
||||||
}
|
|
||||||
isShowLoadingPage.value = false
|
isShowLoadingPage.value = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2183,14 +2243,9 @@ async function resetParam (force: boolean = false) {
|
|||||||
if (paging.value) {
|
if (paging.value) {
|
||||||
const res = await getBucketFileList() as IStringKeyMap
|
const res = await getBucketFileList() as IStringKeyMap
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
res.fullList.sort((a: any, b: any) => {
|
|
||||||
return b.isDir - a.isDir || a.fileName.localeCompare(b.fileName)
|
|
||||||
})
|
|
||||||
currentPageFilesInfo.push(...res.fullList)
|
currentPageFilesInfo.push(...res.fullList)
|
||||||
const sortType = localStorage.getItem('sortType') as 'name' | 'size' | 'time' | 'ext' | 'check' | 'init' || ''
|
const sortType = localStorage.getItem('sortType') as sortTypeList || 'init'
|
||||||
if (['name', 'time', 'size', 'ext'].includes(sortType as string)) {
|
|
||||||
sortFile(sortType)
|
sortFile(sortType)
|
||||||
}
|
|
||||||
if (res.isTruncated && paging.value) {
|
if (res.isTruncated && paging.value) {
|
||||||
pagingMarkerStack.push(pagingMarker.value)
|
pagingMarkerStack.push(pagingMarker.value)
|
||||||
pagingMarker.value = res.nextMarker
|
pagingMarker.value = res.nextMarker
|
||||||
@@ -2260,12 +2315,11 @@ const changePage = async (cur: number | undefined, prev: number | undefined) =>
|
|||||||
}
|
}
|
||||||
const isForwardNavigation = cur > prev
|
const isForwardNavigation = cur > prev
|
||||||
const newPageNumber = isForwardNavigation ? prev + 1 : prev - 1
|
const newPageNumber = isForwardNavigation ? prev + 1 : prev - 1
|
||||||
const sortType = localStorage.getItem('sortType') as 'name' | 'size' | 'time' | 'ext' | 'check' | 'init' || ''
|
const sortType = localStorage.getItem('sortType') as sortTypeList || 'init'
|
||||||
|
|
||||||
isShowLoadingPage.value = true
|
isShowLoadingPage.value = true
|
||||||
currentPageNumber.value = newPageNumber
|
currentPageNumber.value = newPageNumber
|
||||||
currentPageFilesInfo.length = 0
|
currentPageFilesInfo.length = 0
|
||||||
selectedItems.length = 0
|
|
||||||
searchText.value = ''
|
searchText.value = ''
|
||||||
urlToUpload.value = ''
|
urlToUpload.value = ''
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
@@ -2289,12 +2343,9 @@ const changePage = async (cur: number | undefined, prev: number | undefined) =>
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
res.fullList.sort((a: any) => (a.isDir ? -1 : 1))
|
|
||||||
currentPageFilesInfo.push(...res.fullList)
|
currentPageFilesInfo.push(...res.fullList)
|
||||||
|
|
||||||
if (['name', 'time', 'size', 'ext'].includes(sortType as string)) {
|
|
||||||
sortFile(sortType)
|
sortFile(sortType)
|
||||||
}
|
|
||||||
|
|
||||||
if (!(cur < prev && !paging.value)) {
|
if (!(cur < prev && !paging.value)) {
|
||||||
if (res.isTruncated) {
|
if (res.isTruncated) {
|
||||||
@@ -2311,27 +2362,6 @@ const changePage = async (cur: number | undefined, prev: number | undefined) =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(searchText, () => searchAndSort())
|
|
||||||
|
|
||||||
function searchAndSort () {
|
|
||||||
fileTable.value.scrollToRow(0)
|
|
||||||
|
|
||||||
const shouldIgnoreCase = isIgnoreCase.value
|
|
||||||
|
|
||||||
currentPageFilesInfo.forEach((item: any) => {
|
|
||||||
const fileName = shouldIgnoreCase ? item.fileName.toLowerCase() : item.fileName
|
|
||||||
const search = shouldIgnoreCase ? searchText.value.toLowerCase() : searchText.value
|
|
||||||
item.match = searchText.value ? fileName.includes(search) : true
|
|
||||||
})
|
|
||||||
|
|
||||||
if (searchText.value) {
|
|
||||||
currentPageFilesInfo.sort((a: any, b: any) => b.match - a.match)
|
|
||||||
} else {
|
|
||||||
const sortType = localStorage.getItem('sortType') as 'name' | 'size' | 'time' | 'ext' | 'check' | 'init' || 'init'
|
|
||||||
sortFile(sortType)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function sortFile (type: 'name' | 'size' | 'time' | 'ext' | 'check' | 'init') {
|
function sortFile (type: 'name' | 'size' | 'time' | 'ext' | 'check' | 'init') {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'name':
|
case 'name':
|
||||||
@@ -2340,9 +2370,8 @@ function sortFile (type: 'name' | 'size' | 'time' | 'ext' | 'check' | 'init') {
|
|||||||
currentPageFilesInfo.sort((a: any, b: any) => {
|
currentPageFilesInfo.sort((a: any, b: any) => {
|
||||||
if (fileSortNameReverse.value) {
|
if (fileSortNameReverse.value) {
|
||||||
return a.fileName.localeCompare(b.fileName)
|
return a.fileName.localeCompare(b.fileName)
|
||||||
} else {
|
|
||||||
return b.fileName.localeCompare(a.fileName)
|
|
||||||
}
|
}
|
||||||
|
return b.fileName.localeCompare(a.fileName)
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'size':
|
case 'size':
|
||||||
@@ -2351,9 +2380,8 @@ function sortFile (type: 'name' | 'size' | 'time' | 'ext' | 'check' | 'init') {
|
|||||||
currentPageFilesInfo.sort((a: any, b: any) => {
|
currentPageFilesInfo.sort((a: any, b: any) => {
|
||||||
if (fileSortSizeReverse.value) {
|
if (fileSortSizeReverse.value) {
|
||||||
return a.fileSize - b.fileSize
|
return a.fileSize - b.fileSize
|
||||||
} else {
|
|
||||||
return b.fileSize - a.fileSize
|
|
||||||
}
|
}
|
||||||
|
return b.fileSize - a.fileSize
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'time':
|
case 'time':
|
||||||
@@ -2362,9 +2390,8 @@ function sortFile (type: 'name' | 'size' | 'time' | 'ext' | 'check' | 'init') {
|
|||||||
currentPageFilesInfo.sort((a: any, b: any) => {
|
currentPageFilesInfo.sort((a: any, b: any) => {
|
||||||
if (fileSortTimeReverse.value) {
|
if (fileSortTimeReverse.value) {
|
||||||
return new Date(a.formatedTime).getTime() - new Date(b.formatedTime).getTime()
|
return new Date(a.formatedTime).getTime() - new Date(b.formatedTime).getTime()
|
||||||
} else {
|
|
||||||
return new Date(b.formatedTime).getTime() - new Date(a.formatedTime).getTime()
|
|
||||||
}
|
}
|
||||||
|
return new Date(b.formatedTime).getTime() - new Date(a.formatedTime).getTime()
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'ext':
|
case 'ext':
|
||||||
@@ -2373,17 +2400,18 @@ function sortFile (type: 'name' | 'size' | 'time' | 'ext' | 'check' | 'init') {
|
|||||||
currentPageFilesInfo.sort((a: any, b: any) => {
|
currentPageFilesInfo.sort((a: any, b: any) => {
|
||||||
if (fileSortExtReverse.value) {
|
if (fileSortExtReverse.value) {
|
||||||
return getExtension(a.fileName).localeCompare(getExtension(b.fileName))
|
return getExtension(a.fileName).localeCompare(getExtension(b.fileName))
|
||||||
} else {
|
|
||||||
return getExtension(b.fileName).localeCompare(getExtension(a.fileName))
|
|
||||||
}
|
}
|
||||||
|
return getExtension(b.fileName).localeCompare(getExtension(a.fileName))
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'check':
|
case 'check':
|
||||||
|
localStorage.setItem('sortType', 'check')
|
||||||
currentPageFilesInfo.sort((a: any, b: any) => {
|
currentPageFilesInfo.sort((a: any, b: any) => {
|
||||||
return b.checked - a.checked
|
return b.checked - a.checked
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'init':
|
case 'init':
|
||||||
|
localStorage.setItem('sortType', 'init')
|
||||||
currentPageFilesInfo.sort((a: any, b: any) => {
|
currentPageFilesInfo.sort((a: any, b: any) => {
|
||||||
return b.isDir - a.isDir || a.fileName.localeCompare(b.fileName)
|
return b.isDir - a.isDir || a.fileName.localeCompare(b.fileName)
|
||||||
})
|
})
|
||||||
@@ -2394,41 +2422,16 @@ function handleCancelCheck () {
|
|||||||
currentPageFilesInfo.forEach((item: any) => {
|
currentPageFilesInfo.forEach((item: any) => {
|
||||||
item.checked = false
|
item.checked = false
|
||||||
})
|
})
|
||||||
selectedItems.length = 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleReverseCheck () {
|
function handleReverseCheck () {
|
||||||
currentPageFilesInfo.forEach((item: any) => {
|
currentPageFilesInfo.forEach((item: any) => {
|
||||||
item.checked = !item.checked
|
item.checked = !item.checked
|
||||||
if (item.checked) {
|
|
||||||
selectedItems.push(item)
|
|
||||||
} else {
|
|
||||||
selectedItems.splice(selectedItems.findIndex((i: any) => i.fileName === item.fileName), 1)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleCheckChangeOther (item: any) {
|
function handleCheckChangeOther (item: any) {
|
||||||
item.checked = !item.checked
|
item.checked = !item.checked
|
||||||
handleCheckChange(item)
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleCheckChange (item: any) {
|
|
||||||
const index = currentPageFilesInfo.findIndex((i: any) => i.fileName === item.fileName)
|
|
||||||
if (item.checked) {
|
|
||||||
if (lastChoosed.value !== -1 && isShiftKeyPress.value) {
|
|
||||||
const [start, end] = [lastChoosed.value, index].sort((a, b) => a - b)
|
|
||||||
for (let i = start + 1; i <= end; i++) {
|
|
||||||
currentPageFilesInfo[i].checked = true
|
|
||||||
selectedItems.push(currentPageFilesInfo[i])
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
selectedItems.push(item)
|
|
||||||
}
|
|
||||||
lastChoosed.value = index
|
|
||||||
} else {
|
|
||||||
selectedItems.splice(selectedItems.findIndex((i: any) => i.fileName === item.fileName), 1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleFolderBatchDownload (item: any) {
|
async function handleFolderBatchDownload (item: any) {
|
||||||
@@ -2522,7 +2525,7 @@ async function handleBatchDownload () {
|
|||||||
maxDownloadFileCount: manageStore.config.settings.maxDownloadFileCount ? manageStore.config.settings.maxDownloadFileCount : 5,
|
maxDownloadFileCount: manageStore.config.settings.maxDownloadFileCount ? manageStore.config.settings.maxDownloadFileCount : 5,
|
||||||
fileArray: [] as any[]
|
fileArray: [] as any[]
|
||||||
}
|
}
|
||||||
selectedItems.forEach((item: any) => {
|
selectedItems.value.forEach((item: any) => {
|
||||||
if (!item.isDir) {
|
if (!item.isDir) {
|
||||||
param.fileArray.push({
|
param.fileArray.push({
|
||||||
alias: configMap.alias,
|
alias: configMap.alias,
|
||||||
@@ -2543,13 +2546,9 @@ async function handleBatchDownload () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleCheckAllChange () {
|
function handleCheckAllChange () {
|
||||||
const isSearchEmpty = searchText.value === ''
|
const allSelected = selectedItems.value.length === filterList.value.length
|
||||||
const itemsToCheck = isSearchEmpty ? currentPageFilesInfo : currentPageFilesInfo.filter((item: any) => item.match)
|
filterList.value.forEach((item: any) => {
|
||||||
const allSelected = selectedItems.length === itemsToCheck.length
|
item.checked = !allSelected
|
||||||
selectedItems.length = 0
|
|
||||||
currentPageFilesInfo.forEach((item: any) => {
|
|
||||||
item.checked = !allSelected && (isSearchEmpty || item.match)
|
|
||||||
if (item.checked) selectedItems.push(item)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2619,6 +2618,25 @@ function handleBatchRenameFile () {
|
|||||||
isShowBatchRenameDialog.value = true
|
isShowBatchRenameDialog.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const matchedFilesNumber = computed(() => {
|
||||||
|
if (!batchRenameMatch.value) {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
const matchedFiles = [] as any[]
|
||||||
|
currentPageFilesInfo.forEach((item: any) => {
|
||||||
|
if (isRenameIncludeExt.value) {
|
||||||
|
if (customStrMatch(item.fileName, batchRenameMatch.value) && !item.isDir) {
|
||||||
|
matchedFiles.push(item)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (customStrMatch(item.fileName.split('.')[0], batchRenameMatch.value) && !item.isDir) {
|
||||||
|
matchedFiles.push(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return matchedFiles.length
|
||||||
|
})
|
||||||
|
|
||||||
async function BatchRename () {
|
async function BatchRename () {
|
||||||
isShowBatchRenameDialog.value = false
|
isShowBatchRenameDialog.value = false
|
||||||
if (batchRenameMatch.value === '') {
|
if (batchRenameMatch.value === '') {
|
||||||
@@ -2745,25 +2763,25 @@ async function BatchRename () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleBatchCopyInfo () {
|
function handleBatchCopyInfo () {
|
||||||
if (selectedItems.length === 0) {
|
if (selectedItems.value.length === 0) {
|
||||||
ElMessage.warning($T('MANAGE_BUCKET_BATCH_COPY_INFO_ERROR_MSG'))
|
ElMessage.warning($T('MANAGE_BUCKET_BATCH_COPY_INFO_ERROR_MSG'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const result = {} as IStringKeyMap
|
const result = {} as IStringKeyMap
|
||||||
selectedItems.forEach((item: any) => {
|
selectedItems.value.forEach((item: any) => {
|
||||||
result[item.fileName] = item
|
result[item.fileName] = item
|
||||||
})
|
})
|
||||||
clipboard.writeText(JSON.stringify(result, null, 2))
|
clipboard.writeText(JSON.stringify(result, null, 2))
|
||||||
ElMessage.success(`${$T('MANAGE_BUCKET_BATCH_COPY_INFO_MSG_A')} ${selectedItems.length} ${$T('MANAGE_BUCKET_BATCH_COPY_INFO_MSG_B')}`)
|
ElMessage.success(`${$T('MANAGE_BUCKET_BATCH_COPY_INFO_MSG_A')} ${selectedItems.value.length} ${$T('MANAGE_BUCKET_BATCH_COPY_INFO_MSG_B')}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleBatchCopyLink (type: string) {
|
async function handleBatchCopyLink (type: string) {
|
||||||
if (!selectedItems.length) {
|
if (!selectedItems.value.length) {
|
||||||
ElMessage.warning($T('MANAGE_BUCKET_BATCH_COPY_URL_ERROR_MSG'))
|
ElMessage.warning($T('MANAGE_BUCKET_BATCH_COPY_URL_ERROR_MSG'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const result = [] as string[]
|
const result = [] as string[]
|
||||||
for (const item of selectedItems) {
|
for (const item of selectedItems.value) {
|
||||||
if (!item.isDir) {
|
if (!item.isDir) {
|
||||||
const preSignedUrl = type === 'preSignedUrl' ? await getPreSignedUrl(item) : null
|
const preSignedUrl = type === 'preSignedUrl' ? await getPreSignedUrl(item) : null
|
||||||
const url = await formatLink(preSignedUrl || item.url, item.fileName, type, manageStore.config.settings.customPasteFormat)
|
const url = await formatLink(preSignedUrl || item.url, item.fileName, type, manageStore.config.settings.customPasteFormat)
|
||||||
@@ -2830,15 +2848,9 @@ async function getBucketFileListBackStage () {
|
|||||||
})
|
})
|
||||||
const interval = setInterval(() => {
|
const interval = setInterval(() => {
|
||||||
const currentFileList = fileTransferStore.getFileTransferList()
|
const currentFileList = fileTransferStore.getFileTransferList()
|
||||||
currentFileList.sort((a: any, b: any) => {
|
currentPageFilesInfo.splice(0, currentPageFilesInfo.length, ...currentFileList)
|
||||||
return b.isDir - a.isDir || a.fileName.localeCompare(b.fileName)
|
const sortType = localStorage.getItem('sortType') as sortTypeList || 'init'
|
||||||
})
|
|
||||||
currentPageFilesInfo.length = 0
|
|
||||||
currentPageFilesInfo.push(...currentFileList)
|
|
||||||
const sortType = localStorage.getItem('sortType') as 'name' | 'size' | 'time' | 'ext' | 'check' | 'init' || ''
|
|
||||||
if (['name', 'time', 'size', 'ext'].includes(sortType as string)) {
|
|
||||||
sortFile(sortType)
|
sortFile(sortType)
|
||||||
}
|
|
||||||
const table = fileCacheDbInstance.table(currentPicBedName.value)
|
const table = fileCacheDbInstance.table(currentPicBedName.value)
|
||||||
table.put({
|
table.put({
|
||||||
key: getTableKeyOfDb(),
|
key: getTableKeyOfDb(),
|
||||||
@@ -2885,7 +2897,7 @@ async function getBucketFileList () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleBatchDeleteInfo () {
|
function handleBatchDeleteInfo () {
|
||||||
const confirmTitle = `${$T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_TITLE_A')} ${selectedItems.length} ${$T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_TITLE_B')}`
|
const confirmTitle = `${$T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_TITLE_A')} ${selectedItems.value.length} ${$T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_TITLE_B')}`
|
||||||
ElMessageBox.confirm(confirmTitle, $T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_MSG'), {
|
ElMessageBox.confirm(confirmTitle, $T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_MSG'), {
|
||||||
confirmButtonText: $T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_CONFIRM'),
|
confirmButtonText: $T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_CONFIRM'),
|
||||||
cancelButtonText: $T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_CANCEL'),
|
cancelButtonText: $T('MANAGE_BUCKET_BATCH_DELETE_CONFIRM_CANCEL'),
|
||||||
@@ -2893,7 +2905,7 @@ function handleBatchDeleteInfo () {
|
|||||||
center: true,
|
center: true,
|
||||||
draggable: true
|
draggable: true
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
const copiedSelectedItems = JSON.parse(JSON.stringify(selectedItems))
|
const copiedSelectedItems = JSON.parse(JSON.stringify(selectedItems.value))
|
||||||
let successCount = 0
|
let successCount = 0
|
||||||
let failCount = 0
|
let failCount = 0
|
||||||
|
|
||||||
@@ -2911,7 +2923,6 @@ function handleBatchDeleteInfo () {
|
|||||||
if (result) {
|
if (result) {
|
||||||
successCount++
|
successCount++
|
||||||
currentPageFilesInfo.splice(currentPageFilesInfo.findIndex((j: any) => j.key === item.key), 1)
|
currentPageFilesInfo.splice(currentPageFilesInfo.findIndex((j: any) => j.key === item.key), 1)
|
||||||
selectedItems.splice(selectedItems.findIndex((j: any) => j.key === item.key), 1)
|
|
||||||
if (!paging.value) {
|
if (!paging.value) {
|
||||||
const table = fileCacheDbInstance.table(currentPicBedName.value)
|
const table = fileCacheDbInstance.table(currentPicBedName.value)
|
||||||
table.where('key').equals(getTableKeyOfDb()).modify((l: any) => {
|
table.where('key').equals(getTableKeyOfDb()).modify((l: any) => {
|
||||||
@@ -2975,7 +2986,6 @@ function handleDeleteFile (item: any) {
|
|||||||
if (res) {
|
if (res) {
|
||||||
ElMessage.success($T('MANAGE_BUCKET_DELETE_SUCCESS'))
|
ElMessage.success($T('MANAGE_BUCKET_DELETE_SUCCESS'))
|
||||||
currentPageFilesInfo.splice(currentPageFilesInfo.findIndex((i: any) => i.key === item.key), 1)
|
currentPageFilesInfo.splice(currentPageFilesInfo.findIndex((i: any) => i.key === item.key), 1)
|
||||||
selectedItems.splice(selectedItems.findIndex((i: any) => i.key === item.key), 1)
|
|
||||||
if (!paging.value) {
|
if (!paging.value) {
|
||||||
const table = fileCacheDbInstance.table(currentPicBedName.value)
|
const table = fileCacheDbInstance.table(currentPicBedName.value)
|
||||||
table.where('key').equals(getTableKeyOfDb()).modify((l: any) => {
|
table.where('key').equals(getTableKeyOfDb()).modify((l: any) => {
|
||||||
@@ -2998,7 +3008,7 @@ function handleRenameFile (item: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function singleRename () {
|
function singleRename () {
|
||||||
const index = currentPageFilesInfo.findIndex((i: any) => i === itemToBeRenamed.value)
|
const index = filterList.value.findIndex((i: any) => i === itemToBeRenamed.value)
|
||||||
isShowBatchRenameDialog.value = false
|
isShowBatchRenameDialog.value = false
|
||||||
if (batchRenameMatch.value === '') {
|
if (batchRenameMatch.value === '') {
|
||||||
batchRenameMatch.value = '.+'
|
batchRenameMatch.value = '.+'
|
||||||
@@ -3380,13 +3390,11 @@ const columns: Column<any>[] = [
|
|||||||
dataKey: 'checked',
|
dataKey: 'checked',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: ({ rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<ElCheckbox
|
||||||
? <ElCheckbox
|
|
||||||
v-model={item.checked}
|
v-model={item.checked}
|
||||||
onChange={() => handleCheckChange(item)}
|
onChange={() => handleCheckChangeOther(item)}
|
||||||
>
|
>
|
||||||
</ElCheckbox>
|
</ElCheckbox>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3394,12 +3402,13 @@ const columns: Column<any>[] = [
|
|||||||
title: '',
|
title: '',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: ({ rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<ElPopover
|
||||||
? <ElPopover
|
|
||||||
trigger="hover"
|
trigger="hover"
|
||||||
width="200"
|
width="200"
|
||||||
disabled={!item.isImage}
|
disabled={!item.isImage}
|
||||||
placement="right"
|
placement="right"
|
||||||
|
persistent={false}
|
||||||
|
teleported={true}
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
reference: () => (
|
reference: () => (
|
||||||
@@ -3429,7 +3438,7 @@ const columns: Column<any>[] = [
|
|||||||
),
|
),
|
||||||
default: () => (
|
default: () => (
|
||||||
<ElImage
|
<ElImage
|
||||||
src={item.url}
|
src={item.isImage ? item.url : require(`./assets/icons/${getFileIconPath(item.fileName ?? '')}`) }
|
||||||
fit="contain"
|
fit="contain"
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
@@ -3447,7 +3456,6 @@ const columns: Column<any>[] = [
|
|||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</ElPopover>
|
</ElPopover>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3456,8 +3464,7 @@ const columns: Column<any>[] = [
|
|||||||
dataKey: 'fileName',
|
dataKey: 'fileName',
|
||||||
width: 300,
|
width: 300,
|
||||||
cellRenderer: ({ cellData: fileName, rowData: item }) => (
|
cellRenderer: ({ cellData: fileName, rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<div
|
||||||
? <div
|
|
||||||
onClick={() => handleClickFile(item)}
|
onClick={() => handleClickFile(item)}
|
||||||
>
|
>
|
||||||
<ElTooltip
|
<ElTooltip
|
||||||
@@ -3471,7 +3478,6 @@ const columns: Column<any>[] = [
|
|||||||
</div>
|
</div>
|
||||||
</ElTooltip>
|
</ElTooltip>
|
||||||
</div>
|
</div>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3479,8 +3485,7 @@ const columns: Column<any>[] = [
|
|||||||
title: '',
|
title: '',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: ({ rowData: item }) => (
|
||||||
item.match || !searchText.value
|
item.isDir || !isShowRenameFileIcon.value
|
||||||
? item.isDir || !isShowRenameFileIcon.value
|
|
||||||
? item.isDir
|
? item.isDir
|
||||||
? <ElIcon
|
? <ElIcon
|
||||||
size="15"
|
size="15"
|
||||||
@@ -3501,7 +3506,6 @@ const columns: Column<any>[] = [
|
|||||||
>
|
>
|
||||||
<Edit />
|
<Edit />
|
||||||
</ElIcon>
|
</ElIcon>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3509,14 +3513,15 @@ const columns: Column<any>[] = [
|
|||||||
title: '',
|
title: '',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: ({ rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<ElTooltip
|
||||||
? <ElTooltip
|
|
||||||
placement="top"
|
placement="top"
|
||||||
content={$T('MANAGE_BUCKET_FILE_COLUMN_COPY_URL')}
|
content={$T('MANAGE_BUCKET_FILE_COLUMN_COPY_URL')}
|
||||||
effect='light'
|
effect='light'
|
||||||
hide-after={150}
|
hide-after={150}
|
||||||
>
|
>
|
||||||
<ElDropdown>
|
<ElDropdown
|
||||||
|
teleported={true}
|
||||||
|
>
|
||||||
{{
|
{{
|
||||||
default: () => (
|
default: () => (
|
||||||
<ElIcon
|
<ElIcon
|
||||||
@@ -3576,7 +3581,6 @@ const columns: Column<any>[] = [
|
|||||||
}}
|
}}
|
||||||
</ElDropdown>
|
</ElDropdown>
|
||||||
</ElTooltip>
|
</ElTooltip>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3584,8 +3588,7 @@ const columns: Column<any>[] = [
|
|||||||
title: '',
|
title: '',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: ({ rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<ElTooltip
|
||||||
? <ElTooltip
|
|
||||||
placement="top"
|
placement="top"
|
||||||
content={$T('MANAGE_BUCKET_FILE_COLUMN_INFO')}
|
content={$T('MANAGE_BUCKET_FILE_COLUMN_INFO')}
|
||||||
effect='light'
|
effect='light'
|
||||||
@@ -3601,17 +3604,14 @@ const columns: Column<any>[] = [
|
|||||||
<Document />
|
<Document />
|
||||||
</ElIcon>
|
</ElIcon>
|
||||||
</ElTooltip>
|
</ElTooltip>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'placeholder',
|
key: 'placeholder',
|
||||||
title: '',
|
title: '',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: () => (
|
||||||
item.match || !searchText.value
|
<span></span>
|
||||||
? <span></span>
|
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3620,14 +3620,12 @@ const columns: Column<any>[] = [
|
|||||||
width: 100,
|
width: 100,
|
||||||
dataKey: 'fileSize',
|
dataKey: 'fileSize',
|
||||||
cellRenderer: ({ cellData: fileSize, rowData: item }) => (
|
cellRenderer: ({ cellData: fileSize, rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<div
|
||||||
? <div
|
|
||||||
style="font-size: 14px;color: #303133;font-family: Arial, Helvetica, sans-serif;height: 100%;display: flex;align-items: center;"
|
style="font-size: 14px;color: #303133;font-family: Arial, Helvetica, sans-serif;height: 100%;display: flex;align-items: center;"
|
||||||
onClick={() => handleCheckChangeOther(item)}
|
onClick={() => handleCheckChangeOther(item)}
|
||||||
>
|
>
|
||||||
{formatFileSize(fileSize)}
|
{formatFileSize(fileSize)}
|
||||||
</div>
|
</div>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3636,14 +3634,12 @@ const columns: Column<any>[] = [
|
|||||||
width: 200,
|
width: 200,
|
||||||
dataKey: 'formatedTime',
|
dataKey: 'formatedTime',
|
||||||
cellRenderer: ({ cellData: formatedTime, rowData: item }) => (
|
cellRenderer: ({ cellData: formatedTime, rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<div
|
||||||
? <div
|
|
||||||
style="font-size: 14px;color: #303133;font-family: Arial, Helvetica, sans-serif;height: 100%;display: flex;align-items: center;"
|
style="font-size: 14px;color: #303133;font-family: Arial, Helvetica, sans-serif;height: 100%;display: flex;align-items: center;"
|
||||||
onClick={() => handleCheckChangeOther(item)}
|
onClick={() => handleCheckChangeOther(item)}
|
||||||
>
|
>
|
||||||
{formatedTime}
|
{formatedTime}
|
||||||
</div>
|
</div>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3651,8 +3647,7 @@ const columns: Column<any>[] = [
|
|||||||
title: '',
|
title: '',
|
||||||
width: 30,
|
width: 30,
|
||||||
cellRenderer: ({ rowData: item }) => (
|
cellRenderer: ({ rowData: item }) => (
|
||||||
item.match || !searchText.value
|
<ElIcon
|
||||||
? <ElIcon
|
|
||||||
style="cursor: pointer;"
|
style="cursor: pointer;"
|
||||||
color="red"
|
color="red"
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@@ -3660,7 +3655,6 @@ const columns: Column<any>[] = [
|
|||||||
>
|
>
|
||||||
<DeleteFilled />
|
<DeleteFilled />
|
||||||
</ElIcon>
|
</ElIcon>
|
||||||
: <template></template>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,15 +6,16 @@
|
|||||||
stretch
|
stretch
|
||||||
style="height: calc(100vh - 50px);width: 100%;overflow-x: hidden;"
|
style="height: calc(100vh - 50px);width: 100%;overflow-x: hidden;"
|
||||||
tab-position="left"
|
tab-position="left"
|
||||||
|
lazy
|
||||||
@tab-change="getExistingConfig(activeName)"
|
@tab-change="getExistingConfig(activeName)"
|
||||||
>
|
>
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
name="login"
|
name="login"
|
||||||
:label="$T('MANAGE_LOGIN_PAGE_PANE_NAME')"
|
:label="$T('MANAGE_LOGIN_PAGE_PANE_NAME')"
|
||||||
style="width: 100%;overflow-y: scroll;height: calc(100vh - 50px);"
|
style="width: 100%;overflow-y: scroll;height: calc(100vh - 50px);"
|
||||||
|
lazy
|
||||||
>
|
>
|
||||||
<el-alert
|
<el-alert
|
||||||
v-loading="isLoading"
|
|
||||||
:title="$T('MANAGE_LOGIN_PAGE_PANE_DESC')"
|
:title="$T('MANAGE_LOGIN_PAGE_PANE_DESC')"
|
||||||
type="success"
|
type="success"
|
||||||
show-icon
|
show-icon
|
||||||
@@ -42,6 +43,8 @@
|
|||||||
placement="top"
|
placement="top"
|
||||||
:width="300"
|
:width="300"
|
||||||
trigger="click"
|
trigger="click"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-table
|
<el-table
|
||||||
:data="formObjToTableData(item.config)"
|
:data="formObjToTableData(item.config)"
|
||||||
@@ -75,6 +78,8 @@
|
|||||||
:content="item.alias"
|
:content="item.alias"
|
||||||
placement="top"
|
placement="top"
|
||||||
:disabled="isNeedToShorten(item.alias)"
|
:disabled="isNeedToShorten(item.alias)"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
{{ isNeedToShorten(item.alias) ? safeSliceF(item.alias, 17) + '...' : item.alias }}
|
{{ isNeedToShorten(item.alias) ? safeSliceF(item.alias, 17) + '...' : item.alias }}
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@@ -152,6 +157,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="supportedPicBedList[item.icon].configOptions[option].tooltip"
|
:content="supportedPicBedList[item.icon].configOptions[option].tooltip"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
color="#409EFF"
|
color="#409EFF"
|
||||||
@@ -169,8 +176,7 @@
|
|||||||
<el-switch
|
<el-switch
|
||||||
v-else-if="supportedPicBedList[item.icon].configOptions[option].type === 'boolean'"
|
v-else-if="supportedPicBedList[item.icon].configOptions[option].type === 'boolean'"
|
||||||
v-model="configResult[item.icon + '.' + option]"
|
v-model="configResult[item.icon + '.' + option]"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
<el-input
|
<el-input
|
||||||
v-else-if="supportedPicBedList[item.icon].configOptions[option].type === 'number'"
|
v-else-if="supportedPicBedList[item.icon].configOptions[option].type === 'number'"
|
||||||
@@ -181,6 +187,8 @@
|
|||||||
v-else-if="supportedPicBedList[item.icon].configOptions[option].type === 'select'"
|
v-else-if="supportedPicBedList[item.icon].configOptions[option].type === 'select'"
|
||||||
v-model="configResult[item.icon + '.' + option]"
|
v-model="configResult[item.icon + '.' + option]"
|
||||||
:placeholder="$T('MANAGE_LOGIN_PAGE_PANE_SELECT_PLACEHOLDER')"
|
:placeholder="$T('MANAGE_LOGIN_PAGE_PANE_SELECT_PLACEHOLDER')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="i in Object.entries(supportedPicBedList[item.icon].configOptions[option].selectOptions)"
|
v-for="i in Object.entries(supportedPicBedList[item.icon].configOptions[option].selectOptions)"
|
||||||
@@ -198,6 +206,7 @@
|
|||||||
style="margin-left: 10vw"
|
style="margin-left: 10vw"
|
||||||
placement="top"
|
placement="top"
|
||||||
:disabled="currentAliasList.length === 0"
|
:disabled="currentAliasList.length === 0"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
{{ $T('MANAGE_LOGIN_PAGE_PANE_IMPORT') }}
|
{{ $T('MANAGE_LOGIN_PAGE_PANE_IMPORT') }}
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
@@ -298,7 +307,6 @@ import { T as $T } from '@/i18n'
|
|||||||
const manageStore = useManageStore()
|
const manageStore = useManageStore()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const isLoading = ref(false)
|
|
||||||
const activeName = ref('login')
|
const activeName = ref('login')
|
||||||
|
|
||||||
const configResult:IStringKeyMap = reactive({})
|
const configResult:IStringKeyMap = reactive({})
|
||||||
@@ -820,9 +828,8 @@ async function transUpToManage (config: IUploaderConfigListItem, picBedName: str
|
|||||||
importedNewConfig[alias] = resultMap
|
importedNewConfig[alias] = resultMap
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(() => {
|
||||||
await getCurrentConfigList()
|
getCurrentConfigList()
|
||||||
getAllConfigAliasArray()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_MAIN_PAGE_NEW_BUCKET')"
|
:content="$T('MANAGE_MAIN_PAGE_NEW_BUCKET')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
popper-class="layout__menu__button__divider__tooltip"
|
popper-class="layout__menu__button__divider__tooltip"
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
@@ -143,6 +145,7 @@
|
|||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="picBedSwitchDialogVisible"
|
v-model="picBedSwitchDialogVisible"
|
||||||
top="30vh"
|
top="30vh"
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="choice-cos"
|
class="choice-cos"
|
||||||
@@ -195,6 +198,7 @@
|
|||||||
<el-drawer
|
<el-drawer
|
||||||
v-model="nweBucketDrawerVisible"
|
v-model="nweBucketDrawerVisible"
|
||||||
class="layout__addNewBucket"
|
class="layout__addNewBucket"
|
||||||
|
append-to-body
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form
|
||||||
label-position="top"
|
label-position="top"
|
||||||
@@ -240,6 +244,8 @@
|
|||||||
v-if="newBucketConfig[currentPicBedName].configOptions[option].component === 'select'"
|
v-if="newBucketConfig[currentPicBedName].configOptions[option].component === 'select'"
|
||||||
v-model="newBucketConfigResult[currentPicBedName+'.'+option]"
|
v-model="newBucketConfigResult[currentPicBedName+'.'+option]"
|
||||||
size="large"
|
size="large"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in Object.keys(newBucketConfig[currentPicBedName].configOptions[option].options)"
|
v-for="item in Object.keys(newBucketConfig[currentPicBedName].configOptions[option].options)"
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_AUTO_FRESH_TIPS')"
|
:content="$T('MANAGE_SETTING_AUTO_FRESH_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -43,9 +45,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isAutoRefresh"
|
v-model="form.isAutoRefresh"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsAutoRefreshChange"
|
@change="handleIsAutoRefreshChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -66,6 +66,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_CLEAR_CACHE_TIPS')"
|
:content="$T('MANAGE_SETTING_CLEAR_CACHE_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -78,6 +80,8 @@
|
|||||||
:confirm-button-text="$T('CONFIRM')"
|
:confirm-button-text="$T('CONFIRM')"
|
||||||
:cancel-button-text="$T('CANCEL')"
|
:cancel-button-text="$T('CANCEL')"
|
||||||
hide-icon
|
hide-icon
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@confirm="handleClearDb"
|
@confirm="handleClearDb"
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
@@ -101,9 +105,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isShowThumbnail"
|
v-model="form.isShowThumbnail"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsShowThumbnailChange"
|
@change="handleIsShowThumbnailChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -117,11 +119,9 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isShowList"
|
v-model="form.isShowList"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
:active-text="$T('MANAGE_SETTING_SHOW_FILE_LIST_TYPE_LIST')"
|
:active-text="$T('MANAGE_SETTING_SHOW_FILE_LIST_TYPE_LIST')"
|
||||||
:inactive-text="$T('MANAGE_SETTING_SHOW_FILE_LIST_TYPE_CARD')"
|
:inactive-text="$T('MANAGE_SETTING_SHOW_FILE_LIST_TYPE_CARD')"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="orange"
|
|
||||||
@change="handleIsShowListChange"
|
@change="handleIsShowListChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -135,6 +135,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_FORCE_CUSTOM_URL_HTTPS_TIPS')"
|
:content="$T('MANAGE_SETTING_FORCE_CUSTOM_URL_HTTPS_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -144,9 +146,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isForceCustomUrlHttps"
|
v-model="form.isForceCustomUrlHttps"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsForceCustomUrlHttpsChange"
|
@change="handleIsForceCustomUrlHttpsChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -160,6 +160,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_ENCODE_URL_WHEN_COPY_TIPS')"
|
:content="$T('MANAGE_SETTING_ENCODE_URL_WHEN_COPY_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -169,9 +171,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isEncodeUrl"
|
v-model="form.isEncodeUrl"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsEncodeUrlChange"
|
@change="handleIsEncodeUrlChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -185,6 +185,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_KEEP_FOLDER_STRUCTURE_UPLOAD_TIPS')"
|
:content="$T('MANAGE_SETTING_KEEP_FOLDER_STRUCTURE_UPLOAD_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -194,9 +196,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isUploadKeepDirStructure"
|
v-model="form.isUploadKeepDirStructure"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsUploadKeepDirStructureChange"
|
@change="handleIsUploadKeepDirStructureChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -212,6 +212,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_KEEP_FOLDER_STRUCTURE_DOWNLOAD_FILE_TIPS')"
|
:content="$T('MANAGE_SETTING_KEEP_FOLDER_STRUCTURE_DOWNLOAD_FILE_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -221,9 +223,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isDownloadFileKeepDirStructure"
|
v-model="form.isDownloadFileKeepDirStructure"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsDownloadFileKeepDirStructureChange"
|
@change="handleIsDownloadFileKeepDirStructureChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -239,6 +239,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_KEEP_FOLDER_STRUCTURE_DOWNLOAD_FILE_TIPS')"
|
:content="$T('MANAGE_SETTING_KEEP_FOLDER_STRUCTURE_DOWNLOAD_FILE_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -248,9 +250,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isDownloadFolderKeepDirStructure"
|
v-model="form.isDownloadFolderKeepDirStructure"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleIsDownloadFolderKeepDirStructureChange"
|
@change="handleIsDownloadFolderKeepDirStructureChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -264,6 +264,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_MAX_DOWNLOAD_FILE_SIZE_TIPS')"
|
:content="$T('MANAGE_SETTING_MAX_DOWNLOAD_FILE_SIZE_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -290,6 +292,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_SEARCH_IGNORE_CASE_TIPS')"
|
:content="$T('MANAGE_SETTING_SEARCH_IGNORE_CASE_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -299,9 +303,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.isIgnoreCase"
|
v-model="form.isIgnoreCase"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleisIgnoreCaseChange"
|
@change="handleisIgnoreCaseChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -315,6 +317,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_TIMESTAMP_RENAME_TIPS')"
|
:content="$T('MANAGE_SETTING_TIMESTAMP_RENAME_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -324,9 +328,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.timestampRename"
|
v-model="form.timestampRename"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleTimestampRenameChange"
|
@change="handleTimestampRenameChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -340,6 +342,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_RANDOM_STRING_RENAME_TIPS')"
|
:content="$T('MANAGE_SETTING_RANDOM_STRING_RENAME_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -349,9 +353,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.randomStringRename"
|
v-model="form.randomStringRename"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleRandomStringRenameChange"
|
@change="handleRandomStringRenameChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -365,6 +367,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_SETTING_CUSTOM_RENAME_TIPS')"
|
:content="$T('MANAGE_SETTING_CUSTOM_RENAME_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<InfoFilled />
|
<InfoFilled />
|
||||||
@@ -374,9 +378,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.customRename"
|
v-model="form.customRename"
|
||||||
style="position:absolute;right: 0;"
|
style="position:absolute;right: 0;--el-switch-on-color: #13ce66;--el-switch-off-color: #ff4949;"
|
||||||
active-color="#13ce66"
|
|
||||||
inactive-color="#ff4949"
|
|
||||||
@change="handleCustomRenameChange"
|
@change="handleCustomRenameChange"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|||||||
@@ -42,6 +42,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:placeholder="$T('CHOOSE_SHOWED_PICBED')"
|
:placeholder="$T('CHOOSE_SHOWED_PICBED')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in picBed"
|
v-for="item in picBed"
|
||||||
@@ -60,6 +62,7 @@
|
|||||||
start-placeholder="Start date"
|
start-placeholder="Start date"
|
||||||
end-placeholder="End date"
|
end-placeholder="End date"
|
||||||
size="small"
|
size="small"
|
||||||
|
teleported
|
||||||
/>
|
/>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1">
|
<el-col :span="1">
|
||||||
@@ -75,6 +78,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:placeholder="$T('CHOOSE_PASTE_FORMAT')"
|
:placeholder="$T('CHOOSE_PASTE_FORMAT')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handlePasteStyleChange"
|
@change="handlePasteStyleChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -91,6 +96,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
placeholder="Choose"
|
placeholder="Choose"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handleUseShortUrlChange"
|
@change="handleUseShortUrlChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -102,7 +109,9 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="2">
|
<el-col :span="2">
|
||||||
<el-dropdown>
|
<el-dropdown
|
||||||
|
teleported
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -328,6 +337,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('MANAGE_BUCKET_RENAME_FILE_INPUT_A_TIPS')"
|
:content="$T('MANAGE_BUCKET_RENAME_FILE_INPUT_A_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
color="#409EFF"
|
color="#409EFF"
|
||||||
@@ -352,6 +363,8 @@
|
|||||||
effect="light"
|
effect="light"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="280"
|
width="280"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-icon
|
<el-icon
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
stretch
|
stretch
|
||||||
style="height: calc(100vh - 50px);width: 100%;overflow-x: hidden;top: 50px;position: absolute;"
|
style="height: calc(100vh - 50px);width: 100%;overflow-x: hidden;top: 50px;position: absolute;"
|
||||||
tab-position="left"
|
tab-position="left"
|
||||||
|
lazy
|
||||||
>
|
>
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
name="system"
|
name="system"
|
||||||
@@ -43,6 +44,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 50%"
|
style="width: 50%"
|
||||||
:placeholder="$T('SETTINGS_CHOOSE_LANGUAGE')"
|
:placeholder="$T('SETTINGS_CHOOSE_LANGUAGE')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handleLanguageChange"
|
@change="handleLanguageChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -61,6 +64,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 50%"
|
style="width: 50%"
|
||||||
:placeholder="$T('SETTINGS_START_MODE')"
|
:placeholder="$T('SETTINGS_START_MODE')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handleStartModeChange"
|
@change="handleStartModeChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -299,6 +304,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 50%"
|
style="width: 50%"
|
||||||
:placeholder="$T('SETTINGS_AUTO_IMPORT_SELECT_PICBED')"
|
:placeholder="$T('SETTINGS_AUTO_IMPORT_SELECT_PICBED')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handleAutoImportPicBedChange"
|
@change="handleAutoImportPicBedChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -434,6 +441,8 @@
|
|||||||
size="small"
|
size="small"
|
||||||
style="width: 50%"
|
style="width: 50%"
|
||||||
:placeholder="$T('SETTINGS_SHORT_URL_SERVER')"
|
:placeholder="$T('SETTINGS_SHORT_URL_SERVER')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@change="handleShortUrlServerChange"
|
@change="handleShortUrlServerChange"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -487,6 +496,8 @@
|
|||||||
effect="dark"
|
effect="dark"
|
||||||
:content="$T('BUILTIN_CLIPBOARD_TIPS')"
|
:content="$T('BUILTIN_CLIPBOARD_TIPS')"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon style="margin-left: 4px">
|
<el-icon style="margin-left: 4px">
|
||||||
<QuestionFilled />
|
<QuestionFilled />
|
||||||
@@ -864,6 +875,8 @@
|
|||||||
effect="light"
|
effect="light"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="350"
|
width="350"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-icon
|
<el-icon
|
||||||
@@ -958,6 +971,8 @@
|
|||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(value, key) of logLevel"
|
v-for="(value, key) of logLevel"
|
||||||
@@ -1080,6 +1095,8 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="sync.type"
|
v-model="sync.type"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="typeitem of syncType"
|
v-for="typeitem of syncType"
|
||||||
@@ -1248,8 +1265,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="waterMarkForm.isAddWatermark"
|
v-model="waterMarkForm.isAddWatermark"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1271,8 +1287,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="waterMarkForm.isFullScreenWatermark"
|
v-model="waterMarkForm.isFullScreenWatermark"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1343,8 +1358,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isRemoveExif"
|
v-model="compressForm.isRemoveExif"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1362,15 +1376,18 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isConvert"
|
v-model="compressForm.isConvert"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-show="compressForm.isConvert"
|
v-show="compressForm.isConvert"
|
||||||
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT')"
|
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT')"
|
||||||
>
|
>
|
||||||
<el-select v-model="compressForm.convertFormat">
|
<el-select
|
||||||
|
v-model="compressForm.convertFormat"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in availableFormat"
|
v-for="item in availableFormat"
|
||||||
:key="item"
|
:key="item"
|
||||||
@@ -1384,8 +1401,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isFlip"
|
v-model="compressForm.isFlip"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1393,8 +1409,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isFlop"
|
v-model="compressForm.isFlop"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1402,8 +1417,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isReSize"
|
v-model="compressForm.isReSize"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1430,8 +1444,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.skipReSizeOfSmallImg"
|
v-model="compressForm.skipReSizeOfSmallImg"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1440,8 +1453,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.skipReSizeOfSmallImg"
|
v-model="compressForm.skipReSizeOfSmallImg"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1449,8 +1461,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isReSizeByPercent"
|
v-model="compressForm.isReSizeByPercent"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -1467,8 +1478,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isRotate"
|
v-model="compressForm.isRotate"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
<el-tooltip
|
<el-tooltip
|
||||||
:content="pluginListToolTip"
|
:content="pluginListToolTip"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="el-icon-goods"
|
class="el-icon-goods"
|
||||||
@@ -16,6 +18,8 @@
|
|||||||
<el-tooltip
|
<el-tooltip
|
||||||
:content="updateAllToolTip"
|
:content="updateAllToolTip"
|
||||||
placement="left"
|
placement="left"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="el-icon-update"
|
class="el-icon-update"
|
||||||
@@ -30,6 +34,8 @@
|
|||||||
>
|
>
|
||||||
<el-icon
|
<el-icon
|
||||||
class="el-icon-download"
|
class="el-icon-download"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
@click="handleImportLocalPlugin"
|
@click="handleImportLocalPlugin"
|
||||||
>
|
>
|
||||||
<Download />
|
<Download />
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
placement="top"
|
placement="top"
|
||||||
effect="light"
|
effect="light"
|
||||||
:content="$T('UPLOAD_VIEW_HINT')"
|
:content="$T('UPLOAD_VIEW_HINT')"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
id="upload-view-title"
|
id="upload-view-title"
|
||||||
@@ -170,8 +172,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="waterMarkForm.isAddWatermark"
|
v-model="waterMarkForm.isAddWatermark"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -193,8 +194,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="waterMarkForm.isFullScreenWatermark"
|
v-model="waterMarkForm.isFullScreenWatermark"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -265,8 +265,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isRemoveExif"
|
v-model="compressForm.isRemoveExif"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -284,15 +283,18 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isConvert"
|
v-model="compressForm.isConvert"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-show="compressForm.isConvert"
|
v-show="compressForm.isConvert"
|
||||||
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT')"
|
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT')"
|
||||||
>
|
>
|
||||||
<el-select v-model="compressForm.convertFormat">
|
<el-select
|
||||||
|
v-model="compressForm.convertFormat"
|
||||||
|
:persistent="false"
|
||||||
|
teleported
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in availableFormat"
|
v-for="item in availableFormat"
|
||||||
:key="item"
|
:key="item"
|
||||||
@@ -306,8 +308,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isFlip"
|
v-model="compressForm.isFlip"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -315,8 +316,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isFlop"
|
v-model="compressForm.isFlop"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -324,8 +324,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isReSize"
|
v-model="compressForm.isReSize"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -352,8 +351,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.skipReSizeOfSmallImg"
|
v-model="compressForm.skipReSizeOfSmallImg"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -362,8 +360,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.skipReSizeOfSmallImg"
|
v-model="compressForm.skipReSizeOfSmallImg"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -371,8 +368,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isReSizeByPercent"
|
v-model="compressForm.isReSizeByPercent"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
@@ -389,8 +385,7 @@
|
|||||||
>
|
>
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="compressForm.isRotate"
|
v-model="compressForm.isRotate"
|
||||||
active-color="#13ce66"
|
style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949;"
|
||||||
inactive-color="#ff4949"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
|||||||
@@ -68,6 +68,7 @@
|
|||||||
placement="top"
|
placement="top"
|
||||||
style="color: #fff; font-size: 12px;width: 100%;"
|
style="color: #fff; font-size: 12px;width: 100%;"
|
||||||
:disabled="picBedConfigList.length === 0"
|
:disabled="picBedConfigList.length === 0"
|
||||||
|
teleported
|
||||||
>
|
>
|
||||||
{{ $T('MANAGE_LOGIN_PAGE_PANE_IMPORT') }}
|
{{ $T('MANAGE_LOGIN_PAGE_PANE_IMPORT') }}
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
|
|||||||
Vendored
+1
@@ -683,6 +683,7 @@ interface ILocales {
|
|||||||
MANAGE_BUCKET_SORT_TYPE: string
|
MANAGE_BUCKET_SORT_TYPE: string
|
||||||
MANAGE_BUCKET_SORT_TIME: string
|
MANAGE_BUCKET_SORT_TIME: string
|
||||||
MANAGE_BUCKET_SORT_SELECTED: string
|
MANAGE_BUCKET_SORT_SELECTED: string
|
||||||
|
MANAGE_BUCKET_INIT: string
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: string
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_TITLE: string
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: string
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CONFIRM: string
|
||||||
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: string
|
MANAGE_BUCKET_URL_UPLOAD_DIALOG_CANCEL: string
|
||||||
|
|||||||
Reference in New Issue
Block a user