This commit is contained in:
2021-11-14 21:26:20 +08:00
parent c342f06c4c
commit 468896a872
3 changed files with 199 additions and 193 deletions

View File

@@ -96,7 +96,7 @@ let navTools = {
component: 'MinecraftDynmapRenderdataGen', component: 'MinecraftDynmapRenderdataGen',
enabled: false enabled: false
}, },
'uuidConverter': { 'uuid-converter': {
title: 'UUID 转换', title: 'UUID 转换',
desc: 'UUID 与 UUID Least、UUID Most 相互转换。', desc: 'UUID 与 UUID Least、UUID Most 相互转换。',
component: 'MinecraftUUIDConverter', component: 'MinecraftUUIDConverter',
@@ -125,8 +125,8 @@ let navTools = {
title: 'WebSocket', title: 'WebSocket',
desc: 'WebSocket 测试工具', desc: 'WebSocket 测试工具',
component: 'OtherWebSocket', component: 'OtherWebSocket',
update: '2021-11-08', update: '2021-11-14',
version: '2', version: '3',
enabled: true enabled: true
}, },
} }

View File

@@ -1,6 +1,31 @@
<template> <template>
<div class="tool-page"> <div class="tool-page">
<!-- 输入 -->
<div class="inputs">
<div class="title">输入</div>
<div class="content">
<div class="input-address">
<div class="title">连接地址</div>
<el-input v-model="address.suffix">
<el-select slot="prepend" v-model="address.prefix">
<el-option label="ws://" value="ws://"></el-option>
<el-option label="wss://" value="wss://"></el-option>
</el-select>
</el-input>
</div>
<div class="input-send">
<div class="title">发送内容</div>
<el-input
v-model="inputs"
type="textarea"
placeholder="在此处输入要发送的内容(换行符会被移除)"
:rows="2"
></el-input>
</div>
</div>
</div>
<!-- 操作 --> <!-- 操作 -->
<div class="ctrl"> <div class="ctrl">
<div class="title">操作</div> <div class="title">操作</div>
@@ -42,31 +67,6 @@
</div> </div>
</div> </div>
<!-- 输入 -->
<div class="inputs">
<div class="title">输入</div>
<div class="content">
<div class="input-address">
<div class="title">连接地址</div>
<el-input v-model="address.suffix">
<el-select slot="prepend" v-model="address.prefix">
<el-option label="ws://" value="ws://"></el-option>
<el-option label="wss://" value="wss://"></el-option>
</el-select>
</el-input>
</div>
<div class="input-send">
<div class="title">发送内容</div>
<el-input
v-model="inputs"
type="textarea"
placeholder="在此处输入要发送的内容(换行符会被移除)"
:rows="2"
></el-input>
</div>
</div>
</div>
<!-- 日志 --> <!-- 日志 -->
<div class="logs"> <div class="logs">
<div class="title">日志</div> <div class="title">日志</div>

View File

