Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
夜猫逐梦
1024程序员开源挑战赛
提交
773f8012
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看板
提交
773f8012
编写于
2月 26, 2021
作者:
B
baiy
提交者:
ninecents
10月 23, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码格式化工具优化
上级
bc69f415
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
90 addition
and
172 deletion
+90
-172
src/views/tool/code.vue
src/views/tool/code.vue
+75
-77
src/views/tool/library/formatter.js
src/views/tool/library/formatter.js
+15
-0
src/views/tool/phpArraySerialize.vue
src/views/tool/phpArraySerialize.vue
+0
-95
未找到文件。
src/views/tool/code.vue
浏览文件 @
773f8012
<
template
>
<div>
<div
style=
"border: 1px solid #dcdee2;border-radius: 4px;"
>
<codemirror
ref=
"code"
v-model=
"current.content"
:options=
"options"
></codemirror>
<div>
<div
style=
"border: 1px solid #dcdee2;border-radius: 4px;"
>
<codemirror
ref=
"code"
v-model=
"current.content"
:options=
"options"
></codemirror>
</div>
<option-block>
<FormItem>
<ButtonGroup>
<Button
type=
"primary"
@
click=
"handle(k,v)"
v-for=
"(v,k) in lang"
:key=
"k"
>
{{
k
}}
</Button>
</ButtonGroup>
</FormItem>
<FormItem>
<Checkbox
v-model=
"current.isCompress"
>
压缩
</Checkbox>
</FormItem>
</option-block>
</div>
<option-block>
<FormItem>
<ButtonGroup>
<Button
type=
"primary"
@
click=
"handle(k,v)"
v-for=
"(v,k) in lang"
:key=
"k"
>
{{
k
}}
</Button>
</ButtonGroup>
</FormItem>
<FormItem>
<Checkbox
v-model=
"current.isCompress"
>
压缩
</Checkbox>
</FormItem>
</option-block>
</div>
</
template
>
<
script
>
import
{
codemirror
}
from
'
vue-codemirror
'
import
formatter
from
'
code-
formatter
'
import
'
codemirror/lib/codemirror.css
'
import
'
codemirror/mode/javascript/javascript.js
'
import
'
codemirror/mode/htmlmixed/htmlmixed.js
'
import
'
codemirror/mode/css/css.js
'
import
'
codemirror/mode/xml/xml.js
'
import
'
codemirror/mode/sql/sql.js
'
import
'
codemirror/addon/fold/foldcode.js
'
import
'
codemirror/addon/fold/foldgutter.js
'
import
'
codemirror/addon/fold/brace-fold.js
'
import
'
codemirror/addon/fold/comment-fold.js
'
import
'
codemirror/addon/fold/foldgutter.css
'
import
{
codemirror
}
from
'
vue-codemirror
'
import
formatter
from
'
./library/
formatter
'
import
'
codemirror/lib/codemirror.css
'
import
'
codemirror/mode/javascript/javascript.js
'
import
'
codemirror/mode/htmlmixed/htmlmixed.js
'
import
'
codemirror/mode/css/css.js
'
import
'
codemirror/mode/xml/xml.js
'
import
'
codemirror/mode/sql/sql.js
'
import
'
codemirror/addon/fold/foldcode.js
'
import
'
codemirror/addon/fold/foldgutter.js
'
import
'
codemirror/addon/fold/brace-fold.js
'
import
'
codemirror/addon/fold/comment-fold.js
'
import
'
codemirror/addon/fold/foldgutter.css
'
export
default
{
components
:
{
codemirror
,
export
default
{
components
:
{
codemirror
,
},
created
()
{
this
.
current
=
Object
.
assign
(
this
.
current
,
this
.
$getToolData
(
'
content
'
))
},
mounted
()
{
this
.
codemirror
.
setSize
(
null
,
350
)
if
(
this
.
current
.
lang
)
{
this
.
codemirror
.
setOption
(
'
mode
'
,
this
.
options
[
this
.
current
.
lang
])
}
},
computed
:
{
codemirror
()
{
return
this
.
$refs
.
code
.
codemirror
},
created
()
{
this
.
current
=
Object
.
assign
(
this
.
current
,
this
.
$getToolData
(
'
content
'
))
},
mounted
()
{
this
.
codemirror
.
setSize
(
null
,
350
)
if
(
this
.
current
.
lang
)
{
this
.
codemirror
.
setOption
(
'
mode
'
,
this
.
options
[
this
.
current
.
lang
])
},
methods
:
{
handle
(
lang
,
mode
)
{
if
(
this
.
current
.
content
)
{
this
.
current
.
content
=
formatter
(
this
.
current
.
content
,
lang
,
this
.
current
.
isCompress
)
this
.
codemirror
.
setOption
(
'
mode
'
,
mode
)
this
.
current
.
lang
=
lang
this
.
$saveToolData
(
this
.
current
)
}
},
computed
:
{
codemirror
()
{
return
this
.
$refs
.
code
.
codemirror
},
data
()
{
return
{
current
:
{
content
:
''
,
lang
:
''
,
isCompress
:
false
,
},
},
methods
:
{
handle
(
lang
,
mode
)
{
if
(
this
.
current
.
content
)
{
this
.
current
.
content
=
formatter
(
this
.
current
.
content
,
{
method
:
this
.
current
.
isCompress
?
lang
+
"
min
"
:
lang
})
this
.
codemirror
.
setOption
(
'
mode
'
,
mode
)
this
.
current
.
lang
=
lang
this
.
$saveToolData
(
this
.
current
)
}
options
:
{
mode
:
null
,
lineNumbers
:
true
,
lineWrapping
:
false
,
foldGutter
:
true
,
indentUnit
:
4
,
gutters
:
[
'
CodeMirror-linenumbers
'
,
'
CodeMirror-foldgutter
'
],
},
},
data
()
{
return
{
current
:
{
content
:
''
,
lang
:
''
,
isCompress
:
false
,
},
options
:
{
mode
:
null
,
lineNumbers
:
true
,
lineWrapping
:
false
,
foldGutter
:
true
,
indentUnit
:
4
,
gutters
:
[
'
CodeMirror-linenumbers
'
,
'
CodeMirror-foldgutter
'
],
},
lang
:
{
'
js
'
:
'
text/javascript
'
,
'
html
'
:
'
text/html
'
,
'
css
'
:
'
text/css
'
,
'
xml
'
:
'
application/xml
'
,
'
sql
'
:
'
text/x-mysql
'
,
},
}
},
}
lang
:
{
'
js
'
:
'
text/javascript
'
,
'
html
'
:
'
text/html
'
,
'
css
'
:
'
text/css
'
,
'
xml
'
:
'
application/xml
'
,
'
sql
'
:
'
text/x-mysql
'
,
},
}
},
}
</
script
>
\ No newline at end of file
src/views/tool/library/formatter.js
0 → 100644
浏览文件 @
773f8012
import
codeFormatter
from
'
code-formatter
'
import
xmlFormatter
from
"
xml-formatter
"
export
default
(
code
,
type
,
isCompress
=
false
)
=>
{
if
(
type
===
"
xml
"
)
{
return
xmlFormatter
(
code
,
{
indentation
:
isCompress
?
''
:
'
'
,
collapseContent
:
true
,
lineSeparator
:
isCompress
?
''
:
'
\n
'
});
}
return
codeFormatter
(
code
,
{
method
:
isCompress
?
type
+
"
min
"
:
type
})
}
\ No newline at end of file
src/views/tool/phpArraySerialize.vue
已删除
100644 → 0
浏览文件 @
bc69f415
<
template
>
<div>
<Input
v-model=
"current.input"
:rows=
"7"
type=
"textarea"
placeholder=
"内容"
></Input>
<option-block>
<FormItem>
<Select
v-model=
"current.source"
style=
"width:200px"
>
<Option
v-for=
"v in type"
:value=
"v"
:key=
"v"
>
源数据:
{{
v
}}
</Option>
</Select>
</FormItem>
<FormItem>
<Select
v-model=
"current.target"
style=
"width:200px"
>
<Option
v-for=
"v in type"
:value=
"v"
:key=
"v"
>
目标数据:
{{
v
}}
</Option>
</Select>
</FormItem>
<FormItem>
<ButtonGroup>
<Button
type=
"primary"
@
click=
"handle()"
>
转换
</Button>
</ButtonGroup>
</FormItem>
</option-block>
<Input
v-model=
"current.output"
:rows=
"7"
type=
"textarea"
placeholder=
"结果"
></Input>
</div>
</
template
>
<
script
>
import
jsonToPhpArray
from
"
phparr
"
import
phpArrayToJson
from
"
php-array-reader
"
import
phpSerialize
from
"
serialize-php
"
export
default
{
created
()
{
this
.
current
=
Object
.
assign
(
this
.
current
,
this
.
$getToolData
(
"
input
"
))
},
methods
:
{
handle
()
{
if
(
this
.
current
.
input
)
{
let
target
=
""
;
let
source
=
{};
try
{
switch
(
this
.
current
.
source
)
{
case
"
phpArray
"
:
{
source
=
phpArrayToJson
.
fromString
(
this
.
current
.
input
);
break
;
}
case
"
phpSerialize
"
:
source
=
phpSerialize
.
unserialize
(
this
.
current
.
input
);
break
;
case
"
jsJson
"
:
source
=
JSON
.
parse
(
this
.
current
.
input
);
break
;
default
:
return
;
}
}
catch
(
e
)
{
this
.
$Message
.
error
(
"
源数据解析错误:
"
+
e
.
message
);
return
;
}
try
{
switch
(
this
.
current
.
target
)
{
case
"
phpArray
"
:
target
=
jsonToPhpArray
(
source
);
break
;
case
"
phpSerialize
"
:
target
=
phpSerialize
.
serialize
(
source
);
break
;
case
"
jsJson
"
:
target
=
JSON
.
stringify
(
source
);
break
;
default
:
return
;
}
}
catch
(
e
)
{
this
.
$Message
.
error
(
"
目标数据转换错误:
"
+
e
.
message
);
return
;
}
this
.
current
.
output
=
target
;
this
.
$clipboardCopy
(
this
.
current
.
output
);
this
.
$saveToolData
(
this
.
current
);
}
}
},
data
()
{
return
{
current
:
{
input
:
""
,
output
:
""
,
source
:
"
phpArray
"
,
target
:
"
jsJson
"
},
type
:
[
"
phpArray
"
,
"
phpSerialize
"
,
"
jsJson
"
],
}
},
}
</
script
>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录