您的位置:首页> 日志> 动易系统 正文
DTOP

siteAzure验收清单

luosi | 2018年11月02日 |

>>收藏本文 已有 0条评论

新系统的验收清单问题吧,由于站群系统,已有的验收清单总是没有按照节点排序或者其它情况或多或少的感觉不够完善!!因此自己特意制作了一个验收清单,最终目的是设置方便,所有栏目显示完整,按栏目排序显示,能列表显示也能表格形式显示;表格显示方便导出xls从而制作成栏目对应表,让客户填写对应旧站栏目!提供给开发迁移数据!

第一:添加设置验收清单

操作位置:内容管理-节点管理-创建内容节点

模板设置如下图:

 

设置完毕

第二:显示效果 

    (1)站群总览:

     

    (2)各子站验收清单-表格式

 

表格它会根据当前站点的节点层级自动判断增加到 *级栏目,得益于利哥提供的当前栏目最大层级获取方法!

     (3)各子站验收清单-列表式

 

 

综上实现了我们验收清单的目的,设置简单方便快捷!完工!

 

第三:代码部门展示

(1)PE站群站点

  1. @model Node 
  2. @{ 
  3.     Layout = null
  4.     var sites = new SiteService().GetMany(s => s.Enable);//获取开启的站群数据 
  5.  
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9.     <meta name="viewport" content="width=device-width" />
  10.     <title>@ViewBag.PageTitle</title>
  11. </head>
  12. <body>
  13. <div class="bd">
  14.             @if (sites.Any()) 
  15.             { 
  16.             <ul class="site-list">
  17.                 @foreach (var site in sites) 
  18.              { 
  19.                 <li>
  20.                     <a href="@Power.Url.NodeUrl(Model.Identifier)_@site.SiteId" target="_blank">@site.SiteName</a>
  21.                 </li>
  22.                 } 
  23.             </ul>
  24.             } 
  25.         </div>
  26. </body>
  27. </html>

@Power.Url.NodeUrl(Model.Identifier)_@site.SiteId 利用栏目分页形式从而避免缓存问题!

(2)PE节点列表-表格式

  1. @*列表页模板*@ 
  2. @{ 
  3.     Layout = null
  4.     var nodeService = new NodeService(); 
  5.     var siteId =int.Parse(Request.RequestContext.RouteData.Values["pageid"].ToString());//获取分页的数字 
  6.     var maxDepth = nodeService.GetMany(n => n.SiteId == siteId) 
  7.                          .OrderByDescending(n => n.Depth) 
  8.                          .FirstOrDefault() 
  9.                          .Depth; //当前站点最大层数 author:郑利 
  10.     var Depth = maxDepth+1; //当前站点实际层级 
  11.     var siteServer = new SiteService().GetEntity(siteId); 
  12.     var childNodes = nodeService.GetMany(n=> n.SiteId == siteId && n.Depth ==0).OrderBy(n => n.Left); 
  13. <!DOCTYPE html>
  14. <html>
  15. <head>
  16.     <meta name="viewport" content="width=device-width" />
  17.     <title>@siteServer.SiteTitle</title>
  18. </head>
  19. <body>
  20.  
  21.     <div class="check-list">
  22.         <div class="hd">
  23.             <h1 class="title">
  24.                 <text>@siteServer.SiteTitle</text>节点目录检测清单 
  25.             </h1>
  26.         </div>
  27.         <div class="bd">
  28.             <div class="th">
  29.                 <div class="btn"><button type="button" onclick="exportExl('nodeTable')">导出Excel</button></div>
  30.                 <div class="title">节点目录</div>
  31.             </div>
  32.             <!-- 站点链接 S -->
  33.             <h2 class="sideName">
  34.                 <a class="a1" href="@Power.Url.SiteUrl(siteServer.Subdomain)">网站首页</a>
  35.             </h2>
  36.             <!-- 栏目列表 S -->
  37.             <table class="ysqdTable" id="nodeTable">
  38.                 <tr class="title">
  39.                     <td class="id">ID</td>
  40.                     @for(var i = 0; i < Depth; i++) 
  41.                     {<td>@(i+1)<text>级栏目</text></td>
  42.                     <td class="url">栏目地址</td>
  43.                 </tr>
  44.                 @foreach (var childnode in childNodes) 
  45.                 { 
  46.                     var childCount=(childnode.Right - childnode.Left -1)/2; //获取子栏目总数 
  47.                     int subDepth=childnode.Depth+1;//子栏目层级 
  48.                     string nodeUrl; 
  49.                     if (childnode.NodeType == NodeType.Link) 
  50.                     { 
  51.                         nodeUrl = childnode.LinkUrl.StartsWith("http") ? childnode.LinkUrl : Power.Url.SiteUrl(childnode.Site.Subdomain) + childnode.LinkUrl; 
  52.                     } 
  53.                     else 
  54.                     { 
  55.                         nodeUrl = Power.Url.SiteUrl(childnode.Site.Subdomain) + Power.Url.NodeUrl(childnode); 
  56.                     } 
  57.                     <tr class="li1">
  58.                         <td class="id">@childnode.NodeId</td>
  59.                         <td>
  60.                             <a class="a@(subDepth)" href="@nodeUrl" target="_blank">@childnode.NodeName</a>
  61.                         </td>
  62.                         @for(var i = 0; i < (Depth-subDepth); i++) 
  63.                         {<td></td>
  64.                         <td class="url"><span>@nodeUrl</span></td>
  65.                     </tr>
  66.  
  67.                     if (childCount > 0 && subDepth < Depth
  68.                     { 
  69.                         <text>@Power.Partial("验收清单多级节点-表格式", new { NodeIdentifier = childnode.Identifier, Depth, siteIdsiteId=siteId, left=childnode.Left, right=childnode.Right, CurrentDepth = subDepth }) 
  70.                         </text>
  71.                     } 
  72.                 } 
  73.             </table>
  74.         </div>
  75.     </div>
  76.  
  77. </body>
  78. </html>

(3)验收清单多级节点-表格式

  1. @Power.VisualizationPartialView(new 
  2.     Description = "验收清单多级节点-表格式"
  3.     Parameters = new
  4.     { 
  5.         NodeIdentifier = new { DisplayName = "节点标识符" }, 
  6.         Count = new { DisplayName = "输出数量"Type = "Int32"ControlType = "Integer"DefaultValue = 99999 }, 
  7.         Depth = new { DisplayName = "输出层数"Type = "Int32"ControlType = "Integer"DefaultValue = 2 }, 
  8.         CurrentDepth = new { DisplayName = "当前层数"Type = "Int32"ControlType = "Integer"DefaultValue = 1 } 
  9.     } 
  10. }) 
  11. @{ 
  12.     var nodeService = new NodeService(); 
  13.     string nodeIdentifier = Param.nodeIdentifier; 
  14.     int siteId=Param.siteId; 
  15.     //参数 
  16.     int Count = Param.Count ?? 99999; //输出数量 
  17.     int Depth = Param.Depth ?? 99; //输出层数 
  18.     int left = Param.left; //左边 
  19.     int right = Param.right; //右边 
  20.     int CurrentDepth = Param.CurrentDepth ?? 1; //当前层数 
  21.     var childNodes = nodeService.GetMany(n=> n.SiteId == siteId && n.Depth ==CurrentDepth && n.Left > left && n.Right < right).OrderBy(n => n.Left); 
  22.  
  23. @foreach (Node childnode in childNodes) 
  24.     var childCount=(childnode.Right - childnode.Left -1)/2; //获取子栏目总数 
  25.     int subDepth=childnode.Depth+1;//子栏目层级 
  26.     string nodeUrl; 
  27.     if (childnode.NodeType == NodeType.Link) 
  28.     { 
  29.         nodeUrl = childnode.LinkUrl.StartsWith("http") ? childnode.LinkUrl : Power.Url.SiteUrl(childnode.Site.Subdomain) + childnode.LinkUrl; 
  30.     } 
  31.     else 
  32.     { 
  33.         nodeUrl = Power.Url.SiteUrl(childnode.Site.Subdomain) + Power.Url.NodeUrl(childnode); 
  34.     } 
  35.  
  36.     string className = "li" + subDepth; 
  37.  
  38.     
  39.     if (childCount > 0) 
  40.     { 
  41.         className += " hasUl" + subDepth; 
  42.     } 
  43.     string on = "on" + subDepth; 
  44.  
  45.     <tr class="@className @Power.Focus(childnode.Identifier, on)">
  46.         <td class="id">@childnode.NodeId</td>
  47.         @for(var i = 0; i < childnode.Depth; i++) 
  48.         {<td></td>
  49.         <td><a class="a@(subDepth)" href="@nodeUrl" target="_blank">@childnode.NodeName</a></td>
  50.         @for(var i = 0; i < (Depth-subDepth); i++) 
  51.         {<td></td>
  52.         <td class="url"><span>@nodeUrl</span></td>
  53.     </tr>
  54.  
  55.     if (childCount > 0 && subDepth < Depth
  56.     { 
  57.         <text>
  58.             @Power.Partial("验收清单多级节点-表格式", new { NodeIdentifier = childnode.Identifier, Depth,siteIdsiteId=siteId, left=childnode.Left, right=childnode.Right, CurrentDepth = subDepth }) 
  59.         </text>
  60.     } 

第四:视图+标签压缩包

点击下载