@@ -38,7 +38,7 @@
<!-- 内容 --> <!-- 内容 -->
<el-main class="home-content"> <el-main class="home-content">
<div class="wrapper" @contextmenu.prevent> <div class="wrapper">
<!-- 搜索引擎 --> <!-- 搜索引擎 -->
<div v-show="show.searchEngine" class="search-engine"> <div v-show="show.searchEngine" class="search-engine">
@@ -162,8 +162,13 @@
@click="openLink(data.link, data.showOnly)" @click="openLink(data.link, data.showOnly)"
@contextmenu.prevent="openDetail(data)" @contextmenu.prevent="openDetail(data)"
> >
<span class="title">{{ node.label }}</span> <div class="row title">
<span class="link">{{ data.link }}</span> <span>{{ node.label }}</span>
<span v-if="data.desc"> - {{ data.desc }}</span>
</div>
<div class="row link">
<span>{{ data.link }}</span>
</div>
</div> </div>
</el-tree> </el-tree>
@@ -589,188 +594,188 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
flex-direction: column; flex-direction: column;
}
.search-bar { .search-bar {
@barHeight: 2.8rem; @barHeight: 2.8rem;
@barRadius: 0.3rem; @barRadius: 0.3rem;
display: flex; display: flex;
align-items: center;
position: sticky;
top: 2.5rem;
z-index: 100;
width: 100%;
max-width: 40rem;
height: @barHeight;
border-radius: @barRadius;
background-color: #FFF;
&.suggest {
border-radius: @barRadius @barRadius 0 0;
}
.input {
flex-grow: 1;
padding-left: 1rem;
width: 0;
height: 100%;
outline: none;
}
.btn {
display: inline-flex;
align-items: center; align-items: center;
position: sticky; justify-content: center;
top: 2.5rem; flex-shrink: 0;
z-index: 100; width: 2.8rem;
width: 100%; height: 2.8rem;
max-width: 40rem; background-color: transparent;
height: @barHeight; font-size: 1.2rem;
border-radius: @barRadius; cursor: pointer;
background-color: #FFF; }
&.suggest { .btn-clear {
border-radius: @barRadius @barRadius 0 0; width: 2rem;
} opacity: 0.5;
transition: opacity @transitionTime;
.input { &:hover {
flex-grow: 1; opacity: 1;
padding-left: 1rem;
width: 0;
height: 100%;
outline: none;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 2.8rem;
height: 2.8rem;
background-color: transparent;
font-size: 1.2rem;
cursor: pointer;
}
.btn-clear {
width: 2rem;
opacity: 0.5;
transition: opacity @transitionTime;
&:hover {
opacity: 1;
}
}
.btn-search {
border-radius: 0 @barRadius @barRadius 0;
color: @colorPrimary;
transition: background @transitionTime, color @transitionTime;
&:hover {
background-color: @colorPrimary;
color: #FFF;
}
}
&.suggest .btn-search {
border-bottom-right-radius: 0;
}
.suggestion {
display: block;
visibility: hidden;
position: absolute;
top: @barHeight;
width: 100%;
border-top: 0.1rem solid #EEE;
border-radius: 0 0 @barRadius @barRadius;
background-color: #FFF;
overflow: hidden;
// 延迟隐藏
transition: visibility 0.2s;
ul {
padding: 0.5rem 0;
list-style: none;
line-height: 1.5rem;
font-size: 0.9rem;
color: #000;
}
li {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.5rem 1rem;
cursor: pointer;
&:hover {
background-color: @colorWhite;
}
}
.label {
flex-grow: 1;
padding-right: 0.5em;
}
.tag {
flex-shrink: 0;
}
}
&.suggest .suggestion {
visibility: visible;
} }
} }
.search-type { .btn-search {
display: block; border-radius: 0 @barRadius @barRadius 0;
margin: 4.5rem 0; color: @colorPrimary;
font-size: 1rem; transition: background @transitionTime, color @transitionTime;
transition: opacity calc(@transitionTime * 4);
&.fade { &:hover {
opacity: 0.5; background-color: @colorPrimary;
color: #FFF;
}
}
&.suggest .btn-search {
border-bottom-right-radius: 0;
}
.suggestion {
display: block;
visibility: hidden;
position: absolute;
top: @barHeight;
width: 100%;
border-top: 0.1rem solid #EEE;
border-radius: 0 0 @barRadius @barRadius;
background-color: #FFF;
overflow: hidden;
// 延迟隐藏
transition: visibility 0.2s;
ul {
padding: 0.5rem 0;
list-style: none;
line-height: 1.5rem;
font-size: 0.9rem;
color: #000;
} }
/deep/ .category { li {
padding: 0.5rem 0; display: flex;
align-items: center;
justify-content: space-between;
padding: 0.5rem 1rem;
cursor: pointer;
.title { &:hover {
margin: 0.5rem 0; background-color: @colorWhite;
text-align: left; }
}
.label {
flex-grow: 1;
padding-right: 0.5em;
}
.tag {
flex-shrink: 0;
}
}
&.suggest .suggestion {
visibility: visible;
}
}
.search-type {
display: block;
margin: 4.5rem 0;
font-size: 1rem;
transition: opacity calc(@transitionTime * 4);
&.fade {
opacity: 0.5;
}
/deep/ .category {
padding: 0.5rem 0;
.title {
margin: 0.5rem 0;
text-align: left;
}
.el-radio {
margin: 0.5rem;
padding: 0.8rem 1rem;
width: 15rem;
border-radius: 0.25rem;
border-left: solid 0.2rem transparent;
background-color: #FFF;
text-align: left;
font-weight: normal;
transition: border @transitionTime;
&:hover {
border-left-color: @colorSecondary;
color: @colorSecondary;
} }
.el-radio { &.is-checked {
margin: 0.5rem; border-left-color: @colorPrimary;
padding: 0.8rem 1rem; color: @colorPrimary;
width: 15rem; }
border-radius: 0.25rem; }
border-left: solid 0.2rem transparent;
background-color: #FFF;
text-align: left;
font-weight: normal;
transition: border @transitionTime;
&:hover { .el-radio__input {
border-left-color: @colorSecondary; display: none;
color: @colorSecondary; }
}
&.is-checked { .el-radio__label {
border-left-color: @colorPrimary; display: flex;
color: @colorPrimary; align-items: center;
} padding: 0;
transition: color @transitionTime;
i {
display: inline-block;
padding: 0.125rem 0;
font-style: normal;
} }
.el-radio__input { .fn-icon {
display: none; flex-shrink: 0;
margin-right: 0.4rem;
} }
.el-radio__label { .name {
display: flex; flex-shrink: 0;
align-items: center; }
padding: 0;
transition: color @transitionTime;
i { .desc {
display: inline-block; flex-grow: 1;
padding: 0.125rem 0; margin-left: 0.5rem;
font-style: normal; font-size: 0.8rem;
} color: #CCC;
.fn-icon {
flex-shrink: 0;
margin-right: 0.4rem;
}
.name {
flex-shrink: 0;
}
.desc {
flex-grow: 1;
margin-left: 0.5rem;
font-size: 0.8rem;
color: #CCC;
}
} }
} }
} }
@@ -823,10 +828,11 @@ export default {
flex-grow: 1; flex-grow: 1;
width: 0; width: 0;
> span { > div {
display: block; display: block;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap;
} }
.title { .title {