Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
剑九 六千里
vue-vben-admin
提交
d95815b5
V
vue-vben-admin
项目概览
剑九 六千里
/
vue-vben-admin
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-vben-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d95815b5
编写于
7月 13, 2021
作者:
无
无木
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(markdown): resolving markdown exceptions
修复markdown组件的异常以及不能正确设置value的问题
上级
0a3683a1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
54 addition
and
27 deletion
+54
-27
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+1
-0
src/components/Markdown/src/Markdown.vue
src/components/Markdown/src/Markdown.vue
+41
-26
src/views/demo/editor/markdown/index.vue
src/views/demo/editor/markdown/index.vue
+12
-1
未找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
d95815b5
...
...
@@ -21,6 +21,7 @@
-
修复顶栏菜单在显示包含需要隐藏的菜单项目时出错的问题
-
修复悬停触发模式下左侧混合菜单会在没有子菜单且被激活时直接跳转路由
-
**Breadcrumb**
修复带有重定向的菜单点击无法跳转的问题
-
**Markdown**
修复初始化异常以及不能正确地动态设置 value 的问题
-
**其它**
-
修复菜单默认折叠的配置不起作用的问题
-
修复
`safari`
浏览器报错导致网站打不开
...
...
src/components/Markdown/src/Markdown.vue
浏览文件 @
d95815b5
...
...
@@ -5,18 +5,19 @@
import
{
defineComponent
,
ref
,
onMounted
,
unref
,
onUnmounted
,
nextTick
,
computed
,
watch
,
onBeforeUnmount
,
onDeactivated
,
}
from
'
vue
'
;
import
Vditor
from
'
vditor
'
;
import
'
vditor/dist/index.css
'
;
import
{
useLocale
}
from
'
/@/locales/useLocale
'
;
import
{
useModalContext
}
from
'
../../Modal
'
;
import
{
useRootSetting
}
from
'
/@/hooks/setting/useRootSetting
'
;
import
{
onMountedOrActivated
}
from
'
/@/hooks/core/onMountedOrActivated
'
;
type
Lang
=
'
zh_CN
'
|
'
en_US
'
|
'
ja_JP
'
|
'
ko_KR
'
|
undefined
;
...
...
@@ -26,7 +27,7 @@
height
:
{
type
:
Number
,
default
:
360
},
value
:
{
type
:
String
,
default
:
''
},
},
emits
:
[
'
change
'
,
'
get
'
],
emits
:
[
'
change
'
,
'
get
'
,
'
update:value
'
],
setup
(
props
,
{
attrs
,
emit
})
{
const
wrapRef
=
ref
<
ElRef
>
(
null
);
const
vditorRef
=
ref
<
Nullable
<
Vditor
>>
(
null
);
...
...
@@ -36,17 +37,16 @@
const
{
getLocale
}
=
useLocale
();
const
{
getDarkMode
}
=
useRootSetting
();
const
valueRef
=
ref
(
''
);
watch
(
[()
=>
getDarkMode
.
value
,
()
=>
initedRef
.
value
],
([
val
])
=>
{
const
vditor
=
unref
(
vditorRef
);
if
(
!
vditor
)
{
([
val
,
inited
])
=>
{
if
(
!
inited
)
{
return
;
}
const
theme
=
val
===
'
dark
'
?
'
dark
'
:
undefined
;
vditor
.
setTheme
(
theme
as
'
dark
'
);
const
theme
=
val
===
'
dark
'
?
'
dark
'
:
'
classic
'
;
instance
.
getVditor
()?.
setTheme
(
theme
);
},
{
immediate
:
true
,
...
...
@@ -54,6 +54,16 @@
}
);
watch
(
()
=>
props
.
value
,
(
v
)
=>
{
if
(
v
!==
valueRef
.
value
)
{
instance
.
getVditor
()?.
setValue
(
v
);
valueRef
.
value
=
v
;
}
}
);
const
getCurrentLang
=
computed
(():
'
zh_CN
'
|
'
en_US
'
|
'
ja_JP
'
|
'
ko_KR
'
=>
{
let
lang
:
Lang
;
switch
(
unref
(
getLocale
))
{
...
...
@@ -72,54 +82,59 @@
return
lang
;
});
function
init
()
{
const
wrapEl
=
unref
(
wrapRef
);
const
wrapEl
=
unref
(
wrapRef
)
as
HTMLElement
;
if
(
!
wrapEl
)
return
;
const
bindValue
=
{
...
attrs
,
...
props
};
vditorRef
.
value
=
new
Vditor
(
wrapEl
,
{
theme
:
'
classic
'
,
theme
:
getDarkMode
.
value
===
'
dark
'
?
'
dark
'
:
'
classic
'
,
lang
:
unref
(
getCurrentLang
),
mode
:
'
sv
'
,
preview
:
{
actions
:
[],
},
input
:
(
v
)
=>
{
// emit('update:value', v);
valueRef
.
value
=
v
;
emit
(
'
update:value
'
,
v
);
emit
(
'
change
'
,
v
);
},
after
:
()
=>
{
nextTick
(()
=>
{
modalFn
?.
redoModalHeight
?.();
initedRef
.
value
=
true
;
});
},
blur
:
()
=>
{
unref
(
vditorRef
)?.
setValue
(
props
.
value
);
//
unref(vditorRef)?.setValue(props.value);
},
...
bindValue
,
cache
:
{
enable
:
false
,
},
});
initedRef
.
value
=
true
;
}
const
instance
=
{
getVditor
:
():
Vditor
=>
vditorRef
.
value
!
,
};
onMounted
(()
=>
{
nextTick
(()
=>
{
init
();
setTimeout
(()
=>
{
modalFn
?.
redoModalHeight
?.();
},
200
);
});
emit
(
'
get
'
,
instance
);
});
onUnmounted
(()
=>
{
function
destroy
()
{
const
vditorInstance
=
unref
(
vditorRef
);
if
(
!
vditorInstance
)
return
;
try
{
vditorInstance
?.
destroy
?.();
}
catch
(
error
)
{}
vditorRef
.
value
=
null
;
}
onMountedOrActivated
(()
=>
{
nextTick
(()
=>
{
init
();
});
emit
(
'
get
'
,
instance
);
});
onBeforeUnmount
(
destroy
);
onDeactivated
(
destroy
);
return
{
wrapRef
,
...
instance
,
...
...
src/views/demo/editor/markdown/index.vue
浏览文件 @
d95815b5
<
template
>
<PageWrapper
title=
"MarkDown组件示例"
>
<a-button
@
click=
"toggleTheme"
class=
"mb-2"
type=
"primary"
>
黑暗主题
</a-button>
<MarkDown
:value=
"value"
@
change=
"handleChange"
ref=
"markDownRef"
/>
<a-button
@
click=
"clearValue"
class=
"mb-2"
type=
"default"
>
清空内容
</a-button>
<MarkDown
v-model:value=
"value"
@
change=
"handleChange"
ref=
"markDownRef"
placeholder=
"这是占位文本"
/>
</PageWrapper>
</
template
>
<
script
lang=
"ts"
>
...
...
@@ -30,11 +36,16 @@
valueRef
.
value
=
v
;
}
function
clearValue
()
{
valueRef
.
value
=
''
;
}
return
{
value
:
valueRef
,
toggleTheme
,
markDownRef
,
handleChange
,
clearValue
,
};
},
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录