From be95e3a95584449c3629cac89fad82eeddd8a0d2 Mon Sep 17 00:00:00 2001 From: zyronon Date: Wed, 22 Nov 2023 12:30:37 +0800 Subject: [PATCH] save --- components.d.ts | 12 - src/App.vue | 2 +- src/pages/dict/index.vue | 923 ++++++++++++++++++++++++++++++++++- src/pages/practice/index.vue | 1 + 4 files changed, 916 insertions(+), 22 deletions(-) diff --git a/components.d.ts b/components.d.ts index 51d9ae36..3aef1ad7 100644 --- a/components.d.ts +++ b/components.d.ts @@ -43,31 +43,19 @@ declare module 'vue' { Empty: typeof import('./src/components/Empty.vue')['default'] FeedbackModal: typeof import('./src/components/toolbar/FeedbackModal.vue')['default'] Fireworks: typeof import('./src/components/Fireworks.vue')['default'] - Footer: typeof import('./src/pages/practice/Footer.vue')['default'] IconWrapper: typeof import('./src/components/IconWrapper.vue')['default'] Input: typeof import('./src/components/Input.vue')['default'] List: typeof import('./src/components/list/List.vue')['default'] ListItem: typeof import('./src/components/list/ListItem.vue')['default'] MiniDialog: typeof import('./src/components/dialog/MiniDialog.vue')['default'] - Options: typeof import('./src/pages/practice/Options.vue')['default'] - Panel: typeof import('./src/pages/practice/Panel.vue')['default'] PopConfirm: typeof import('./src/components/PopConfirm.vue')['default'] - Practice: typeof import('./src/pages/practice/index.vue')['default'] - PracticeArticle: typeof import('./src/pages/practice/practice-article/index.vue')['default'] - PracticeWord: typeof import('./src/pages/practice/practice-word/index.vue')['default'] RepeatSetting: typeof import('./src/components/toolbar/RepeatSetting.vue')['default'] Ring: typeof import('./src/components/Ring.vue')['default'] - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] SettingDialog: typeof import('./src/components/dialog/SettingDialog.vue')['default'] Slide: typeof import('./src/components/Slide.vue')['default'] - Statistics: typeof import('./src/pages/practice/Statistics.vue')['default'] Toolbar: typeof import('./src/components/toolbar/index.vue')['default'] Tooltip: typeof import('./src/components/Tooltip.vue')['default'] TranslateSetting: typeof import('./src/components/toolbar/TranslateSetting.vue')['default'] - Typing: typeof import('./src/pages/practice/practice-word/Typing.vue')['default'] - TypingArticle: typeof import('./src/pages/practice/practice-article/TypingArticle.vue')['default'] - TypingWord: typeof import('./src/pages/practice/practice-word/TypingWord.vue')['default'] VirtualWordList: typeof import('./src/components/list/VirtualWordList.vue')['default'] VolumeIcon: typeof import('./src/components/icon/VolumeIcon.vue')['default'] VolumeSetting: typeof import('./src/components/toolbar/VolumeSetting.vue')['default'] diff --git a/src/App.vue b/src/App.vue index 5a7ef85a..2663972f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -64,7 +64,7 @@ onMounted(() => { diff --git a/src/pages/dict/index.vue b/src/pages/dict/index.vue index ebd85164..2e416146 100644 --- a/src/pages/dict/index.vue +++ b/src/pages/dict/index.vue @@ -1,20 +1,925 @@ \ No newline at end of file + +.dict-page { + width: 50%; + height: 100%; + $header-height: 60rem; + padding: var(--space); + padding-top: 0; + box-sizing: border-box; + + header { + display: flex; + justify-content: space-between; + align-items: center; + height: $header-height; + + .tabs { + display: flex; + gap: 20rem; + + .tab { + color: var(--color-font-1); + cursor: pointer; + padding: 10rem; + padding-bottom: 5rem; + transition: all .5s; + border-bottom: 2px solid transparent; + display: flex; + align-items: center; + gap: 6rem; + + &.active { + border-bottom: 2px solid $main; + } + + img { + height: 30rem; + } + } + } + } + + .page-content { + display: flex; + height: calc(100% - $header-height); + + .dict-list-wrapper { + flex: 1; + overflow: auto; + height: 100%; + padding-right: var(--space); + + .translate { + display: flex; + align-items: center; + color: var(--color-font-1); + margin-bottom: 30rem; + + & > span { + font-size: 22rem; + } + } + } + } +} + +.dict-detail-page { + width: 50%; + height: 100%; + $header-height: 60rem; + box-sizing: border-box; + display: flex; + flex-direction: column; + + header { + cursor: pointer; + width: 100%; + display: flex; + box-sizing: border-box; + height: $header-height; + align-items: center; + justify-content: space-between; + color: var(--color-font-3); + padding: 0 var(--space); + + .left { + display: flex; + gap: 10rem; + align-items: center; + } + } + + .detail { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + + .page-content { + flex: 1; + overflow: hidden; + display: flex; + position: relative; + + .left-column { + flex: 1; + display: flex; + flex-direction: column; + gap: 10rem; + min-height: 100rem; + position: relative; + color: var(--color-font-1); + font-size: 14rem; + position: relative; + } + + .center-column { + flex: 1; + background: white; + border-radius: 10rem; + background: var(--color-second-bg); + color: var(--color-font-1); + + .scroll { + height: calc(100% - 45rem); + } + } + + .right-column { + flex: 1; + border-radius: 10rem; + background: var(--color-second-bg); + color: var(--color-font-1); + display: flex; + flex-direction: column; + + + } + } + } + + .edit-dict { + flex: 1; + width: 100%; + display: flex; + justify-content: center; + + .wrapper { + width: 50%; + } + + .el-select { + width: 100%; + } + } +} + + diff --git a/src/pages/practice/index.vue b/src/pages/practice/index.vue index c15000ad..5491bd44 100644 --- a/src/pages/practice/index.vue +++ b/src/pages/practice/index.vue @@ -171,6 +171,7 @@ onUnmounted(() => {