zoukankan      html  css  js  c++  java
  • 栏目节点管理

    @using FM.Core.Entities;
    @{

    }
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>栏目管理</title>
    <link href="/Content/css/default.css" rel="stylesheet" />
    <script src="/Content/js/jquery-1.7.1.min.js"></script>
    <script src="/Content/js/common.js"></script>
    <link href="/Content/ManageMain/js/themes/default/easyui.css" rel="stylesheet" />
    <script src="/Content/ManageMain/js/jquery.easyui.min.js"></script>
    <script type="text/JavaScript">
    function openChannel(id) {
    var objsArray = $("[id^=tr_" + id + "_]");
    var isok = true;
    for (var i = 0; i < objsArray.length; i++) {
    var displayStr = $("[id^=tr_" + id + "_]:eq(" + i + ")").css("display");
    if (displayStr == "" || displayStr == "none") {
    isok = true;
    }
    else {
    isok = false;
    }
    }
    if (isok) {
    $("[id^=tr_" + id + "_]").show();
    }
    else {
    $("[id^=tr_" + id + "_]").hide();
    }
    }
    var i = 0
    function Dis(cla, pid, curent, count) {
    var o = $("#hid_" + cla);
    if (o.val() == "0") {
    $("." + cla).show();
    o.val("1")
    } else {
    for (var h = parseInt(curent + 1); h <= parseInt(curent + 1 + count); h++) {
    $("#tr_" + pid + " tr:eq(" + h + ")").hide();
    $("#tr_" + pid + " input[type=hidden]:eq(" + h + ")").val("0");
    }
    o.val("0")
    }
    }
    function showNav(n) {
    var Ul = document.getElementById("tr_" + n);
    if (Ul.style.display == "none") {
    Ul.style.display = "";
    document.getElementById("img_" + n).src = "/Content/images/menu/minus.gif";
    }
    else {
    Ul.style.display = "none";
    document.getElementById("img_" + n).src = "/Content/images/menu/plus.gif";
    }

    }
    $(function () {
    $("table[name=tab] tr").hover(function () {
    $(this).addClass("hover");
    }, function () {
    $(this).removeClass("hover");
    })
    });
    </script>
    <style type="text/css">
    .hover
    {
    background-color: #E1EEFE;
    }
    table
    {
    border: 0;
    }
    input, select
    {
    padding: 2px;
    }
    input.btn
    {
    padding: 2px 15px;
    cursor: pointer;
    }
    #tabList
    {
    100%;
    background-color: #AFC9EA;
    border: 1px solid #AFC9EA;
    }
    table, table td, table th
    {
    border-collapse: collapse;
    }
    #tabList tr
    {
    background-color: White;
    }
    #tabList td
    {
    30px;
    font-size: 12px;
    height: 25px;
    font-weight: bold;
    vertical-align: middle;
    }
    .title_tab td
    {
    border: 1px solid #99bbe8;
    padding: 0 6px;
    }
    </style>
    </head>
    <body>
    <form id="form1">
    <table align="center" cellspacing="0" cellpadding="4" width="100%" border="0" style="margin: 10px;">
    <tr>
    <td style="text-align: left; padding: 0px 5px 0px 5px;">
    <fieldset style="border: solid 1px #AFC9EA; margin-right: 20px; padding: 10px;">
    <legend>温馨提示</legend>
    <table cellspacing="0" cellpadding="2" width="100%" border="0">
    <tr>
    <td style="padding-left: 15px;">
    <img src="/Content/images/menu/plus.gif" />表示该栏目下有子栏目,点击展开或收起子栏目!
    </td>
    </tr>
    <tr>
    <td style="height: 5px;">
    </td>
    </tr>
    </table>
    </fieldset>
    </td>
    </tr>
    <tr>
    <td height="5">
    </td>
    </tr>
    <tr>
    <td>
    <fieldset style="border: solid 1px #AFC9EA; margin-right: 20px; padding: 10px;">
    <table class="tabborder" cellspacing="1" cellpadding="4" width="100%" align="center"
    border="0">
    <tr bgcolor="#E1EEFE">
    <td width="80" align="center">
    <strong>选择</strong>
    </td>
    <td width="100" align="center">
    <strong>编号</strong>
    </td>
    <td align="center">
    <strong>栏目名称</strong>
    </td>
    <td width="100" align="center">
    <a href="../Navigation/NavigationEdit"><strong>操 作</strong></a>
    </td>
    </tr>
    </table>
    @{
    foreach (var item in ViewBag.lt as List<NavigationView>)
    {
    int zz = 0;
    <table name="tab" class="tabborder" cellspacing="1" cellpadding="4" width="100%"
    align="center" border="0">
    <tr>
    <td width="80" align="center">
    <input type="checkbox" id="ckb-@item.NavigationId" onclick="CheckAll(this)" style="border-0px;" value='@item.NavigationId'>
    </td>
    <td width="100" align="left">
    &nbsp;&nbsp;@item.NavigationId
    </td>
    <td>
    &nbsp;&nbsp;
    @{if (item.NavigationList.Count > 0)
    {
    <img id="img_@(item.NavigationId)" src="/Content/images/menu/plus.gif" style="cursor:pointer;" border="0" align="absmiddle" onclick="showNav('@item.NavigationId')" />
    }
    else
    {
    <img id="img_@(item.NavigationId)" src="/Content/images/menu/minus.gif" style="cursor:pointer;" border="0" align="absmiddle" />
    }
    }
    <a style="font-weight:bold;" href="/Navigation/NavigationEdit?id=@item.NavigationId">@item.NavigationName</a>
    </td>
    <td width="100" align="center">
    <a href="/Navigation/NavigationEdit?pid=@item.NavigationId">@(item.IsAddChild == 0 ? "" : "添加子栏目")</a>
    </td>
    </tr>
    </table>
    <table name="tab" id="tr_@(item.NavigationId)" class="title_tab" width="100%" align="center" border="0" style="display:none;">
    @foreach (var it in item.NavigationList)
    {
    zz++;
    <tr class="@it.PId" onclick="Dis(@it.NavigationId,@item.NavigationId,@(zz - 1),@it.Count-1)">
    <td width="80" align="center">
    <input id="hid_@(it.NavigationId)" type="hidden" value="1" />
    <input type="checkbox" onclick="checkCh(this)" name="chkchi-@item.NavigationId" id="ckbchi#@it.NavigationId" style="border-0px;" value='@it.NavigationId'/>
    </td>
    <td width="100" align="left">
    </td>
    <td>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="/Navigation/NavigationEdit?id=@it.NavigationId">@it.NavigationName</a>
    </td>
    <td width="100" align="center">
    <a href="/Navigation/NavigationEdit?pid=@it.NavigationId">@(it.IsAddChild == 0 ? "" : "添加子栏目")</a>
    </td>
    </tr>

    }
    </table>
    }
    }
    <table class="tabborder" cellspacing="1" cellpadding="4" width="100%" align="center"
    border="0" style="margin-top: 5px;">
    <tr bgcolor="#ffffff">
    <td height="30" style="padding-left: 10px;">
    <input id="hdIDList" type="hidden" name="hdIDList">
    @*<input type="button" value="添加根栏目" onclick="AddPart()" />&nbsp;&nbsp;*@
    <input type="button" value="删 除" onclick="DeletePart()" />
    </td>
    </tr>
    </table>
    </fieldset>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <script type="text/javascript">
    function AddPart() {
    location.href = "../Navigation/NavigationEdit";
    }
    function DeletePart() {
    if (!confirm("确定删除吗?")) { return false; }
    var ids = "";
    var chs = document.getElementsByTagName("input");
    for (var i = 0; i < chs.length; i++) {
    if (chs[i].checked) {
    ids += chs[i].value + ",";
    }
    }
    ids = ids.substring(0, ids.length - 1)
    if (ids == "") {
    alert("请先选中要删除的栏目!"); return false;
    }
    location.href = '../Navigation/DeletePart?ids=' + ids;
    }
    function CheckAll(obj) {
    $("input[name=chkchi-" + obj.value + "]").attr("checked", obj.checked);
    }
    function checkCh(obj) {
    var pid = obj.name.replace("chkchi-", "");
    var reuslt = false;
    var checksChi = $("input[name=" + obj.name + "]");
    for (var i = 0; i < checksChi.length; i++) {
    if (!checksChi[i].checked) {
    reuslt = false;
    }
    }
    if (!reuslt) {
    $("input[id=ckb-" + pid + "]").attr("checked", false);
    }

    }
    </script>

    using FM.Core.Entities;
    using FM.Core.Services;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;

    namespace FM.Management.Controllers
    {
    public class NavigationController : Controller
    {
    //
    // GET: /Navigation/

    /// <summary>
    /// 成功删除节点个数
    /// </summary>
    int P_count = 0;
    private readonly INavigationService _inavigationService;
    //
    // GET: /Navigation/
    public NavigationController(INavigationService inavigationService)
    {
    _inavigationService = inavigationService;
    }

    public ActionResult Index()
    {
    return View();
    }

    /// <summary>
    /// 删除节点
    /// </summary>
    /// <param name="ids"></param>
    public void DeletePart(string ids)
    {
    if (!string.IsNullOrWhiteSpace(ids))
    {
    string unDeles = GetWebNids("UnDelete");

    string[] idm = ids.Split(new char[] { ',' });
    foreach (var id in idm)
    {
    int intId = ToInt(id);
    if (unDeles.IndexOf(intId.ToString()) == -1)
    {
    //获得当前节点的实体数据
    Navigation naData = _inavigationService.GetNaviagtionById(intId);
    if (naData != null)
    {
    //删除当前节点及其子节点
    DeleteChild(intId);
    //判断是否有父节点,修改父节点的子节点数量
    if (naData.PId != 0)
    SetPCount(naData.PId, -P_count);
    //如果当前节点删除失败,但删除子节点成功,则修改当前节点数
    SetPCount(naData.NavigationId, -P_count);
    }
    }
    else
    {
    Response.Write("<script>alert('系统内置栏目不允许删除!');location.href='../Navigation/NavigationList'</script>");
    return;
    }
    }
    }
    if (P_count > 0)
    Response.Write("<script>alert('操作成功!');location.href='../Navigation/NavigationList'</script>");
    else
    Response.Write("<script>alert('操作失败!该栏目下面存在未删除资源!');location.href='../Navigation/NavigationList'</script>");
    }

    /// <summary>
    /// 删除节点及其子节点
    /// </summary>
    /// <param name="pid"></param>
    public void DeleteChild(int id)
    {
    //获得子节点数据
    List<Navigation> list = _inavigationService.GetNaviagtionListByPid(id);
    foreach (var item in list)
    {
    string unDeles = GetWebNids("UnDelete");
    if (unDeles.IndexOf(item.NavigationId.ToString()) == -1)
    //递归
    DeleteChild(item.NavigationId);
    else
    Response.Write("<script>alert('系统内置栏目不允许删除!');location.href='../Navigation/NavigationList'</script>");
    }
    if (_inavigationService.DeleteNavigationById(id))
    P_count++;
    }

    /// <summary>
    /// 修改父节点的节点数量
    /// </summary>
    /// <param name="id"></param>
    public void SetPCount(int id, int count)
    {
    Navigation naData = _inavigationService.GetNaviagtionById(id);
    if (naData != null)
    {
    if (naData.PId != 0)
    SetPCount(naData.PId, count);
    _inavigationService.UpdateCount(naData.NavigationId, count);
    }
    }
    /// <summary>
    /// 修改父节点的深度
    /// </summary>
    /// <param name="id"></param>
    public void SetPDepth(int id, int depth)
    {
    Navigation naData = _inavigationService.GetNaviagtionById(id);
    if (naData != null)
    {
    if (naData.PId != 0)
    SetPDepth(naData.PId, naData.Depth);
    _inavigationService.UpdateDepth(naData.NavigationId, depth - 1);
    }
    }

    /// <summary>
    /// 修改子节点的深度
    /// </summary>
    /// <param name="id"></param>
    /// <param name="depth">当前节点的深度</param>
    public void UpdataChildDepth(int id, int depth)
    {
    List<Navigation> list = _inavigationService.GetNaviagtionListByPid(id);
    foreach (var item in list)
    {
    UpdataChildDepth(item.NavigationId, depth + 1);
    }
    _inavigationService.UpdateDepth(id, depth);
    }

    #region 通用方法

    /// <summary>
    /// 获得配置文件的对应节点的值
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    public int GetWebNid(string key)
    {
    string nid = FM.Core.Utility.ConfigHelper.Instance.GetAppSetting(key);
    return Convert.ToInt32(nid);
    }
    /// <summary>
    /// 获得配置文件的对应节点的值
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    public string GetWebNids(string key)
    {
    return FM.Core.Utility.ConfigHelper.Instance.GetAppSetting(key);
    }
    public int RequestForm(string param, int defVaule)
    {
    if (Request.Form[param] != null)
    return ToInt(Request.Form[param].ToString());
    return defVaule;
    }

    public string RequestForm(string param, string defVaule)
    {
    if (Request.Form[param] != null)
    return Request.Form[param].ToString();
    return defVaule;
    }

    public static int ToInt(object obj)
    {
    int i = 0;
    try { i = Convert.ToInt32(obj); }
    catch { ;}
    return i;
    }
    #endregion

    /// <summary>
    /// 提交
    /// </summary>
    public void NavigationSubmit()
    {
    string rId = RequestForm("id", "");
    string rPid = RequestForm("Pid", "");
    bool result = false;
    var na = new Navigation();
    // na.URL = RequestForm("iptURL", "");
    na.PartModel = RequestForm("PartModel", 1);
    //修改
    if (!string.IsNullOrWhiteSpace(rId))
    {
    na.NavigationId = Convert.ToInt32(rId);
    SetUrl(na);
    na = _inavigationService.GetNaviagtionById(na.NavigationId);
    SetData(na);
    na.URL = na.URL;
    na.PartModel = na.PartModel;
    Navigation pNa = _inavigationService.GetNaviagtionById(ToInt(rPid));
    //修改原父节点的子节点数
    SetPCount(na.PId, -na.Count - 1);
    //修改新父节点的子节点数
    if (pNa != null)
    {
    SetPCount(ToInt(rPid), na.Count + 1);
    na.PId = ToInt(rPid);
    na.Depth = pNa.Depth + 1;
    //if (!string.IsNullOrWhiteSpace(pNa.URL))
    //{
    // if (pNa.URL.IndexOf("?") > -1)
    // {
    // pNa.URL = pNa.URL.Substring(0, pNa.URL.IndexOf("?"));
    // na.URL = pNa.URL + "?nId=" + na.NavigationId;
    // }
    // else
    // {
    // na.URL = pNa.URL + "?nId=" + na.NavigationId;
    // }
    //}
    }
    else
    {
    na.PId = 0;
    na.Depth = 0;
    }
    result = _inavigationService.UpdateNavigation(na);
    UpdataChildDepth(na.NavigationId, na.Depth);
    }
    //新增
    else
    {
    na.Depth = 0;
    na.Count = 0;
    SetData(na);
    //新增子栏目
    if (!string.IsNullOrWhiteSpace(rPid))
    {
    na.PId = Convert.ToInt32(rPid);
    var pNa = new Navigation();
    //获得父节点的数据
    pNa = _inavigationService.GetNaviagtionById(na.PId);
    if (pNa != null)
    {
    SetPCount(pNa.NavigationId, 1);
    na.Depth = pNa.Depth + 1;

    // if (!string.IsNullOrWhiteSpace(pNa.URL))
    // {
    // if (pNa.URL.IndexOf("?") > -1)
    // {
    // pNa.URL = pNa.URL.Substring(0, pNa.URL.IndexOf("?"));
    // na.URL = pNa.URL + "?nId=" + maxId;
    // }
    // else
    // {
    // na.URL = pNa.URL + "?nId=" + maxId;
    // }
    // }
    }
    }
    int maxId = _inavigationService.GetMaxNavigationId();
    na.NavigationId = maxId + 1;
    SetUrl(na);
    result = _inavigationService.InsertNavigation(na);
    }
    if (result)
    Response.Write("<script>alert('操作成功!');location.href='../Navigation/NavigationList'</script>");
    else
    Response.Write("<script>alert('操作失败!');location.href='../Navigation/NavigationList'</script>");
    }

    public void SetData(Navigation na)
    {
    na.NavigationName = RequestForm("iptName", "");
    na.Icon = RequestForm("iptIcon", "");
    na.OrderId = RequestForm("iptOrderId", 0);
    na.Visible = RequestForm("iptVisble", 0);
    na.IsSing = RequestForm("iptchkSing", 1);

    na.EnglishName = RequestForm("iptEnglishName", "");
    }

    public void SetUrl(Navigation na)
    {
    //资讯模型
    if (na.PartModel == 1)
    {
    na.URL = "/News/NewsList?nId=" + na.NavigationId;
    }
    //视频模型
    else if (na.PartModel == 2)
    {
    na.URL = "/News/VideoList?nId=" + na.NavigationId;
    }
    //图片模型
    else if (na.PartModel == 3)
    {
    na.URL = "/News/ImgList?nId=" + na.NavigationId;
    }
    //资讯模型2
    else if (na.PartModel == 4)
    {
    na.URL = "/News/NewsEditTwo?nId=" + na.NavigationId;
    }
    else
    {
    na.URL = "/News/NewsList?nId=" + na.NavigationId;
    }
    }


    /// <summary>
    /// 单页面
    /// </summary>
    /// <returns></returns>
    public ActionResult NavigationEdit()
    {
    List<Navigation> listN = new List<Navigation>();
    ViewBag.Pid = Request.QueryString["pid"];
    List<Navigation> list = _inavigationService.GetNaviagtionList();
    var navigation = new Navigation();
    //修改
    if (Request.QueryString["id"] != null)
    {
    int id = Convert.ToInt32(Request.QueryString["id"]);
    ViewBag.id = id;
    navigation = _inavigationService.GetNaviagtionById(id);
    ViewBag.Pid = navigation.PId;
    RemoveChild(id);
    foreach (var it in listInt)
    {
    list = list.Where(n => n.NavigationId != it).ToList();
    }
    }
    ViewBag.list = list.OrderBy(a => a.Depth).ToList();
    ViewBag.Navigation = navigation;
    ViewBag.ActionUrl = "../Navigation/NavigationSubmit";
    return View();
    }
    List<int> listInt = new List<int>();
    public void RemoveChild(int pId)
    {
    var list = _inavigationService.GetNaviagtionListByPid(pId);
    foreach (var item in list)
    {
    listInt.Add(item.NavigationId);
    RemoveChild(item.NavigationId);
    }
    }

    int nType;
    List<Navigation> listAll = new List<Navigation>();
    public ActionResult NavigationList()
    {
    List<NavigationView> listView = new List<NavigationView>();
    List<Navigation> list = _inavigationService.GetNaviagtionListByPid(0);
    foreach (var item in list)
    {
    listAll = new List<Navigation>();
    var navigationview = new NavigationView();
    navigationview.NavigationId = item.NavigationId;
    navigationview.NavigationCode = item.NavigationCode;
    navigationview.NavigationName = item.NavigationName;
    navigationview.PId = item.PId;
    navigationview.Depth = item.Depth;
    navigationview.Count = item.Count;
    navigationview.Visible = item.Visible;
    navigationview.URL = item.URL;
    navigationview.PId = item.PId;
    navigationview.OrderId = item.OrderId;
    navigationview.IsAddChild = item.NavigationId == GetWebNid("F_Nid") ? 1 : 0;
    nType = navigationview.IsAddChild;
    if (item.NavigationId != 0)
    navigationview.NavigationList = GetNavigationList(item.NavigationId);
    listView.Add(navigationview);
    }
    ViewBag.lt = listView;
    return View();
    }

    public List<Navigation> GetNavigationList(int id)
    {
    List<Navigation> lt = _inavigationService.GetNaviagtionListByPid(id);
    foreach (var item in lt)
    {
    var na = new Navigation();
    na = item;
    na.NavigationName = GetNavigationName(item.NavigationName, item.Depth);
    na.IsAddChild = nType;
    na.PId = item.PId;
    if (na.Count == 0)
    {
    na.IsAddChild = 0;
    }
    listAll.Add(na);
    //获得子节点
    GetNavigationList(item.NavigationId);
    }
    return listAll;
    }

    public string GetNavigationName(string name, int Deth)
    {
    string fix = "|---";
    string str = string.Empty;
    for (int i = 0; i < Deth; i++)
    {
    str += fix;
    }
    return str + name;
    }

    public string GetPartJson()
    {
    List<Navigation> list = _inavigationService.GetNaviagtionListByPid(0);
    StringBuilder strb = new StringBuilder();
    string MenuJosn = "{\"menus\": [" + GetTask(0, strb) + "]}";
    return MenuJosn;
    }
    public string GetTask(int id, StringBuilder strb)
    {
    List<Navigation> list = _inavigationService.GetNaviagtionListByPid(id);
    int i = 0;
    foreach (var item in list)
    {
    strb.Append("{");
    strb.Append("\"menuid\":\"" + item.NavigationId + "\"");
    strb.Append(",\"menuname\":\"" + item.NavigationName + "\"");
    strb.Append(",\"url\":\"" + item.URL + "\"");
    strb.Append(",\"icon\":\"../" + item.Icon + "\"");
    strb.Append(",\"menus\":[");
    if (item.NavigationId != 0)
    GetTask(item.NavigationId, strb);
    strb.Append("]");
    if (i == list.Count - 1)
    strb.Append("}");
    else
    strb.Append("},");
    i++;
    }
    return strb.ToString();
    }

    }
    }

  • 相关阅读:
    C# 大小写转换(非金额)
    DataService系列教程 (一)
    C# 大小写转换(金额)
    sql注入杂谈(一)union select
    sql注入杂谈(二)报错注入
    python正则提取txt文本
    sql注入杂谈(三)盲注
    对指定网站渗透的一些总结
    MSF的利用
    SQLMAP怎么拿shell
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/2941151.html
Copyright © 2011-2022 走看看