页面改用vue渲染、删除部分错别字词组、增加76个常用词组
parent
f883707718
commit
7d7167f4ba
|
@ -5,7 +5,7 @@ node_modules
|
||||||
*.sublime-project
|
*.sublime-project
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
test.js
|
||||||
._*
|
._*
|
||||||
|
|
||||||
.Spotlight-V100
|
.Spotlight-V100
|
||||||
|
|
96
about.html
96
about.html
|
@ -1,96 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html lang="zh-CN">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
|
|
||||||
<title>关于 - 五笔输入法86版</title>
|
|
||||||
<meta name="keywords" content="五笔输入法86版">
|
|
||||||
<meta name="description" content="五笔输入法86版">
|
|
||||||
<link href="//jscdn.ink/@bytedo/wcui/1.0.12/css/reset-basic.css" rel="stylesheet">
|
|
||||||
<link rel="stylesheet" href="./css/index.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="app flex column">
|
|
||||||
<header class="topbar flex ac noselect">
|
|
||||||
<div class="wrapper flex asc">
|
|
||||||
<a class="logo">五笔输入法<span>86版</span></a>
|
|
||||||
|
|
||||||
<nav class="navs flex">
|
|
||||||
<a class="nav" href="./">首页</a>
|
|
||||||
<a class="nav">简码表</a>
|
|
||||||
<a class="nav">打字练习</a>
|
|
||||||
<a class="nav active">关于</a>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<main class="main flex ac">
|
|
||||||
<div class="wrapper about">
|
|
||||||
<h2>更新日志</h2>
|
|
||||||
|
|
||||||
<dl class="logs">
|
|
||||||
|
|
||||||
<dt class="version">@2022.04.10</dt>
|
|
||||||
<dd>
|
|
||||||
<ol>
|
|
||||||
<li>修复编码生成</li>
|
|
||||||
<li>删除部分错别字词组</li>
|
|
||||||
</ol>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt class="version">@2022.03.22</dt>
|
|
||||||
<dd>
|
|
||||||
<ol>
|
|
||||||
<li>调整gbk大字符集的排序</li>
|
|
||||||
<li>删除词组`加德满都、嗲嗲、所列、新特`, 增加词组`握草、摆烂、封板`</li>
|
|
||||||
</ol>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt class="version">@2022.03.21</dt>
|
|
||||||
<dd>
|
|
||||||
<ol>
|
|
||||||
<li>修复字库字典顺序</li>
|
|
||||||
<li>增加基础词汇23465个、计算机词汇221个、emoji表情181个、网络热词186个</li>
|
|
||||||
<li>查询功能支持词组</li>
|
|
||||||
<li>词库下载功能完成(个人词库暂未支持、拼音反查暂未支持)</li>
|
|
||||||
</ol>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
|
|
||||||
<dt class="version">@2022.03.15</dt>
|
|
||||||
<dd>
|
|
||||||
<ol>
|
|
||||||
<li>增加以下单字【䗪、㳇、㕮、㬊、㿠、䝙、㠇、㮾、㫰、㛹、㧑、㙦、䓨、㳚、䏲、䗖、䃅、㙍、䏡、䓛、䃎、䓬、㽏、䢼、㸌、㛃、㬚、㵐、䢺、䓫、䌹、䐃、㸆、㥄、䂮、㰀、㠓、㭕、䎃、䒤、㴔、㟃、䗴、㻬、䣘、㛚、㳘、㬎、䗛、㑊、㺄、㶲、㙘、䎖、㩼、㹴、䜰、䜮、鿏】</li>
|
|
||||||
<li>增加以下异型字【𠮷、𠙶、𨭉、𨚕、𠳐、𥕢、𤧛、𣗋、𨱏、𦭜、𨙸、𣸣、𦙶、𨐈、𤩽、𨱑、𨟠、𩾌、𡐓、𦝼、𧿹、𩾃、𨺙、𦰡、𡎚、𨱇、𦈡、𦒍、𣲘、𥻗、𣲗、𤫉、𥔲、𩽾、𠅤、𤞤、𨱔、𥖨、𫍣、𬶍、𫍣、𫘦、𫘜、𬭩、𫇭、𬭬】</li>
|
|
||||||
</ol>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt class="version">@2022.03.10</dt>
|
|
||||||
<dd>
|
|
||||||
<ol>
|
|
||||||
<li>完成基础字典生成GB2312(6763)个 + GBK(14295)个</li>
|
|
||||||
<li>完成基本词组生成</li>
|
|
||||||
</ol>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer flex ac">
|
|
||||||
<div class="wrapper flex asc">
|
|
||||||
<span>©2022, Yutent™.</span>
|
|
||||||
<span>Power by JavaScript</span>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -12,7 +12,7 @@
|
||||||
<script type="importmap">{{importmap}}</script>
|
<script type="importmap">{{importmap}}</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="app noselect"></div>
|
<div class="app"></div>
|
||||||
<script src="main.js"></script>
|
<script src="main.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -6,6 +6,6 @@
|
||||||
"build": "vue-live build"
|
"build": "vue-live build"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@bytedo/vue-live": "^0.1.9"
|
"@bytedo/vue-live": "^0.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2428,6 +2428,7 @@
|
||||||
包罗
|
包罗
|
||||||
包罗万象
|
包罗万象
|
||||||
包茂
|
包茂
|
||||||
|
包名
|
||||||
包膜
|
包膜
|
||||||
包你
|
包你
|
||||||
包年
|
包年
|
||||||
|
@ -4267,6 +4268,7 @@
|
||||||
边缘人
|
边缘人
|
||||||
边远
|
边远
|
||||||
边寨
|
边寨
|
||||||
|
边长
|
||||||
边走边
|
边走边
|
||||||
编办
|
编办
|
||||||
编成
|
编成
|
||||||
|
@ -6234,6 +6236,7 @@
|
||||||
不能自拔
|
不能自拔
|
||||||
不能自已
|
不能自已
|
||||||
不能做
|
不能做
|
||||||
|
不腻
|
||||||
不念旧恶
|
不念旧恶
|
||||||
不宁
|
不宁
|
||||||
不宁唯是
|
不宁唯是
|
||||||
|
@ -7271,6 +7274,7 @@
|
||||||
踩断
|
踩断
|
||||||
踩过界
|
踩过界
|
||||||
踩坏
|
踩坏
|
||||||
|
踩坑
|
||||||
踩雷
|
踩雷
|
||||||
踩死
|
踩死
|
||||||
踩踏
|
踩踏
|
||||||
|
@ -8910,6 +8914,7 @@
|
||||||
超凡入圣
|
超凡入圣
|
||||||
超凡脱俗
|
超凡脱俗
|
||||||
超负荷
|
超负荷
|
||||||
|
超纲
|
||||||
超高
|
超高
|
||||||
超高频
|
超高频
|
||||||
超高速
|
超高速
|
||||||
|
@ -11700,6 +11705,7 @@
|
||||||
传真
|
传真
|
||||||
传真机
|
传真机
|
||||||
传正
|
传正
|
||||||
|
传值
|
||||||
传中
|
传中
|
||||||
传宗接代
|
传宗接代
|
||||||
船帮
|
船帮
|
||||||
|
@ -13326,6 +13332,7 @@
|
||||||
达喀尔
|
达喀尔
|
||||||
达卡
|
达卡
|
||||||
达拉
|
达拉
|
||||||
|
达拉崩吧
|
||||||
达拉斯
|
达拉斯
|
||||||
达赖
|
达赖
|
||||||
达赖喇嘛
|
达赖喇嘛
|
||||||
|
@ -14942,6 +14949,7 @@
|
||||||
单就
|
单就
|
||||||
单句
|
单句
|
||||||
单据
|
单据
|
||||||
|
单卡
|
||||||
单靠
|
单靠
|
||||||
单科
|
单科
|
||||||
单孔
|
单孔
|
||||||
|
@ -15669,6 +15677,7 @@
|
||||||
到点
|
到点
|
||||||
到顶
|
到顶
|
||||||
到访
|
到访
|
||||||
|
到付
|
||||||
到该
|
到该
|
||||||
到港
|
到港
|
||||||
到过
|
到过
|
||||||
|
@ -17757,6 +17766,7 @@
|
||||||
调温
|
调温
|
||||||
调息
|
调息
|
||||||
调戏
|
调戏
|
||||||
|
调校
|
||||||
调笑
|
调笑
|
||||||
调协
|
调协
|
||||||
调谐
|
调谐
|
||||||
|
@ -18555,6 +18565,7 @@
|
||||||
冻得
|
冻得
|
||||||
冻饿
|
冻饿
|
||||||
冻害
|
冻害
|
||||||
|
冻鸡
|
||||||
冻僵
|
冻僵
|
||||||
冻结
|
冻结
|
||||||
冻裂
|
冻裂
|
||||||
|
@ -19054,6 +19065,7 @@
|
||||||
读数
|
读数
|
||||||
读诵
|
读诵
|
||||||
读速
|
读速
|
||||||
|
读条
|
||||||
读图
|
读图
|
||||||
读完
|
读完
|
||||||
读万卷书
|
读万卷书
|
||||||
|
@ -20297,6 +20309,7 @@
|
||||||
饿鬼
|
饿鬼
|
||||||
饿虎扑食
|
饿虎扑食
|
||||||
饿坏
|
饿坏
|
||||||
|
饿了
|
||||||
饿了吧
|
饿了吧
|
||||||
饿了么
|
饿了么
|
||||||
饿殍
|
饿殍
|
||||||
|
@ -20791,6 +20804,7 @@
|
||||||
发嗲
|
发嗲
|
||||||
发动
|
发动
|
||||||
发动机
|
发动机
|
||||||
|
发冻鸡
|
||||||
发抖
|
发抖
|
||||||
发端
|
发端
|
||||||
发短信
|
发短信
|
||||||
|
@ -21811,6 +21825,7 @@
|
||||||
方伯
|
方伯
|
||||||
方步
|
方步
|
||||||
方才
|
方才
|
||||||
|
方仓
|
||||||
方差
|
方差
|
||||||
方成
|
方成
|
||||||
方城
|
方城
|
||||||
|
@ -22047,6 +22062,7 @@
|
||||||
房客
|
房客
|
||||||
房款
|
房款
|
||||||
房里
|
房里
|
||||||
|
房梁
|
||||||
房门
|
房门
|
||||||
房内
|
房内
|
||||||
房奴
|
房奴
|
||||||
|
@ -24898,6 +24914,7 @@
|
||||||
敢问
|
敢问
|
||||||
敢想
|
敢想
|
||||||
敢言
|
敢言
|
||||||
|
敢用
|
||||||
敢于
|
敢于
|
||||||
敢作敢当
|
敢作敢当
|
||||||
敢作敢为
|
敢作敢为
|
||||||
|
@ -27089,6 +27106,7 @@
|
||||||
宫殿
|
宫殿
|
||||||
宫斗剧
|
宫斗剧
|
||||||
宫娥
|
宫娥
|
||||||
|
宫格
|
||||||
宫颈
|
宫颈
|
||||||
宫颈癌
|
宫颈癌
|
||||||
宫颈糜烂
|
宫颈糜烂
|
||||||
|
@ -29598,6 +29616,7 @@
|
||||||
果腹
|
果腹
|
||||||
果敢
|
果敢
|
||||||
果果
|
果果
|
||||||
|
果号
|
||||||
果核
|
果核
|
||||||
果迹
|
果迹
|
||||||
果酱
|
果酱
|
||||||
|
@ -29866,6 +29885,7 @@
|
||||||
哈喽
|
哈喽
|
||||||
哈罗
|
哈罗
|
||||||
哈马斯
|
哈马斯
|
||||||
|
哈曼
|
||||||
哈密
|
哈密
|
||||||
哈密瓜
|
哈密瓜
|
||||||
哈姆
|
哈姆
|
||||||
|
@ -29910,6 +29930,7 @@
|
||||||
还不错
|
还不错
|
||||||
还不够
|
还不够
|
||||||
还不清
|
还不清
|
||||||
|
还不如
|
||||||
还不是
|
还不是
|
||||||
还不知道
|
还不知道
|
||||||
还差
|
还差
|
||||||
|
@ -34209,6 +34230,7 @@
|
||||||
换衣服
|
换衣服
|
||||||
换喻
|
换喻
|
||||||
换元
|
换元
|
||||||
|
换源
|
||||||
换证
|
换证
|
||||||
换住
|
换住
|
||||||
换装
|
换装
|
||||||
|
@ -34429,6 +34451,7 @@
|
||||||
黄绿
|
黄绿
|
||||||
黄绿色
|
黄绿色
|
||||||
黄麻
|
黄麻
|
||||||
|
黄码
|
||||||
黄毛
|
黄毛
|
||||||
黄毛丫头
|
黄毛丫头
|
||||||
黄玫瑰
|
黄玫瑰
|
||||||
|
@ -34463,6 +34486,7 @@
|
||||||
黄山
|
黄山
|
||||||
黄衫
|
黄衫
|
||||||
黄鳝
|
黄鳝
|
||||||
|
黄少天
|
||||||
黄圣依
|
黄圣依
|
||||||
黄石
|
黄石
|
||||||
黄书
|
黄书
|
||||||
|
@ -36711,7 +36735,6 @@
|
||||||
几座
|
几座
|
||||||
己方
|
己方
|
||||||
己见
|
己见
|
||||||
己经
|
|
||||||
己任
|
己任
|
||||||
己所不欲
|
己所不欲
|
||||||
挤挨
|
挤挨
|
||||||
|
@ -37222,6 +37245,7 @@
|
||||||
加上
|
加上
|
||||||
加上去
|
加上去
|
||||||
加深
|
加深
|
||||||
|
加湿
|
||||||
加湿器
|
加湿器
|
||||||
加时
|
加时
|
||||||
加时赛
|
加时赛
|
||||||
|
@ -38606,6 +38630,7 @@
|
||||||
江洋大盗
|
江洋大盗
|
||||||
江阴
|
江阴
|
||||||
江油
|
江油
|
||||||
|
江鱼儿
|
||||||
江月
|
江月
|
||||||
江泽民
|
江泽民
|
||||||
江浙
|
江浙
|
||||||
|
@ -39501,6 +39526,7 @@
|
||||||
教民
|
教民
|
||||||
教你
|
教你
|
||||||
教派
|
教派
|
||||||
|
教培
|
||||||
教区
|
教区
|
||||||
教人
|
教人
|
||||||
教师
|
教师
|
||||||
|
@ -42593,6 +42619,7 @@
|
||||||
焗油
|
焗油
|
||||||
菊豆
|
菊豆
|
||||||
菊花
|
菊花
|
||||||
|
菊苣
|
||||||
橘柑
|
橘柑
|
||||||
橘红
|
橘红
|
||||||
橘黄
|
橘黄
|
||||||
|
@ -43451,7 +43478,6 @@
|
||||||
卡拉
|
卡拉
|
||||||
卡拉奇
|
卡拉奇
|
||||||
卡拉什尼科夫
|
卡拉什尼科夫
|
||||||
卡拉OK
|
|
||||||
卡了
|
卡了
|
||||||
卡勒
|
卡勒
|
||||||
卡类
|
卡类
|
||||||
|
@ -49972,6 +49998,7 @@
|
||||||
灵秀
|
灵秀
|
||||||
灵验
|
灵验
|
||||||
灵药
|
灵药
|
||||||
|
灵耀
|
||||||
灵异
|
灵异
|
||||||
灵隐
|
灵隐
|
||||||
灵应
|
灵应
|
||||||
|
@ -50409,6 +50436,7 @@
|
||||||
流年不利
|
流年不利
|
||||||
流年似水
|
流年似水
|
||||||
流脓
|
流脓
|
||||||
|
流拍
|
||||||
流派
|
流派
|
||||||
流盼
|
流盼
|
||||||
流配
|
流配
|
||||||
|
@ -51590,6 +51618,7 @@
|
||||||
乱晃
|
乱晃
|
||||||
乱记
|
乱记
|
||||||
乱纪
|
乱纪
|
||||||
|
乱加
|
||||||
乱箭攒心
|
乱箭攒心
|
||||||
乱讲
|
乱讲
|
||||||
乱叫
|
乱叫
|
||||||
|
@ -52426,6 +52455,7 @@
|
||||||
买了
|
买了
|
||||||
买辆
|
买辆
|
||||||
买楼
|
买楼
|
||||||
|
买买买
|
||||||
买卖
|
买卖
|
||||||
买卖合同
|
买卖合同
|
||||||
买卖双方
|
买卖双方
|
||||||
|
@ -52670,6 +52700,7 @@
|
||||||
满腹狐疑
|
满腹狐疑
|
||||||
满腹经纶
|
满腹经纶
|
||||||
满腹疑团
|
满腹疑团
|
||||||
|
满格
|
||||||
满贯
|
满贯
|
||||||
满汉
|
满汉
|
||||||
满汉全席
|
满汉全席
|
||||||
|
@ -52874,6 +52905,7 @@
|
||||||
芒鞋
|
芒鞋
|
||||||
芒种
|
芒种
|
||||||
杧果
|
杧果
|
||||||
|
盲猜
|
||||||
盲肠
|
盲肠
|
||||||
盲从
|
盲从
|
||||||
盲打
|
盲打
|
||||||
|
@ -54645,6 +54677,7 @@
|
||||||
秒内
|
秒内
|
||||||
秒拍
|
秒拍
|
||||||
秒杀
|
秒杀
|
||||||
|
秒删
|
||||||
秒针
|
秒针
|
||||||
秒钟
|
秒钟
|
||||||
淼淼
|
淼淼
|
||||||
|
@ -55162,6 +55195,7 @@
|
||||||
明码标价
|
明码标价
|
||||||
明媒正娶
|
明媒正娶
|
||||||
明媚
|
明媚
|
||||||
|
明面
|
||||||
明灭
|
明灭
|
||||||
明敏
|
明敏
|
||||||
明明
|
明明
|
||||||
|
@ -57149,6 +57183,7 @@
|
||||||
内镜
|
内镜
|
||||||
内疚
|
内疚
|
||||||
内聚
|
内聚
|
||||||
|
内卷
|
||||||
内眷
|
内眷
|
||||||
内卡
|
内卡
|
||||||
内刊
|
内刊
|
||||||
|
@ -59468,6 +59503,7 @@
|
||||||
袍子
|
袍子
|
||||||
跑遍
|
跑遍
|
||||||
跑表
|
跑表
|
||||||
|
跑不掉
|
||||||
跑步
|
跑步
|
||||||
跑步机
|
跑步机
|
||||||
跑车
|
跑车
|
||||||
|
@ -60246,6 +60282,7 @@
|
||||||
屁股
|
屁股
|
||||||
屁滚尿流
|
屁滚尿流
|
||||||
屁话
|
屁话
|
||||||
|
屁民
|
||||||
屁屁
|
屁屁
|
||||||
屁事
|
屁事
|
||||||
屁眼
|
屁眼
|
||||||
|
@ -61842,6 +61879,7 @@
|
||||||
奇形怪状
|
奇形怪状
|
||||||
奇秀
|
奇秀
|
||||||
奇勋
|
奇勋
|
||||||
|
奇艺
|
||||||
奇异
|
奇异
|
||||||
奇遇
|
奇遇
|
||||||
奇缘
|
奇缘
|
||||||
|
@ -63111,6 +63149,7 @@
|
||||||
强杀
|
强杀
|
||||||
强上
|
强上
|
||||||
强身
|
强身
|
||||||
|
强升
|
||||||
强生
|
强生
|
||||||
强省
|
强省
|
||||||
强盛
|
强盛
|
||||||
|
@ -69058,6 +69097,8 @@
|
||||||
傻仔
|
傻仔
|
||||||
傻子
|
傻子
|
||||||
唼血
|
唼血
|
||||||
|
啥的
|
||||||
|
啥都
|
||||||
啥时
|
啥时
|
||||||
啥时候
|
啥时候
|
||||||
啥事
|
啥事
|
||||||
|
@ -70533,6 +70574,7 @@
|
||||||
涉嫌
|
涉嫌
|
||||||
涉险过关
|
涉险过关
|
||||||
涉县
|
涉县
|
||||||
|
涉政
|
||||||
涉足
|
涉足
|
||||||
赦令
|
赦令
|
||||||
赦免
|
赦免
|
||||||
|
@ -71022,6 +71064,7 @@
|
||||||
神经元
|
神经元
|
||||||
神经质
|
神经质
|
||||||
神经组织
|
神经组织
|
||||||
|
神剧
|
||||||
神君
|
神君
|
||||||
神龛
|
神龛
|
||||||
神来
|
神来
|
||||||
|
@ -71641,6 +71684,7 @@
|
||||||
声说
|
声说
|
||||||
声嘶力竭
|
声嘶力竭
|
||||||
声讨
|
声讨
|
||||||
|
声网
|
||||||
声望
|
声望
|
||||||
声威
|
声威
|
||||||
声威大震
|
声威大震
|
||||||
|
@ -71961,6 +72005,7 @@
|
||||||
失乐
|
失乐
|
||||||
失礼
|
失礼
|
||||||
失利
|
失利
|
||||||
|
失联
|
||||||
失恋
|
失恋
|
||||||
失恋了
|
失恋了
|
||||||
失灵
|
失灵
|
||||||
|
@ -74181,6 +74226,7 @@
|
||||||
受骗
|
受骗
|
||||||
受聘
|
受聘
|
||||||
受其
|
受其
|
||||||
|
受奇艺
|
||||||
受气
|
受气
|
||||||
受气包
|
受气包
|
||||||
受穷
|
受穷
|
||||||
|
@ -75134,6 +75180,7 @@
|
||||||
双枪
|
双枪
|
||||||
双抢
|
双抢
|
||||||
双亲
|
双亲
|
||||||
|
双擎
|
||||||
双曲线
|
双曲线
|
||||||
双全
|
双全
|
||||||
双拳
|
双拳
|
||||||
|
@ -76636,6 +76683,7 @@
|
||||||
松阳
|
松阳
|
||||||
松叶
|
松叶
|
||||||
松一口气
|
松一口气
|
||||||
|
松语
|
||||||
松原
|
松原
|
||||||
松赞干布
|
松赞干布
|
||||||
松针
|
松针
|
||||||
|
@ -78816,6 +78864,7 @@
|
||||||
套路
|
套路
|
||||||
套路深
|
套路深
|
||||||
套马
|
套马
|
||||||
|
套内
|
||||||
套弄
|
套弄
|
||||||
套牌
|
套牌
|
||||||
套票
|
套票
|
||||||
|
@ -78951,6 +79000,7 @@
|
||||||
特殊性
|
特殊性
|
||||||
特殊要求
|
特殊要求
|
||||||
特爽
|
特爽
|
||||||
|
特斯拉
|
||||||
特提
|
特提
|
||||||
特为
|
特为
|
||||||
特务
|
特务
|
||||||
|
@ -79090,6 +79140,7 @@
|
||||||
提包
|
提包
|
||||||
提笔
|
提笔
|
||||||
提笔忘字
|
提笔忘字
|
||||||
|
提测
|
||||||
提倡
|
提倡
|
||||||
提车
|
提车
|
||||||
提成
|
提成
|
||||||
|
@ -79684,6 +79735,7 @@
|
||||||
天悬地隔
|
天悬地隔
|
||||||
天旋
|
天旋
|
||||||
天旋地转
|
天旋地转
|
||||||
|
天选
|
||||||
天崖
|
天崖
|
||||||
天涯
|
天涯
|
||||||
天涯海角
|
天涯海角
|
||||||
|
@ -79869,6 +79921,7 @@
|
||||||
填街塞巷
|
填街塞巷
|
||||||
填进
|
填进
|
||||||
填具
|
填具
|
||||||
|
填坑
|
||||||
填空
|
填空
|
||||||
填料
|
填料
|
||||||
填列
|
填列
|
||||||
|
@ -89339,6 +89392,7 @@
|
||||||
小品
|
小品
|
||||||
小品文
|
小品文
|
||||||
小平
|
小平
|
||||||
|
小屏
|
||||||
小瓶
|
小瓶
|
||||||
小坡
|
小坡
|
||||||
小破孩
|
小破孩
|
||||||
|
@ -90031,6 +90085,7 @@
|
||||||
写实
|
写实
|
||||||
写手
|
写手
|
||||||
写书
|
写书
|
||||||
|
写死
|
||||||
写完
|
写完
|
||||||
写文章
|
写文章
|
||||||
写下
|
写下
|
||||||
|
@ -90540,6 +90595,7 @@
|
||||||
新寡
|
新寡
|
||||||
新官上任
|
新官上任
|
||||||
新官上任三把火
|
新官上任三把火
|
||||||
|
新冠
|
||||||
新光
|
新光
|
||||||
新规
|
新规
|
||||||
新贵
|
新贵
|
||||||
|
@ -90591,6 +90647,7 @@
|
||||||
新康
|
新康
|
||||||
新科
|
新科
|
||||||
新科技
|
新科技
|
||||||
|
新客
|
||||||
新课
|
新课
|
||||||
新课标
|
新课标
|
||||||
新快报
|
新快报
|
||||||
|
@ -91214,6 +91271,7 @@
|
||||||
形骸
|
形骸
|
||||||
形迹
|
形迹
|
||||||
形迹可疑
|
形迹可疑
|
||||||
|
形近
|
||||||
形码
|
形码
|
||||||
形貌
|
形貌
|
||||||
形旁
|
形旁
|
||||||
|
@ -94094,6 +94152,7 @@
|
||||||
羊羹
|
羊羹
|
||||||
羊倌
|
羊倌
|
||||||
羊角
|
羊角
|
||||||
|
羊了
|
||||||
羊毛
|
羊毛
|
||||||
羊毛出在羊身上
|
羊毛出在羊身上
|
||||||
羊毛衫
|
羊毛衫
|
||||||
|
@ -94112,6 +94171,7 @@
|
||||||
羊汤
|
羊汤
|
||||||
羊头
|
羊头
|
||||||
羊腿
|
羊腿
|
||||||
|
羊驼
|
||||||
羊蝎子
|
羊蝎子
|
||||||
羊羊
|
羊羊
|
||||||
羊腰子
|
羊腰子
|
||||||
|
@ -94470,6 +94530,7 @@
|
||||||
腰肌劳损
|
腰肌劳损
|
||||||
腰际
|
腰际
|
||||||
腰间
|
腰间
|
||||||
|
腰砍
|
||||||
腰里
|
腰里
|
||||||
腰链
|
腰链
|
||||||
腰牌
|
腰牌
|
||||||
|
@ -94877,6 +94938,7 @@
|
||||||
也别
|
也别
|
||||||
也不
|
也不
|
||||||
也不错
|
也不错
|
||||||
|
也不会
|
||||||
也不可能
|
也不可能
|
||||||
也不例外
|
也不例外
|
||||||
也不是
|
也不是
|
||||||
|
@ -95025,6 +95087,7 @@
|
||||||
野叟
|
野叟
|
||||||
野蔌山肴
|
野蔌山肴
|
||||||
野塘
|
野塘
|
||||||
|
野图
|
||||||
野兔
|
野兔
|
||||||
野外
|
野外
|
||||||
野望
|
野望
|
||||||
|
@ -101647,6 +101710,7 @@
|
||||||
砸伤
|
砸伤
|
||||||
砸死
|
砸死
|
||||||
砸碎
|
砸碎
|
||||||
|
砸砸乐
|
||||||
砸在
|
砸在
|
||||||
咋办
|
咋办
|
||||||
咋滴
|
咋滴
|
||||||
|
@ -101888,6 +101952,7 @@
|
||||||
在旁
|
在旁
|
||||||
在其
|
在其
|
||||||
在前
|
在前
|
||||||
|
在群里
|
||||||
在任
|
在任
|
||||||
在日
|
在日
|
||||||
在商言商
|
在商言商
|
||||||
|
@ -102731,6 +102796,7 @@
|
||||||
窄窄
|
窄窄
|
||||||
债多不愁
|
债多不愁
|
||||||
债户
|
债户
|
||||||
|
债基
|
||||||
债家
|
债家
|
||||||
债款
|
债款
|
||||||
债利
|
债利
|
||||||
|
@ -103491,6 +103557,7 @@
|
||||||
涨滩
|
涨滩
|
||||||
涨停
|
涨停
|
||||||
涨停板
|
涨停板
|
||||||
|
涨薪
|
||||||
涨涨
|
涨涨
|
||||||
掌班
|
掌班
|
||||||
掌鞭
|
掌鞭
|
||||||
|
@ -104927,7 +104994,9 @@
|
||||||
整天
|
整天
|
||||||
整条
|
整条
|
||||||
整晚
|
整晚
|
||||||
|
整行
|
||||||
整形
|
整形
|
||||||
|
整型
|
||||||
整修
|
整修
|
||||||
整训
|
整训
|
||||||
整夜
|
整夜
|
||||||
|
@ -107678,6 +107747,7 @@
|
||||||
朱丽叶
|
朱丽叶
|
||||||
朱莉
|
朱莉
|
||||||
朱令
|
朱令
|
||||||
|
朱罗纪
|
||||||
朱门
|
朱门
|
||||||
朱门酒肉臭
|
朱门酒肉臭
|
||||||
朱墨
|
朱墨
|
||||||
|
@ -107881,6 +107951,7 @@
|
||||||
主办方
|
主办方
|
||||||
主办权
|
主办权
|
||||||
主办者
|
主办者
|
||||||
|
主包
|
||||||
主笔
|
主笔
|
||||||
主编
|
主编
|
||||||
主表
|
主表
|
||||||
|
@ -108631,6 +108702,7 @@
|
||||||
转移话题
|
转移话题
|
||||||
转移支付
|
转移支付
|
||||||
转义
|
转义
|
||||||
|
转译
|
||||||
转引
|
转引
|
||||||
转印
|
转印
|
||||||
转用
|
转用
|
||||||
|
@ -109696,6 +109768,7 @@
|
||||||
自寻烦恼
|
自寻烦恼
|
||||||
自寻死路
|
自寻死路
|
||||||
自言自语
|
自言自语
|
||||||
|
自研
|
||||||
自业自得
|
自业自得
|
||||||
自已
|
自已
|
||||||
自以为
|
自以为
|
||||||
|
@ -109819,6 +109892,7 @@
|
||||||
子集
|
子集
|
||||||
子键
|
子键
|
||||||
子句
|
子句
|
||||||
|
子卷
|
||||||
子爵
|
子爵
|
||||||
子口
|
子口
|
||||||
子类
|
子类
|
85
src/app.vue
85
src/app.vue
|
@ -1,63 +1,70 @@
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<header>
|
<Topbar />
|
||||||
<img alt="Vue logo" class="logo" src="/assets/logo.svg" width="125" height="125" />
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<Hello msg="It works!!!" />
|
|
||||||
|
|
||||||
<nav>
|
|
||||||
<router-link to="/">Home</router-link>
|
|
||||||
<router-link to="/about">About</router-link>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<router-view />
|
<router-view />
|
||||||
|
<Footer />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Hello from './components/hello.vue'
|
import Topbar from './components/topbar.vue'
|
||||||
|
import Footer from './components/footer.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Hello }
|
components: { Topbar, Footer }
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.app {
|
body {
|
||||||
padding: 16px;
|
line-height: 1.5;
|
||||||
|
font-size: 14px;
|
||||||
|
color: var(--color-dark-1);
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
wc-switch {
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
header {
|
.app {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
.flex {
|
||||||
color: var(--color-teal-1);
|
|
||||||
transition: 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: var(--color-teal-3);
|
|
||||||
}
|
|
||||||
|
|
||||||
nav {
|
|
||||||
margin-top: 32px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
a {
|
&.wrap {
|
||||||
margin: 0 16px;
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.column {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ac {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alc {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.acc {
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.asc {
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
main {
|
.wrapper {
|
||||||
margin: 32px;
|
width: 1024px;
|
||||||
text-align: center;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
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;
|
|
||||||
|
|
||||||
&.wrap {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.column {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.ac {
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alc {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.acc {
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.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, 0.05);
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
font-size: 24px;
|
|
||||||
color: var(--color-red-1);
|
|
||||||
|
|
||||||
span {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navs {
|
|
||||||
font-size: 16px;
|
|
||||||
|
|
||||||
.nav {
|
|
||||||
margin-left: 32px;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: color 0.2s linear;
|
|
||||||
|
|
||||||
&.active,
|
|
||||||
&:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--color-red-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
width: 100%;
|
|
||||||
height: 64px;
|
|
||||||
border-top: 1px solid var(--color-plain-2);
|
|
||||||
}
|
|
|
@ -0,0 +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.wrap{flex-wrap:wrap}.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{overflow:hidden;flex:1}.main .wrapper{height:100%}.main .table-info{width:100%;height:64px}.main .table-info b{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.result b{letter-spacing:2px;color:var(--color-blue-1)}.main .search .field wc-input{flex:1}.main .panel{overflow:hidden;flex:1;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 .scroll-view{overflow:hidden;flex:1}.main .panel .preview{margin-top:16px;font-family:Menlo;word-break:keep-all;white-space:pre-wrap}.github{position:fixed;right:-30px;top:20px;z-index:9;width:120px;height:22px;line-height:22px;text-align:center;color:#fff;background:var(--color-dark-1);transform:rotate(45deg)}.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 .value{line-height:32px}.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}.wrapper{width:100%}.footer .wrapper{flex-direction:column;align-items:center;justify-content:center}}
|
|
@ -1,180 +0,0 @@
|
||||||
@import './common.scss';
|
|
||||||
|
|
||||||
.main {
|
|
||||||
overflow: hidden;
|
|
||||||
flex: 1;
|
|
||||||
|
|
||||||
.wrapper {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-info {
|
|
||||||
width: 100%;
|
|
||||||
height: 64px;
|
|
||||||
|
|
||||||
b {
|
|
||||||
color: var(--color-red-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.download {
|
|
||||||
margin-left: 32px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.search {
|
|
||||||
width: 100%;
|
|
||||||
|
|
||||||
.field {
|
|
||||||
margin-top: 16px;
|
|
||||||
|
|
||||||
&.result {
|
|
||||||
line-height: 2;
|
|
||||||
font-family: Menlo;
|
|
||||||
word-wrap: break-word;
|
|
||||||
white-space: pre-wrap;
|
|
||||||
|
|
||||||
b {
|
|
||||||
letter-spacing: 2px;
|
|
||||||
color: var(--color-blue-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wc-input {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel {
|
|
||||||
overflow: hidden;
|
|
||||||
flex: 1;
|
|
||||||
margin-top: 32px;
|
|
||||||
|
|
||||||
.custom-file {
|
|
||||||
position: relative;
|
|
||||||
width: 160px;
|
|
||||||
|
|
||||||
input {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tips {
|
|
||||||
color: var(--color-orange-3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.scroll-view {
|
|
||||||
overflow: hidden;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.preview {
|
|
||||||
margin-top: 16px;
|
|
||||||
font-family: Menlo;
|
|
||||||
word-break: keep-all;
|
|
||||||
white-space: pre-wrap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* */
|
|
||||||
.about {
|
|
||||||
padding: 32px 16px;
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logs {
|
|
||||||
.version {
|
|
||||||
margin-top: 32px;
|
|
||||||
line-height: 2;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd {
|
|
||||||
color: var(--color-grey-3);
|
|
||||||
}
|
|
||||||
|
|
||||||
ol {
|
|
||||||
padding-left: 2em;
|
|
||||||
list-style: decimal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.github {
|
|
||||||
position: fixed;
|
|
||||||
right: -30px;
|
|
||||||
top: 20px;
|
|
||||||
z-index: 9;
|
|
||||||
width: 120px;
|
|
||||||
height: 22px;
|
|
||||||
line-height: 22px;
|
|
||||||
text-align: center;
|
|
||||||
color: #fff;
|
|
||||||
background: var(--color-dark-1);
|
|
||||||
transform: rotate(45deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-layer {
|
|
||||||
width: 640px;
|
|
||||||
padding-bottom: 64px;
|
|
||||||
background: #fff;
|
|
||||||
|
|
||||||
.field {
|
|
||||||
margin-top: 16px;
|
|
||||||
padding: 0 16px;
|
|
||||||
|
|
||||||
.label {
|
|
||||||
min-width: 120px;
|
|
||||||
padding-right: 16px;
|
|
||||||
line-height: 32px;
|
|
||||||
text-align: right;
|
|
||||||
font-weight: bold;
|
|
||||||
color: var(--color-grey-3);
|
|
||||||
|
|
||||||
&::after {
|
|
||||||
content: ' : ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.value {
|
|
||||||
line-height: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.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 {
|
|
||||||
padding: 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.wrapper {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
.wrapper {
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<template>
|
||||||
|
<footer class="footer flex ac">
|
||||||
|
<div class="wrapper flex asc">
|
||||||
|
<span>©2022, Yutent™.</span>
|
||||||
|
<span>Power by JavaScript</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.footer {
|
||||||
|
width: 100%;
|
||||||
|
height: 64px;
|
||||||
|
border-top: 1px solid var(--color-plain-2);
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,40 +0,0 @@
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="greetings">
|
|
||||||
<h1 class="green">{{ msg }}</h1>
|
|
||||||
<h3>
|
|
||||||
你已经成功运行了一个项目, 项目基于
|
|
||||||
<a href="//github.com/bytedo/vue-live" target="_blank">Vue-live</a> +
|
|
||||||
<a href="//vuejs.org" target="_blank">Vue 3</a>.
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
msg: String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
h1 {
|
|
||||||
font-size: 52px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.green {
|
|
||||||
font-family: 'Courier New', Courier, monospace;
|
|
||||||
color: var(--color-blue-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.greetings {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
<template>
|
||||||
|
<header class="topbar flex ac noselect">
|
||||||
|
<div class="wrapper flex asc">
|
||||||
|
<a class="logo">五笔输入法<span>86版</span></a>
|
||||||
|
|
||||||
|
<nav class="navs flex">
|
||||||
|
<router-link class="nav" to="/">首页</router-link>
|
||||||
|
<router-link class="nav" to="">简码表</router-link>
|
||||||
|
<router-link class="nav" to="">打字练习</router-link>
|
||||||
|
<router-link class="nav" to="/about">关于</router-link>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
msg: String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.topbar {
|
||||||
|
width: 100%;
|
||||||
|
height: 64px;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.05);
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
font-size: 24px;
|
||||||
|
color: var(--color-red-1);
|
||||||
|
|
||||||
|
span {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navs {
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
.nav {
|
||||||
|
margin-left: 32px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: color 0.2s linear;
|
||||||
|
|
||||||
|
&.active,
|
||||||
|
&:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: var(--color-red-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -55,6 +55,7 @@ export function createCode(dict, word) {
|
||||||
let c2 = dict.get(word[1])?.pop()
|
let c2 = dict.get(word[1])?.pop()
|
||||||
let c3 = dict.get(word[2])?.pop()
|
let c3 = dict.get(word[2])?.pop()
|
||||||
let ce = dict.get(word[word.length - 1])?.pop()
|
let ce = dict.get(word[word.length - 1])?.pop()
|
||||||
|
|
||||||
if (c1 && c2 && c3 && ce) {
|
if (c1 && c2 && c3 && ce) {
|
||||||
return c1[0] + c2[0] + c3[0] + ce[0]
|
return c1[0] + c2[0] + c3[0] + ce[0]
|
||||||
} else {
|
} else {
|
||||||
|
@ -136,7 +137,6 @@ export class Enum {
|
||||||
add(k, v) {
|
add(k, v) {
|
||||||
if (this.#dict_k[k]) {
|
if (this.#dict_k[k]) {
|
||||||
var _v = this.#dict_k[k]
|
var _v = this.#dict_k[k]
|
||||||
|
|
||||||
for (let t of _v) {
|
for (let t of _v) {
|
||||||
this.#dict_v[t] = this.#dict_v[t].filter(i => i !== k)
|
this.#dict_v[t] = this.#dict_v[t].filter(i => i !== k)
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,13 @@ export class Enum {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.#dict_v[v] = [k]
|
if (this.#dict_v[v]) {
|
||||||
|
if (!this.#dict_v[v].includes(k)) {
|
||||||
|
this.#dict_v[v].push(k)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.#dict_v[v] = [k]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,6 +182,7 @@ export class Enum {
|
||||||
if (this.#dict_k[k]) {
|
if (this.#dict_k[k]) {
|
||||||
return [...this.#dict_k[k]]
|
return [...this.#dict_k[k]]
|
||||||
} else if (this.#dict_v[k]) {
|
} else if (this.#dict_v[k]) {
|
||||||
|
console.log(this.#dict_v[k])
|
||||||
return [...this.#dict_v[k]]
|
return [...this.#dict_v[k]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
385
src/lib/index.js
385
src/lib/index.js
|
@ -1,385 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author yutent<yutent.io@gmail.com>
|
|
||||||
* @date 2022/03/11 12:03:59
|
|
||||||
*/
|
|
||||||
|
|
||||||
import '//jscdn.ink/anot/2.2.3/anot.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/layer/index.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/input.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/button.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/link.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/radio.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/checkbox.js'
|
|
||||||
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/switch.js'
|
|
||||||
import fetch from '//jscdn.ink/@bytedo/fetch/2.1.1/index.js'
|
|
||||||
|
|
||||||
import { Enum, saveFile, SString, createCode } from './lib/core.js'
|
|
||||||
import FIXED_86F from './lib/86_fixed.js'
|
|
||||||
|
|
||||||
const VER_86 = '86'
|
|
||||||
const VER_86F = '86f'
|
|
||||||
|
|
||||||
const WB_CODE_NAME = { 1: '一级简码', 2: '二级简码', 3: '三级简码', 4: '四级简码' }
|
|
||||||
const WB_TABLE_2312 = new Enum()
|
|
||||||
const WB_TABLE_GBK = new Enum()
|
|
||||||
const WB_TABLE_GBK_TEMP = new Enum()
|
|
||||||
const WB_TABLE_86F = new Enum(FIXED_86F)
|
|
||||||
const WB_WORDS = new Enum()
|
|
||||||
const WB_DY = new Enum()
|
|
||||||
const WB_EMOJI = new Enum()
|
|
||||||
const WB_NET = new Enum()
|
|
||||||
const WB_CODE = new Enum()
|
|
||||||
|
|
||||||
Anot({
|
|
||||||
$id: 'app',
|
|
||||||
state: {
|
|
||||||
gb2312: 0,
|
|
||||||
gbk: 0,
|
|
||||||
words: 0,
|
|
||||||
dy: 0,
|
|
||||||
emoji: 0,
|
|
||||||
nethot: 0,
|
|
||||||
code: 0,
|
|
||||||
result: '',
|
|
||||||
filter: {
|
|
||||||
text: '',
|
|
||||||
version: VER_86
|
|
||||||
},
|
|
||||||
dlOpt: {
|
|
||||||
pos: 'front',
|
|
||||||
version: VER_86,
|
|
||||||
reverse: true,
|
|
||||||
pinyin: false,
|
|
||||||
tables: ['2312', 'words']
|
|
||||||
},
|
|
||||||
total: 0,
|
|
||||||
preview: ''
|
|
||||||
},
|
|
||||||
|
|
||||||
watch: {
|
|
||||||
'dlOpt.tables'() {
|
|
||||||
this.calculate()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
Promise.all([
|
|
||||||
fetch('./data/gb2312.txt').then(r => r.text()),
|
|
||||||
fetch('./data/gbk.txt').then(r => r.text()),
|
|
||||||
fetch('./data/words.txt').then(r => r.text()),
|
|
||||||
fetch('./data/dy.txt').then(r => r.text()),
|
|
||||||
fetch('./data/emoji.txt').then(r => r.text()),
|
|
||||||
fetch('./data/nethot.txt').then(r => r.text()),
|
|
||||||
fetch('./data/code.txt').then(r => r.text())
|
|
||||||
]).then(([gb2312, gbk, words, dy, emoji, nethot, code]) => {
|
|
||||||
//
|
|
||||||
|
|
||||||
gb2312.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_TABLE_2312.add(k, it)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// 先使用gb2312, 目的是为了词库顺序以gb2312优先
|
|
||||||
WB_TABLE_GBK_TEMP.concat(WB_TABLE_2312)
|
|
||||||
|
|
||||||
gbk.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_TABLE_GBK.add(k, it)
|
|
||||||
WB_TABLE_GBK_TEMP.add(k, it)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
//
|
|
||||||
words.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_WORDS.add(k, createCode(WB_TABLE_GBK_TEMP, k))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
dy.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_DY.add(k, it)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
emoji.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_EMOJI.add(k, it)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
nethot.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_NET.add(k, createCode(WB_TABLE_GBK_TEMP, k))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
code.split('\n').forEach(it => {
|
|
||||||
it = it.split(' ')
|
|
||||||
|
|
||||||
let k = it.shift()
|
|
||||||
|
|
||||||
if (k) {
|
|
||||||
WB_CODE.add(k, createCode(WB_TABLE_GBK_TEMP, k))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
this.gb2312 = WB_TABLE_2312.length
|
|
||||||
this.gbk = WB_TABLE_GBK.length
|
|
||||||
this.words = WB_WORDS.length
|
|
||||||
this.dy = WB_DY.length
|
|
||||||
this.emoji = WB_EMOJI.length
|
|
||||||
this.nethot = WB_NET.length
|
|
||||||
this.code = WB_CODE.length
|
|
||||||
|
|
||||||
this.calculate()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
search() {
|
|
||||||
var { text, version } = this.filter
|
|
||||||
var reverse = false
|
|
||||||
var res, resf
|
|
||||||
|
|
||||||
text = text.trim().toLowerCase()
|
|
||||||
|
|
||||||
if (!text) {
|
|
||||||
this.result = ''
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
reverse = /^[a-z]{1,4}$/.test(text)
|
|
||||||
|
|
||||||
if (!reverse) {
|
|
||||||
text = text.replace(/[\sa-z]/g, '')
|
|
||||||
}
|
|
||||||
|
|
||||||
text = new SString(text)
|
|
||||||
|
|
||||||
if (reverse || text.length === 1) {
|
|
||||||
console.log(text, text + '')
|
|
||||||
res = [WB_TABLE_GBK.get(text)]
|
|
||||||
if (version === VER_86F) {
|
|
||||||
resf = [WB_TABLE_86F.get(text)]
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
res = text.split().map(t => WB_TABLE_GBK.get(t))
|
|
||||||
if (version === VER_86F) {
|
|
||||||
resf = text.split().map(t => WB_TABLE_86F.get(t))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (reverse) {
|
|
||||||
text = text.toUpperCase()
|
|
||||||
// 反查时, 直接替换结果
|
|
||||||
if (resf && resf[0]) {
|
|
||||||
res = resf
|
|
||||||
}
|
|
||||||
if (res[0]) {
|
|
||||||
res = `【 ${text} 】👉\t${res[0]
|
|
||||||
.map(
|
|
||||||
t =>
|
|
||||||
`${t}(<b>${(resf && resf[0] ? WB_TABLE_86F.get(t) : WB_TABLE_GBK.get(t))
|
|
||||||
.join('、')
|
|
||||||
.toUpperCase()}</b>)`
|
|
||||||
)
|
|
||||||
.join('\t\t')}`
|
|
||||||
} else {
|
|
||||||
res = `【 ${text} 】👉\t无结果, 请检查你的输入是否正确, 如果确认无误, 可以反馈缺失字库。`
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (resf) {
|
|
||||||
resf.forEach((it, i) => {
|
|
||||||
if (it) {
|
|
||||||
res[i] = it
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
res = res
|
|
||||||
.map((it, i) => {
|
|
||||||
if (it) {
|
|
||||||
return `【 ${text.at(i)} 】👉\t${it
|
|
||||||
.map(t => `${WB_CODE_NAME[t.length]}: <b>${t.toUpperCase()}</b>`)
|
|
||||||
.join('\t\t')}`
|
|
||||||
} else {
|
|
||||||
return `【 ${text.at(
|
|
||||||
i
|
|
||||||
)} 】👉\t无结果, 请检查你的输入是否正确, 如果确认无误, 可以反馈缺失字库。`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.join('\n')
|
|
||||||
// 词库查询
|
|
||||||
{
|
|
||||||
let extra =
|
|
||||||
WB_WORDS.get(text) ||
|
|
||||||
WB_DY.get(text) ||
|
|
||||||
WB_EMOJI.get(text) ||
|
|
||||||
WB_NET.get(text) ||
|
|
||||||
WB_CODE.get(text)
|
|
||||||
|
|
||||||
if (extra) {
|
|
||||||
let t = extra.shift()
|
|
||||||
res += `\n\n${'-'.repeat(6)} 词库查询结果 ${'-'.repeat(32)}\n【 ${text} 】👉\t${
|
|
||||||
WB_CODE_NAME[t.length]
|
|
||||||
}: <b>${t.toUpperCase()}</b>`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.result = `${'-'.repeat(6)} 字库查询结果 ${'-'.repeat(32)}\n${res}`
|
|
||||||
},
|
|
||||||
|
|
||||||
calculate() {
|
|
||||||
var num = this.gb2312
|
|
||||||
|
|
||||||
if (this.dlOpt.tables.includes('gbk')) {
|
|
||||||
num += this.gbk
|
|
||||||
}
|
|
||||||
num += this.words
|
|
||||||
num += this.dy
|
|
||||||
|
|
||||||
if (this.dlOpt.tables.includes('emoji')) {
|
|
||||||
num += this.emoji
|
|
||||||
}
|
|
||||||
if (this.dlOpt.tables.includes('nethot')) {
|
|
||||||
num += this.nethot
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.dlOpt.tables.includes('code')) {
|
|
||||||
num += this.code
|
|
||||||
}
|
|
||||||
|
|
||||||
this.total = num
|
|
||||||
},
|
|
||||||
|
|
||||||
fileChange(ev) {
|
|
||||||
var reader = new FileReader()
|
|
||||||
var file = ev.target.files[0]
|
|
||||||
var all = new Set()
|
|
||||||
var unknow = new Set()
|
|
||||||
|
|
||||||
ev.target.value = ''
|
|
||||||
|
|
||||||
reader.onload = () => {
|
|
||||||
let arr = reader.result
|
|
||||||
.trim()
|
|
||||||
.split('\n')
|
|
||||||
.map(_ => _.trim())
|
|
||||||
|
|
||||||
for (let it of arr) {
|
|
||||||
it = it.replace(/[\w\s\t]+/g, '')
|
|
||||||
all.add(it)
|
|
||||||
if (!WB_TABLE_GBK.get(it) && !WB_WORDS.get(it) && !WB_DY.get(it)) {
|
|
||||||
unknow.add(it)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
all = Array.from(all)
|
|
||||||
unknow = Array.from(unknow)
|
|
||||||
|
|
||||||
this.preview =
|
|
||||||
`【${file.name}】\n本次上传, 含有 ${arr.length} 个词条(有效词条 ${all.length} 个)。\n` +
|
|
||||||
`其中字库中已经存在 ${all.length - unknow.length}个, 未存在词条 ${
|
|
||||||
unknow.length
|
|
||||||
} 个, 如下:\n\n${unknow.join('\t')}`
|
|
||||||
|
|
||||||
// window.unknow = unknow
|
|
||||||
// console.log(unknow)
|
|
||||||
|
|
||||||
// navigator.clipboard.writeText(Array.from(all).join('\n'))
|
|
||||||
}
|
|
||||||
|
|
||||||
reader.readAsText(file)
|
|
||||||
},
|
|
||||||
|
|
||||||
openDownloadPanel() {
|
|
||||||
this.$refs.dl.show()
|
|
||||||
},
|
|
||||||
|
|
||||||
closeDownloadPanel() {
|
|
||||||
this.$refs.dl.close()
|
|
||||||
},
|
|
||||||
|
|
||||||
download() {
|
|
||||||
var opt = { ...this.dlOpt }
|
|
||||||
var temp = new Enum()
|
|
||||||
|
|
||||||
temp.concat(WB_TABLE_2312)
|
|
||||||
|
|
||||||
// 生成反查字库
|
|
||||||
if (opt.reverse) {
|
|
||||||
if (opt.tables.includes('gbk')) {
|
|
||||||
let bin = new Blob([WB_TABLE_GBK_TEMP.toString()], { type: 'text/plain' })
|
|
||||||
saveFile(bin, 'wb_table_gbk_reverse.txt')
|
|
||||||
} else {
|
|
||||||
let bin = new Blob([WB_TABLE_2312.toString()], { type: 'text/plain' })
|
|
||||||
saveFile(bin, 'wb_table_gb2312_reverse.txt')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 默认词库
|
|
||||||
temp.concat(WB_WORDS)
|
|
||||||
|
|
||||||
// emoji表情
|
|
||||||
if (opt.tables.includes('emoji')) {
|
|
||||||
temp.concat(WB_EMOJI)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 网络热词
|
|
||||||
if (opt.tables.includes('nethot')) {
|
|
||||||
temp.concat(WB_NET)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 计算机术语
|
|
||||||
if (opt.tables.includes('code')) {
|
|
||||||
temp.concat(WB_CODE)
|
|
||||||
}
|
|
||||||
|
|
||||||
// gbk 大字符集, 顺序往后调
|
|
||||||
if (opt.tables.includes('gbk')) {
|
|
||||||
temp.concat(WB_TABLE_GBK)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 异形字库
|
|
||||||
if (opt.tables.includes('dy')) {
|
|
||||||
temp.concat(WB_DY)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 暂未支持
|
|
||||||
// if (opt.tables.includes('personal')) {
|
|
||||||
// temp.concat(WB_PERSONAL)
|
|
||||||
// }
|
|
||||||
|
|
||||||
let bin = new Blob([temp.toString(opt.pos === 'front')], { type: 'text/plain' })
|
|
||||||
saveFile(bin, `wb_table_${opt.pos}.txt`)
|
|
||||||
|
|
||||||
this.closeDownloadPanel()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
12
src/main.js
12
src/main.js
|
@ -1,11 +1,17 @@
|
||||||
|
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/layer/index.js'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/input.js'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/button.js'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/link.js'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/radio.js'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/checkbox.js'
|
||||||
|
import '//jscdn.ink/@bytedo/wcui/1.0.12/form/switch.js'
|
||||||
|
|
||||||
import App from './app.vue'
|
import App from './app.vue'
|
||||||
|
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
|
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
|
|
||||||
app.use(router).use(store).mount('.app')
|
app.use(router).use(store).mount('.app')
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
|
import { createRouter, createWebHashHistory } from 'vue-router'
|
||||||
import { createRouter, createWebHistory } from 'vue-router'
|
|
||||||
import Home from './views/home.vue'
|
import Home from './views/home.vue'
|
||||||
|
import About from './views/about.vue'
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(),
|
history: createWebHashHistory(),
|
||||||
routes: [
|
routes: [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
|
@ -13,11 +13,9 @@ const router = createRouter({
|
||||||
{
|
{
|
||||||
path: '/about',
|
path: '/about',
|
||||||
name: 'about',
|
name: 'about',
|
||||||
component: () => import('./views/about.vue')
|
component: About
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,107 @@
|
||||||
|
<template>
|
||||||
|
<main class="main flex ac">
|
||||||
|
<div class="wrapper about">
|
||||||
|
<h2>更新日志</h2>
|
||||||
|
|
||||||
|
<dl class="logs">
|
||||||
|
<template v-for="it in list">
|
||||||
|
<dt class="version">{{ it.date }}</dt>
|
||||||
|
<dd>
|
||||||
|
<ol>
|
||||||
|
<li v-for="log in it.logs">{{ log }}</li>
|
||||||
|
</ol>
|
||||||
|
</dd>
|
||||||
|
</template>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data(){
|
data() {
|
||||||
return {
|
return {
|
||||||
content: '这是关于我们页面'
|
list: [
|
||||||
|
{
|
||||||
|
date: '2023.02.19',
|
||||||
|
logs: ['页面改用vue渲染', '删除部分错别字词组、增加76个常用词组']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2022.04.10',
|
||||||
|
logs: ['修复编码生成', '删除部分错别字词组']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2022.03.22',
|
||||||
|
logs: [
|
||||||
|
'调整gbk大字符集的排序',
|
||||||
|
'删除词组`加德满都、嗲嗲、所列、新特`, 增加词组`握草、摆烂、封板`'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2022.03.21',
|
||||||
|
logs: [
|
||||||
|
'修复字库字典顺序',
|
||||||
|
'增加基础词汇23465个、计算机词汇221个、emoji表情181个、网络热词186个',
|
||||||
|
'查询功能支持词组',
|
||||||
|
'词库下载功能完成(个人词库暂未支持、拼音反查暂未支持)'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2022.03.15',
|
||||||
|
logs: [
|
||||||
|
'增加以下单字【䗪、㳇、㕮、㬊、㿠、䝙、㠇、㮾、㫰、㛹、㧑、㙦、䓨、㳚、䏲、䗖、䃅、㙍、䏡、䓛、䃎、䓬、㽏、䢼、㸌、㛃、㬚、㵐、䢺、䓫、䌹、䐃、㸆、㥄、䂮、㰀、㠓、㭕、䎃、䒤、㴔、㟃、䗴、㻬、䣘、㛚、㳘、㬎、䗛、㑊、㺄、㶲、㙘、䎖、㩼、㹴、䜰、䜮、鿏】',
|
||||||
|
'增加以下异型字【𠮷、𠙶、𨭉、𨚕、𠳐、𥕢、𤧛、𣗋、𨱏、𦭜、𨙸、𣸣、𦙶、𨐈、𤩽、𨱑、𨟠、𩾌、𡐓、𦝼、𧿹、𩾃、𨺙、𦰡、𡎚、𨱇、𦈡、𦒍、𣲘、𥻗、𣲗、𤫉、𥔲、𩽾、𠅤、𤞤、𨱔、𥖨、𫍣、𬶍、𫍣、𫘦、𫘜、𬭩、𫇭、𬭬】'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
date: '2022.03.10',
|
||||||
|
logs: [
|
||||||
|
'完成基础字典生成GB2312(6763)个 + GBK(14295)个',
|
||||||
|
'完成基本词组生成'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
document.title = '关于 - 五笔输入法86版'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<style lang="scss" scoped>
|
||||||
<main>
|
.main {
|
||||||
<h1>{{content}}</h1>
|
overflow: hidden;
|
||||||
<cite>当前vue-live版本: v{{$store.version}}</cite>
|
flex: 1;
|
||||||
</main>
|
.about {
|
||||||
</template>
|
padding: 32px 16px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logs {
|
||||||
|
.version {
|
||||||
|
margin-top: 32px;
|
||||||
|
line-height: 2;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 18px;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
color: var(--color-red-1);
|
||||||
|
content: '@ ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
color: var(--color-grey-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
ol {
|
||||||
|
padding-left: 2em;
|
||||||
|
list-style: decimal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,17 +1,690 @@
|
||||||
|
<template>
|
||||||
|
<main class="main flex ac">
|
||||||
|
<div class="wrapper flex column">
|
||||||
|
<header class="table-info flex alc wrap">
|
||||||
|
现有单字GB2312(
|
||||||
|
<b>{{ gb2312 }}</b> )个 + GBK(<b>{{ gbk }}</b> )个、 异形字<b>{{
|
||||||
|
dy
|
||||||
|
}}</b>
|
||||||
|
个、 词组<b>{{ words }}</b> 个、 网络热词<b>{{ nethot }}</b> 个、
|
||||||
|
计算机术语<b>{{ code }}</b> 个、 emoji<b>{{ emoji }}</b> 个!
|
||||||
|
<wc-link
|
||||||
|
class="download"
|
||||||
|
type="primary"
|
||||||
|
underline
|
||||||
|
@click="openDownloadPanel"
|
||||||
|
>下载词库</wc-link
|
||||||
|
>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="search">
|
||||||
|
<section class="field flex alc">
|
||||||
|
<wc-input
|
||||||
|
placeholder="输入汉字或五笔编码查询"
|
||||||
|
v-model="filter.text"
|
||||||
|
@submit="search"
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex alc">
|
||||||
|
<wc-radio-group v-model="filter.version" @change="search">
|
||||||
|
<wc-radio value="86">86版</wc-radio>
|
||||||
|
<wc-radio value="86f" type="danger">86修正版</wc-radio>
|
||||||
|
</wc-radio-group>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field result" v-html="result"></section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel flex column">
|
||||||
|
<div class="form">
|
||||||
|
<wc-button class="custom-file" icon="plus">
|
||||||
|
<input type="file" @change="fileChange" />
|
||||||
|
上传个人词库
|
||||||
|
</wc-button>
|
||||||
|
<span class="tips"
|
||||||
|
>(仅需要中文即可, 程序会自动生成五笔编码, 词组一行一个)</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<wc-scroll class="scroll-view">
|
||||||
|
<div class="preview">{{ preview }}</div>
|
||||||
|
</wc-scroll>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<a href="//github.com/yutent/wb-table" class="github" target="__target"
|
||||||
|
>GitHub</a
|
||||||
|
>
|
||||||
|
|
||||||
|
<wc-layer ref="dl" title="下载选项" mask mask-close>
|
||||||
|
<div class="download-layer">
|
||||||
|
<section class="field flex">
|
||||||
|
<span class="label">编码版本</span>
|
||||||
|
<wc-radio-group v-model="dlOpt.version" @change="search">
|
||||||
|
<wc-radio value="86">86版</wc-radio>
|
||||||
|
<wc-radio value="86f" type="danger">86修正版</wc-radio>
|
||||||
|
</wc-radio-group>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex">
|
||||||
|
<span class="label">词库选择</span>
|
||||||
|
<wc-checkbox-group v-model="dlOpt.tables">
|
||||||
|
<wc-checkbox readonly value="2312">GB2312</wc-checkbox>
|
||||||
|
<wc-checkbox value="gbk">GBK</wc-checkbox>
|
||||||
|
<wc-checkbox readonly value="words">词组库</wc-checkbox>
|
||||||
|
<wc-checkbox value="dy">异形字库</wc-checkbox>
|
||||||
|
<wc-checkbox value="emoji">emoji</wc-checkbox>
|
||||||
|
<wc-checkbox value="nethot">网络热词</wc-checkbox>
|
||||||
|
<wc-checkbox value="code">计算机术语</wc-checkbox>
|
||||||
|
<wc-checkbox value="personal" type="info"
|
||||||
|
>个人词库(自主上传的)</wc-checkbox
|
||||||
|
>
|
||||||
|
</wc-checkbox-group>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex">
|
||||||
|
<span class="label">词库编码位置</span>
|
||||||
|
<wc-radio-group v-model="dlOpt.pos">
|
||||||
|
<wc-radio value="front">编码前置</wc-radio>
|
||||||
|
<wc-radio value="back">编码后置</wc-radio>
|
||||||
|
</wc-radio-group>
|
||||||
|
<span class="tips">(编码前置时, 自动聚合词组)</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex">
|
||||||
|
<span class="label">生成反查字库</span>
|
||||||
|
<wc-switch v-model="dlOpt.reverse"></wc-switch>
|
||||||
|
<span class="tips">(输入法支持拼音反查五笔编码时, 请勾选)</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex">
|
||||||
|
<span class="label">是否生成拼音</span>
|
||||||
|
<wc-switch v-model="dlOpt.pinyin" disabled></wc-switch>
|
||||||
|
<span class="tips"
|
||||||
|
>(输入法支持临时拼音时, 请勾选)(功能暂未支持,
|
||||||
|
多单字词库生成中...)</span
|
||||||
|
>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex">
|
||||||
|
<span class="label">总计</span>
|
||||||
|
<span class="value">{{ total }} 个</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="field flex asc ctrol">
|
||||||
|
<wc-button @click="closeDownloadPanel">取消</wc-button>
|
||||||
|
<wc-button type="primary" @click="download">确认下载</wc-button>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</wc-layer>
|
||||||
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { Enum, saveFile, SString, createCode } from '@/lib/core.js'
|
||||||
|
import FIXED_86F from '@/lib/86_fixed.js'
|
||||||
|
|
||||||
|
const VER_86 = '86'
|
||||||
|
const VER_86F = '86f'
|
||||||
|
|
||||||
|
const WB_CODE_NAME = {
|
||||||
|
1: '一级简码',
|
||||||
|
2: '二级简码',
|
||||||
|
3: '三级简码',
|
||||||
|
4: '四级简码'
|
||||||
|
}
|
||||||
|
const WB_TABLE_2312 = new Enum()
|
||||||
|
const WB_TABLE_GBK = new Enum()
|
||||||
|
const WB_TABLE_GBK_TEMP = new Enum()
|
||||||
|
const WB_TABLE_86F = new Enum(FIXED_86F)
|
||||||
|
const WB_WORDS = new Enum()
|
||||||
|
const WB_DY = new Enum()
|
||||||
|
const WB_EMOJI = new Enum()
|
||||||
|
const WB_NET = new Enum()
|
||||||
|
const WB_CODE = new Enum()
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data(){
|
data() {
|
||||||
return {
|
return {
|
||||||
content: '欢迎访问~~ 这是首页'
|
gb2312: 0,
|
||||||
|
gbk: 0,
|
||||||
|
words: 0,
|
||||||
|
dy: 0,
|
||||||
|
emoji: 0,
|
||||||
|
nethot: 0,
|
||||||
|
code: 0,
|
||||||
|
result: '',
|
||||||
|
filter: {
|
||||||
|
text: '',
|
||||||
|
version: VER_86
|
||||||
|
},
|
||||||
|
dlOpt: {
|
||||||
|
pos: 'front',
|
||||||
|
version: VER_86,
|
||||||
|
reverse: true,
|
||||||
|
pinyin: false,
|
||||||
|
tables: ['2312', 'words']
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
preview: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'dlOpt.tables'() {
|
||||||
|
this.calculate()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
document.title = '五笔输入法86版'
|
||||||
|
|
||||||
|
Promise.all([
|
||||||
|
fetch('/wb-table/data/gb2312.txt').then(r => r.text()),
|
||||||
|
fetch('/wb-table/data/gbk.txt').then(r => r.text()),
|
||||||
|
fetch('/wb-table/data/words.txt').then(r => r.text()),
|
||||||
|
fetch('/wb-table/data/dy.txt').then(r => r.text()),
|
||||||
|
fetch('/wb-table/data/emoji.txt').then(r => r.text()),
|
||||||
|
fetch('/wb-table/data/nethot.txt').then(r => r.text()),
|
||||||
|
fetch('/wb-table/data/code.txt').then(r => r.text())
|
||||||
|
]).then(([gb2312, gbk, words, dy, emoji, nethot, code]) => {
|
||||||
|
//
|
||||||
|
|
||||||
|
gb2312.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_TABLE_2312.add(k, it)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 先使用gb2312, 目的是为了词库顺序以gb2312优先
|
||||||
|
WB_TABLE_GBK_TEMP.concat(WB_TABLE_2312)
|
||||||
|
|
||||||
|
gbk.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_TABLE_GBK.add(k, it)
|
||||||
|
WB_TABLE_GBK_TEMP.add(k, it)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
dy.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_DY.add(k, it)
|
||||||
|
WB_TABLE_GBK_TEMP.add(k, it)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
emoji.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_EMOJI.add(k, it)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
//
|
||||||
|
words.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_WORDS.add(k, createCode(WB_TABLE_GBK_TEMP, k))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
nethot.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_NET.add(k, createCode(WB_TABLE_GBK_TEMP, k))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
code.split('\n').forEach(it => {
|
||||||
|
it = it.split(' ')
|
||||||
|
|
||||||
|
let k = it.shift()
|
||||||
|
|
||||||
|
if (k) {
|
||||||
|
WB_CODE.add(k, createCode(WB_TABLE_GBK_TEMP, k))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.gb2312 = WB_TABLE_2312.length
|
||||||
|
this.gbk = WB_TABLE_GBK.length
|
||||||
|
this.words = WB_WORDS.length
|
||||||
|
this.dy = WB_DY.length
|
||||||
|
this.emoji = WB_EMOJI.length
|
||||||
|
this.nethot = WB_NET.length
|
||||||
|
this.code = WB_CODE.length
|
||||||
|
|
||||||
|
window.WB_WORDS = WB_WORDS
|
||||||
|
this.calculate()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
search() {
|
||||||
|
var { text, version } = this.filter
|
||||||
|
var reverse = false
|
||||||
|
var res, resf
|
||||||
|
|
||||||
|
text = text.trim().toLowerCase()
|
||||||
|
|
||||||
|
if (!text) {
|
||||||
|
this.result = ''
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 编码反查
|
||||||
|
reverse = /^[a-z]{1,4}$/.test(text)
|
||||||
|
|
||||||
|
if (!reverse) {
|
||||||
|
text = text.replace(/[\sa-z]/g, '')
|
||||||
|
}
|
||||||
|
|
||||||
|
text = new SString(text)
|
||||||
|
|
||||||
|
if (reverse || text.length === 1) {
|
||||||
|
res = [WB_TABLE_GBK_TEMP.get(text)]
|
||||||
|
if (version === VER_86F) {
|
||||||
|
resf = [WB_TABLE_86F.get(text)]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res = text.split().map(t => WB_TABLE_GBK_TEMP.get(t))
|
||||||
|
if (version === VER_86F) {
|
||||||
|
resf = text.split().map(t => WB_TABLE_86F.get(t))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reverse) {
|
||||||
|
// text = text.toUpperCase()
|
||||||
|
// 反查时, 直接替换结果
|
||||||
|
if (resf && resf[0]) {
|
||||||
|
res = resf
|
||||||
|
}
|
||||||
|
if (res[0]) {
|
||||||
|
res = `【 ${text.toUpperCase()} 】👉\t${res[0]
|
||||||
|
.map(
|
||||||
|
t =>
|
||||||
|
`${t}(<b>${(resf && resf[0]
|
||||||
|
? WB_TABLE_86F.get(t)
|
||||||
|
: WB_TABLE_GBK_TEMP.get(t)
|
||||||
|
)
|
||||||
|
.join('、')
|
||||||
|
.toUpperCase()}</b>)`
|
||||||
|
)
|
||||||
|
.join('\t\t')}`
|
||||||
|
} else {
|
||||||
|
res = `【 ${text.toUpperCase()} 】👉\t无结果, 请检查你的输入是否正确, 如果确认无误, 可以反馈缺失字库。`
|
||||||
|
}
|
||||||
|
// 词库查询
|
||||||
|
{
|
||||||
|
let extra = WB_WORDS.get(text)
|
||||||
|
.concat(
|
||||||
|
WB_DY.get(text),
|
||||||
|
WB_EMOJI.get(text),
|
||||||
|
WB_NET.get(text),
|
||||||
|
WB_CODE.get(text)
|
||||||
|
)
|
||||||
|
.filter(it => it)
|
||||||
|
|
||||||
|
if (extra.length) {
|
||||||
|
res += `\n\n${'-'.repeat(6)} 词库查询结果 ${'-'.repeat(32)}\n`
|
||||||
|
while (extra.length) {
|
||||||
|
let t = extra.shift()
|
||||||
|
res += `【 ${text} 】👉\t${
|
||||||
|
WB_CODE_NAME[t.length]
|
||||||
|
}: <b>${t.toUpperCase()}</b>\n`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (resf) {
|
||||||
|
resf.forEach((it, i) => {
|
||||||
|
if (it) {
|
||||||
|
res[i] = it
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
res = res
|
||||||
|
.map((it, i) => {
|
||||||
|
if (it) {
|
||||||
|
return `【 ${text.at(i)} 】👉\t${it
|
||||||
|
.map(
|
||||||
|
t => `${WB_CODE_NAME[t.length]}: <b>${t.toUpperCase()}</b>`
|
||||||
|
)
|
||||||
|
.join('\t\t')}`
|
||||||
|
} else {
|
||||||
|
return `【 ${text.at(
|
||||||
|
i
|
||||||
|
)} 】👉\t无结果, 请检查你的输入是否正确, 如果确认无误, 可以反馈缺失字库。`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.join('\n')
|
||||||
|
// 词库查询
|
||||||
|
{
|
||||||
|
let extra =
|
||||||
|
WB_WORDS.get(text) ||
|
||||||
|
WB_DY.get(text) ||
|
||||||
|
WB_EMOJI.get(text) ||
|
||||||
|
WB_NET.get(text) ||
|
||||||
|
WB_CODE.get(text)
|
||||||
|
|
||||||
|
if (extra) {
|
||||||
|
let t = extra.shift()
|
||||||
|
res += `\n\n${'-'.repeat(6)} 词库查询结果 ${'-'.repeat(
|
||||||
|
32
|
||||||
|
)}\n【 ${text} 】👉\t${
|
||||||
|
WB_CODE_NAME[t.length]
|
||||||
|
}: <b>${t.toUpperCase()}</b>`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.result = `${'-'.repeat(6)} 字库查询结果 ${'-'.repeat(32)}\n${res}`
|
||||||
|
},
|
||||||
|
|
||||||
|
calculate() {
|
||||||
|
var num = this.gb2312
|
||||||
|
|
||||||
|
if (this.dlOpt.tables.includes('gbk')) {
|
||||||
|
num += this.gbk
|
||||||
|
}
|
||||||
|
num += this.words
|
||||||
|
num += this.dy
|
||||||
|
|
||||||
|
if (this.dlOpt.tables.includes('emoji')) {
|
||||||
|
num += this.emoji
|
||||||
|
}
|
||||||
|
if (this.dlOpt.tables.includes('nethot')) {
|
||||||
|
num += this.nethot
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.dlOpt.tables.includes('code')) {
|
||||||
|
num += this.code
|
||||||
|
}
|
||||||
|
|
||||||
|
this.total = num
|
||||||
|
},
|
||||||
|
|
||||||
|
fileChange(ev) {
|
||||||
|
var reader = new FileReader()
|
||||||
|
var file = ev.target.files[0]
|
||||||
|
var all = new Set()
|
||||||
|
var unknow = new Set()
|
||||||
|
|
||||||
|
ev.target.value = ''
|
||||||
|
|
||||||
|
reader.onload = () => {
|
||||||
|
let arr = reader.result
|
||||||
|
.trim()
|
||||||
|
.split('\n')
|
||||||
|
.map(_ => _.trim())
|
||||||
|
|
||||||
|
for (let it of arr) {
|
||||||
|
it = it.replace(/[\w\s\t]+/g, '')
|
||||||
|
all.add(it)
|
||||||
|
if (
|
||||||
|
!WB_TABLE_GBK_TEMP.get(it) &&
|
||||||
|
!WB_WORDS.get(it) &&
|
||||||
|
!WB_DY.get(it)
|
||||||
|
) {
|
||||||
|
unknow.add(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
all = Array.from(all)
|
||||||
|
unknow = Array.from(unknow)
|
||||||
|
|
||||||
|
this.preview =
|
||||||
|
`【${file.name}】\n本次上传, 含有 ${arr.length} 个词条(有效词条 ${all.length} 个)。\n` +
|
||||||
|
`其中字库中已经存在 ${all.length - unknow.length}个, 未存在词条 ${
|
||||||
|
unknow.length
|
||||||
|
} 个, 如下:\n\n${unknow.join('\t')}`
|
||||||
|
|
||||||
|
// window.unknow = unknow
|
||||||
|
// console.log(unknow)
|
||||||
|
|
||||||
|
// navigator.clipboard.writeText(Array.from(all).join('\n'))
|
||||||
|
}
|
||||||
|
|
||||||
|
reader.readAsText(file)
|
||||||
|
},
|
||||||
|
|
||||||
|
openDownloadPanel() {
|
||||||
|
this.$refs.dl.show()
|
||||||
|
},
|
||||||
|
|
||||||
|
closeDownloadPanel() {
|
||||||
|
this.$refs.dl.close()
|
||||||
|
},
|
||||||
|
|
||||||
|
download() {
|
||||||
|
var opt = { ...this.dlOpt }
|
||||||
|
var temp = new Enum()
|
||||||
|
|
||||||
|
temp.concat(WB_TABLE_2312)
|
||||||
|
|
||||||
|
// 生成反查字库
|
||||||
|
if (opt.reverse) {
|
||||||
|
if (opt.tables.includes('gbk')) {
|
||||||
|
let bin = new Blob([WB_TABLE_GBK_TEMP.toString()], {
|
||||||
|
type: 'text/plain'
|
||||||
|
})
|
||||||
|
saveFile(bin, 'wb_table_gbk_reverse.txt')
|
||||||
|
} else {
|
||||||
|
let bin = new Blob([WB_TABLE_2312.toString()], { type: 'text/plain' })
|
||||||
|
saveFile(bin, 'wb_table_gb2312_reverse.txt')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 默认词库
|
||||||
|
temp.concat(WB_WORDS)
|
||||||
|
|
||||||
|
// emoji表情
|
||||||
|
if (opt.tables.includes('emoji')) {
|
||||||
|
temp.concat(WB_EMOJI)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 网络热词
|
||||||
|
if (opt.tables.includes('nethot')) {
|
||||||
|
temp.concat(WB_NET)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算机术语
|
||||||
|
if (opt.tables.includes('code')) {
|
||||||
|
temp.concat(WB_CODE)
|
||||||
|
}
|
||||||
|
|
||||||
|
// gbk 大字符集, 顺序往后调
|
||||||
|
if (opt.tables.includes('gbk')) {
|
||||||
|
temp.concat(WB_TABLE_GBK)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 异形字库
|
||||||
|
if (opt.tables.includes('dy')) {
|
||||||
|
temp.concat(WB_DY)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 暂未支持
|
||||||
|
// if (opt.tables.includes('personal')) {
|
||||||
|
// temp.concat(WB_PERSONAL)
|
||||||
|
// }
|
||||||
|
|
||||||
|
let bin = new Blob([temp.toString(opt.pos === 'front')], {
|
||||||
|
type: 'text/plain'
|
||||||
|
})
|
||||||
|
saveFile(bin, `wb_table_${opt.pos}.txt`)
|
||||||
|
|
||||||
|
this.closeDownloadPanel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<style lang="scss" scoped>
|
||||||
<main>
|
.main {
|
||||||
<h1>{{content}}</h1>
|
overflow: hidden;
|
||||||
</main>
|
flex: 1;
|
||||||
</template>
|
|
||||||
|
.wrapper {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-info {
|
||||||
|
width: 100%;
|
||||||
|
height: 64px;
|
||||||
|
|
||||||
|
b {
|
||||||
|
color: var(--color-red-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.download {
|
||||||
|
margin-left: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.field {
|
||||||
|
margin-top: 16px;
|
||||||
|
|
||||||
|
&.result {
|
||||||
|
line-height: 2;
|
||||||
|
font-family: Menlo;
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
|
||||||
|
b {
|
||||||
|
letter-spacing: 2px;
|
||||||
|
color: var(--color-blue-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
wc-input {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel {
|
||||||
|
overflow: hidden;
|
||||||
|
flex: 1;
|
||||||
|
margin-top: 32px;
|
||||||
|
|
||||||
|
.custom-file {
|
||||||
|
position: relative;
|
||||||
|
width: 160px;
|
||||||
|
|
||||||
|
input {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
color: var(--color-orange-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view {
|
||||||
|
overflow: hidden;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview {
|
||||||
|
margin-top: 16px;
|
||||||
|
font-family: Menlo;
|
||||||
|
word-break: keep-all;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.github {
|
||||||
|
position: fixed;
|
||||||
|
right: -30px;
|
||||||
|
top: 20px;
|
||||||
|
z-index: 9;
|
||||||
|
width: 120px;
|
||||||
|
height: 22px;
|
||||||
|
line-height: 22px;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
background: var(--color-dark-1);
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.download-layer {
|
||||||
|
width: 640px;
|
||||||
|
padding-bottom: 64px;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.field {
|
||||||
|
margin-top: 16px;
|
||||||
|
padding: 0 16px;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
min-width: 120px;
|
||||||
|
padding-right: 16px;
|
||||||
|
line-height: 32px;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: bold;
|
||||||
|
color: var(--color-grey-3);
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: ' : ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.value {
|
||||||
|
line-height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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 {
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
.wrapper {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { resolve } from 'path'
|
import { resolve } from 'path'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
base: '/wb-table/',
|
||||||
devServer: {
|
devServer: {
|
||||||
port: 8080,
|
port: 8080,
|
||||||
domain: '',
|
domain: '',
|
||||||
|
@ -18,7 +19,9 @@ export default {
|
||||||
// 这里的resolve可将相对路径转为绝对路径
|
// 这里的resolve可将相对路径转为绝对路径
|
||||||
// 如果传入的路径已经是绝对路径的, 可不需要resolve
|
// 如果传入的路径已经是绝对路径的, 可不需要resolve
|
||||||
entry: resolve('./src/main.js'),
|
entry: resolve('./src/main.js'),
|
||||||
title: 'vue-live 应用示例'
|
title: '五笔输入法86版',
|
||||||
|
keywords: '五笔输入法86版',
|
||||||
|
description: '五笔输入法86版'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 以下cdn地址, 可自行修改为适合的
|
// 以下cdn地址, 可自行修改为适合的
|
||||||
|
|
Loading…
Reference in New Issue