Merge remote-tracking branch 'origin/master'
# Conflicts: # components.d.ts
This commit is contained in:
Vendored
-4
@@ -14,7 +14,6 @@ declare module 'vue' {
|
||||
BaseButton: typeof import('./src/components/BaseButton.vue')['default']
|
||||
BaseIcon: typeof import('./src/components/BaseIcon.vue')['default']
|
||||
BaseList: typeof import('./src/components/list/BaseList.vue')['default']
|
||||
ChapterDetail: typeof import('./src/components/ChapterDetail.vue')['default']
|
||||
ChapterName: typeof import('./src/components/toolbar/ChapterName.vue')['default']
|
||||
Close: typeof import('./src/components/icon/Close.vue')['default']
|
||||
Dialog: typeof import('./src/components/dialog/Dialog.vue')['default']
|
||||
@@ -47,7 +46,6 @@ declare module 'vue' {
|
||||
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']
|
||||
Logo: typeof import('./src/components/Logo.vue')['default']
|
||||
MiniDialog: typeof import('./src/components/dialog/MiniDialog.vue')['default']
|
||||
PopConfirm: typeof import('./src/components/PopConfirm.vue')['default']
|
||||
@@ -63,9 +61,7 @@ declare module 'vue' {
|
||||
TranslateSetting: typeof import('./src/components/toolbar/TranslateSetting.vue')['default']
|
||||
VolumeIcon: typeof import('./src/components/icon/VolumeIcon.vue')['default']
|
||||
VolumeSetting: typeof import('./src/components/toolbar/VolumeSetting.vue')['default']
|
||||
WordItem: typeof import('./src/components/list/WordItem.vue')['default']
|
||||
WordList: typeof import('./src/components/list/WordList.vue')['default']
|
||||
WordList2: typeof import('./src/components/list/WordList2.vue')['default']
|
||||
WordListDialog: typeof import('./src/components/dialog/WordListDialog.vue')['default']
|
||||
}
|
||||
export interface ComponentCustomProperties {
|
||||
|
||||
@@ -36,8 +36,6 @@
|
||||
"vue-activity-calendar": "^1.2.2",
|
||||
"vue-i18n": "9",
|
||||
"vue-router": "4",
|
||||
"vue-virtual-list-v3": "^1.5.1",
|
||||
"vue-virtual-scroll-list": "^2.3.5",
|
||||
"vue-virtual-scroller": "2.0.0-beta.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
Generated
-20
@@ -65,12 +65,6 @@ dependencies:
|
||||
vue-router:
|
||||
specifier: '4'
|
||||
version: 4.2.5(vue@3.3.4)
|
||||
vue-virtual-list-v3:
|
||||
specifier: ^1.5.1
|
||||
version: 1.5.1
|
||||
vue-virtual-scroll-list:
|
||||
specifier: ^2.3.5
|
||||
version: 2.3.5
|
||||
vue-virtual-scroller:
|
||||
specifier: 2.0.0-beta.8
|
||||
version: 2.0.0-beta.8(vue@3.3.4)
|
||||
@@ -814,10 +808,6 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@juggle/resize-observer@3.4.0:
|
||||
resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
|
||||
dev: false
|
||||
|
||||
/@nodelib/fs.scandir@2.1.5:
|
||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -5139,16 +5129,6 @@ packages:
|
||||
typescript: 5.2.2
|
||||
dev: true
|
||||
|
||||
/vue-virtual-list-v3@1.5.1:
|
||||
resolution: {integrity: sha512-HbI2DTTRmw6GotG//wrKj6qcYpS8ecPFTxCxRUzXbz929xgXuO/VlcxxIQ9eusGVv5T64twk4l93MnKgyscL9g==}
|
||||
dependencies:
|
||||
'@juggle/resize-observer': 3.4.0
|
||||
dev: false
|
||||
|
||||
/vue-virtual-scroll-list@2.3.5:
|
||||
resolution: {integrity: sha512-YFK6u5yltqtAOfTBcij/KGAS2SoZvzbNIAf9qTULauPObEp53xj22tDuohrrM2vNkgoD5kejXICIUBt2Q4ZDqQ==}
|
||||
dev: false
|
||||
|
||||
/vue-virtual-scroller@2.0.0-beta.8(vue@3.3.4):
|
||||
resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==}
|
||||
peerDependencies:
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
@@ -449,7 +449,7 @@ html, body {
|
||||
.mobile {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: $dark-main-bg;
|
||||
background: var(--color-background);
|
||||
overflow: hidden;
|
||||
|
||||
canvas {
|
||||
|
||||
@@ -135,13 +135,6 @@ html.dark {
|
||||
transition: background var(--anim-time), color var(--anim-time), border var(--anim-time);
|
||||
}
|
||||
|
||||
.word-font-family {
|
||||
font-family: var(--word-font-family);
|
||||
//font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; //medium
|
||||
//font-family: Optimistic Text,-apple-system,ui-sans-serif,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji; // react
|
||||
//font-family: Google Sans Text,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif; //android-dev
|
||||
line-height: 30rem;
|
||||
}
|
||||
|
||||
html, body {
|
||||
font-size: 1px;
|
||||
@@ -150,30 +143,27 @@ html, body {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
color: $font-color;
|
||||
color: rgb(187, 187, 187);
|
||||
//color: var(--color-font-1);
|
||||
//font-family: var(--font-family);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.en-word {
|
||||
font-family: var(--word-font-family);
|
||||
}
|
||||
|
||||
#app {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
$main: rgb(64,158,255);
|
||||
color: $main;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.base-textarea {
|
||||
flex: 1;
|
||||
font-family: $font-family;
|
||||
font-family: var(--font-family);
|
||||
font-size: 18rem;
|
||||
outline: none;
|
||||
border: 1px solid transparent;
|
||||
@@ -220,6 +210,7 @@ a {
|
||||
}
|
||||
|
||||
footer {
|
||||
$footer-height: 60rem;
|
||||
box-sizing: content-box;
|
||||
height: $footer-height;
|
||||
display: flex;
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
//$dark-main-bg: rgb(46, 46, 46);
|
||||
$dark-main-bg: rgba(0, 5, 24, 1);
|
||||
$dark-second-bg: rgb(60, 63, 65);
|
||||
|
||||
$font-color: rgb(187, 187, 187);
|
||||
|
||||
$main: rgb(64,158,255);
|
||||
//$main: rgb(121,187,255);
|
||||
//$second: rgb(75, 110, 175);
|
||||
$second: rgb(59, 87, 138);
|
||||
$item-hover: rgb(75, 75, 75);
|
||||
$footer-height: 40rem;
|
||||
$card-radius: 8rem;
|
||||
|
||||
$font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
|
||||
$word-font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
|
||||
@@ -2325,14 +2325,38 @@ const enArticle: DictResource[] = [
|
||||
id: 'article_nce2',
|
||||
name: "新概念英语2-课文",
|
||||
description: '新概念英语2-课文',
|
||||
category: '英语学习',
|
||||
category: '文章学习',
|
||||
tags: ['新概念英语'],
|
||||
url: 'NCE_2.json',
|
||||
length: 13,
|
||||
length: 96,
|
||||
translateLanguage: 'common',
|
||||
language: 'en',
|
||||
type: DictType.article
|
||||
},
|
||||
{
|
||||
id: 'article_nce3',
|
||||
name: "新概念英语3-课文",
|
||||
description: '新概念英语3-课文',
|
||||
category: '文章学习',
|
||||
tags: ['新概念英语'],
|
||||
url: 'NCE_3.json',
|
||||
length: 3,
|
||||
translateLanguage: 'common',
|
||||
language: 'en',
|
||||
type: DictType.article
|
||||
},
|
||||
{
|
||||
id: 'article_nce4',
|
||||
name: "新概念英语4-课文",
|
||||
description: '新概念英语4-课文',
|
||||
category: '文章学习',
|
||||
tags: ['新概念英语'],
|
||||
url: 'NCE_4.json',
|
||||
length: 3,
|
||||
translateLanguage: 'common',
|
||||
language: 'en',
|
||||
type: DictType.article
|
||||
}
|
||||
]
|
||||
|
||||
export const dictionaryResources: DictResource[] = [
|
||||
|
||||
@@ -94,7 +94,7 @@ const groupedByCategoryAndTag = $computed(() => {
|
||||
<div class="translate">
|
||||
<span>翻译:</span>
|
||||
<el-radio-group v-model="currentTranslateLanguage">
|
||||
<el-radio-button border v-for="i in translateLanguageList" :label="i">{{ i }}</el-radio-button>
|
||||
<el-radio-button border v-for="i in translateLanguageList" :label="i">{{ $t(i) }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<DictGroup
|
||||
@@ -143,6 +143,7 @@ const groupedByCategoryAndTag = $computed(() => {
|
||||
gap: 6rem;
|
||||
|
||||
&.active {
|
||||
$main: rgb(64,158,255);
|
||||
border-bottom: 2px solid $main;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ useDisableEventListener(() => focus)
|
||||
}
|
||||
|
||||
input {
|
||||
font-family: $font-family;
|
||||
font-family: var(--font-family);
|
||||
font-size: 18rem;
|
||||
outline: none;
|
||||
min-height: 20rem;
|
||||
|
||||
@@ -64,6 +64,7 @@ $w2: calc($w / 2);
|
||||
position: absolute;
|
||||
|
||||
.circle-full {
|
||||
$item-hover: rgb(75, 75, 75);
|
||||
stroke: $item-hover;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ onUnmounted(() => {
|
||||
:header="false"
|
||||
v-model="show">
|
||||
<div class="content">
|
||||
<div class="article-content word-font-family">
|
||||
<div class="article-content">
|
||||
<div class="title">
|
||||
<div>{{ article.title }}</div>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import Dialog from "@/components/dialog/Dialog.vue"
|
||||
import {useBaseStore} from "@/stores/base.ts"
|
||||
import {Icon} from '@iconify/vue';
|
||||
import {watch, ref} from "vue";
|
||||
import {ref} from "vue";
|
||||
import {useSettingStore} from "@/stores/setting.ts";
|
||||
import {getAudioFileUrl, useChangeAllSound, usePlayAudio, useWatchAllSound} from "@/hooks/sound.ts";
|
||||
import {getShortcutKey, useDisableEventListener, useEventListener} from "@/hooks/event.ts";
|
||||
|
||||
@@ -25,7 +25,7 @@ const emit = defineEmits([
|
||||
<div class="options">
|
||||
<BaseButton>
|
||||
<a :href="`${GITHUB}/issues/new?assignees=&labels=&projects=&template=%E5%8D%95%E8%AF%8D%E9%94%99%E8%AF%AF---word-error.md&title=%E5%8D%95%E8%AF%8D%E9%94%99%E8%AF%AF+%7C+Word+error`"
|
||||
target="_blank">字典错误?</a>
|
||||
target="_blank">词典错误?</a>
|
||||
</BaseButton>
|
||||
<BaseButton>
|
||||
<a :href="`${GITHUB}/issues/new?assignees=&labels=&projects=&template=问题报告---bug-report-.md&title=问题报告+%7C+Bug+report+`"
|
||||
|
||||
@@ -286,5 +286,69 @@
|
||||
"ko": "",
|
||||
"de": "",
|
||||
"fr": ""
|
||||
},
|
||||
"common": {
|
||||
"en": "",
|
||||
"zh": "中文",
|
||||
"id": "",
|
||||
"tw": "",
|
||||
"th": "",
|
||||
"ru": "",
|
||||
"vi": "",
|
||||
"es": "",
|
||||
"pt": "",
|
||||
"ja": "",
|
||||
"uk": "",
|
||||
"ko": "",
|
||||
"de": "",
|
||||
"fr": ""
|
||||
},
|
||||
"en": {
|
||||
"en": "",
|
||||
"zh": "英语",
|
||||
"id": "",
|
||||
"tw": "",
|
||||
"th": "",
|
||||
"ru": "",
|
||||
"vi": "",
|
||||
"es": "",
|
||||
"pt": "",
|
||||
"ja": "",
|
||||
"uk": "",
|
||||
"ko": "",
|
||||
"de": "",
|
||||
"fr": ""
|
||||
},
|
||||
"de": {
|
||||
"en": "",
|
||||
"zh": "德语",
|
||||
"id": "",
|
||||
"tw": "",
|
||||
"th": "",
|
||||
"ru": "",
|
||||
"vi": "",
|
||||
"es": "",
|
||||
"pt": "",
|
||||
"ja": "",
|
||||
"uk": "",
|
||||
"ko": "",
|
||||
"de": "",
|
||||
"fr": ""
|
||||
},
|
||||
"zh-CN": {
|
||||
"en": "",
|
||||
"zh": "中文",
|
||||
"id": "",
|
||||
"tw": "",
|
||||
"th": "",
|
||||
"ru": "",
|
||||
"vi": "",
|
||||
"es": "",
|
||||
"pt": "",
|
||||
"ja": "",
|
||||
"uk": "",
|
||||
"ko": "",
|
||||
"de": "",
|
||||
"fr": ""
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -4,7 +4,6 @@ import App from './App.vue'
|
||||
// import Mobile from './Mobile.vue'
|
||||
import {createPinia} from "pinia"
|
||||
// import ElementPlus from 'element-plus'
|
||||
import VirtualList from 'vue-virtual-list-v3';
|
||||
import ZH from "@/locales/zh-CN.ts";
|
||||
import {createI18n} from 'vue-i18n'
|
||||
import router from "@/router.ts";
|
||||
@@ -26,7 +25,6 @@ const app = createApp(App)
|
||||
app.use(VueVirtualScroller)
|
||||
// app.use(ElementPlus)
|
||||
app.use(pinia)
|
||||
app.use(VirtualList);
|
||||
app.use(i18n)
|
||||
app.use(router)
|
||||
|
||||
|
||||
@@ -359,7 +359,7 @@ defineExpose({getDictDetail, add, editDict})
|
||||
<Empty v-else/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="article-content word-font-family">
|
||||
<div class="article-content">
|
||||
<div class="title">
|
||||
<div>{{ article.title }}</div>
|
||||
<BaseIcon
|
||||
|
||||
@@ -128,6 +128,10 @@ const isEnd = $computed(() => {
|
||||
<style scoped lang="scss">
|
||||
@import "@/assets/css/style";
|
||||
|
||||
$card-radius: 8rem;
|
||||
$dark-second-bg: rgb(60, 63, 65);
|
||||
$item-hover: rgb(75, 75, 75);
|
||||
|
||||
.statistics {
|
||||
width: 800rem;
|
||||
padding: var(--space);
|
||||
@@ -184,6 +188,7 @@ const isEnd = $computed(() => {
|
||||
}
|
||||
|
||||
.notice {
|
||||
$main: rgb(64,158,255);
|
||||
background: $main;
|
||||
height: 40rem;
|
||||
display: flex;
|
||||
|
||||
@@ -223,7 +223,7 @@ defineExpose({del, showWord, hideWord, play})
|
||||
|
||||
.phonetic {
|
||||
margin-top: 5rem;
|
||||
font-family: $word-font-family;
|
||||
font-family: var(--word-font-family);
|
||||
}
|
||||
|
||||
.translate {
|
||||
@@ -259,7 +259,7 @@ defineExpose({del, showWord, hideWord, play})
|
||||
.word {
|
||||
font-size: 48rem;
|
||||
line-height: 1;
|
||||
font-family: $word-font-family;
|
||||
font-family: var(--word-font-family);
|
||||
letter-spacing: 5rem;
|
||||
|
||||
.input {
|
||||
|
||||
@@ -406,7 +406,7 @@ onUnmounted(() => {
|
||||
.word {
|
||||
font-size: 24rem;
|
||||
margin-bottom: 4rem;
|
||||
font-family: $word-font-family;
|
||||
font-family: var(--word-font-family);
|
||||
}
|
||||
|
||||
.prev {
|
||||
|
||||
+34
-35
@@ -104,34 +104,34 @@ export const useBaseStore = defineStore('base', {
|
||||
language: 'en',
|
||||
type: DictType.word
|
||||
},
|
||||
{
|
||||
...cloneDeep(DefaultDict),
|
||||
id: 'article_nce2',
|
||||
name: "新概念英语2-课文",
|
||||
description: '新概念英语2-课文',
|
||||
category: '英语学习',
|
||||
tags: ['新概念英语'],
|
||||
url: 'NCE_2.json',
|
||||
translateLanguage: 'common',
|
||||
language: 'en',
|
||||
type: DictType.article,
|
||||
resourceId: 'article_nce2',
|
||||
length: 13
|
||||
},
|
||||
{
|
||||
...cloneDeep(DefaultDict),
|
||||
id: 'nce-new-2',
|
||||
name: '新概念英语(新版)-2',
|
||||
description: '新概念英语新版第二册',
|
||||
category: '青少年英语',
|
||||
tags: ['新概念英语'],
|
||||
url: 'nce-new-2.json',
|
||||
translateLanguage: 'common',
|
||||
language: 'en',
|
||||
type: DictType.word,
|
||||
resourceId: 'nce-new-2',
|
||||
length: 862
|
||||
},
|
||||
// {
|
||||
// ...cloneDeep(DefaultDict),
|
||||
// id: 'article_nce2',
|
||||
// name: "新概念英语2-课文",
|
||||
// description: '新概念英语2-课文',
|
||||
// category: '英语学习',
|
||||
// tags: ['新概念英语'],
|
||||
// url: 'NCE_2.json',
|
||||
// translateLanguage: 'common',
|
||||
// language: 'en',
|
||||
// type: DictType.article,
|
||||
// resourceId: 'article_nce2',
|
||||
// length: 96
|
||||
// },
|
||||
// {
|
||||
// ...cloneDeep(DefaultDict),
|
||||
// id: 'nce-new-2',
|
||||
// name: '新概念英语(新版)-2',
|
||||
// description: '新概念英语新版第二册',
|
||||
// category: '青少年英语',
|
||||
// tags: ['新概念英语'],
|
||||
// url: 'nce-new-2.json',
|
||||
// translateLanguage: 'common',
|
||||
// language: 'en',
|
||||
// type: DictType.word,
|
||||
// resourceId: 'nce-new-2',
|
||||
// length: 862
|
||||
// },
|
||||
],
|
||||
current: {
|
||||
index: 3,
|
||||
@@ -142,22 +142,21 @@ export const useBaseStore = defineStore('base', {
|
||||
simpleWords: [
|
||||
'a', 'an',
|
||||
'i', 'my', 'you', 'your', 'me', 'it',
|
||||
'am', 'is', 'do', 'are', 'did', 'were',
|
||||
'what', 'who', 'where', 'how', 'no', 'yes',
|
||||
'not', 'can', 'could',
|
||||
'the', 'to', 'of', 'for', 'and', 'that', 'this', 'be'
|
||||
'what', 'who', 'where', 'how', 'when', 'which',
|
||||
'be', 'am', 'is', 'do', 'are', 'did', 'were', 'was', 'can', 'could', 'will', 'would',
|
||||
'the', 'that', 'this', 'to', 'of', 'for', 'and', 'at', 'not', 'no', 'yes',
|
||||
],
|
||||
load: false
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
collect() {
|
||||
return this.myDictList[0] ?? {}
|
||||
collect(): Dict {
|
||||
return this.myDictList[0]
|
||||
},
|
||||
simple(): Dict {
|
||||
return this.myDictList[1]
|
||||
},
|
||||
wrong() {
|
||||
wrong(): Dict {
|
||||
return this.myDictList[2]
|
||||
},
|
||||
skipWordNames() {
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@ export const DefaultArticle: Article = {
|
||||
newWords: [],
|
||||
textAllWords: [],
|
||||
sections: [],
|
||||
useTranslateType: TranslateType.network
|
||||
useTranslateType: TranslateType.custom
|
||||
}
|
||||
|
||||
export interface Statistics {
|
||||
|
||||
Reference in New Issue
Block a user