150 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {extend name="../../base/view/common/base" /}
 | ||
| {block name="style"}
 | ||
| <link rel="stylesheet" href="{__METE__}/third_party/prism/prism.css?v=1"/>
 | ||
| <link rel="stylesheet" href="{__STATIC__}/viewer/viewer.min.css?v=1"/>
 | ||
| <link rel="stylesheet" href="{__STATIC__}/ztree/css/metroStyle/metroStyle.css" >
 | ||
| <style>
 | ||
| .content-chapter{width:300px; position:fixed; top:50px; left:60px; bottom:0; overflow: hidden; border-right:1px solid #e5ecf0; background-color:#F5F8FA;}
 | ||
| .content-text{margin-left:300px; padding:16px 32px; /*max-width:900px;*/}
 | ||
| .menu-title span{font-size:12px; font-weight:400}
 | ||
| .tree-menu{height:calc(100% - 145px); overflow-y: scroll; overflow-x: hidden;}
 | ||
| 
 | ||
| .editormd-preview2{font-size:16px; line-height:1.72; background-color:#fff;}
 | ||
| .editormd-html-preview code, .editormd-preview-container code {padding:2px; border-radius:2px; font-size:14px; font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;}
 | ||
| .editormd-html-preview, .editormd-preview-container .code-toolbar{font-size:14px;}
 | ||
| .editormd-preview2 li {list-style: initial;}
 | ||
| .editormd-html-preview pre, .editormd-preview-container pre{border: 1px solid #f6f6f6; font-size:14px;}
 | ||
| </style>
 | ||
| {/block}
 | ||
| {block name="breadcrumb"}
 | ||
| <span class="layui-breadcrumb">
 | ||
|   <a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
 | ||
|   <a href="/knowledge/index/index">知识库</a>
 | ||
|   <a><cite>知识详情</cite></a>
 | ||
| </span>
 | ||
| {/block}
 | ||
| <!-- 主体 -->
 | ||
| {block name="body"}
 | ||
| <div class="main-content">
 | ||
| 	{empty name="$info"}
 | ||
| 	<div style="padding:200px 0 0; width:100%; min-height:500px; text-align:center; font-size:30px; color:#999">暂无文档内容</div>
 | ||
| 	{else/}
 | ||
| 	<div class="content-chapter">
 | ||
| 		<div class="p-4">
 | ||
| 			<h4>{$detail['title']}</h4>
 | ||
| 			<p class="font-gray py-4">创建人:{$detail['user']}</p>
 | ||
| 			<h5 class="menu-title">目录<span class="font-gray">({$detail['count']})</span></h5>
 | ||
| 		</div>
 | ||
| 		<div class="tree-menu px-4">
 | ||
| 			<ul id="treeDemo" class="ztree"></ul>
 | ||
| 		</div>
 | ||
| 	</div>
 | ||
| 	<div class="content-text">		
 | ||
| 		<!-- <div class="pb-4"><h2 id="infoTilte">{$info.title}</h2></div> -->
 | ||
| 		<div class="editormd-preview2">
 | ||
| 			<div class="markdown-body" id="infoContent">
 | ||
| 			{$info.content|raw}
 | ||
| 			</div>
 | ||
| 		</div>
 | ||
| 		<div class="end-tip">
 | ||
| 			--  内容展示完毕 --
 | ||
| 		</div>
 | ||
| 	</div>
 | ||
| 	{/empty}
 | ||
| </div>
 | ||
| {/block}
 | ||
| <!-- /主体 -->
 | ||
| {block name="footer"}{/block}
 | ||
| <!-- 脚本 -->
 | ||
| {block name="script"}
 | ||
| <script src="{__STATIC__}/ztree/js/jquery.ztree.all.min.js?v=1"></script>
 | ||
| <script src="{__STATIC__}/viewer/viewer.min.js?v=1"></script>
 | ||
| <script src="{__METE__}/third_party/prism/prism.js?v=1"></script>
 | ||
| <script>
 | ||
| var kid='{$kid}';
 | ||
| var did='{$id}';
 | ||
| var treeObj = null;
 | ||
| var zNodes =[
 | ||
| 	{ id:1, pId:0, name:"文档", open:true}
 | ||
| ];
 | ||
| 
 | ||
| const moduleInit = ['tool'];
 | ||
| function gouguInit() {
 | ||
| 	var layer = layui.layer;
 | ||
| 	var tool = layui.tool;
 | ||
| 	
 | ||
| 	var viewer = new Viewer(document.getElementById('infoContent'));
 | ||
| 	var $codepre = $("code[class]");
 | ||
| 	if($codepre.length>0){
 | ||
| 		for(var i = 0;i<$codepre.length;i++){
 | ||
| 			var item = $codepre.eq(i).parent();
 | ||
| 			item.addClass("line-numbers");
 | ||
| 		}
 | ||
| 	}
 | ||
| 	
 | ||
| 	var setting = {
 | ||
| 		data: {
 | ||
| 			simpleData: {
 | ||
| 				enable: true
 | ||
| 			}
 | ||
| 		},
 | ||
| 		callback: {
 | ||
| 			onClick: zTreeOnClick
 | ||
| 		}
 | ||
| 	};
 | ||
| 	function zTreeOnClick(event, treeId, treeNode) {
 | ||
| 		let type=treeNode.type;
 | ||
| 		let id=treeNode.id;
 | ||
| 		if(type==1){
 | ||
| 			detail(id);
 | ||
| 		}
 | ||
| 		if(type == 2){
 | ||
| 			treeObj.expandNode(treeNode, !treeNode.open, false, true);
 | ||
| 		}
 | ||
| 		if(type == 3){
 | ||
| 			window.open(treeNode.link);
 | ||
| 		}
 | ||
| 	};
 | ||
| 	
 | ||
| 	let treeback = function(e){
 | ||
| 		if (e.code == 0) {
 | ||
| 			zNodes = e.data;
 | ||
| 			treeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
 | ||
| 			treeObj.expandAll(true);
 | ||
| 			if(did>0){
 | ||
| 				var node = treeObj.getNodeByParam("id", did, null);
 | ||
| 				treeObj.selectNode(node);
 | ||
| 			}
 | ||
| 		} else {
 | ||
| 			layer.msg(e.msg);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	tool.get("/api/index/get_doc_list",{kid:kid,tree:2},treeback);
 | ||
| 
 | ||
| 	function detail(id){
 | ||
| 		viewer.destroy();
 | ||
| 		let detailback = function(e){
 | ||
| 			if (e.code == 0) {
 | ||
| 				history.pushState({},e.data.title,window.location.protocol+'//'+window.location.host+'/knowledge/index/doc_detail/kid/'+kid+'/id/'+id+'.html');
 | ||
| 				$('#infoTilte').html(e.data.title);
 | ||
| 				$('#infoContent').html(e.data.content);				
 | ||
| 				document.body.scrollTop=document.documentElement.scrollTop=0
 | ||
| 				var $codepre = $('#infoContent').find("code[class]");
 | ||
| 				if($codepre.length>0){
 | ||
| 					for(var i = 0;i<$codepre.length;i++){
 | ||
| 						var item = $codepre.eq(i).parent();
 | ||
| 						item.addClass("line-numbers").addClass('lang-javascript');
 | ||
| 					}
 | ||
| 					Prism.highlightAll();
 | ||
| 				}
 | ||
| 				viewer = new Viewer(document.getElementById('infoContent'));
 | ||
| 			} else {
 | ||
| 				layer.msg(e.msg);
 | ||
| 			}
 | ||
| 		}
 | ||
| 		tool.get("/knowledge/index/doc_detail",{id:id},detailback);
 | ||
| 	}
 | ||
| }
 | ||
| </script>
 | ||
| {/block}
 | ||
| <!-- /脚本 --> |