From f8341c0a0828196be3b8d3c6dad7e31ad61be357 Mon Sep 17 00:00:00 2001 From: yutent Date: Mon, 14 Mar 2022 19:03:17 +0800 Subject: [PATCH] update --- css/index.css | 2 +- css/index.scss | 90 +++++++++++++++++++++++++++++++++++--------------- index.html | 47 +++++++++++++++++++++----- js/index.js | 69 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 170 insertions(+), 38 deletions(-) diff --git a/css/index.css b/css/index.css index 753a36b..f76028f 100644 --- a/css/index.css +++ b/css/index.css @@ -1 +1 @@ -body{line-height:1.5;font-size:14px;color:var(--color-dark-1)}a{color:inherit;text-decoration:none}wc-switch{cursor:pointer}.app{width:100%;height:100vh}.flex{display:flex}.flex.column{flex-direction:column}.flex.ac{justify-content:center}.flex.alc{align-items:center}.flex.acc{justify-content:center;align-items:center}.flex.asc{justify-content:space-between;align-items:center}.wrapper{width:1024px}.topbar{width:100%;height:64px;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.05)}.topbar .logo{font-size:24px;color:var(--color-red-1)}.topbar .logo span{font-size:14px}.topbar .navs{font-size:16px}.topbar .navs .nav{margin-left:32px;cursor:pointer;transition:color .2s linear}.topbar .navs .nav.active,.topbar .navs .nav:hover{text-decoration:underline;color:var(--color-red-1)}.footer{width:100%;height:64px;border-top:1px solid var(--color-plain-2)}.main{flex:1}.main .table-info{width:100%;height:64px}.main .table-info i{color:var(--color-red-1)}.main .table-info .download{margin-left:32px}.main .search{width:100%}.main .search .field{margin-top:16px}.main .search .field.result{line-height:2;font-family:Menlo;word-wrap:break-word;white-space:pre-wrap}.main .search .field wc-input{flex:1}.main .about{padding:32px 16px}.main .about h2{font-size:24px}.main .about .logs .version{margin-top:32px;line-height:2;font-weight:bold;font-size:18px}.main .about .logs dd{color:var(--color-grey-3)}.main .about .logs ol{padding-left:2em;list-style:decimal}.download-layer{width:640px;height:480px;background:#fff}.download-layer .field{padding:0 16px}.download-layer .field .label{width:120px;padding-right:16px;line-height:32px;text-align:right;font-weight:bold;color:var(--color-grey-3)}.download-layer .field .label::after{content:" : "}@media screen and (max-width: 1024px){.topbar,.main{padding:0 16px}.footer .wrapper{flex-direction:column;align-items:center;justify-content:center}} \ No newline at end of file +body{line-height:1.5;font-size:14px;color:var(--color-dark-1)}a{color:inherit;text-decoration:none}wc-switch{cursor:pointer}.app{width:100%;height:100vh}.flex{display:flex}.flex.column{flex-direction:column}.flex.ac{justify-content:center}.flex.alc{align-items:center}.flex.acc{justify-content:center;align-items:center}.flex.asc{justify-content:space-between;align-items:center}.wrapper{width:1024px}.topbar{width:100%;height:64px;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.05)}.topbar .logo{font-size:24px;color:var(--color-red-1)}.topbar .logo span{font-size:14px}.topbar .navs{font-size:16px}.topbar .navs .nav{margin-left:32px;cursor:pointer;transition:color .2s linear}.topbar .navs .nav.active,.topbar .navs .nav:hover{text-decoration:underline;color:var(--color-red-1)}.footer{width:100%;height:64px;border-top:1px solid var(--color-plain-2)}.main{flex:1}.main .wrapper{height:100%}.main .table-info{width:100%;height:64px}.main .table-info i{color:var(--color-red-1)}.main .table-info .download{margin-left:32px}.main .search{width:100%}.main .search .field{margin-top:16px}.main .search .field.result{line-height:2;font-family:Menlo;word-wrap:break-word;white-space:pre-wrap}.main .search .field wc-input{flex:1}.main .panel{margin-top:32px}.main .panel .custom-file{position:relative;width:160px}.main .panel .custom-file input{position:absolute;width:100%;height:100%;opacity:0}.main .panel .tips{color:var(--color-orange-3)}.main .panel .preview{margin-top:16px;font-family:Menlo;word-wrap:break-word;white-space:pre-wrap}.main .about{padding:32px 16px}.main .about h2{font-size:24px}.main .about .logs .version{margin-top:32px;line-height:2;font-weight:bold;font-size:18px}.main .about .logs dd{color:var(--color-grey-3)}.main .about .logs ol{padding-left:2em;list-style:decimal}.download-layer{width:640px;padding-bottom:64px;background:#fff}.download-layer .field{margin-top:16px;padding:0 16px}.download-layer .field .label{min-width:120px;padding-right:16px;line-height:32px;text-align:right;font-weight:bold;color:var(--color-grey-3)}.download-layer .field .label::after{content:" : "}.download-layer .field .tips{margin-left:16px;line-height:32px;color:var(--color-orange-3)}.download-layer .field.ctrol{padding:0 128px;margin-top:64px}@media screen and (max-width: 1024px){.topbar,.main{padding:0 16px}.footer .wrapper{flex-direction:column;align-items:center;justify-content:center}} \ No newline at end of file diff --git a/css/index.scss b/css/index.scss index 0e00649..3aae6f9 100644 --- a/css/index.scss +++ b/css/index.scss @@ -1,18 +1,22 @@ @import './common.scss'; - - .main { flex: 1; + .wrapper { + height: 100%; + } + .table-info { width: 100%; height: 64px; - i {color:var(--color-red-1);} + i { + color: var(--color-red-1); + } .download { - margin-left:32px; + margin-left: 32px; } } @@ -35,30 +39,54 @@ } } + .panel { + margin-top: 32px; + .custom-file { + position: relative; + width: 160px; + input { + position: absolute; + width: 100%; + height: 100%; + opacity: 0; + } + } + + .tips { + color: var(--color-orange-3); + } + + .preview { + margin-top: 16px; + font-family: Menlo; + word-wrap: break-word; + white-space: pre-wrap; + } + } + + /* */ .about { - padding:32px 16px; - + padding: 32px 16px; h2 { - font-size:24px; + font-size: 24px; } .logs { - .version { - margin-top:32px; - line-height:2; - font-weight:bold; - font-size:18px; + margin-top: 32px; + line-height: 2; + font-weight: bold; + font-size: 18px; } dd { - color:var(--color-grey-3); + color: var(--color-grey-3); } ol { - padding-left:2em; + padding-left: 2em; list-style: decimal; } } @@ -66,30 +94,40 @@ } .download-layer { - width:640px; - height:480px; - background:#fff; + width: 640px; + padding-bottom: 64px; + background: #fff; .field { - padding:0 16px; + margin-top: 16px; + padding: 0 16px; .label { - width:120px; - padding-right:16px; + min-width: 120px; + padding-right: 16px; line-height: 32px; - text-align:right; - font-weight:bold; - color:var(--color-grey-3); + text-align: right; + font-weight: bold; + color: var(--color-grey-3); &::after { - content:" : "; + content: ' : '; } } + + .tips { + margin-left: 16px; + line-height: 32px; + color: var(--color-orange-3); + } + + &.ctrol { + padding: 0 128px; + margin-top: 64px; + } } } - - @media screen and (max-width: 1024px) { .topbar, .main { diff --git a/index.html b/index.html index 17d3ff8..47c5805 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@
现有单字{{single}}个, 词组{{words}}个, 异形字{{dy}}个 ! - 下载词库 + 下载词库
- - - +
+ + + 上传个人词库 + + (仅需要中文即可, 程序会自动生成五笔编码, 词组一行一个) +
+ +
{{preview}}
@@ -73,6 +77,7 @@
+
词库选择 @@ -85,6 +90,32 @@ 个人词库(自主上传的)
+ +
+ 词库编码位置 + + 编码前置 + 编码后置 + + (编码前置时, 自动聚合词组) +
+ +
+ 生成反查字库 + + (输入法支持拼音反查五笔编码时, 请勾选) +
+ +
+ 是否生成拼音 + + (输入法支持临时拼音时, 请勾选) +
+ +
+ 取消 + 确认下载 +
diff --git a/js/index.js b/js/index.js index 941cd96..4eabb81 100644 --- a/js/index.js +++ b/js/index.js @@ -35,8 +35,12 @@ Anot({ table: '86' }, dlOpt: { + pos: 'front', + reverse: true, + pinyin: true, tables: ['table', 'words', 'dy'] - } + }, + preview: '' }, mounted() { Promise.all([ @@ -80,8 +84,6 @@ Anot({ this.words = WB_WORDS.length this.dy = WB_DY.length }) - - this.$refs.dl.show() }, methods: { @@ -93,6 +95,7 @@ Anot({ text = text.trim().toLowerCase() if (!text) { + this.result = '' return } @@ -154,6 +157,66 @@ Anot({ } this.result = `查询结果: \n${res}` + }, + + fileChange(ev) { + var reader = new FileReader() + var file = ev.target.files[0] + var all = new Set() + var unknow = new Set() + console.log(file) + + ev.target.value = '' + + reader.onload = () => { + let arr = reader.result + .trim() + .split('\n') + .map(_ => _.trim()) + + for (let it of arr) { + all.add(it) + if (!WB_TABLE.get(it)) { + unknow.add(it) + } + } + + all = Array.from(all) + unknow = Array.from(unknow) + + this.preview = + `本次上传, 含有 ${arr.length} 个词条(有效词条 ${all.length} 个)。\n` + + `其中字库中已经存在 ${all.length - unknow.length}个, 未存在词条 ${ + unknow.length + } 个, 如下:\n\n${unknow.join('\t')}` + + // Promise.all( + // unknow.map(it => + // fetch('https://www.qqxiuzi.cn/bianma/wubiShow.php', { + // method: 'post', + // body: { text: it, type: 0, version: 0, token: 'ad362ce31bd5584cf7bbcb13b5b08511' } + // }).then(r => r.text()) + // ) + // ).then(r => { + // console.log(r) + // }) + + // navigator.clipboard.writeText(Array.from(all).join('\n')) + } + + reader.readAsText(file) + }, + + openDownloadPanel() { + this.$refs.dl.show() + }, + + closeDownloadPanel() { + this.$refs.dl.close() + }, + + download() { + // } } })