Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
夜猫逐梦
1024程序员开源挑战赛
提交
40ffde1f
1
1024程序员开源挑战赛
项目概览
夜猫逐梦
/
1024程序员开源挑战赛
与 Fork 源项目一致
Fork自
GitCode / 1024程序员开源挑战赛(10.23-11.14)
通知
3
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
1
1024程序员开源挑战赛
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
40ffde1f
编写于
12月 21, 2020
作者:
B
baiy
提交者:
ninecents
10月 23, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
base64 添加Url Safe 支持 #34
上级
52407cc2
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
24 addition
and
71 deletion
+24
-71
package.json
package.json
+1
-1
src/tool.vue
src/tool.vue
+2
-2
src/views/tool/base64.vue
src/views/tool/base64.vue
+21
-68
未找到文件。
package.json
浏览文件 @
40ffde1f
{
{
"name"
:
"c-tool"
,
"name"
:
"c-tool"
,
"version"
:
"1.3.
0
"
,
"version"
:
"1.3.
1
"
,
"private"
:
true
,
"private"
:
true
,
"scripts"
:
{
"scripts"
:
{
"serve"
:
"vue-cli-service serve --port 8081"
,
"serve"
:
"vue-cli-service serve --port 8081"
,
...
...
src/tool.vue
浏览文件 @
40ffde1f
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
<
template
slot-scope=
"{ row }"
slot=
"_value"
>
<
template
slot-scope=
"{ row }"
slot=
"_value"
>
<div>
{{
historyValue
(
row
.
value
)
}}
}
</div>
<div>
{{
historyValue
(
row
.
value
)
}}
}
</div>
</
template
>
</
template
>
<
template
slot-scope=
"{ index
,row
}"
slot=
"_op"
>
<
template
slot-scope=
"{ index }"
slot=
"_op"
>
<Button
type=
"primary"
size=
"small"
@
click=
"historyView(index)"
>
查看
</Button>
<Button
type=
"primary"
size=
"small"
@
click=
"historyView(index)"
>
查看
</Button>
<Button
type=
"primary"
style=
"margin-left: 5px"
@
click=
"historyLoad(index)"
size=
"small"
>
加载
</Button>
<Button
type=
"primary"
style=
"margin-left: 5px"
@
click=
"historyLoad(index)"
size=
"small"
>
加载
</Button>
</
template
>
</
template
>
...
@@ -85,7 +85,7 @@ export default {
...
@@ -85,7 +85,7 @@ export default {
{
{
title
:
'
数据
'
,
title
:
'
数据
'
,
slot
:
'
_value
'
,
slot
:
'
_value
'
,
ellipsis
:
true
ellipsis
:
true
,
},
},
{
{
title
:
'
操作
'
,
title
:
'
操作
'
,
...
...
src/views/tool/base64.vue
浏览文件 @
40ffde1f
<
template
>
<
template
>
<heightResize
ignore
:append=
"['.page-option-block']"
@
resize=
"resize"
>
<div>
<input-block
bottom=
"0px"
right=
"10px"
>
<Input
v-model=
"current.input"
:rows=
"7"
type=
"textarea"
placeholder=
"内容"
></Input>
<autoHeightTextarea
:height=
"height1"
v-model=
"current.input"
:placeholder=
"$t('base64_input')"
/>
<option-block>
<Upload
slot=
"extra"
action=
"#"
:before-upload=
"handleUpload"
>
<Button
size=
"small"
type=
"primary"
icon=
"ios-cloud-upload-outline"
>
{{
$t
(
'
base64_upload_file
'
)
}}
</Button>
</Upload>
</input-block>
<option-block
class=
"page-option-block"
>
<FormItem>
<FormItem>
<ButtonGroup>
<ButtonGroup>
<Button
type=
"primary"
@
click=
"handle('encode')"
>
{{
$t
(
'
base64_encode
'
)
}}
</Button>
<Button
type=
"primary"
@
click=
"handle('encode')"
>
编码
</Button>
<Button
type=
"primary"
@
click=
"handle('decode')"
>
{{
$t
(
'
base64_decode
'
)
}}
</Button>
<Button
type=
"primary"
@
click=
"handle('decode')"
>
解密
</Button>
</ButtonGroup>
</ButtonGroup>
</FormItem>
</FormItem>
<FormItem>
<FormItem>
<Checkbox
v-model=
"current.isUriSafe"
>
{{
$t
(
'
base64_url_safe
'
)
}}
</Checkbox>
<Checkbox
v-model=
"current.isUriSafe"
>
Url Safe
</Checkbox>
</FormItem>
</FormItem>
</option-block>
</option-block>
<input-block
right=
"10px"
>
<Input
v-model=
"current.output"
:rows=
"7"
type=
"textarea"
placeholder=
"结果"
></Input>
<pasteClipboardFlie
@
on-paste-file=
"handleUpload"
>
</div>
<autoHeightTextarea
:height=
"height2"
:value=
"current.output"
:placeholder=
"$t('base64_output')"
/>
</pasteClipboardFlie>
</input-block>
</heightResize>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
Base64
}
from
'
js-base64
'
import
{
Base64
}
from
'
js-base64
'
import
mimeType
from
'
mime-types
'
import
moment
from
"
moment
"
;
import
pasteClipboardFlie
from
"
./components/pasteClipboardFlie
"
;
import
heightResize
from
"
./components/heightResize
"
;
import
autoHeightTextarea
from
"
./components/autoHeightTextarea
"
;
export
default
{
export
default
{
components
:
{
created
()
{
pasteClipboardFlie
,
this
.
current
=
Object
.
assign
(
this
.
current
,
this
.
$getToolData
(
'
input
'
))
heightResize
,
autoHeightTextarea
},
created
()
{
this
.
$initToolData
(
'
input
'
)
},
},
methods
:
{
methods
:
{
handle
(
v
)
{
handle
(
v
)
{
if
(
this
.
current
.
input
)
{
if
(
this
.
current
.
input
)
{
if
(
v
===
"
encode
"
)
{
if
(
v
===
"
encode
"
){
this
.
current
.
output
=
Base64
.
encode
(
this
.
current
.
input
,
this
.
current
.
isUriSafe
)
this
.
current
.
output
=
Base64
.
encode
(
this
.
current
.
input
,
this
.
current
.
isUriSafe
)
}
else
{
if
(
this
.
current
.
input
.
trim
().
indexOf
(
'
data:
'
)
===
0
)
{
// 文件 base64 内容
this
.
exportFile
();
}
}
else
{
else
{
this
.
current
.
output
=
Base64
.
decode
(
this
.
current
.
input
)
this
.
current
.
output
=
Base64
.
decode
(
this
.
current
.
input
)
this
.
$clipboardCopy
(
this
.
current
.
output
)
}
}
}
this
.
current
.
operation
=
v
this
.
current
.
operation
=
v
this
.
$clipboardCopy
(
this
.
current
.
output
)
this
.
$saveToolData
(
this
.
current
)
this
.
$saveToolData
(
this
.
current
)
}
}
},
},
handleUpload
(
file
)
{
let
r
=
new
FileReader
()
r
.
readAsDataURL
(
file
)
r
.
onloadend
=
()
=>
{
this
.
current
.
output
=
r
.
result
}
return
false
},
exportFile
()
{
let
arr
=
this
.
current
.
input
.
split
(
'
,
'
),
mime
=
arr
[
0
].
match
(
/:
(
.*
?)
;/
)[
1
];
let
objectUrl
=
window
.
URL
.
createObjectURL
(
new
Blob
([
Base64
.
toUint8Array
(
arr
[
1
])],
{
type
:
mime
}));
let
aEle
=
document
.
createElement
(
"
a
"
);
aEle
.
download
=
`ctool-base64-decode-
${
moment
().
unix
()}
`
+
(
mimeType
.
extension
(
mime
)
?
`.
${
mimeType
.
extension
(
mime
)}
`
:
""
);
aEle
.
href
=
objectUrl
;
aEle
.
click
();
aEle
.
remove
();
window
.
URL
.
revokeObjectURL
(
objectUrl
);
},
resize
(
height
){
this
.
height1
=
Math
.
min
(
160
,
Math
.
ceil
(
height
/
2
))
this
.
height2
=
height
-
this
.
height1
}
},
},
data
()
{
data
()
{
return
{
return
{
current
:
{
current
:
{
input
:
''
,
input
:
''
,
...
@@ -90,8 +45,6 @@ export default {
...
@@ -90,8 +45,6 @@ export default {
operation
:
''
,
operation
:
''
,
isUriSafe
:
false
,
isUriSafe
:
false
,
},
},
height1
:
100
,
height2
:
100
}
}
},
},
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录