link.html 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <style>
  2. .layui-layer-content .layui-form{padding: 20px;}
  3. .diy-link-wrap{padding: 20px;overflow: hidden;}
  4. .diy-link-wrap .link-list{border: 1px solid #e7e7e7;overflow: hidden;margin-bottom: 20px;}
  5. .diy-link-wrap .link-list>div{width: 102%;overflow-y: auto;height: 490px;}
  6. .diy-link-wrap .link-list>div.have-custom{height: 490px;}
  7. .diy-link-wrap .link-list .item{background: #EAEDF2;}
  8. .diy-link-wrap .link-list .item header{padding: 14px;}
  9. .diy-link-wrap .link-list .item header div{width: 16px;height: 16px;margin-right: 5px;display: inline-block;vertical-align: middle;margin-top: 2px;}
  10. .diy-link-wrap .link-list .item header div img{max-width: 100%;vertical-align: top;}
  11. .diy-link-wrap .link-list .item header span{vertical-align: middle;}
  12. .diy-link-wrap .link-list .item ul{overflow: hidden;background: #fff;padding: 20px 0 0;}
  13. .diy-link-wrap .link-list .item ul li{float: left;padding: 5px 10px;margin: 0 10px 20px;border: 1px solid #e7e7e7;font-size: 12px;line-height: initial;cursor: pointer;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width: 156px;}
  14. .diy-link-wrap .link-list .item ul li.selected{color:#fff;}
  15. .diy-link-wrap .link-list .item.add-link ul{display: none;}
  16. .diy-link-wrap .link-list .item.add-link ul li{margin-bottom: 0;}
  17. .diy-link-wrap .link-list .item.add-link>div{padding: 10px;cursor: pointer;line-height: 30px;height: 30px;background: #fff;text-align: center;}
  18. .diy-link-wrap .link-list .item.add-link>div img{margin-right: 5px;}
  19. .diy-link-wrap .link-save{position: absolute;bottom: 0;margin-left: -39px;left: 50%;}
  20. </style>
  21. <article class="diy-link-wrap">
  22. <aside class="link-list">
  23. <div {if !empty($link) && $link['addon_name']=='CustomLink'}class="have-custom"{/if}>
  24. {foreach name="$link_list" item="vo"}
  25. <div class="item">
  26. <header>
  27. <div>
  28. {notempty name="$vo['icon']"}
  29. <img src="__ROOT__/{$vo['icon']}"/>
  30. {else/}
  31. <img src="STATIC_EXT/diyview/img/diy_link_icon.png"/>
  32. {/notempty}
  33. </div>
  34. <span>{$vo['addon_title']}</span>
  35. </header>
  36. <ul>
  37. {foreach name="$vo['list']" item="child" key="ck"}
  38. <li title="{$child['title']}" data-value='{$child|json_encode}' {if $child['selected']}class="selected ns-bg-color ns-border-color" data-old-value='{$link|json_encode}'{/if}>{$child['title']}</li>
  39. {/foreach}
  40. </ul>
  41. </div>
  42. {/foreach}
  43. <!--<div class="item add-link">-->
  44. <!--<header>-->
  45. <!--<div>-->
  46. <!--<img src="STATIC_EXT/diyview/img/diy_link_icon.png"/>-->
  47. <!--</div>-->
  48. <!--<span>自定义链接</span>-->
  49. <!--</header>-->
  50. <!--<ul {if !empty($link) && $link['addon_name']=='CustomLink'}style="display:block;"{/if}>-->
  51. <!--<li {if !empty($link) && $link['addon_name']=='CustomLink'}title="{$link.title}" data-value='{$link|json_encode}' class="selected ns-bg-color ns-border-color" {/if}>{notempty name="$link"}{$link.title}{/notempty}</li>-->
  52. <!--</ul>-->
  53. <!---->
  54. <!--<div>-->
  55. <!--<img src="STATIC_EXT/diyview/img/diy_link_add.png">-->
  56. <!--<span class="nc-text-color">自定义</span>-->
  57. <!--</div>-->
  58. <!--</div>-->
  59. </div>
  60. </aside>
  61. <div class="link-save">
  62. <button class="layui-btn ns-bg-color">保存</button>
  63. </div>
  64. </article>
  65. <script type="text/html" id="customLink">
  66. <div class="layui-form">
  67. <div class="layui-form-item">
  68. <label class="layui-form-label"><span class="required">*</span>链接名称</label>
  69. <div class="layui-input-inline">
  70. <input type="text" name="title" class="layui-input nc-len-mid" required>
  71. </div>
  72. </div>
  73. <div class="layui-form-item">
  74. <label class="layui-form-label">WAP端页面跳转路径</label>
  75. <div class="layui-input-inline">
  76. <input type="text" name="wap_url" class="layui-input nc-len-mid">
  77. </div>
  78. </div>
  79. <div class="layui-form-item">
  80. <label class="layui-form-label">PC端页面跳转路径</label>
  81. <div class="layui-input-inline">
  82. <input type="text" name="web_url" class="layui-input nc-len-mid">
  83. </div>
  84. </div>
  85. <div class="nc-form-row">
  86. <button class="layui-btn ns-bg-color" lay-submit="" lay-filter="saveCustomLink">保存</button>
  87. </div>
  88. </div>
  89. </script>
  90. <script type="text/javascript">
  91. $(function () {
  92. window.linkData = {};
  93. // window.linkIndex = -1;
  94. var layerIndex = -1;
  95. $(".diy-link-wrap .link-list .item ul li").click(function () {
  96. $(".diy-link-wrap .link-list .item ul li").removeClass("selected ns-bg-color ns-border-color");
  97. $(this).addClass("selected ns-bg-color ns-border-color");
  98. });
  99. $(".diy-link-wrap .link-list .item ul li.selected").click();
  100. //添加自定义链接
  101. $(".diy-link-wrap .link-list .add-link>div").click(function () {
  102. layerIndex = layer.open({
  103. type : 1,
  104. title: "自定义链接",
  105. content: $("#customLink").html(),
  106. btn: [],
  107. area: ['550px'], //宽高
  108. cancel: function (index, layero) {
  109. for (var k in window.linkData){
  110. delete window.linkData[k];
  111. }
  112. $(".diy-link-wrap .link-list>div").removeClass("have-custom");
  113. }
  114. });
  115. });
  116. $(".link-save button").click(function () {
  117. var li = $(".diy-link-wrap .link-list .item ul li.selected");
  118. var value = li.attr("data-value").toString();
  119. var old_value = li.attr("data-old-value");
  120. if(old_value) value = old_value.toString();
  121. if(value) {
  122. value = JSON.parse(value.toString());
  123. window.linkData = value;
  124. }
  125. layer.close(window.linkIndex);
  126. });
  127. layui.use(['form'], function () {
  128. var form = layui.form;
  129. form.on('submit(saveCustomLink)', function(data) {
  130. var val = data.field;
  131. for (var k in val) window.linkData[k] = val[k];
  132. window.linkData.id = -999;
  133. window.linkData.addon_icon = "";
  134. window.linkData.addon_name = "CustomLink";
  135. window.linkData.addon_title = "自定义链接";
  136. window.linkData.icon = "";
  137. window.linkData.name = "NS_CUSTOM_LINK";
  138. window.linkData.type = 0;
  139. if (val.title == "") {
  140. layer.msg("请输入链接名称");
  141. $("input[name='title']").focus();
  142. return;
  143. }
  144. $(".diy-link-wrap .link-list .item ul li").removeClass("selected ns-bg-color ns-border-color");
  145. $(".diy-link-wrap .link-list .item.add-link ul").show();
  146. $(".diy-link-wrap .link-list .item.add-link ul li")
  147. .attr("title",window.linkData.title)
  148. .attr("data-value",JSON.stringify(window.linkData))
  149. .text(window.linkData.title)
  150. .addClass("selected ns-bg-color ns-border-color");
  151. $(".diy-link-wrap .link-list>div").addClass("have-custom");
  152. layer.close(layerIndex);
  153. });
  154. });
  155. });
  156. </script>