🔨 Refactor: setting-page ui

This commit is contained in:
PiEgg
2022-02-20 17:37:40 +08:00
parent 27628da458
commit 7f6d58f992
10 changed files with 68 additions and 36 deletions
+1 -1
View File
@@ -35,7 +35,7 @@
] ]
}, },
"dependencies": { "dependencies": {
"@picgo/i18n": "^0.0.4", "@picgo/i18n": "^1.0.0",
"@picgo/store": "^1.0.3", "@picgo/store": "^1.0.3",
"axios": "^0.19.0", "axios": "^0.19.0",
"core-js": "^3.3.2", "core-js": "^3.3.2",
+1 -1
View File
@@ -177,7 +177,7 @@ export default {
}) })
ipcMain.on(SHOW_MAIN_PAGE_MENU, () => { ipcMain.on(SHOW_MAIN_PAGE_MENU, () => {
const window = windowManager.get(IWindowList.SETTING_WINDOW)! const window = windowManager.get(IWindowList.SETTING_WINDOW)!
const menu = buildMainPageMenu() const menu = buildMainPageMenu(window)
menu.popup({ menu.popup({
window window
}) })
+10 -5
View File
@@ -9,7 +9,7 @@ import {
import { privacyManager } from '~/main/utils/privacyManager' import { privacyManager } from '~/main/utils/privacyManager'
import pkg from 'root/package.json' import pkg from 'root/package.json'
import GuiApi from 'apis/gui' import GuiApi from 'apis/gui'
import { PICGO_CONFIG_PLUGIN, PICGO_HANDLE_PLUGIN_ING, PICGO_TOGGLE_PLUGIN } from '~/universal/events/constants' import { PICGO_CONFIG_PLUGIN, PICGO_HANDLE_PLUGIN_ING, PICGO_TOGGLE_PLUGIN, SHOW_MAIN_PAGE_DONATION, SHOW_MAIN_PAGE_QRCODE } from '~/universal/events/constants'
import picgoCoreIPC from '~/main/events/picgoCoreIPC' import picgoCoreIPC from '~/main/events/picgoCoreIPC'
import { PicGo as PicGoCore } from 'picgo' import { PicGo as PicGoCore } from 'picgo'
import { T } from '~/universal/i18n' import { T } from '~/universal/i18n'
@@ -87,7 +87,7 @@ const buildMiniPageMenu = () => {
return Menu.buildFromTemplate(template) return Menu.buildFromTemplate(template)
} }
const buildMainPageMenu = () => { const buildMainPageMenu = (win: BrowserWindow) => {
const template = [ const template = [
{ {
label: T('ABOUT'), label: T('ABOUT'),
@@ -102,14 +102,19 @@ const buildMainPageMenu = () => {
{ {
label: T('SPONSOR_PICGO'), label: T('SPONSOR_PICGO'),
click () { click () {
// TODO: show donation win?.webContents?.send(SHOW_MAIN_PAGE_DONATION)
} }
}, },
{ {
label: T('SHOW_PICBED_QRCODE'), label: T('SHOW_PICBED_QRCODE'),
click () { click () {
// TODO: qrcode win?.webContents?.send(SHOW_MAIN_PAGE_QRCODE)
// _this.qrcodeVisible = true }
},
{
label: T('SHOW_DEVTOOLS'),
click () {
win?.webContents?.openDevTools()
} }
}, },
{ {
+9 -1
View File
@@ -158,7 +158,9 @@ import InputBoxDialog from '@/components/InputBoxDialog.vue'
import { import {
MINIMIZE_WINDOW, MINIMIZE_WINDOW,
CLOSE_WINDOW, CLOSE_WINDOW,
SHOW_MAIN_PAGE_MENU SHOW_MAIN_PAGE_MENU,
SHOW_MAIN_PAGE_QRCODE,
SHOW_MAIN_PAGE_DONATION
} from '~/universal/events/constants' } from '~/universal/events/constants'
@Component({ @Component({
name: 'main-page', name: 'main-page',
@@ -184,6 +186,12 @@ export default class extends Vue {
ipcRenderer.send('getPicBeds') ipcRenderer.send('getPicBeds')
ipcRenderer.on('getPicBeds', this.getPicBeds) ipcRenderer.on('getPicBeds', this.getPicBeds)
this.handleGetPicPeds() this.handleGetPicPeds()
ipcRenderer.on(SHOW_MAIN_PAGE_QRCODE, () => {
this.qrcodeVisible = true
})
ipcRenderer.on(SHOW_MAIN_PAGE_DONATION, () => {
this.visible = true
})
} }
@Watch('choosedPicBedForQRCode') @Watch('choosedPicBedForQRCode')
+19 -3
View File
@@ -4,11 +4,11 @@
{{ $T('PICGO_SETTINGS') }} - <i class="el-icon-document" @click="goConfigPage"></i> {{ $T('PICGO_SETTINGS') }} - <i class="el-icon-document" @click="goConfigPage"></i>
</div> </div>
<el-row class="setting-list"> <el-row class="setting-list">
<el-col :span="16" :offset="4"> <el-col :span="20" :offset="2">
<el-row> <el-row>
<el-form <el-form
label-width="160px" label-position="left"
label-position="right" label-width="10"
size="small" size="small"
> >
<el-form-item <el-form-item
@@ -139,6 +139,7 @@
></el-switch> ></el-switch>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:style="{ marginRight: '-64px' }"
:label="$T('CHOOSE_SHOWED_PICBED')" :label="$T('CHOOSE_SHOWED_PICBED')"
> >
<el-checkbox-group <el-checkbox-group
@@ -756,10 +757,25 @@ export default class extends Vue {
overflow-x hidden overflow-x hidden
.setting-list .setting-list
.el-form .el-form
&-item
display: flex
justify-content space-between
padding-top 8px
padding-bottom 8px
border-bottom 1px solid darken(#eee, 50%)
margin-bottom 0
&:last-child
border-bottom none
&::after
display none
&::before
display none
label label
line-height 32px line-height 32px
padding-bottom 0 padding-bottom 0
color #eee color #eee
flex-basis: 50%
flex-shrink: 0
.el-button-group .el-button-group
width 100% width 100%
.el-button .el-button
+7
View File
@@ -6,8 +6,11 @@
<el-row> <el-row>
<el-col :span="20" :offset="2"> <el-col :span="20" :offset="2">
<el-table <el-table
class="shortcut-page-table-border"
:data="list" :data="list"
size="mini" size="mini"
header-cell-class-name="shortcut-page-table-border"
cell-class-name="shortcut-page-table-border"
> >
<el-table-column <el-table-column
:label="$T('SHORTCUT_NAME')" :label="$T('SHORTCUT_NAME')"
@@ -177,6 +180,8 @@ export default class extends Vue {
</script> </script>
<style lang='stylus'> <style lang='stylus'>
#shortcut-page #shortcut-page
.shortcut-page-table-border
border-color darken(#eee, 50%)
.el-dialog__body .el-dialog__body
padding 10px 20px padding 10px 20px
.el-form-item .el-form-item
@@ -189,6 +194,8 @@ export default class extends Vue {
.el-table .el-table
background-color: transparent background-color: transparent
color #ddd color #ddd
&::before
background-color darken(#eee, 50%)
thead thead
color #bbb color #bbb
th,tr th,tr
+2
View File
@@ -29,3 +29,5 @@ export const PICGO_TOGGLE_PLUGIN = 'PICGO_TOGGLE_PLUGIN'
export const PASTE_TEXT = 'PASTE_TEXT' export const PASTE_TEXT = 'PASTE_TEXT'
export const SET_MINI_WINDOW_POS = 'SET_MINI_WINDOW_POS' export const SET_MINI_WINDOW_POS = 'SET_MINI_WINDOW_POS'
export const RENAME_FILE_NAME = 'RENAME_FILE_NAME' export const RENAME_FILE_NAME = 'RENAME_FILE_NAME'
export const SHOW_MAIN_PAGE_QRCODE = 'SHOW_MAIN_PAGE_QRCODE'
export const SHOW_MAIN_PAGE_DONATION = 'SHOW_MAIN_PAGE_DONATION'
+3 -11
View File
@@ -5,23 +5,15 @@ const languageList = {
'zh-CN': ZH_CN 'zh-CN': ZH_CN
} }
const lowercaseKeys = (obj: any) => const objectAdapter = new ObjectAdapter(languageList)
Object.keys(obj).reduce((acc: any, key: string) => {
acc[key.toLowerCase()] = obj[key]
return acc
}, {})
// FIXME: @picgo/i18n no lowecase
const objectAdapter = new ObjectAdapter(lowercaseKeys(languageList))
const i18n = new I18n({ const i18n = new I18n({
adapter: objectAdapter, adapter: objectAdapter,
defaultLanguage: 'zh-cn' defaultLanguage: 'zh-CN'
}) })
// FIXME: @picgo/i18n args should be optional
const T = (key: ILocalesKey, args: IStringKeyMap = {}): string => { const T = (key: ILocalesKey, args: IStringKeyMap = {}): string => {
return i18n.translate(key, args)! return i18n.translate(key, args) || ''
} }
export { i18n, T } export { i18n, T }
+1
View File
@@ -23,6 +23,7 @@ export const ZH_CN = {
CONFIG_THING: '配置${c}', CONFIG_THING: '配置${c}',
FIND_NEW_VERSION: '发现新版本', FIND_NEW_VERSION: '发现新版本',
NO_MORE_NOTICE: '以后不再提醒', NO_MORE_NOTICE: '以后不再提醒',
SHOW_DEVTOOLS: '打开开发者工具',
// ---renderer i18n--- // ---renderer i18n---
CHOOSE_YOUR_DEFAULT_PICBED: '选择 ${d} 作为你默认图床:', CHOOSE_YOUR_DEFAULT_PICBED: '选择 ${d} 作为你默认图床:',
+15 -14
View File
@@ -1324,12 +1324,13 @@
husky "^1.3.1" husky "^1.3.1"
ora "^3.4.0" ora "^3.4.0"
"@picgo/i18n@^0.0.4": "@picgo/i18n@^1.0.0":
version "0.0.4" version "1.0.0"
resolved "https://registry.npmmirror.com/@picgo/i18n/download/@picgo/i18n-0.0.4.tgz#018b0d0999e1d11d6a6f911ee960f7065a9e33a1" resolved "https://registry.npmmirror.com/@picgo/i18n/-/i18n-1.0.0.tgz#a4d9d08624b55c3980f4f7628794fac47231da09"
integrity sha1-AYsNCZnh0R1qb5Ee6WD3BlqeM6E= integrity sha512-D0fqwox9AZ1pnvgFqBKQe+16U08FkPLnUW1wQSBEdn+EvI48IC3jIWDTZd1MSQzXeODnh/w4eAiUyARrf2Hzig==
dependencies: dependencies:
chalk "^4.0.0" chalk "4.1.2"
tslib "^2.3.1"
"@picgo/store@^1.0.3": "@picgo/store@^1.0.3":
version "1.0.3" version "1.0.3"
@@ -3432,6 +3433,14 @@ chalk@2.3.1:
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
supports-color "^5.2.0" supports-color "^5.2.0"
chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chalk@^1.1.3: chalk@^1.1.3:
version "1.1.3" version "1.1.3"
resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -3460,14 +3469,6 @@ chalk@^3.0.0:
ansi-styles "^4.1.0" ansi-styles "^4.1.0"
supports-color "^7.1.0" supports-color "^7.1.0"
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chardet@^0.7.0: chardet@^0.7.0:
version "0.7.0" version "0.7.0"
resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -12297,7 +12298,7 @@ tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.1, tslib@^2.1.0: tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1:
version "2.3.1" version "2.3.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==