addLink.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="../../static/css/font-awesome.min.css">
  10. <link rel="stylesheet" href="../../static/css/weadmin.css">
  11. <link rel="stylesheet" href="../../static/css/style.css">
  12. <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
  13. <!--[if lt IE 9]>
  14. <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  15. <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
  16. <![endif]-->
  17. <style>
  18. html{
  19. overflow-y: auto;
  20. }
  21. .layui-form-label{
  22. width: 100px;
  23. }
  24. .layui-input-block{
  25. margin-left: 138px;
  26. }
  27. .w-e-toolbar{
  28. padding: 0 !important;
  29. }
  30. .w-e-toolbar .w-e-menu{
  31. padding: 5px 4px !important;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="weadmin-body">
  37. <form class="layui-form">
  38. <div class="layui-form-item">
  39. <label class="layui-form-label">
  40. 链接标题:
  41. </label>
  42. <div class="layui-input-block steta_grouds">
  43. <input type="text" placeholder="请输入链接标题" class="layui-input textName" lay-verify="required">
  44. </div>
  45. </div>
  46. <div class="layui-form-item">
  47. <label class="layui-form-label">链接备注:</label>
  48. <div class="layui-input-block">
  49. <textarea class="layui-textarea" placeholder="提醒内容" name="content" id="LAY_demo_editor" style="resize: none"></textarea>
  50. </div>
  51. </div>
  52. <div class="layui-form-item">
  53. <label class="layui-form-label">链接</label>
  54. <div class="layui-input-block">
  55. <a href="javascript:;" class="layui-btn layui-btn-normal addLink">添加其他链接</a>
  56. </div>
  57. <div class="layui-input-block" id="link_items">
  58. </div>
  59. </div>
  60. <div class="layui-form-item" style="text-align: center;padding-top: 50px">
  61. <button class="layui-btn" lay-submit lay-filter="linkBtn">提交</button>
  62. </div>
  63. </form>
  64. <span class="text" style="display: none"></span>
  65. </div>
  66. <script src="../../lib/layui/layui.js" charset="utf-8"></script>
  67. <script src="../../static/js/config.js"></script>
  68. <script>
  69. layui.use(['form','layer','jquery','laydate'], function(){
  70. var form = layui.form,
  71. $ = layui.jquery,
  72. laydate= layui.laydate,
  73. layer = layui.layer;
  74. form.render();
  75. if (sessionStorage.getItem('QRcodeIDs') !=""){
  76. QRcodeLink(sessionStorage.getItem('QRcodeIDs'))
  77. }
  78. var num = 0,bums = 0,delateLinks = [];
  79. $("body").on('click','.addLink',function () {
  80. var mnum = bums++ +1;
  81. var str =`
  82. <div class="link_item" index-data="${mnum}">
  83. <input type="text" placeholder="链接名称" class="linkName" lay-verify="required" oninput="parent.linkFun(this.value,${mnum})">
  84. <input type="text" placeholder="链接地址" class="linkUrl" oninput="parent.titleFun(this.value,${mnum})">
  85. <span class="operation">
  86. <i class="fa fa-long-arrow-up moveUp"></i>
  87. <i class="fa fa-long-arrow-down moveDown"></i>
  88. <i class="fa fa-trash-o deleteLink"></i>
  89. </span>
  90. </div>`;
  91. $("#link_items").append(str);
  92. parent.onFocus();
  93. parent.addlink(mnum)
  94. });
  95. $('body').on('click','.deleteLink',function () {
  96. var linkItemobj = {id:'',linkName:"",linkUrl:'',parentId:'',title:'',remark:'',zIndex:'',deleteFlag:""};
  97. $(this).parent().parent().remove();
  98. parent.onFocus();
  99. parent.deletaLink($(this).parent().parent().attr('index-data'));
  100. if ($(this).parent().parent().attr('link-id') != "") {
  101. linkItemobj = {};
  102. linkItemobj.title = $('.textName').val();
  103. linkItemobj.parentId = sessionStorage.getItem("QRcodeIDs");
  104. linkItemobj.linkName = $(this).parent().parent().find('.linkName').val();
  105. linkItemobj.linkUrl = $(this).parent().parent().find('.linkUrl').val();
  106. linkItemobj.remark = $('#LAY_demo_editor').val();
  107. linkItemobj.id = $(this).parent().parent().attr('link-id');
  108. linkItemobj.deleteFlag = true;
  109. linkItemobj.zIndex = num++ +1;
  110. delateLinks.push(linkItemobj)
  111. console.log(delateLinks,'delateImageatlas')
  112. }
  113. })
  114. // 上移
  115. $("body") .on("click",".moveUp",function () {
  116. var index = $(this).parent().parent();
  117. if(index.index() != 0){
  118. index.prev().before(index);
  119. }else {
  120. layer.msg('已经移至最高点', {icon: 8});
  121. }
  122. });
  123. // 下移
  124. $("body") .on("click",".moveDown",function () {
  125. var index = $(this).parent().parent();
  126. if(index.index() != $(".link_item").length-1){
  127. index.next().after(index);
  128. }else {
  129. layer.msg('已经移至最低点', {icon: 8});
  130. }
  131. });
  132. form.verify({
  133. linkverify: function(value, item){
  134. if(!new RegExp("(https|http)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]").test(value)){
  135. return '请输入合法的链接地址';
  136. }
  137. }
  138. });
  139. form.on('submit(linkBtn)', function(){
  140. if (sessionStorage.getItem('QRcodeIDs') == "false") {
  141. var linkItemArray = [] , linkItem = $('.link_item');
  142. var linkItemobj = {linkName:"",linkUrl:'',pageId:'',title:'',remark:'',zIndex:''};
  143. var num = 0;
  144. linkItem.each(function () {
  145. linkItemobj = {};
  146. linkItemobj.title = $('.textName').val();
  147. linkItemobj.pageId = sessionStorage.getItem("QRcodeDetaileID");
  148. linkItemobj.linkName = $(this).find('.linkName').val();
  149. linkItemobj.linkUrl = $(this).find('.linkUrl').val();
  150. linkItemobj.remark = $('#LAY_demo_editor').val();
  151. linkItemobj.zIndex = num++ +1;
  152. linkItemArray.push(linkItemobj)
  153. });
  154. $.ajax({
  155. url:urlF+'api/page/v1/addLinks',
  156. type:'post',
  157. data:JSON.stringify(linkItemArray),
  158. contentType:'application/json;charset=utf-8',
  159. dataType:'json',
  160. success:function (res) {
  161. if (res.code === '200'){
  162. parent.pageRelationIdFun(res.data);
  163. parent.QRcodeIndexas();
  164. layer.msg('链接新增成功');
  165. }else {
  166. layer.msg('链接新增失败,请检查信息');
  167. }
  168. },
  169. error:function () {
  170. layer.msg('网络错误,请检查网络');
  171. }
  172. })
  173. }else {
  174. var linkItemArray = [] , linkItem = $('.link_item');
  175. var linkItemobj = {id:'',linkName:"",linkUrl:'',parentId:'',title:'',remark:'',zIndex:'',deleteFlag:""};
  176. var num = 0;
  177. if (delateLinks != []) {
  178. for (var j = 0; j < delateLinks.length; j++) {
  179. linkItemArray.push(delateLinks[j])
  180. }
  181. }
  182. linkItem.each(function () {
  183. linkItemobj = {};
  184. linkItemobj.title = $('.textName').val();
  185. linkItemobj.parentId = sessionStorage.getItem("QRcodeIDs");
  186. linkItemobj.linkName = $(this).find('.linkName').val();
  187. linkItemobj.linkUrl = $(this).find('.linkUrl').val();
  188. linkItemobj.remark = $('#LAY_demo_editor').val();
  189. linkItemobj.id = $(this).attr('link-id');
  190. linkItemobj.deleteFlag = false;
  191. linkItemobj.zIndex = num++ +1;
  192. linkItemArray.push(linkItemobj)
  193. });
  194. $.ajax({
  195. url:urlF+'api/page/v1/updateLinks',
  196. type:'post',
  197. data:JSON.stringify(linkItemArray),
  198. contentType:'application/json;charset=utf-8',
  199. dataType:'json',
  200. success:function (res) {
  201. if (res.code === '200'){
  202. parent.onFocus();
  203. parent.pageRelationIdFun(res.data);
  204. layer.msg('链接修改成功');
  205. }else {
  206. layer.msg('链接修改失败,请检查信息');
  207. }
  208. },
  209. error:function () {
  210. layer.msg('网络错误,请检查网络');
  211. }
  212. });
  213. }
  214. return false;
  215. });
  216. // QRcodeLink
  217. // 数据回显
  218. function QRcodeLink(id) {
  219. $.ajax({
  220. url: urlF+'api/page/v1/getPageEdit/'+sessionStorage.getItem('QRcodeDetaileID'),
  221. type: 'get',
  222. dataType: 'json',
  223. success: function (res) {
  224. for (var i = 0; i < res.data.pageItemList.length; i++) {
  225. if (res.data.pageItemList[i].pageRelation.businessType == "LINKS" && res.data.pageItemList[i].pageRelation.businessId == id) {
  226. for (var j = 0; j < res.data.pageItemList[i].linksList.length; j++) {
  227. $('.textName').val(res.data.pageItemList[i].linksList[j].title);
  228. $('#LAY_demo_editor').val(res.data.pageItemList[i].linksList[j].remark);
  229. bums = j;
  230. var str =`
  231. <div class="link_item" index-data="${bums}" link-id="${res.data.pageItemList[i].linksList[j].id}">
  232. <input type="text" placeholder="链接名称" value="${res.data.pageItemList[i].linksList[j].linkName}" class="linkName" onblur="linkName(this.value,this.previousSibling.value)" oninput="parent.linkFun(this.value,${bums})" lay-verify="required">
  233. <input type="text" placeholder="链接地址" value="${res.data.pageItemList[i].linksList[j].linkUrl}" class="linkUrl" onblur="linkName(this.nextSibling.value,this.value),checkUrl(this)" oninput="parent.titleFun(this.value,${bums})">
  234. <span class="operation">
  235. <i class="fa fa-long-arrow-up moveUp"></i>
  236. <i class="fa fa-long-arrow-down moveDown"></i>
  237. <i class="fa fa-trash-o deleteLink"></i>
  238. </span>
  239. </div>`;
  240. $("#link_items").append(str);
  241. }
  242. }
  243. }
  244. },
  245. error:function () {
  246. layer.msg('请检查网络', {icon: 2});
  247. }
  248. });
  249. }
  250. });
  251. </script>
  252. </body>
  253. </html>