Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
夜猫逐梦
1024程序员开源挑战赛
提交
6d49be86
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看板
提交
6d49be86
编写于
6月 21, 2021
作者:
B
baiy
提交者:
ninecents
10月 23, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加变量名转换工具 #44
上级
4e382518
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
254 addition
and
7 deletion
+254
-7
README.md
README.md
+1
-0
src/config.js
src/config.js
+12
-5
src/tool.router.js
src/tool.router.js
+4
-0
src/tool.vue
src/tool.vue
+1
-1
src/tool/adapter.js
src/tool/adapter.js
+1
-1
src/views/tool/library/varCamelCase.js
src/views/tool/library/varCamelCase.js
+177
-0
src/views/tool/variableConversion.vue
src/views/tool/variableConversion.vue
+58
-0
未找到文件。
README.md
浏览文件 @
6d49be86
...
...
@@ -89,6 +89,7 @@ npm run serve -adapter=utools
-
[
moment
](
https://momentjs.com/
)
-
[
vue-codemirror
](
https://www.npmjs.com/package/vue-codemirror
)
-
[
sm-crypto
](
https://github.com/JuneAndGreen/sm-crypto
)
-
[
camelcaseplugin
](
https://github.com/netnexus/camelcaseplugin
)
> 当然项目中还使用很多不知道姓名的大神的代码, 在这里就不一一感谢
...
...
src/config.js
浏览文件 @
6d49be86
...
...
@@ -10,14 +10,12 @@ const tool = [
{
'
name
'
:
'
hash
'
,
'
title
'
:
'
哈希(hash)
'
,
'
cat
'
:
[
'
encryption
'
],
'
keyword
'
:
[
'
md5
'
,
'
sha1
'
,
'
sha256
'
,
'
sha512
'
,
'
sm3
'
]
'
cat
'
:
[
'
encryption
'
]
},
{
'
name
'
:
'
encrypt
'
,
'
title
'
:
'
加密/解密
'
,
'
cat
'
:
[
'
encryption
'
],
'
keyword
'
:
[
'
AES
'
,
'
DES
'
,
'
RC4
'
,
'
Rabbit
'
,
'
TripleDes
'
,
'
sm2
'
]
'
cat
'
:
[
'
encryption
'
]
},
{
'
name
'
:
'
base64
'
,
'
title
'
:
'
BASE64编码
'
,
'
cat
'
:
[
'
encryption
'
]},
{
'
name
'
:
'
json
'
,
'
title
'
:
'
JSON工具
'
,
'
cat
'
:
[
'
conversion
'
,
'
serialize
'
]},
...
...
@@ -40,9 +38,18 @@ const tool = [
{
'
name
'
:
'
uuid
'
,
'
title
'
:
'
UUID生成
'
,
'
cat
'
:
[
'
other
'
]},
{
'
name
'
:
'
jsonToObject
'
,
'
title
'
:
'
JSON转实体类
'
,
'
cat
'
:
[
'
conversion
'
,
'
serialize
'
]},
{
'
name
'
:
'
ascii
'
,
'
title
'
:
'
ascii转换
'
,
'
cat
'
:
[
'
conversion
'
]},
{
'
name
'
:
'
variableConversion
'
,
'
title
'
:
'
变量名转换
'
,
'
cat
'
:
[
'
conversion
'
]},
]
const
utools
=
{
keyword
:
{
hash
:
[
'
md5
'
,
'
sha1
'
,
'
sha256
'
,
'
sha512
'
,
'
sm3
'
],
encrypt
:
[
'
AES
'
,
'
DES
'
,
'
RC4
'
,
'
Rabbit
'
,
'
TripleDes
'
,
'
sm2
'
]
}
}
module
.
exports
=
{
category
,
tool
tool
,
utools
}
\ No newline at end of file
src/tool.router.js
浏览文件 @
6d49be86
...
...
@@ -97,6 +97,10 @@ const routes = [
{
path
:
'
/tool/ascii
'
,
component
:
r
=>
require
([
'
./views/tool/ascii.vue
'
],
r
)
},
{
path
:
'
/tool/variableConversion
'
,
component
:
r
=>
require
([
'
./views/tool/variableConversion.vue
'
],
r
)
}
]
...
...
src/tool.vue
浏览文件 @
6d49be86
...
...
@@ -193,7 +193,7 @@ export default {
return
h
(
'
Input
'
,
{
props
:
{
type
:
"
textarea
"
,
rows
:
"
10
"
,
rows
:
10
,
value
:
JSON
.
stringify
(
historyFactory
(
this
.
currentTool
).
get
(
index
),
null
,
"
\t
"
),
}
})
...
...
src/tool/adapter.js
浏览文件 @
6d49be86
...
...
@@ -47,7 +47,7 @@ const utoolsConfigWrite = () => {
"
cmds
"
:
[
'
ctool
'
,
'
程序开发常用工具
'
]
},
...
toolConfig
.
tool
.
map
((
item
)
=>
{
let
keyword
=
item
.
hasOwnProperty
(
"
keyword
"
)
?
item
[
'
keyword
'
]
:
[];
let
keyword
=
toolConfig
[
'
keyword
'
].
hasOwnProperty
(
item
.
name
)
?
toolConfig
[
'
keyword
'
][
item
.
name
]
:
[];
return
{
"
code
"
:
"
ctool-
"
+
item
.
name
,
"
explain
"
:
item
.
title
,
...
...
src/views/tool/library/varCamelCase.js
0 → 100644
浏览文件 @
6d49be86
// 算法来源 https://github.com/netnexus/camelcaseplugin
const
SPACE_CASE
=
'
spaceCaseToPascalCaseSpace
'
// 转换过程 space case to Camel Case
const
PASCAL_CASE_SPACE
=
'
pascalCaseSpaceToKebabCase
'
// 转换过程 Camel Case to kebab-case
const
KEBAB_CASE
=
'
kebabCaseToUpperSnakeCase
'
// 转换过程 kebab-case to SNAKE_CASE
const
UPPER_SNAKE_CASE
=
'
upperSnakeCaseToPascalCase
'
// 转换过程 SNAKE_CASE to CamelCase
const
PASCAL_CASE
=
'
pascalCaseToCamelCase
'
// 转换过程 CamelCase to camelCase
const
CAMEL_CASE
=
'
camelCaseToLowerSnakeCase
'
// 转换过程 camelCase to snake_case
const
LOWER_SNAKE_CASE
=
'
lowerSnakeCaseToSpaceCase
'
// 转换过程 snake_case to space case
const
isUpperCase
=
(
str
,
first
=
false
)
=>
{
if
(
first
===
false
)
{
return
str
.
toUpperCase
()
===
str
;
}
return
str
.
substr
(
0
,
1
).
toUpperCase
()
===
str
.
substr
(
0
,
1
)
&&
(
str
.
length
===
1
||
str
.
substr
(
1
,
1
).
toLowerCase
()
===
str
.
substr
(
1
,
1
));
}
const
isLowerCase
=
(
str
,
first
=
false
)
=>
{
if
(
first
===
false
)
{
return
str
.
toLowerCase
()
===
str
;
}
return
str
.
substr
(
0
,
1
).
toLowerCase
()
===
str
.
substr
(
0
,
1
);
}
const
firstToUpper
=
(
str
)
=>
{
return
str
.
replace
(
str
[
0
],
str
[
0
].
toUpperCase
());
}
const
firstToLower
=
(
str
)
=>
{
return
str
.
replace
(
str
[
0
],
str
[
0
].
toLowerCase
());
}
const
getMethodName
=
(
str
)
=>
{
str
=
str
.
trim
();
if
(
isLowerCase
(
str
)
&&
str
.
indexOf
(
'
_
'
)
!==
-
1
)
{
return
LOWER_SNAKE_CASE
;
}
if
(
isLowerCase
(
str
)
&&
str
.
indexOf
(
'
-
'
)
!==
-
1
)
{
return
KEBAB_CASE
;
}
if
(
isLowerCase
(
str
)
&&
str
.
indexOf
(
'
'
)
!==
-
1
)
{
return
SPACE_CASE
;
}
if
(
isUpperCase
(
str
,
true
)
&&
str
.
indexOf
(
'
'
)
!==
-
1
)
{
return
PASCAL_CASE_SPACE
;
}
if
(
isUpperCase
(
str
)
&&
str
.
indexOf
(
'
_
'
)
!==
-
1
)
{
return
UPPER_SNAKE_CASE
;
}
if
(
isUpperCase
(
str
,
true
)
&&
str
.
indexOf
(
'
_
'
)
===
-
1
&&
str
.
indexOf
(
'
'
)
===
-
1
&&
str
.
indexOf
(
'
0
'
)
===
-
1
)
{
return
PASCAL_CASE
;
}
return
CAMEL_CASE
;
}
class
Conversion
{
constructor
(
str
)
{
this
.
setStr
(
str
);
}
setStr
(
str
)
{
this
.
str
=
str
.
trim
()
return
this
;
}
// space case to Camel Case
spaceCaseToPascalCaseSpace
()
{
return
this
.
str
.
split
(
'
'
).
map
((
str
)
=>
{
return
firstToUpper
(
str
)
}).
join
(
'
'
).
trim
()
}
// Camel Case to kebab-case
pascalCaseSpaceToKebabCase
()
{
return
this
.
str
.
replace
(
/ /g
,
"
-
"
).
toLowerCase
().
trim
();
}
// kebab-case to SNAKE_CASE
kebabCaseToUpperSnakeCase
()
{
return
this
.
str
.
toUpperCase
().
replace
(
/-/g
,
"
_
"
).
trim
()
}
// SNAKE_CASE to PascalCase
upperSnakeCaseToPascalCase
()
{
return
this
.
str
.
split
(
'
_
'
).
map
((
str
)
=>
{
return
firstToUpper
(
str
.
toLowerCase
())
}).
join
(
''
).
trim
()
}
// PascalCase to camelCase
pascalCaseToCamelCase
()
{
return
firstToLower
(
this
.
str
).
trim
()
}
// camelCase to snake_case
camelCaseToLowerSnakeCase
()
{
let
temp
=
""
;
for
(
let
i
=
0
;
i
<
this
.
str
.
length
;
i
++
)
{
let
c
=
this
.
str
.
substr
(
i
,
1
);
if
(
isUpperCase
(
this
.
str
.
substr
(
i
,
1
)))
{
temp
=
temp
+
'
_
'
;
}
temp
=
temp
+
c
.
toLowerCase
();
}
return
temp
.
trim
();
}
// snake_case to space case
lowerSnakeCaseToSpaceCase
()
{
return
this
.
str
.
replace
(
/_/g
,
"
"
).
trim
();
}
get
()
{
let
methods
=
[
SPACE_CASE
,
PASCAL_CASE_SPACE
,
KEBAB_CASE
,
UPPER_SNAKE_CASE
,
PASCAL_CASE
,
CAMEL_CASE
,
LOWER_SNAKE_CASE
,
];
let
current
=
methods
.
indexOf
(
getMethodName
(
this
.
str
));
let
executeMethods
;
if
(
current
===
0
)
{
executeMethods
=
methods
;
}
else
{
executeMethods
=
[...
methods
.
slice
(
current
),
...
methods
.
slice
(
0
,
current
)]
}
let
result
=
{};
let
str
=
this
.
str
;
for
(
let
i
=
0
;
i
<
executeMethods
.
length
;
i
++
)
{
str
=
this
.
setStr
(
str
)[
executeMethods
[
i
]](
str
);
result
[
executeMethods
[
i
]]
=
str
;
}
return
result
;
}
}
const
resultKey
=
[
{
key
:
SPACE_CASE
,
name
:
'
Var Name
'
},
{
key
:
PASCAL_CASE_SPACE
,
name
:
'
var-name
'
},
{
key
:
KEBAB_CASE
,
name
:
'
VAR_NAME
'
},
{
key
:
UPPER_SNAKE_CASE
,
name
:
'
VarName
'
},
{
key
:
PASCAL_CASE
,
name
:
'
varName
'
},
{
key
:
CAMEL_CASE
,
name
:
'
var_name
'
},
{
key
:
LOWER_SNAKE_CASE
,
name
:
'
var name
'
},
]
export
default
{
resultKey
,
convent
:
(
str
)
=>
{
let
result
=
{
[
SPACE_CASE
]:
[],
[
PASCAL_CASE_SPACE
]:
[],
[
KEBAB_CASE
]:
[],
[
UPPER_SNAKE_CASE
]:
[],
[
PASCAL_CASE
]:
[],
[
CAMEL_CASE
]:
[],
[
LOWER_SNAKE_CASE
]:
[],
};
let
list
=
str
.
split
(
"
\n
"
).
map
((
_str
)
=>
{
return
_str
.
trim
()
}).
filter
((
_str
)
=>
!!
_str
);
for
(
let
item
of
list
)
{
let
conversion
=
new
Conversion
(
item
)
let
conversionResult
=
conversion
.
get
()
for
(
let
key
of
Object
.
keys
(
conversionResult
))
{
result
[
key
].
push
(
conversionResult
[
key
])
}
}
for
(
let
key
of
Object
.
keys
(
result
))
{
result
[
key
]
=
result
[
key
].
join
(
"
\n
"
);
}
return
result
;
}
}
\ No newline at end of file
src/views/tool/variableConversion.vue
0 → 100644
浏览文件 @
6d49be86
<
template
>
<div>
<Row
:gutter=
"10"
>
<Col
span=
"6"
style=
"margin-top: 10px"
>
<Card
:padding=
"0"
>
<p
slot=
"title"
>
输入变量名
</p>
<template
slot=
"extra"
>
<Button
size=
"small"
type=
"primary"
@
click=
"handle()"
>
转换
</Button>
</
template
>
<Input
v-model=
"current.input"
:rows=
"4"
type=
"textarea"
placeholder=
"变量名 一行一个"
></Input>
</Card>
</Col>
<Col
span=
"6"
v-for=
"(item,key) in resultColumns"
:key=
"key"
style=
"margin-top: 10px"
>
<Card
:padding=
"0"
>
<p
slot=
"title"
>
{{ item.title }}
</p>
<Input
v-model=
"current.output[item.key]"
:rows=
"4"
type=
"textarea"
></Input>
</Card>
</Col>
</Row>
</div>
</template>
<
script
>
import
varCamelCase
from
"
./library/varCamelCase
"
export
default
{
computed
:
{
resultColumns
()
{
return
varCamelCase
.
resultKey
.
map
((
item
)
=>
{
return
{
title
:
item
.
name
,
key
:
item
.
key
}
});
},
},
created
()
{
this
.
current
=
Object
.
assign
(
this
.
current
,
this
.
$getToolData
(
"
input
"
))
},
methods
:
{
handle
()
{
if
(
!
this
.
current
.
input
)
{
return
;
}
this
.
current
.
output
=
varCamelCase
.
convent
(
this
.
current
.
input
)
this
.
$saveToolData
(
this
.
current
);
}
},
data
()
{
return
{
current
:
{
input
:
""
,
output
:
[],
}
}
},
}
</
script
>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录