layer.ext.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. /*! layer弹层组件拓展类 */
  2. ;!function () {
  3. layer.use("skin/layer.ext.css", function () {
  4. layer.layui_layer_extendlayerextjs = !0
  5. });
  6. var a = layer.cache || {}, b = function (b) {
  7. return a.skin ? " " + a.skin + " " + a.skin + "-" + b : ""
  8. };
  9. layer.prompt = function (a, c) {
  10. a = a || {}, "function" == typeof a && (c = a);
  11. var d,
  12. e = 2 == a.formType ? '<textarea class="layui-layer-input">' + (a.value || "") + "</textarea>" : function () {
  13. return '<input type="' + (1 == a.formType ? "password" : "text") + '" class="layui-layer-input" value="' + (a.value || "") + '">'
  14. }();
  15. return layer.open($.extend({
  16. type:1,
  17. btn: ["&#x786E;&#x5B9A;", "&#x53D6;&#x6D88;"],
  18. content: "<div style='margin: 6px 20px'>"+ e +"</div>",
  19. skin: "layui-layer-prompt" + b("prompt"),
  20. success: function (a) {
  21. d = a.find(".layui-layer-input"), d.focus()
  22. },
  23. yes: function (b) {
  24. var e = d.val();
  25. "" === e ? d.focus() : 0 > (a.maxlength || 500) ? layer.tips("&#x6700;&#x591A;&#x8F93;&#x5165;" + (a.maxlength || 500) + "&#x4E2A;&#x5B57;&#x6570;", d, {tips: 1}) : c && c(e, b, d)
  26. }
  27. }, a))
  28. },
  29. // 打开 配置 动态参数
  30. layer.opendynamicparameter = function (a, c) {
  31. // a = a || {}, "function" == typeof a && (c = a);
  32. var str_json = a.value
  33. const value_map = a.value_map;
  34. var parameter_html = ""
  35. console.log("json:",str_json)
  36. for(var key in str_json){
  37. console.log(key+':'+str_json[key]);
  38. key_ = key
  39. if(key.charAt(0) == '_'){
  40. continue;
  41. }
  42. key_list = key_.split("_");
  43. switch (key_list[1]) {
  44. case "sn":
  45. parameter_html += "<div>选择主设备: 全局变量<span style='color:#ff0300' ondblclick='$(\"#S_"+key+"\").val(\"[-{sn}-]\")'>[-{sn}-]</span> </div> " +
  46. "<input id='S_"+key+"' ondblclick=\"f_attribute_Device(this,\'\')\" type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  47. break;
  48. case "snlist":
  49. parameter_html += "<div>选择主设备(多选,|分割): </div> " +
  50. "<input id='S_"+key+"' ondblclick=\"f_attribute_Device(this,\'|\')\" type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  51. break;
  52. case "tab":
  53. parameter_html += "<div>选择数据源:</div> <input id='S_"+key+"' ondblclick='f_attribute_DeviceCh(this,\""+value_map.sn_sn+"\")' type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  54. break;
  55. case "text":
  56. tab_v = "内容"
  57. if(key_list.length >= 3){
  58. tab_v = key_list[2]
  59. }
  60. parameter_html += "<div>"+tab_v+":</div><textarea id='S_"+key+"' class=\"layui-layer-input\" style='width: 220px;height: 108px;'>"+str_json[key]+"</textarea>"
  61. break;
  62. case "str":
  63. tab_v = "文本"
  64. if(key_list.length >= 3){
  65. tab_v = key_list[2]
  66. }
  67. parameter_html += "<div>"+tab_v+":</div> <input id='S_"+key+"' type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  68. break;
  69. case "font":
  70. tab_v = "字体"
  71. if(key_list.length >= 3){
  72. tab_v = key_list[2]
  73. }
  74. parameter_html += "<div>"+tab_v+":</div> <input id='S_"+key+"' type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  75. break;
  76. case "int":
  77. tab_v = "整数"
  78. if(key_list.length >= 3){
  79. tab_v = key_list[2]
  80. }
  81. parameter_html += "<div>"+tab_v+":</div> <input id='S_"+key+"' type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  82. break;
  83. case "folat":
  84. tab_v = "小数"
  85. if(key_list.length >= 3){
  86. tab_v = key_list[2]
  87. }
  88. parameter_html += "<div>"+tab_v+":</div> <input id='S_"+key+"' type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  89. break;
  90. case "color":
  91. parameter_html += "<div>颜色:</div> <input id='S_"+key+"' ondblclick='f_attribute_color(this)' type=\"'text'\" style='background:"+str_json[key]+"' class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  92. break;
  93. case "img":
  94. parameter_html += "<div>图片:</div> <input id='S_"+key+"' ondblclick='f_attribute_libimg(this)' type=\"'text'\" style='background:"+str_json[key]+"' class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  95. break;
  96. case "imglist":
  97. parameter_html += "<div>图片组[数据]:</div> <input id='S_"+key+"' ondblclick='f_attribute_imggroup(this)' type=\"'text'\" style='background:"+str_json[key]+"' class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  98. break;
  99. case "textlist":
  100. parameter_html += "<div>文字组[数据]:</div> <input id='S_"+key+"' ondblclick='f_attribute_Textgroup(this)' type=\"'text'\" style='background:"+str_json[key]+"' class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  101. break;
  102. case "pane":
  103. parameter_html += "<div>面板管理: </div> " +
  104. "<input id='S_"+key+"' ondblclick=\"f_PaneView_Post(this)\" type=\"'text'\" class=\"layui-layer-input\" value=\""+str_json[key]+"\">"
  105. break;
  106. }
  107. }
  108. // console.log(paramffeter_html)
  109. //
  110. // var d,
  111. // e = 2 == a.formType ? '<textarea class="layui-layer-input">' + (a.value || "") + "</textarea>" : function () {
  112. // return '<input type="' + (1 == a.formType ? "password" : "text") + '" class="layui-layer-input" value="' + (a.value || "") + '">'
  113. // }();
  114. return layer.open($.extend({
  115. type:1,
  116. btn: ["&#x786E;&#x5B9A;", "&#x53D6;&#x6D88;"],
  117. content: "<div style='margin: 6px 20px'>"+parameter_html + "</div>",
  118. skin: "layui-layer-prompt" + b("prompt"),
  119. success: function (a) {
  120. d = a.find(".layui-layer-input"), d.focus()
  121. },
  122. yes: function (b) {
  123. for(var key in str_json){
  124. console.log(key+':'+str_json[key]);
  125. key_ = key
  126. if(key.charAt(0) == '_'){
  127. // 隐藏
  128. }else{
  129. // 表单
  130. str_json[key] = $("#S_"+key).val()
  131. }
  132. }
  133. c(str_json, b, d)
  134. }
  135. }, a))
  136. }, layer.tab = function (a) {
  137. a = a || {};
  138. var c = a.tab || {};
  139. return layer.open($.extend({
  140. type: 1, skin: "layui-layer-tab" + b("tab"), title: function () {
  141. var a = c.length, b = 1, d = "";
  142. if (a > 0) for (d = '<span class="layui-layer-tabnow">' + c[0].title + "</span>"; a > b; b++) d += "<span>" + c[b].title + "</span>";
  143. return d
  144. }(), content: '<ul class="layui-layer-tabmain">' + function () {
  145. var a = c.length, b = 1, d = "";
  146. if (a > 0) for (d = '<li class="layui-layer-tabli xubox_tab_layer">' + (c[0].content || "no content") + "</li>"; a > b; b++) d += '<li class="layui-layer-tabli">' + (c[b].content || "no content") + "</li>";
  147. return d
  148. }() + "</ul>", success: function (b) {
  149. var c = b.find(".layui-layer-title").children(), d = b.find(".layui-layer-tabmain").children();
  150. c.on("mousedown", function (b) {
  151. b.stopPropagation ? b.stopPropagation() : b.cancelBubble = !0;
  152. var c = $(this), e = c.index();
  153. c.addClass("layui-layer-tabnow").siblings().removeClass("layui-layer-tabnow"), d.eq(e).show().siblings().hide(), "function" == typeof a.change && a.change(e)
  154. })
  155. }
  156. }, a))
  157. }, layer.photos = function (a, c, d) {
  158. function e(a, b, c) {
  159. var d = new Image;
  160. d.onload = function () {
  161. d.onload = null, b(d)
  162. }, d.onerror = function (a) {
  163. d.onerror = null, c(a)
  164. }, d.src = a
  165. }
  166. var f = {};
  167. if (a = a || {}, a.photos) {
  168. var g = a.photos.constructor === Object, h = g ? a.photos : {}, i = h.data || [], j = h.start || 0;
  169. if (f.imgIndex = j + 1, g) {
  170. if (0 === i.length) return layer.msg("&#x6CA1;&#x6709;&#x56FE;&#x7247;")
  171. } else {
  172. var k = $(a.photos), l = function () {
  173. return i = [], k.find(a.img || "img").each(function (a) {
  174. var b = $(this);
  175. i.push({
  176. alt: b.attr("alt"),
  177. pid: b.attr("layer-pid"),
  178. src: b.attr("layer-src") || b.attr("src"),
  179. thumb: b.attr("src")
  180. })
  181. }), arguments.callee
  182. }();
  183. if (0 === i.length) return;
  184. if (c || k.on("click", a.img || "img", function () {
  185. var b = $(this), c = b.index();
  186. l(), layer.photos($.extend(a, {photos: {start: c, data: i, tab: a.tab}, full: a.full}), !0)
  187. }), !c) return
  188. }
  189. f.imgprev = function (a) {
  190. f.imgIndex--, f.imgIndex < 1 && (f.imgIndex = i.length), f.tabimg(a)
  191. }, f.imgnext = function (a, b) {
  192. f.imgIndex++, f.imgIndex > i.length && (f.imgIndex = 1, b) || f.tabimg(a)
  193. }, f.keyup = function (a) {
  194. if (!f.end) {
  195. var b = a.keyCode;
  196. a.preventDefault(), 37 === b ? f.imgprev(!0) : 39 === b ? f.imgnext(!0) : 27 === b && layer.close(f.index)
  197. }
  198. }, f.tabimg = function (b) {
  199. i.length <= 1 || (h.start = f.imgIndex - 1, layer.close(f.index), layer.photos(a, !0, b))
  200. }, f.event = function () {
  201. f.bigimg.hover(function () {
  202. f.imgsee.show()
  203. }, function () {
  204. f.imgsee.hide()
  205. }), f.bigimg.find(".layui-layer-imgprev").on("click", function (a) {
  206. a.preventDefault(), f.imgprev()
  207. }), f.bigimg.find(".layui-layer-imgnext").on("click", function (a) {
  208. a.preventDefault(), f.imgnext()
  209. }), $(document).on("keyup", f.keyup)
  210. }, f.loadi = layer.load(1, {shade: "shade" in a ? !1 : .9, scrollbar: !1}), e(i[j].src, function (c) {
  211. layer.close(f.loadi), f.index = layer.open($.extend({
  212. type: 1,
  213. area: function () {
  214. var b = [c.width, c.height], d = [$(window).width() - 100, $(window).height() - 100];
  215. return !a.full && b[0] > d[0] && (b[0] = d[0], b[1] = b[0] * d[1] / b[0]), [b[0] + "px", b[1] + "px"]
  216. }(),
  217. title: !1,
  218. shade: .9,
  219. shadeClose: !0,
  220. closeBtn: !1,
  221. move: ".layui-layer-phimg img",
  222. moveType: 1,
  223. scrollbar: !1,
  224. moveOut: !0,
  225. shift: 5 * Math.random() | 0,
  226. skin: "layui-layer-photos" + b("photos"),
  227. content: '<div class="layui-layer-phimg"><img src="' + i[j].src + '" alt="' + (i[j].alt || "") + '" layer-pid="' + i[j].pid + '"><div class="layui-layer-imgsee">' + (i.length > 1 ? '<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>' : "") + '<div class="layui-layer-imgbar" style="display:' + (d ? "block" : "") + '"><span class="layui-layer-imgtit"><a href="javascript:;">' + (i[j].alt || "") + "</a><em>" + f.imgIndex + "/" + i.length + "</em></span></div></div></div>",
  228. success: function (b, c) {
  229. f.bigimg = b.find(".layui-layer-phimg"), f.imgsee = b.find(".layui-layer-imguide,.layui-layer-imgbar"), f.event(b), a.tab && a.tab(i[j], b)
  230. },
  231. end: function () {
  232. f.end = !0, $(document).off("keyup", f.keyup)
  233. }
  234. }, a))
  235. }, function () {
  236. layer.close(f.loadi), layer.msg("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;", {
  237. time: 3e4,
  238. btn: ["下一张", "不看了"],
  239. yes: function () {
  240. i.length > 1 && f.imgnext(!0, !0)
  241. }
  242. })
  243. })
  244. }
  245. }
  246. }();
  247. function f_new_add_dynamicparameter(a, c) {
  248. layer.prompt({
  249. title: '请输入层 (数值越高在上面)',
  250. formType: 0,
  251. value: ""
  252. }, function (value, index, elem) {
  253. // PanelCanvas_P.css('z-index', parseInt(value));
  254. // obj.PanelCanvas_z = parseInt(PanelCanvas_P.css('z-index'));
  255. console.log(value)
  256. console.log(a, c)
  257. layer.close(index);
  258. });
  259. }