diff --git a/app_doc/migrations/0035_auto_20201221_2042.py b/app_doc/migrations/0035_auto_20201221_2042.py
new file mode 100644
index 0000000..e6e5be4
--- /dev/null
+++ b/app_doc/migrations/0035_auto_20201221_2042.py
@@ -0,0 +1,23 @@
+# Generated by Django 2.2.12 on 2020-12-21 20:42
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('app_doc', '0034_doc_show_children'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='project',
+ name='icon',
+ field=models.CharField(blank=True, default=None, max_length=50, null=True, verbose_name='文集图标'),
+ ),
+ migrations.AlterField(
+ model_name='project',
+ name='name',
+ field=models.CharField(max_length=50, verbose_name='文集名称'),
+ ),
+ ]
diff --git a/app_doc/models.py b/app_doc/models.py
index 1262f94..792b588 100644
--- a/app_doc/models.py
+++ b/app_doc/models.py
@@ -4,7 +4,8 @@ from django.contrib.auth.models import User
# 文集模型
class Project(models.Model):
- name = models.CharField(verbose_name="文档名称",max_length=50)
+ name = models.CharField(verbose_name="文集名称",max_length=50)
+ icon= models.CharField(verbose_name="文集图标",max_length=50,blank=True,null=True,default=None)
intro = models.TextField(verbose_name="介绍")
# 文集权限说明:0表示公开,1表示私密,2表示指定用户可见,3表示访问码可见 默认公开
role = models.IntegerField(choices=((0,0),(1,1),(2,2),(3,3)), default=0,verbose_name="文集权限")
diff --git a/app_doc/templatetags/project_filter.py b/app_doc/templatetags/project_filter.py
index 62d3cd5..8937e02 100644
--- a/app_doc/templatetags/project_filter.py
+++ b/app_doc/templatetags/project_filter.py
@@ -14,7 +14,7 @@ def get_doc_count(value):
# 获取文集下最新的文档及其修改时间
@register.filter(name='get_new_doc')
def get_new_doc(value):
- new_doc = Doc.objects.filter(top_doc=int(value),status=1).order_by('-modify_time').first()
+ new_doc = Doc.objects.filter(top_doc=int(value),status=1).order_by('-modify_time')[:2]
if new_doc is None:
new_doc = '它还没有文档……'
return new_doc
diff --git a/app_doc/views.py b/app_doc/views.py
index c930ef5..3fbae60 100644
--- a/app_doc/views.py
+++ b/app_doc/views.py
@@ -282,12 +282,14 @@ def create_project(request):
try:
name = request.POST.get('pname','')
name = validateTitle(name)
+ icon = request.POST.get('picon',None)
desc = request.POST.get('desc','')
role = request.POST.get('role',0)
role_list = ['0','1','2','3',0,1,2,3]
if name != '':
project = Project.objects.create(
name=validateTitle(name),
+ icon = icon,
intro=desc[:100],
create_user=request.user,
role = int(role) if role in role_list else 0
@@ -388,9 +390,11 @@ def modify_project(request):
# 验证用户有权限修改文集
if (request.user == project.create_user) or request.user.is_superuser:
name = request.POST.get('name',None)
+ icon = request.POST.get('picon', None)
content = request.POST.get('desc',None)
project.name = validateTitle(name)
project.intro = content
+ project.icon = icon
project.save()
return JsonResponse({'status':True,'data':'修改成功'})
else:
diff --git a/static/iconFont/demo.css b/static/iconFont/demo.css
new file mode 100644
index 0000000..a67054a
--- /dev/null
+++ b/static/iconFont/demo.css
@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+ font-family: "iconfont logo";
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+ src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+ url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+ font-family: "iconfont logo";
+ font-size: 160px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+ position: relative;
+}
+
+.nav-tabs .nav-more {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ height: 42px;
+ line-height: 42px;
+ color: #666;
+}
+
+#tabs {
+ border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+ cursor: pointer;
+ width: 100px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ font-size: 16px;
+ border-bottom: 2px solid transparent;
+ position: relative;
+ z-index: 1;
+ margin-bottom: -1px;
+ color: #666;
+}
+
+
+#tabs .active {
+ border-bottom-color: #f00;
+ color: #222;
+}
+
+.tab-container .content {
+ display: none;
+}
+
+/* 页面布局 */
+.main {
+ padding: 30px 100px;
+ width: 960px;
+ margin: 0 auto;
+}
+
+.main .logo {
+ color: #333;
+ text-align: left;
+ margin-bottom: 30px;
+ line-height: 1;
+ height: 110px;
+ margin-top: -50px;
+ overflow: hidden;
+ *zoom: 1;
+}
+
+.main .logo a {
+ font-size: 160px;
+ color: #333;
+}
+
+.helps {
+ margin-top: 40px;
+}
+
+.helps pre {
+ padding: 20px;
+ margin: 10px 0;
+ border: solid 1px #e7e1cd;
+ background-color: #fffdef;
+ overflow: auto;
+}
+
+.icon_lists {
+ width: 100% !important;
+ overflow: hidden;
+ *zoom: 1;
+}
+
+.icon_lists li {
+ width: 100px;
+ margin-bottom: 10px;
+ margin-right: 20px;
+ text-align: center;
+ list-style: none !important;
+ cursor: default;
+}
+
+.icon_lists li .code-name {
+ line-height: 1.2;
+}
+
+.icon_lists .icon {
+ display: block;
+ height: 100px;
+ line-height: 100px;
+ font-size: 42px;
+ margin: 10px auto;
+ color: #333;
+ -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+ -moz-transition: font-size 0.25s linear, width 0.25s linear;
+ transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+ font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+ /* 通过设置 font-size 来改变图标大小 */
+ width: 1em;
+ /* 图标和文字相邻时,垂直对齐 */
+ vertical-align: -0.15em;
+ /* 通过设置 color 来改变 SVG 的颜色/fill */
+ fill: currentColor;
+ /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+ normalize.css 中也包含这行 */
+ overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+ color: #666;
+}
+
+/* markdown 样式 */
+.markdown {
+ color: #666;
+ font-size: 14px;
+ line-height: 1.8;
+}
+
+.highlight {
+ line-height: 1.5;
+}
+
+.markdown img {
+ vertical-align: middle;
+ max-width: 100%;
+}
+
+.markdown h1 {
+ color: #404040;
+ font-weight: 500;
+ line-height: 40px;
+ margin-bottom: 24px;
+}
+
+.markdown h2,
+.markdown h3,
+.markdown h4,
+.markdown h5,
+.markdown h6 {
+ color: #404040;
+ margin: 1.6em 0 0.6em 0;
+ font-weight: 500;
+ clear: both;
+}
+
+.markdown h1 {
+ font-size: 28px;
+}
+
+.markdown h2 {
+ font-size: 22px;
+}
+
+.markdown h3 {
+ font-size: 16px;
+}
+
+.markdown h4 {
+ font-size: 14px;
+}
+
+.markdown h5 {
+ font-size: 12px;
+}
+
+.markdown h6 {
+ font-size: 12px;
+}
+
+.markdown hr {
+ height: 1px;
+ border: 0;
+ background: #e9e9e9;
+ margin: 16px 0;
+ clear: both;
+}
+
+.markdown p {
+ margin: 1em 0;
+}
+
+.markdown>p,
+.markdown>blockquote,
+.markdown>.highlight,
+.markdown>ol,
+.markdown>ul {
+ width: 80%;
+}
+
+.markdown ul>li {
+ list-style: circle;
+}
+
+.markdown>ul li,
+.markdown blockquote ul>li {
+ margin-left: 20px;
+ padding-left: 4px;
+}
+
+.markdown>ul li p,
+.markdown>ol li p {
+ margin: 0.6em 0;
+}
+
+.markdown ol>li {
+ list-style: decimal;
+}
+
+.markdown>ol li,
+.markdown blockquote ol>li {
+ margin-left: 20px;
+ padding-left: 4px;
+}
+
+.markdown code {
+ margin: 0 3px;
+ padding: 0 5px;
+ background: #eee;
+ border-radius: 3px;
+}
+
+.markdown strong,
+.markdown b {
+ font-weight: 600;
+}
+
+.markdown>table {
+ border-collapse: collapse;
+ border-spacing: 0px;
+ empty-cells: show;
+ border: 1px solid #e9e9e9;
+ width: 95%;
+ margin-bottom: 24px;
+}
+
+.markdown>table th {
+ white-space: nowrap;
+ color: #333;
+ font-weight: 600;
+}
+
+.markdown>table th,
+.markdown>table td {
+ border: 1px solid #e9e9e9;
+ padding: 8px 16px;
+ text-align: left;
+}
+
+.markdown>table th {
+ background: #F7F7F7;
+}
+
+.markdown blockquote {
+ font-size: 90%;
+ color: #999;
+ border-left: 4px solid #e9e9e9;
+ padding-left: 0.8em;
+ margin: 1em 0;
+}
+
+.markdown blockquote p {
+ margin: 0;
+}
+
+.markdown .anchor {
+ opacity: 0;
+ transition: opacity 0.3s ease;
+ margin-left: 8px;
+}
+
+.markdown .waiting {
+ color: #ccc;
+}
+
+.markdown h1:hover .anchor,
+.markdown h2:hover .anchor,
+.markdown h3:hover .anchor,
+.markdown h4:hover .anchor,
+.markdown h5:hover .anchor,
+.markdown h6:hover .anchor {
+ opacity: 1;
+ display: inline-block;
+}
+
+.markdown>br,
+.markdown>p>br {
+ clear: both;
+}
+
+
+.hljs {
+ display: block;
+ background: white;
+ padding: 0.5em;
+ color: #333333;
+ overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+ color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+ color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+ color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+ color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+ color: #63a35c;
+}
+
+.hljs-tag {
+ color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #795da3;
+}
+
+.hljs-addition {
+ color: #55a532;
+ background-color: #eaffea;
+}
+
+.hljs-deletion {
+ color: #bd2c00;
+ background-color: #ffecec;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+ color: black;
+ background: none;
+ text-shadow: 0 1px white;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ line-height: 1.5;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+@media print {
+
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+ background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+ white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: slategray;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+ color: #9a6e3a;
+ background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: #07a;
+}
+
+.token.function,
+.token.class-name {
+ color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+ color: #e90;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
diff --git a/static/iconFont/demo_index.html b/static/iconFont/demo_index.html
new file mode 100644
index 0000000..03c4556
--- /dev/null
+++ b/static/iconFont/demo_index.html
@@ -0,0 +1,1182 @@
+
+
+
+
+ IconFont Demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - Unicode
+ - Font class
+ - Symbol
+
+
+
查看项目
+
+
+
+
+
+
+ -
+
+
鸟瞰logo
+ 
+
+
+ -
+
+
金
+ 
+
+
+ -
+
+
风车
+ 
+
+
+ -
+
+
水
+ 
+
+
+ -
+
+
月亮
+ 
+
+
+ -
+
+
龙
+ 
+
+
+ -
+
+
土壤
+ 
+
+
+ -
+
+
树
+ 
+
+
+ -
+
+
木工
+ 
+
+
+ -
+
+
火 (1)
+ 
+
+
+ -
+
+
鱼
+ 
+
+
+ -
+
+
新
+ 
+
+
+ -
+
+
猫
+ 
+
+
+ -
+
+
凤凰云logo带色
+ 
+
+
+ -
+
+
密 + 椭圆形 蒙版
+ 
+
+
+ -
+
+
pro-2
+ 
+
+
+ -
+
+
pro-1
+ 
+
+
+ -
+
+
pro-8
+ 
+
+
+ -
+
+
pro-9
+ 
+
+
+ -
+
+
pro-11
+ 
+
+
+ -
+
+
pro-7
+ 
+
+
+ -
+
+
pro-12
+ 
+
+
+ -
+
+
pro-10
+ 
+
+
+ -
+
+
pro-16
+ 
+
+
+ -
+
+
pro-15
+ 
+
+
+ -
+
+
pro-17
+ 
+
+
+ -
+
+
pro-18
+ 
+
+
+ -
+
+
pro-26
+ 
+
+
+ -
+
+
pro-24
+ 
+
+
+ -
+
+
pro-27
+ 
+
+
+ -
+
+
pro-32
+ 
+
+
+ -
+
+
pro-33
+ 
+
+
+ -
+
+
pro-29
+ 
+
+
+ -
+
+
pro-30
+ 
+
+
+ -
+
+
pro-34
+ 
+
+
+ -
+
+
pro-31
+ 
+
+
+ -
+
+
pro-36
+ 
+
+
+ -
+
+
pro-38
+ 
+
+
+ -
+
+
pro-40
+ 
+
+
+ -
+
+
pro-42
+ 
+
+
+ -
+
+
pro-43
+ 
+
+
+ -
+
+
pro-46
+ 
+
+
+ -
+
+
pro-39
+ 
+
+
+ -
+
+
pro-48
+ 
+
+
+
+
+
Unicode 引用
+
+
+
Unicode 是字体在网页端最原始的应用方式,特点是:
+
+ - 兼容性最好,支持 IE6+,及所有现代浏览器。
+ - 支持按字体的方式去动态调整图标大小,颜色等等。
+ - 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
+
+
+ 注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式
+
+
Unicode 使用步骤如下:
+
第一步:拷贝项目下面生成的 @font-face
+
@font-face {
+ font-family: 'iconfont';
+ src: url('iconfont.eot');
+ src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+ url('iconfont.woff2') format('woff2'),
+ url('iconfont.woff') format('woff'),
+ url('iconfont.ttf') format('truetype'),
+ url('iconfont.svg#iconfont') format('svg');
+}
+
+
第二步:定义使用 iconfont 的样式
+
.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+
第三步:挑选相应图标并获取字体编码,应用于页面
+
+<span class="iconfont">3</span>
+
+
+ "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+ -
+
+
+ 鸟瞰logo
+
+ .mrdoc-icon-pro-44
+
+
+
+ -
+
+
+ 金
+
+ .mrdoc-icon-pro-43
+
+
+
+ -
+
+
+ 风车
+
+ .mrdoc-icon-pro-42
+
+
+
+ -
+
+
+ 水
+
+ .mrdoc-icon-pro-41
+
+
+
+ -
+
+
+ 月亮
+
+ .mrdoc-icon-pro-40
+
+
+
+ -
+
+
+ 龙
+
+ .mrdoc-icon-pro-39
+
+
+
+ -
+
+
+ 土壤
+
+ .mrdoc-icon-pro-38
+
+
+
+ -
+
+
+ 树
+
+ .mrdoc-icon-pro-37
+
+
+
+ -
+
+
+ 木工
+
+ .mrdoc-icon-pro-36
+
+
+
+ -
+
+
+ 火 (1)
+
+ .mrdoc-icon-pro-35
+
+
+
+ -
+
+
+ 鱼
+
+ .mrdoc-icon-pro-34
+
+
+
+ -
+
+
+ 新
+
+ .mrdoc-icon-pro-33
+
+
+
+ -
+
+
+ 猫
+
+ .mrdoc-icon-pro-32
+
+
+
+ -
+
+
+ 凤凰云logo带色
+
+ .mrdoc-icon-pro-31
+
+
+
+ -
+
+
+ 密 + 椭圆形 蒙版
+
+ .mrdoc-icon-pro-3
+
+
+
+ -
+
+
+ pro-2
+
+ .mrdoc-icon-pro-2
+
+
+
+ -
+
+
+ pro-1
+
+ .mrdoc-icon-pro-1
+
+
+
+ -
+
+
+ pro-8
+
+ .mrdoc-icon-pro-8
+
+
+
+ -
+
+
+ pro-9
+
+ .mrdoc-icon-pro-9
+
+
+
+ -
+
+
+ pro-11
+
+ .mrdoc-icon-pro-11
+
+
+
+ -
+
+
+ pro-7
+
+ .mrdoc-icon-pro-7
+
+
+
+ -
+
+
+ pro-12
+
+ .mrdoc-icon-pro-12
+
+
+
+ -
+
+
+ pro-10
+
+ .mrdoc-icon-pro-10
+
+
+
+ -
+
+
+ pro-16
+
+ .mrdoc-icon-pro-16
+
+
+
+ -
+
+
+ pro-15
+
+ .mrdoc-icon-pro-15
+
+
+
+ -
+
+
+ pro-17
+
+ .mrdoc-icon-pro-17
+
+
+
+ -
+
+
+ pro-18
+
+ .mrdoc-icon-pro-18
+
+
+
+ -
+
+
+ pro-26
+
+ .mrdoc-icon-pro-26
+
+
+
+ -
+
+
+ pro-24
+
+ .mrdoc-icon-pro-24
+
+
+
+ -
+
+
+ pro-27
+
+ .mrdoc-icon-pro-27
+
+
+
+ -
+
+
+ pro-32
+
+ .mrdoc-icon-pro-30
+
+
+
+ -
+
+
+ pro-33
+
+ .mrdoc-icon-pro-29
+
+
+
+ -
+
+
+ pro-29
+
+ .mrdoc-icon-pro-28
+
+
+
+ -
+
+
+ pro-30
+
+ .mrdoc-icon-pro-25
+
+
+
+ -
+
+
+ pro-34
+
+ .mrdoc-icon-pro-23
+
+
+
+ -
+
+
+ pro-31
+
+ .mrdoc-icon-pro-22
+
+
+
+ -
+
+
+ pro-36
+
+ .mrdoc-icon-pro-21
+
+
+
+ -
+
+
+ pro-38
+
+ .mrdoc-icon-pro-20
+
+
+
+ -
+
+
+ pro-40
+
+ .mrdoc-icon-pro-19
+
+
+
+ -
+
+
+ pro-42
+
+ .mrdoc-icon-pro-14
+
+
+
+ -
+
+
+ pro-43
+
+ .mrdoc-icon-pro-13
+
+
+
+ -
+
+
+ pro-46
+
+ .mrdoc-icon-pro-6
+
+
+
+ -
+
+
+ pro-39
+
+ .mrdoc-icon-pro-5
+
+
+
+ -
+
+
+ pro-48
+
+ .mrdoc-icon-pro-4
+
+
+
+
+
+
font-class 引用
+
+
+
font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。
+
与 Unicode 使用方式相比,具有如下特点:
+
+ - 兼容性良好,支持 IE8+,及所有现代浏览器。
+ - 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
+ - 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
+ - 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 fontclass 代码:
+
<link rel="stylesheet" href="./iconfont.css">
+
+
第二步:挑选相应图标并获取类名,应用于页面:
+
<span class="iconfont mrdoc-icon-xxx"></span>
+
+
+ "
+ iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。
+
+
+
+
+
+
+ -
+
+
鸟瞰logo
+ #mrdoc-icon-pro-44
+
+
+ -
+
+
金
+ #mrdoc-icon-pro-43
+
+
+ -
+
+
风车
+ #mrdoc-icon-pro-42
+
+
+ -
+
+
水
+ #mrdoc-icon-pro-41
+
+
+ -
+
+
月亮
+ #mrdoc-icon-pro-40
+
+
+ -
+
+
龙
+ #mrdoc-icon-pro-39
+
+
+ -
+
+
土壤
+ #mrdoc-icon-pro-38
+
+
+ -
+
+
树
+ #mrdoc-icon-pro-37
+
+
+ -
+
+
木工
+ #mrdoc-icon-pro-36
+
+
+ -
+
+
火 (1)
+ #mrdoc-icon-pro-35
+
+
+ -
+
+
鱼
+ #mrdoc-icon-pro-34
+
+
+ -
+
+
新
+ #mrdoc-icon-pro-33
+
+
+ -
+
+
猫
+ #mrdoc-icon-pro-32
+
+
+ -
+
+
凤凰云logo带色
+ #mrdoc-icon-pro-31
+
+
+ -
+
+
密 + 椭圆形 蒙版
+ #mrdoc-icon-pro-3
+
+
+ -
+
+
pro-2
+ #mrdoc-icon-pro-2
+
+
+ -
+
+
pro-1
+ #mrdoc-icon-pro-1
+
+
+ -
+
+
pro-8
+ #mrdoc-icon-pro-8
+
+
+ -
+
+
pro-9
+ #mrdoc-icon-pro-9
+
+
+ -
+
+
pro-11
+ #mrdoc-icon-pro-11
+
+
+ -
+
+
pro-7
+ #mrdoc-icon-pro-7
+
+
+ -
+
+
pro-12
+ #mrdoc-icon-pro-12
+
+
+ -
+
+
pro-10
+ #mrdoc-icon-pro-10
+
+
+ -
+
+
pro-16
+ #mrdoc-icon-pro-16
+
+
+ -
+
+
pro-15
+ #mrdoc-icon-pro-15
+
+
+ -
+
+
pro-17
+ #mrdoc-icon-pro-17
+
+
+ -
+
+
pro-18
+ #mrdoc-icon-pro-18
+
+
+ -
+
+
pro-26
+ #mrdoc-icon-pro-26
+
+
+ -
+
+
pro-24
+ #mrdoc-icon-pro-24
+
+
+ -
+
+
pro-27
+ #mrdoc-icon-pro-27
+
+
+ -
+
+
pro-32
+ #mrdoc-icon-pro-30
+
+
+ -
+
+
pro-33
+ #mrdoc-icon-pro-29
+
+
+ -
+
+
pro-29
+ #mrdoc-icon-pro-28
+
+
+ -
+
+
pro-30
+ #mrdoc-icon-pro-25
+
+
+ -
+
+
pro-34
+ #mrdoc-icon-pro-23
+
+
+ -
+
+
pro-31
+ #mrdoc-icon-pro-22
+
+
+ -
+
+
pro-36
+ #mrdoc-icon-pro-21
+
+
+ -
+
+
pro-38
+ #mrdoc-icon-pro-20
+
+
+ -
+
+
pro-40
+ #mrdoc-icon-pro-19
+
+
+ -
+
+
pro-42
+ #mrdoc-icon-pro-14
+
+
+ -
+
+
pro-43
+ #mrdoc-icon-pro-13
+
+
+ -
+
+
pro-46
+ #mrdoc-icon-pro-6
+
+
+ -
+
+
pro-39
+ #mrdoc-icon-pro-5
+
+
+ -
+
+
pro-48
+ #mrdoc-icon-pro-4
+
+
+
+
+
Symbol 引用
+
+
+
这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章
+ 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:
+
+ - 支持多色图标了,不再受单色限制。
+ - 通过一些技巧,支持像字体那样,通过
font-size, color 来调整样式。
+ - 兼容性较差,支持 IE9+,及现代浏览器。
+ - 浏览器渲染 SVG 的性能一般,还不如 png。
+
+
使用步骤如下:
+
第一步:引入项目下面生成的 symbol 代码:
+
<script src="./iconfont.js"></script>
+
+
第二步:加入通用 CSS 代码(引入一次就行):
+
<style>
+.icon {
+ width: 1em;
+ height: 1em;
+ vertical-align: -0.15em;
+ fill: currentColor;
+ overflow: hidden;
+}
+</style>
+
+
第三步:挑选相应图标并获取类名,应用于页面:
+
<svg class="icon" aria-hidden="true">
+ <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+
+
+
+
+
+
diff --git a/static/iconFont/iconfont.css b/static/iconFont/iconfont.css
new file mode 100644
index 0000000..17ae311
--- /dev/null
+++ b/static/iconFont/iconfont.css
@@ -0,0 +1,193 @@
+@font-face {font-family: "iconfont";
+ src: url('iconfont.eot?t=1608641107394'); /* IE9 */
+ src: url('iconfont.eot?t=1608641107394#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
+ url('iconfont.woff?t=1608641107394') format('woff'),
+ url('iconfont.ttf?t=1608641107394') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('iconfont.svg?t=1608641107394#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.mrdoc-icon-pro-44:before {
+ content: "\e603";
+}
+
+.mrdoc-icon-pro-43:before {
+ content: "\e607";
+}
+
+.mrdoc-icon-pro-42:before {
+ content: "\e61e";
+}
+
+.mrdoc-icon-pro-41:before {
+ content: "\e600";
+}
+
+.mrdoc-icon-pro-40:before {
+ content: "\e652";
+}
+
+.mrdoc-icon-pro-39:before {
+ content: "\e6a3";
+}
+
+.mrdoc-icon-pro-38:before {
+ content: "\e624";
+}
+
+.mrdoc-icon-pro-37:before {
+ content: "\e602";
+}
+
+.mrdoc-icon-pro-36:before {
+ content: "\e657";
+}
+
+.mrdoc-icon-pro-35:before {
+ content: "\e63c";
+}
+
+.mrdoc-icon-pro-34:before {
+ content: "\e601";
+}
+
+.mrdoc-icon-pro-33:before {
+ content: "\e625";
+}
+
+.mrdoc-icon-pro-32:before {
+ content: "\e62f";
+}
+
+.mrdoc-icon-pro-31:before {
+ content: "\e666";
+}
+
+.mrdoc-icon-pro-3:before {
+ content: "\e609";
+}
+
+.mrdoc-icon-pro-2:before {
+ content: "\e614";
+}
+
+.mrdoc-icon-pro-1:before {
+ content: "\e617";
+}
+
+.mrdoc-icon-pro-8:before {
+ content: "\e61a";
+}
+
+.mrdoc-icon-pro-9:before {
+ content: "\e61b";
+}
+
+.mrdoc-icon-pro-11:before {
+ content: "\e61c";
+}
+
+.mrdoc-icon-pro-7:before {
+ content: "\e61d";
+}
+
+.mrdoc-icon-pro-12:before {
+ content: "\e61f";
+}
+
+.mrdoc-icon-pro-10:before {
+ content: "\e620";
+}
+
+.mrdoc-icon-pro-16:before {
+ content: "\e621";
+}
+
+.mrdoc-icon-pro-15:before {
+ content: "\e622";
+}
+
+.mrdoc-icon-pro-17:before {
+ content: "\e623";
+}
+
+.mrdoc-icon-pro-18:before {
+ content: "\e626";
+}
+
+.mrdoc-icon-pro-26:before {
+ content: "\e629";
+}
+
+.mrdoc-icon-pro-24:before {
+ content: "\e62c";
+}
+
+.mrdoc-icon-pro-27:before {
+ content: "\e62e";
+}
+
+.mrdoc-icon-pro-30:before {
+ content: "\e630";
+}
+
+.mrdoc-icon-pro-29:before {
+ content: "\e631";
+}
+
+.mrdoc-icon-pro-28:before {
+ content: "\e632";
+}
+
+.mrdoc-icon-pro-25:before {
+ content: "\e633";
+}
+
+.mrdoc-icon-pro-23:before {
+ content: "\e634";
+}
+
+.mrdoc-icon-pro-22:before {
+ content: "\e635";
+}
+
+.mrdoc-icon-pro-21:before {
+ content: "\e637";
+}
+
+.mrdoc-icon-pro-20:before {
+ content: "\e639";
+}
+
+.mrdoc-icon-pro-19:before {
+ content: "\e63a";
+}
+
+.mrdoc-icon-pro-14:before {
+ content: "\e63b";
+}
+
+.mrdoc-icon-pro-13:before {
+ content: "\e63e";
+}
+
+.mrdoc-icon-pro-6:before {
+ content: "\e63f";
+}
+
+.mrdoc-icon-pro-5:before {
+ content: "\e641";
+}
+
+.mrdoc-icon-pro-4:before {
+ content: "\e642";
+}
+
diff --git a/static/iconFont/iconfont.eot b/static/iconFont/iconfont.eot
new file mode 100644
index 0000000..32509e8
Binary files /dev/null and b/static/iconFont/iconfont.eot differ
diff --git a/static/iconFont/iconfont.js b/static/iconFont/iconfont.js
new file mode 100644
index 0000000..9bef9c2
--- /dev/null
+++ b/static/iconFont/iconfont.js
@@ -0,0 +1 @@
+!function(c){var a,l,h,t,p,F,i='',z=(z=document.getElementsByTagName("script"))[z.length-1].getAttribute("data-injectcss");if(z&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function d(){p||(p=!0,h())}a=function(){var c,a,l,h;(h=document.createElement("div")).innerHTML=i,i=null,(l=h.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",c=l,(a=document.body).firstChild?(h=c,(l=a.firstChild).parentNode.insertBefore(h,l)):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),a()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=a,t=c.document,p=!1,(F=function(){try{t.documentElement.doScroll("left")}catch(c){return void setTimeout(F,50)}d()})(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,d())})}(window);
\ No newline at end of file
diff --git a/static/iconFont/iconfont.json b/static/iconFont/iconfont.json
new file mode 100644
index 0000000..258fe84
--- /dev/null
+++ b/static/iconFont/iconfont.json
@@ -0,0 +1,317 @@
+{
+ "id": "2281207",
+ "name": "觅道文档图标",
+ "font_family": "iconfont",
+ "css_prefix_text": "mrdoc-icon-",
+ "description": "用于觅道文档的文集文档图标",
+ "glyphs": [
+ {
+ "icon_id": "2353251",
+ "name": "鸟瞰logo",
+ "font_class": "pro-44",
+ "unicode": "e603",
+ "unicode_decimal": 58883
+ },
+ {
+ "icon_id": "4077657",
+ "name": "金",
+ "font_class": "pro-43",
+ "unicode": "e607",
+ "unicode_decimal": 58887
+ },
+ {
+ "icon_id": "4767599",
+ "name": "风车",
+ "font_class": "pro-42",
+ "unicode": "e61e",
+ "unicode_decimal": 58910
+ },
+ {
+ "icon_id": "7107786",
+ "name": "水",
+ "font_class": "pro-41",
+ "unicode": "e600",
+ "unicode_decimal": 58880
+ },
+ {
+ "icon_id": "9181931",
+ "name": "月亮",
+ "font_class": "pro-40",
+ "unicode": "e652",
+ "unicode_decimal": 58962
+ },
+ {
+ "icon_id": "9255920",
+ "name": "龙",
+ "font_class": "pro-39",
+ "unicode": "e6a3",
+ "unicode_decimal": 59043
+ },
+ {
+ "icon_id": "10425576",
+ "name": "土壤",
+ "font_class": "pro-38",
+ "unicode": "e624",
+ "unicode_decimal": 58916
+ },
+ {
+ "icon_id": "10768035",
+ "name": "树",
+ "font_class": "pro-37",
+ "unicode": "e602",
+ "unicode_decimal": 58882
+ },
+ {
+ "icon_id": "11054404",
+ "name": "木工",
+ "font_class": "pro-36",
+ "unicode": "e657",
+ "unicode_decimal": 58967
+ },
+ {
+ "icon_id": "11217722",
+ "name": "火 (1)",
+ "font_class": "pro-35",
+ "unicode": "e63c",
+ "unicode_decimal": 58940
+ },
+ {
+ "icon_id": "12519675",
+ "name": "鱼",
+ "font_class": "pro-34",
+ "unicode": "e601",
+ "unicode_decimal": 58881
+ },
+ {
+ "icon_id": "13673407",
+ "name": "新",
+ "font_class": "pro-33",
+ "unicode": "e625",
+ "unicode_decimal": 58917
+ },
+ {
+ "icon_id": "13784708",
+ "name": "猫",
+ "font_class": "pro-32",
+ "unicode": "e62f",
+ "unicode_decimal": 58927
+ },
+ {
+ "icon_id": "14689313",
+ "name": "凤凰云logo带色",
+ "font_class": "pro-31",
+ "unicode": "e666",
+ "unicode_decimal": 58982
+ },
+ {
+ "icon_id": "17875944",
+ "name": "密 + 椭圆形 蒙版",
+ "font_class": "pro-3",
+ "unicode": "e609",
+ "unicode_decimal": 58889
+ },
+ {
+ "icon_id": "18922192",
+ "name": "pro-2",
+ "font_class": "pro-2",
+ "unicode": "e614",
+ "unicode_decimal": 58900
+ },
+ {
+ "icon_id": "18922195",
+ "name": "pro-1",
+ "font_class": "pro-1",
+ "unicode": "e617",
+ "unicode_decimal": 58903
+ },
+ {
+ "icon_id": "18922198",
+ "name": "pro-8",
+ "font_class": "pro-8",
+ "unicode": "e61a",
+ "unicode_decimal": 58906
+ },
+ {
+ "icon_id": "18922199",
+ "name": "pro-9",
+ "font_class": "pro-9",
+ "unicode": "e61b",
+ "unicode_decimal": 58907
+ },
+ {
+ "icon_id": "18922200",
+ "name": "pro-11",
+ "font_class": "pro-11",
+ "unicode": "e61c",
+ "unicode_decimal": 58908
+ },
+ {
+ "icon_id": "18922201",
+ "name": "pro-7",
+ "font_class": "pro-7",
+ "unicode": "e61d",
+ "unicode_decimal": 58909
+ },
+ {
+ "icon_id": "18922203",
+ "name": "pro-12",
+ "font_class": "pro-12",
+ "unicode": "e61f",
+ "unicode_decimal": 58911
+ },
+ {
+ "icon_id": "18922204",
+ "name": "pro-10",
+ "font_class": "pro-10",
+ "unicode": "e620",
+ "unicode_decimal": 58912
+ },
+ {
+ "icon_id": "18922205",
+ "name": "pro-16",
+ "font_class": "pro-16",
+ "unicode": "e621",
+ "unicode_decimal": 58913
+ },
+ {
+ "icon_id": "18922206",
+ "name": "pro-15",
+ "font_class": "pro-15",
+ "unicode": "e622",
+ "unicode_decimal": 58914
+ },
+ {
+ "icon_id": "18922207",
+ "name": "pro-17",
+ "font_class": "pro-17",
+ "unicode": "e623",
+ "unicode_decimal": 58915
+ },
+ {
+ "icon_id": "18922210",
+ "name": "pro-18",
+ "font_class": "pro-18",
+ "unicode": "e626",
+ "unicode_decimal": 58918
+ },
+ {
+ "icon_id": "18922213",
+ "name": "pro-26",
+ "font_class": "pro-26",
+ "unicode": "e629",
+ "unicode_decimal": 58921
+ },
+ {
+ "icon_id": "18922216",
+ "name": "pro-24",
+ "font_class": "pro-24",
+ "unicode": "e62c",
+ "unicode_decimal": 58924
+ },
+ {
+ "icon_id": "18922218",
+ "name": "pro-27",
+ "font_class": "pro-27",
+ "unicode": "e62e",
+ "unicode_decimal": 58926
+ },
+ {
+ "icon_id": "18922220",
+ "name": "pro-32",
+ "font_class": "pro-30",
+ "unicode": "e630",
+ "unicode_decimal": 58928
+ },
+ {
+ "icon_id": "18922221",
+ "name": "pro-33",
+ "font_class": "pro-29",
+ "unicode": "e631",
+ "unicode_decimal": 58929
+ },
+ {
+ "icon_id": "18922222",
+ "name": "pro-29",
+ "font_class": "pro-28",
+ "unicode": "e632",
+ "unicode_decimal": 58930
+ },
+ {
+ "icon_id": "18922223",
+ "name": "pro-30",
+ "font_class": "pro-25",
+ "unicode": "e633",
+ "unicode_decimal": 58931
+ },
+ {
+ "icon_id": "18922224",
+ "name": "pro-34",
+ "font_class": "pro-23",
+ "unicode": "e634",
+ "unicode_decimal": 58932
+ },
+ {
+ "icon_id": "18922225",
+ "name": "pro-31",
+ "font_class": "pro-22",
+ "unicode": "e635",
+ "unicode_decimal": 58933
+ },
+ {
+ "icon_id": "18922227",
+ "name": "pro-36",
+ "font_class": "pro-21",
+ "unicode": "e637",
+ "unicode_decimal": 58935
+ },
+ {
+ "icon_id": "18922229",
+ "name": "pro-38",
+ "font_class": "pro-20",
+ "unicode": "e639",
+ "unicode_decimal": 58937
+ },
+ {
+ "icon_id": "18922230",
+ "name": "pro-40",
+ "font_class": "pro-19",
+ "unicode": "e63a",
+ "unicode_decimal": 58938
+ },
+ {
+ "icon_id": "18922231",
+ "name": "pro-42",
+ "font_class": "pro-14",
+ "unicode": "e63b",
+ "unicode_decimal": 58939
+ },
+ {
+ "icon_id": "18922234",
+ "name": "pro-43",
+ "font_class": "pro-13",
+ "unicode": "e63e",
+ "unicode_decimal": 58942
+ },
+ {
+ "icon_id": "18922235",
+ "name": "pro-46",
+ "font_class": "pro-6",
+ "unicode": "e63f",
+ "unicode_decimal": 58943
+ },
+ {
+ "icon_id": "18922237",
+ "name": "pro-39",
+ "font_class": "pro-5",
+ "unicode": "e641",
+ "unicode_decimal": 58945
+ },
+ {
+ "icon_id": "18922238",
+ "name": "pro-48",
+ "font_class": "pro-4",
+ "unicode": "e642",
+ "unicode_decimal": 58946
+ }
+ ]
+}
diff --git a/static/iconFont/iconfont.svg b/static/iconFont/iconfont.svg
new file mode 100644
index 0000000..d06b9cf
--- /dev/null
+++ b/static/iconFont/iconfont.svg
@@ -0,0 +1,158 @@
+
+
+
+
diff --git a/static/iconFont/iconfont.ttf b/static/iconFont/iconfont.ttf
new file mode 100644
index 0000000..66abc9d
Binary files /dev/null and b/static/iconFont/iconfont.ttf differ
diff --git a/static/iconFont/iconfont.woff b/static/iconFont/iconfont.woff
new file mode 100644
index 0000000..51b1ffa
Binary files /dev/null and b/static/iconFont/iconfont.woff differ
diff --git a/static/iconFont/iconfont.woff2 b/static/iconFont/iconfont.woff2
new file mode 100644
index 0000000..aeb6df5
Binary files /dev/null and b/static/iconFont/iconfont.woff2 differ
diff --git a/static/mrdoc/mrdoc-admin.css b/static/mrdoc/mrdoc-admin.css
index 173670c..4fa3ef9 100644
--- a/static/mrdoc/mrdoc-admin.css
+++ b/static/mrdoc/mrdoc-admin.css
@@ -156,6 +156,32 @@
color: #2176ff !important;
}
+/* 图标选择器 */
+.layui-iconpicker {max-width: 280px;}
+.layui-iconpicker{position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:200px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}
+.layui-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}
+.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}
+.layui-iconpicker-icon i{line-height:38px;font-size:18px;}
+.layui-iconpicker-item > .layui-edge{left:70px;}
+.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}
+.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}
+.layui-iconpicker.layui-form-selected .layui-anim{display:block;}
+.layui-iconpicker-body{padding:6px;}
+.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}
+.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}
+.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}
+.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}
+
+.icon {
+ width: 1em; height: 1em;
+ vertical-align: -0.15em;
+ fill: currentColor;
+ overflow: hidden;
+}
+.hide-project-icon-list{
+ display: none;
+}
+
/* 文字悬浮提示样式 */
/* tooltip样式 */
[tooltip] {
diff --git a/static/mrdoc/mrdoc.css b/static/mrdoc/mrdoc.css
index b1a195f..0a23c10 100644
--- a/static/mrdoc/mrdoc.css
+++ b/static/mrdoc/mrdoc.css
@@ -484,6 +484,32 @@ input#doc-name,input#doctemp-name{
background-color: #2176ff;
}
+/* 图标选择器 */
+.layui-iconpicker {max-width: 280px;}
+.layui-iconpicker{position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:200px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}
+.layui-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}
+.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}
+.layui-iconpicker-icon i{line-height:38px;font-size:18px;}
+.layui-iconpicker-item > .layui-edge{left:70px;}
+.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}
+.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}
+.layui-iconpicker.layui-form-selected .layui-anim{display:block;}
+.layui-iconpicker-body{padding:6px;}
+.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}
+.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}
+.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}
+.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}
+
+.icon {
+ width: 1em; height: 1em;
+ vertical-align: -0.15em;
+ fill: currentColor;
+ overflow: hidden;
+}
+.hide-project-icon-list{
+ display: none;
+}
+
/* 文字悬浮提示样式 */
/* tooltip样式 */
[tooltip] {
diff --git a/static/mrdoc/mrdoc.editor.js b/static/mrdoc/mrdoc.editor.js
index 02dca0f..ae568f4 100644
--- a/static/mrdoc/mrdoc.editor.js
+++ b/static/mrdoc/mrdoc.editor.js
@@ -252,7 +252,7 @@ $("#doc-cache-btn").click(function(){
$('div.editormd-preview').on('click','a',function(e){
e.target.target = '_blank';
});
-$("#editor-md").on('click','a',function(e){
+$("div.editormd-preview").on('click','a',function(e){
e.target.target = '_blank';
})
diff --git a/template/app_doc/docs_base.html b/template/app_doc/docs_base.html
index 58641a0..c5434a1 100644
--- a/template/app_doc/docs_base.html
+++ b/template/app_doc/docs_base.html
@@ -47,6 +47,9 @@
+ {% if project.icon %}
+
+ {% endif %}
{{ project.name }}
{% if project.role == 1 %}
@@ -295,6 +298,7 @@
+
@@ -201,23 +218,41 @@
var form = layui.form;
//监听单选事件
form.on('radio(role)', function(data){
- console.log(data.elem); //得到radio原始DOM对象
- console.log(data.value); //被点击的radio的value值
- if(data.value in [0,1]){
- $("#role-pwd").css("display","none");
- $("#role-user").css("display","none");
- }else if(data.value == 2){
- $("#role-user").css("display","block");
- $("#role-pwd").css("display","none");
- }else if(data.value == 3){
- $("#role-user").css("display","none");
- $("#role-pwd").css("display","block");
- }
+ console.log(data.elem); //得到radio原始DOM对象
+ console.log(data.value); //被点击的radio的value值
+ if(data.value in [0,1]){
+ $("#role-pwd").css("display","none");
+ $("#role-user").css("display","none");
+ }else if(data.value == 2){
+ $("#role-user").css("display","block");
+ $("#role-pwd").css("display","none");
+ }else if(data.value == 3){
+ $("#role-user").css("display","none");
+ $("#role-pwd").css("display","block");
+ }
});
+ // 动态生成文集图标列表
+ for(var i=1;i<44;i++){
+ var icon_elem = ''
+ $("#mrdoc-project-icon-list").append(icon_elem)
+ }
+ // 点击图标选择按钮
+ $("#project-icon-select").click(function(){
+ $("#project-icon-select-box").toggleClass("hide-project-icon-list")
+ });
+ // 选中图标
+ $(".layui-iconpicker-icon-item").click(function(e){
+ var selected_icon = e.currentTarget.dataset.icon;
+ var selected_icon_svg = ''
+ console.log(selected_icon)
+ $("#project-icon-select").html(selected_icon_svg)
+ $("#picon").val(selected_icon)
+ })
//修改文集基础信息
modifyProject = function(pro_id,pro_name,pro_intro){
layer.load(1);
var project_data = {
+ 'picon':$("#picon").val(),
'pro_id':'{{pro.id}}',
'name':$("#pname").val(),
'desc':$("#desc").val(),
diff --git a/template/app_doc/pro_list.html b/template/app_doc/pro_list.html
index 9021601..f884c99 100644
--- a/template/app_doc/pro_list.html
+++ b/template/app_doc/pro_list.html
@@ -15,6 +15,7 @@
+