Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
853bde92
提交
853bde92
authored
9月 18, 2021
作者:
无木
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: fixed prop `mode` of `CodeEditor`
上级
5af45275
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
30 行增加
和
13 行删除
+30
-13
index.ts
src/components/CodeEditor/index.ts
+2
-0
CodeEditor.vue
src/components/CodeEditor/src/CodeEditor.vue
+9
-2
CodeMirror.vue
src/components/CodeEditor/src/codemirror/CodeMirror.vue
+9
-1
typing.ts
src/components/CodeEditor/src/typing.ts
+5
-5
index.vue
src/views/demo/editor/json/index.vue
+5
-5
没有找到文件。
src/components/CodeEditor/index.ts
浏览文件 @
853bde92
...
@@ -4,3 +4,5 @@ import jsonPreview from './src/json-preview/JsonPreview.vue';
...
@@ -4,3 +4,5 @@ import jsonPreview from './src/json-preview/JsonPreview.vue';
export
const
CodeEditor
=
withInstall
(
codeEditor
);
export
const
CodeEditor
=
withInstall
(
codeEditor
);
export
const
JsonPreview
=
withInstall
(
jsonPreview
);
export
const
JsonPreview
=
withInstall
(
jsonPreview
);
export
*
from
'./src/typing'
;
src/components/CodeEditor/src/CodeEditor.vue
浏览文件 @
853bde92
...
@@ -12,11 +12,18 @@
...
@@ -12,11 +12,18 @@
import
{
computed
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
CodeMirrorEditor
from
'./codemirror/CodeMirror.vue'
;
import
CodeMirrorEditor
from
'./codemirror/CodeMirror.vue'
;
import
{
isString
}
from
'/@/utils/is'
;
import
{
isString
}
from
'/@/utils/is'
;
import
type
{
MODE
}
from
'./typing'
;
import
{
MODE
}
from
'./typing'
;
const
props
=
defineProps
({
const
props
=
defineProps
({
value
:
{
type
:
[
Object
,
String
]
as
PropType
<
Record
<
string
,
any
>
|
string
>
},
value
:
{
type
:
[
Object
,
String
]
as
PropType
<
Record
<
string
,
any
>
|
string
>
},
mode
:
{
type
:
String
,
default
:
MODE
.
JSON
},
mode
:
{
type
:
String
as
PropType
<
MODE
>
,
default
:
MODE
.
JSON
,
validator
(
value
:
any
)
{
// 这个值必须匹配下列字符串中的一个
return
Object
.
values
(
MODE
).
includes
(
value
);
},
},
readonly
:
{
type
:
Boolean
},
readonly
:
{
type
:
Boolean
},
autoFormat
:
{
type
:
Boolean
,
default
:
true
},
autoFormat
:
{
type
:
Boolean
,
default
:
true
},
});
});
...
...
src/components/CodeEditor/src/codemirror/CodeMirror.vue
浏览文件 @
853bde92
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
import
{
useAppStore
}
from
'/@/store/modules/app'
;
import
{
useAppStore
}
from
'/@/store/modules/app'
;
import
{
useWindowSizeFn
}
from
'/@/hooks/event/useWindowSizeFn'
;
import
{
useWindowSizeFn
}
from
'/@/hooks/event/useWindowSizeFn'
;
import
CodeMirror
from
'codemirror'
;
import
CodeMirror
from
'codemirror'
;
import
{
MODE
}
from
'./../typing'
;
// css
// css
import
'./codemirror.css'
;
import
'./codemirror.css'
;
import
'codemirror/theme/idea.css'
;
import
'codemirror/theme/idea.css'
;
...
@@ -18,7 +19,14 @@
...
@@ -18,7 +19,14 @@
import
'codemirror/mode/htmlmixed/htmlmixed'
;
import
'codemirror/mode/htmlmixed/htmlmixed'
;
const
props
=
defineProps
({
const
props
=
defineProps
({
mode
:
{
type
:
String
,
default
:
'application/json'
},
mode
:
{
type
:
String
as
PropType
<
MODE
>
,
default
:
MODE
.
JSON
,
validator
(
value
:
any
)
{
// 这个值必须匹配下列字符串中的一个
return
Object
.
values
(
MODE
).
includes
(
value
);
},
},
value
:
{
type
:
String
,
default
:
''
},
value
:
{
type
:
String
,
default
:
''
},
readonly
:
{
type
:
Boolean
,
default
:
false
},
readonly
:
{
type
:
Boolean
,
default
:
false
},
});
});
...
...
src/components/CodeEditor/src/typing.ts
浏览文件 @
853bde92
export
const
MODE
=
{
export
enum
MODE
{
JSON
:
'application/json'
,
JSON
=
'application/json'
,
html
:
'htmlmixed'
,
HTML
=
'htmlmixed'
,
js
:
'javascript'
,
JS
=
'javascript'
,
}
;
}
src/views/demo/editor/json/index.vue
浏览文件 @
853bde92
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
</template>
</template>
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
,
unref
,
h
}
from
'vue'
;
import
{
defineComponent
,
ref
,
unref
,
h
}
from
'vue'
;
import
{
CodeEditor
,
JsonPreview
}
from
'/@/components/CodeEditor'
;
import
{
CodeEditor
,
JsonPreview
,
MODE
}
from
'/@/components/CodeEditor'
;
import
{
PageWrapper
}
from
'/@/components/Page'
;
import
{
PageWrapper
}
from
'/@/components/Page'
;
import
{
Radio
,
Space
,
Modal
}
from
'ant-design-vue'
;
import
{
Radio
,
Space
,
Modal
}
from
'ant-design-vue'
;
...
@@ -62,20 +62,20 @@
...
@@ -62,20 +62,20 @@
ASpace
:
Space
,
ASpace
:
Space
,
},
},
setup
()
{
setup
()
{
const
modeValue
=
ref
(
'application/json'
);
const
modeValue
=
ref
<
MODE
>
(
MODE
.
JSON
);
const
value
=
ref
(
jsonData
);
const
value
=
ref
(
jsonData
);
function
handleModeChange
(
e
:
ChangeEvent
)
{
function
handleModeChange
(
e
:
ChangeEvent
)
{
const
mode
=
e
.
target
.
value
;
const
mode
=
e
.
target
.
value
;
if
(
mode
===
'application/json'
)
{
if
(
mode
===
MODE
.
JSON
)
{
value
.
value
=
jsonData
;
value
.
value
=
jsonData
;
return
;
return
;
}
}
if
(
mode
===
'htmlmixed'
)
{
if
(
mode
===
MODE
.
HTML
)
{
value
.
value
=
htmlData
;
value
.
value
=
htmlData
;
return
;
return
;
}
}
if
(
mode
===
'javascript'
)
{
if
(
mode
===
MODE
.
JS
)
{
value
.
value
=
jsData
;
value
.
value
=
jsData
;
return
;
return
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论