viplinktextmedia.js 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template','gridify', 'selectpage', 'custommain'], function ($, undefined, Backend, Table, Form, Template,Gridify, Seletepage, Custommain) {
  2. function excludeSpecial(s) {
  3. s = s.replace(/[\\\/\b\f\n\r\t\'\[\]\@\#\$\%\^\&\*\{\}\:\"\L\<\>\?]/g,'');
  4. return s;
  5. };
  6. $(document).on('keyup','#description, #description-book, #description-activity, #description-recent',function () {
  7. var descrp = $(this).val();
  8. $(this).val(excludeSpecial(descrp));
  9. });
  10. var Controller = {
  11. index: function () {
  12. Table.api.init({
  13. extend: {
  14. index_url: 'vipcustom/viplinktextmedia/index',
  15. del_url:'vipcustom/viplinktextmedia/delsinglepiece',
  16. },
  17. searchFormVisible: true,
  18. search: false
  19. });
  20. var table = $("#table");
  21. // 初始化表格
  22. table.bootstrapTable({
  23. url: $.fn.bootstrapTable.defaults.extend.index_url,
  24. pk: 'id',
  25. sortName: 'id',
  26. clickToSelect: false,
  27. pageSize: 12, //每页的记录行数(*)
  28. pageList: [12, 36, 72, 120], //可供选择的每页的行数(*)
  29. columns: [Controller.api.showFilterColumns(table)],
  30. onLoadSuccess: function () { //加载成功时执行
  31. },
  32. onPostBody:function(){
  33. $('#table td').attr('rowspan', '1000');
  34. var ooptions = {
  35. srcNode: 'tr', // grid items (class, node)
  36. margin: '0', // margin in pixel, default: 0px
  37. width: '296px', // grid item width in pixel, default: 220px
  38. max_width: '', // dynamic gird item width if specified, (pixel)
  39. resizable: true, // re-layout if window resize
  40. transition: 'all 0.5s ease' // support transition for CSS3, default: all 0.5s ease
  41. }
  42. $('#table').gridify(ooptions);
  43. }
  44. });
  45. // 为表格绑定事件
  46. Table.api.bindevent(table);
  47. //tooltip
  48. $(document).on('mouseover', '#table td', function () {
  49. $('.wxb-card-list-scroll .anticon').tooltip();
  50. $('[rel="popover"]').popover({
  51. trigger: 'manual',
  52. placement: 'top',
  53. html: true,
  54. content: function () {
  55. var ids = $(this).data('rowid');
  56. /*jshint multistr: true*/
  57. return '<div class="msg_popover_but_box">\
  58. <a href="javascript:;" class="btn-multi-ajax" data-href="/admin/vipcustom/viplinktextmedia/multisendmessage?table=media&ids=' + ids + '&official_type=0">群发服务号</a>\
  59. <a href="javascript:;" class="btn-multi-ajax" data-href="/admin/vipcustom/viplinktextmedia/multisendmessage?table=media&ids=' + ids + '&official_type=1">群发订阅号</a>\
  60. </div>';
  61. }
  62. }).on("mouseenter", function () {
  63. var _this = this;
  64. $(this).popover("show");
  65. $(this).siblings(".popover").on("mouseleave", function () {
  66. $(_this).popover('hide');
  67. });
  68. }).on("mouseleave", function () {
  69. var _this = this;
  70. setTimeout(function () {
  71. if (!$(".popover:hover").length) {
  72. $(_this).popover("hide");
  73. }
  74. }, 100);
  75. });
  76. });
  77. //删除文字链消息列表单列
  78. $(document).on('click', '.anticon-delete', function () {
  79. var $this = $(this);
  80. var oLi = $this.parents('li');
  81. var nIndex = $this.parents('li').index();
  82. var sid = $this.data('id');
  83. layer.confirm("确定删除此项?", {
  84. icon: 3,
  85. title: "温馨提示",
  86. shadeClose: true
  87. }, function (index) {
  88. $.get($.fn.bootstrapTable.defaults.extend.del_url, {"ids":sid, "idx":nIndex}, function (data) {
  89. if (data.code) {
  90. var msg = data.msg != '' ? data.msg : '操作成功';
  91. Toastr.success(msg);
  92. } else {
  93. var msg = data.msg != '' ? data.msg : '操作失败';
  94. Toastr.error(msg);
  95. }
  96. layer.close(index);
  97. table.bootstrapTable('refresh');
  98. });
  99. }, function () {
  100. layer.close();
  101. });
  102. });
  103. //删除文字链消息列表整列
  104. $(document).on('click', '.btn-del-ajax', function () {
  105. var del_url = $(this).attr('data-href');
  106. layer.confirm("确定删除此项?", {
  107. icon: 3,
  108. title: "温馨提示",
  109. shadeClose: true
  110. }, function (index) {
  111. layer.close(index);
  112. $.get(del_url, {}, function (data) {
  113. if (data.code) {
  114. var msg = data.msg != '' ? data.msg : '操作成功';
  115. Toastr.success(msg);
  116. table.bootstrapTable('refresh');
  117. } else {
  118. var msg = data.msg != '' ? data.msg : '操作失败';
  119. Toastr.error(msg);
  120. }
  121. });
  122. }, function () {
  123. layer.close();
  124. });
  125. });
  126. // 打开详情页面
  127. $(document).on('click', '.btn-view-ajax', function () {
  128. Fast.api.open($(this).attr('data-href'), '查看详情', {});
  129. });
  130. //群发消息
  131. $(document).on('click', '.btn-multi-ajax', function () {
  132. var stxt = $(this).text();
  133. var multi_url = $(this).attr('data-href');
  134. Fast.api.open(multi_url, stxt, {
  135. callback: function (data) {
  136. if(!data) return false;
  137. var data = data[0];
  138. console.log(data);
  139. }
  140. });
  141. });
  142. //修改图文内容
  143. $(document).on('click','.anticon-novel-edit',function(){
  144. var $this=$(this);
  145. var nIndex = $this.parents('li').index();
  146. var sid = $this.data('id');
  147. $.ajax({
  148. type:'get',
  149. url:'vipcustom/viplinktextmedia/getMediaMessage?ids='+ sid + '&idx='+ nIndex,
  150. success:function(data){
  151. if(!data.code){
  152. Fast.api.open('vipcustom/viplinktextmedia/editlinktext?json=' + encodeURIComponent(data.data), '修改内容', {
  153. callback: function (data) {
  154. var data = data;
  155. $.ajax({
  156. type:'get',
  157. url:'vipcustom/viplinktextmedia/editLink?idx='+ nIndex +'&ids='+ sid + '&message_json=' + encodeURIComponent(JSON.stringify(data)),
  158. success:function(data){
  159. if(data.code == 0){
  160. Toastr.success('编辑成功');
  161. }else{
  162. Toastr.error('编辑失败');
  163. }
  164. }
  165. })
  166. }
  167. });
  168. }else{
  169. Toastr.error('编辑失败');
  170. }
  171. }
  172. })
  173. });
  174. },
  175. //图文客服消息 群发 订阅号 服务号
  176. multisendmessage:function(){
  177. Controller.api.bindevent();
  178. },
  179. editlinktext:function(){
  180. Controller.api.bindevent();
  181. var spage = $('#c-book_book_name').val();
  182. var sbl = true;
  183. var selectdata = '';
  184. $('#c-book_book_name').selectPage({
  185. eAjaxSuccess : function(d){
  186. if(selectdata && JSON.stringify(selectdata) != JSON.stringify(d)){
  187. $('#select_book_id').val('');
  188. }
  189. selectdata = d;
  190. return d ? d : '';
  191. },
  192. eSelect : function(d){
  193. selectdata = '';
  194. $('#c-book_book_name').val(d.name);
  195. $('#select_book_id').val(d.id);
  196. $('#select_book_id').attr('data-sex_text', d.sex_text);
  197. $("#description-book").val(d.description);
  198. Custommain.get_channel_book_name();
  199. },
  200. eClear : function(){
  201. $('#select_book_id').val('');
  202. }
  203. });
  204. if(Config.bnotin.length>0){
  205. $.each(Config.bnotin,function (index,value) {
  206. if($('#select_book_id').val().indexOf(value)!=-1){
  207. $('#select_book_id').val('');
  208. $('#c-book_book_name').val('');
  209. $('#c-book_book_name_text').val('');
  210. $('#description-book').val('');
  211. return false;
  212. }
  213. });
  214. }
  215. Controller.api.eventTitle()
  216. },
  217. //查看详情
  218. viewdetail: function () {
  219. // 初始化表格参数配置
  220. Table.api.init({
  221. extend: {
  222. getimage_url: window.location.href,
  223. },
  224. search: false,
  225. showToggle: false,
  226. showColumns: false,
  227. showExport: false,
  228. commonSearch: false
  229. });
  230. var table = $("#table");
  231. //当表格数据加载完成时
  232. table.on('load-success.bs.table', function (e, data) {
  233. //这里可以获取从服务端获取的JSON数据
  234. //console.log(data);
  235. //这里我们手动设置底部的值
  236. //$("#money").text(data.extend.money);
  237. //$("#price").text(data.extend.price);
  238. });
  239. // 初始化表格
  240. table.bootstrapTable({
  241. url: $.fn.bootstrapTable.defaults.extend.getimage_url,
  242. pk: 'id',
  243. sortName: 'id',
  244. columns: [Controller.api.getimagelist(table)]
  245. });
  246. // 为表格绑定事件
  247. Table.api.bindevent(table);
  248. },
  249. api: {
  250. eventTitle: function () {
  251. require(['vue', 'component', 'ELEMENT'], function (Vue, component, ELEMENT) {
  252. Vue.use(ELEMENT);
  253. Vue.use(component);
  254. var Main = {
  255. el: '#title-select',
  256. methods: {
  257. select: function (value) {
  258. $('.group-type:visible').find('input').first().val(value)
  259. }
  260. }
  261. };
  262. new Vue(Main)
  263. });
  264. },
  265. showFilterColumns: function (table) {
  266. var cols = new Array();
  267. cols.push({field: 'id', title: "素材ID", visible: false});
  268. cols.push({field: 'message_text$[*].book_name', title: "书籍名称", visible: false, operate: 'LIKE %...%'});
  269. cols.push({field: 'id', operate: false, formatter: Controller.api.formatter.showStyle});
  270. return cols;
  271. },
  272. getimagelist: function (table) {
  273. var cols = new Array();
  274. cols.push({field: 'title', title: "标题", operate: false});
  275. cols.push({field: 'type', title: "链接类型", operate: false, formatter: Controller.api.formatter.showType});
  276. cols.push({field: 'book_id', title: "书籍ID", operate: false});
  277. cols.push({field: 'book_name', title: "书籍名称/活动名称/菜单名称", operate: false});
  278. cols.push({field: '', title: "推广位置", operate: false, formatter: Controller.api.formatter.showPosition});
  279. /* cols.push({
  280. field: 'push',
  281. title: "推广类型",
  282. operate: false,
  283. formatter: Controller.api.formatter.showPushType
  284. });*/
  285. //cols.push({field: 'book_id', title:"阅读原文连接"});
  286. return cols;
  287. },
  288. bindevent: function () {
  289. $('#c-menu_menu_id,#c-activity_activity_id').change(function(){
  290. Custommain.get_channel_other_name();
  291. });
  292. Custommain.checkbox_relation('#dyhradio', '#dyhcheck');
  293. //推广链接类型id
  294. var simgtexttype = $('input[name="row[imgtxt_type]"]:checked').val();
  295. //资源管理
  296. var ore={
  297. arrma:[
  298. {
  299. 'title':'',
  300. 'image':'',
  301. 'url':'http://'
  302. }
  303. ],
  304. imglis:[],
  305. titlist:[],
  306. sli:'<div class="img_txt_li img_txt_main">\
  307. <div class="img_txt_li_img img_txt_edit_img"><img src="sli_img" /></div>\
  308. <div class="img_txt_li_txt">\
  309. <i class="fa fa-pencil img_txt_edit_tit"></i>\
  310. <div class="img_txt_li_h3"><input type="text" value="sli_value" /></div>\
  311. <i class="fa fa-chain img_txt_edit_url" title="推广链接"></i>\
  312. <i class="fa fa-book img_txt_edit_book" title="小说链接"></i>\
  313. <i class="fa fa-address-card-o img_txt_edit_card_o" title="活动链接"></i>\
  314. <i class="fa fa-bookmark-o img_txt_edit_bookmark_o" title="继续阅读链接"></i>\
  315. <i class="fa fa-bars img_txt_edit_bars" title="菜单链接"></i>\
  316. <div class="img_txt_li_url"><input type="text" value="click_url" /></div>\
  317. </div>\
  318. <div class="fa img_txt_remvoe"></div>\
  319. </div>',
  320. pli:'<li>\
  321. <a class="article-item">\
  322. <div class="novel-img article-item-cover" style="background-image: url(sli_img);"></div>\
  323. <p class="article-item-title">sli_value</p>\
  324. </a>\
  325. <div class="article-actions">\
  326. <div>\
  327. <span class="action-item">\
  328. <i class="anticon anticon-title-edit" style="font-size: 17px;" data-toggle="tooltip" data-original-title="修改标题"></i>\
  329. </span>\
  330. <span class="action-item">\
  331. <i class="anticon anticon-cover-edit" data-toggle="tooltip" data-original-title="修改封面"></i>\
  332. </span>\
  333. <span class="action-item">\
  334. <i class="anticon anticon-novel-edit" style="font-size: 13px;" data-toggle="tooltip" data-original-title="编辑链接"></i>\
  335. </span>\
  336. <span class="action-item action-item-up">\
  337. <i class="anticon anticon-arrow-up" data-toggle="tooltip" data-original-title="上移"></i>\
  338. </span>\
  339. <span class="action-item action-item-down">\
  340. <i class="anticon anticon-arrow-down" data-toggle="tooltip" data-original-title="下移"></i>\
  341. </span>\
  342. <span class="action-item">\
  343. <i class="anticon anticon-delete" data-toggle="tooltip" data-original-title="删除"></i>\
  344. </span>\
  345. </div>\
  346. </div>\
  347. </li>',
  348. ptxtli:'<li>\
  349. <p scolor>sli_value</p>\
  350. <div class="img_txt_tip_box">\
  351. <i class="anticon anticon-novel-edit" style="font-size: 13px;" data-toggle="tooltip" data-original-title="编辑链接"></i>\
  352. <i class="anticon anticon-delete" data-toggle="tooltip" data-original-title="删除"></i>\
  353. </div>\
  354. </li>'
  355. };
  356. //图文切换为文字链
  357. $(document).on('click','.switch_txt_but',function(){
  358. layer.open({
  359. type: 1,
  360. title: '温馨提示',
  361. maxmin: false,
  362. area: ['300px', '200px'],
  363. btn: ['确认', '取消'],
  364. shadeClose: true,
  365. resize: false,
  366. // skin: 'layui-layer-rim',
  367. content: '<div class="layui_txt">切换为文字链模式后将无法恢复为图文模式,确定切换吗?</div>',
  368. yes: function (index, layero) {
  369. var imgsval = $('.img_txt_hidden_input').val();
  370. $('.textarea_txt_hidden_official_type').val('1');
  371. $('#group-type-news').remove();
  372. $('#group-type-news').show();
  373. $('.textarea_txt_hidden_input').val(imgsval);
  374. try{
  375. imgsval = JSON.parse(imgsval);
  376. txttext(imgsval);
  377. }catch(e){
  378. }
  379. Toastr.success('切换成功');
  380. layer.close(index);
  381. },
  382. btn2: function (index, node) {
  383. layer.close(index)
  384. }
  385. });
  386. })
  387. //添加图文
  388. $(document).on('click', '.img_txt_add_but', function () {
  389. var $this = $(this);
  390. Fast.api.open('custom/addimagetext', '添加图文', {
  391. callback: function (data) {
  392. console.log(data);
  393. strImgtext = $('.img_txt_hidden_input').val();
  394. var imgtext_data = [];
  395. if (strImgtext.length > 0) {
  396. imgtext_data = JSON.parse(strImgtext);
  397. }
  398. imgtext_data.push(data);
  399. $('.img_txt_hidden_input').val(JSON.stringify(imgtext_data));
  400. $('.textarea_txt_hidden_input').val(JSON.stringify(imgtext_data));
  401. imagetext(imgtext_data);
  402. txttext(imgtext_data);
  403. $this.hide();
  404. }
  405. })
  406. });
  407. //渲染图文列表
  408. function imagetext(data){
  409. var lihtmls = '';
  410. var sli = '';
  411. for(var i=0; i<data.length; i++){
  412. sli = ore.pli.replace('sli_img',data[i]['image']);
  413. sli = sli.replace('sli_value',data[i]['title']);
  414. lihtmls += sli;
  415. }
  416. lihtmls = '<div class="wxb-card-item"><div class="wxb-card-item-inner"><ul class="article-list">' + lihtmls + '</ul></div></div>';
  417. $('.wxb-card-list-scroll').html(lihtmls);
  418. //图文列表tip
  419. $('.wxb-card-list-scroll .action-item i').tooltip();
  420. }
  421. //渲染文字列表
  422. function txttext(data){
  423. var lihtmls = '';
  424. var sli = '';
  425. for(var i=0; i<data.length; i++){
  426. var scol = '';
  427. sli = ore.ptxtli.replace('sli_value',data[i]['title']);
  428. if(data[i]['type'] == 4) scol = 'style="color:#333"'
  429. sli = sli.replace('scolor',scol);
  430. lihtmls += sli;
  431. }
  432. lihtmls = '<div class="img_txt_url"><ul>' + lihtmls + '</ul></div>';
  433. $('#group-type-news .img_txt_list').html(lihtmls);
  434. //图文列表tip
  435. $('.img_txt_url i').tooltip();
  436. }
  437. //获取数组
  438. function getimagetxtarr(val){
  439. strImgtext = val;
  440. var imgtext_data = [];
  441. if (strImgtext.length > 0) {
  442. try{
  443. return JSON.parse(strImgtext);
  444. }catch(err){
  445. return '';
  446. }
  447. }
  448. return '';
  449. }
  450. //数组上移下移
  451. Array.prototype.swapItems = function(startindex,endindex){
  452. this[startindex] = this.splice(endindex,1,this[startindex])[0];
  453. return this;
  454. }
  455. //数组删除指定项
  456. Array.prototype.removeItems = function(index){
  457. this.splice(index,1);
  458. return this;
  459. }
  460. //图文上移 下移
  461. $('.wxb-card-list-scroll').on('click','.anticon-arrow-up,.anticon-arrow-down',function(){
  462. var $this = $(this);
  463. var nindex = $this.parents('li').index();
  464. var arrimgtxt = getimagetxtarr($('.img_txt_hidden_input').val());
  465. if(!arrimgtxt) return false;
  466. if($this.hasClass('anticon-arrow-up')){
  467. if(nindex == 0) return false;
  468. arrimgtxt.swapItems(nindex,nindex-1);
  469. }else{
  470. if(nindex == arrimgtxt.length-1) return false;
  471. arrimgtxt.swapItems(nindex,nindex+1);
  472. }
  473. $('.img_txt_hidden_input').val(JSON.stringify(arrimgtxt));
  474. $('.textarea_txt_hidden_input').val(JSON.stringify(arrimgtxt));
  475. imagetext(arrimgtxt);
  476. });
  477. //删除图文
  478. $('.wxb-card-list-scroll').on('click','.anticon-delete',function(){
  479. var $this = $(this);
  480. layer.open({
  481. type: 1,
  482. title: '温馨提示',
  483. maxmin: false,
  484. area: ['260px', '160px'],
  485. btn: ['确认', '取消'],
  486. shadeClose: true,
  487. resize: false,
  488. // skin: 'layui-layer-rim',
  489. content: '<div style="height:100%; width:100%; text-align: center; line-height: 65px;">您确定删除此条信息?</div>',
  490. yes: function (index, layero) {
  491. var nindex = $this.parents('li').index();
  492. var arrimgtxt = getimagetxtarr($('.img_txt_hidden_input').val());
  493. if(!arrimgtxt) return false;
  494. arrimgtxt.removeItems(nindex);
  495. $('.img_txt_hidden_input').val(JSON.stringify(arrimgtxt));
  496. $('.textarea_txt_hidden_input').val(JSON.stringify(arrimgtxt));
  497. if(arrimgtxt.length == 0){
  498. $('.wxb-card-list-scroll').html('');
  499. $('.img_txt_add_but').show();
  500. }else{
  501. imagetext(arrimgtxt);
  502. }
  503. Toastr.success('删除成功');
  504. layer.close(index);
  505. },
  506. btn2: function (index, node) {
  507. layer.close(index)
  508. }
  509. });
  510. });
  511. //修改title
  512. $(document).on('click','.anticon-title-edit',function(){
  513. var $this=$(this);
  514. var nIndex = $this.parents('li').index();
  515. var stitle = $this.parents('li').find('p').text();
  516. layer.open({
  517. type: 1,
  518. title: false,
  519. maxmin: false,
  520. area: ['auto', 'auto'],
  521. btn: ['确认', '取消'],
  522. shadeClose: true,
  523. resize: false,
  524. skin: 'layui-layer-rim',
  525. content: '<div class="anticon_edit_box">\
  526. <div class="anticon_edit_select_tit_box">\
  527. <strong>当前标题:</strong>\
  528. <p>' + stitle + '</p>\
  529. <a href="javascript:;"><i class="fa fa-pencil"></i></a>\
  530. </div>\
  531. <div class="anticon_edit_input_tit_box">\
  532. <strong>修改为:</strong>\
  533. <div class="anticon_edit_input_tit"><input type="text" value="' + stitle + '" /></div>\
  534. </div>\
  535. </div>',
  536. yes: function (index, layero) {
  537. var stit = $(layero.selector +' p').text();
  538. var sinputtit = $(layero.selector +' input').val();
  539. if(sinputtit){
  540. stit = sinputtit;
  541. }
  542. editimglist('title',nIndex,stit);
  543. layer.close(index);
  544. },
  545. btn2: function (index, node) {
  546. layer.close(index)
  547. }
  548. });
  549. });
  550. //修改列表内容
  551. function editimglist(name,item,val){
  552. var strImgtext = JSON.parse($('.img_txt_hidden_input').val());
  553. strImgtext[item][name] = val;
  554. $('.img_txt_hidden_input').val(JSON.stringify(strImgtext));
  555. $('.textarea_txt_hidden_input').val(JSON.stringify(strImgtext));
  556. imagetext(strImgtext);
  557. }
  558. //修改title
  559. $(document).on('click','.anticon_edit_select_tit_box a',function(){
  560. var $this=$(this);
  561. Fast.api.open('manage/title/select', '选择标题', {
  562. callback: function (data) {
  563. // console.log('展示title回调', data);
  564. $this.siblings('p').text(data.title);
  565. $this.parents('.anticon_edit_box').find('input').val(data.title);
  566. }
  567. });
  568. });
  569. //修改封面
  570. $(document).on('click','.anticon-cover-edit',function(){
  571. var $this=$(this);
  572. var nIndex = $this.parents('li').index();
  573. Fast.api.open('manage/cover/select', '选择', {
  574. callback: function (data) {
  575. // console.log('展示image回调', data);
  576. editimglist('image',nIndex,data.image);
  577. }
  578. });
  579. });
  580. //修改文字内容
  581. $(document).on('click','#group-type-news .anticon-novel-edit',function(){
  582. var $this=$(this);
  583. var nIndex = $this.parents('li').index();
  584. var sjson = JSON.parse($('.textarea_txt_hidden_input').val());
  585. Fast.api.open('custom/editlinktext?json=' + encodeURIComponent(JSON.stringify(sjson[nIndex])), '修改文字链接', {
  586. callback: function (data) {
  587. var data = data;
  588. console.log('展示title回调', data);
  589. var strImgtext = JSON.parse($('.textarea_txt_hidden_input').val());
  590. strImgtext[nIndex] = data;
  591. $('.textarea_txt_hidden_input').val(JSON.stringify(strImgtext));
  592. txttext(strImgtext);
  593. }
  594. });
  595. });
  596. //删除文字列表
  597. $('#group-type-news').on('click','.anticon-delete',function(){
  598. var $this = $(this);
  599. layer.open({
  600. type: 1,
  601. title: '温馨提示',
  602. maxmin: false,
  603. area: ['260px', '160px'],
  604. btn: ['确认', '取消'],
  605. shadeClose: true,
  606. resize: false,
  607. // skin: 'layui-layer-rim',
  608. content: '<div style="height:100%; width:100%; text-align: center; line-height: 65px;">您确定删除此条信息?</div>',
  609. yes: function (index, layero) {
  610. var nindex = $this.parents('li').index();
  611. var arrimgtxt = getimagetxtarr($('.textarea_txt_hidden_input').val());
  612. if(!arrimgtxt) return false;
  613. arrimgtxt.removeItems(nindex);
  614. $('.textarea_txt_hidden_input').val(JSON.stringify(arrimgtxt));
  615. if(arrimgtxt.length == 0){
  616. $('.img_txt_list').html('');
  617. }else{
  618. txttext(arrimgtxt);
  619. }
  620. Toastr.success('删除成功');
  621. layer.close(index);
  622. },
  623. btn2: function (index, node) {
  624. layer.close(index)
  625. }
  626. });
  627. });
  628. Custommain.bind_form_validation();
  629. /**
  630. * form表单验证
  631. */
  632. // $("form[role=form]").data("validator-options", {
  633. $("#add-form").data("validator-options", {
  634. ignore: ':hidden',
  635. beforeSubmit: function (form) {
  636. var user_json = $.parseJSON($('.img_txt_hidde_input_no').val())
  637. if (user_json.all==0 && !user_json.subscribe_time) {
  638. var sub_from = (new Moment($('input[name="row[sub_from]"]').val())).valueOf() / 1000
  639. var sub_to = (new Moment($('input[name="row[sub_to]"]').val())).valueOf() / 1000
  640. if(!sub_from && !sub_to){
  641. Toastr.error("起止时间不能为空");
  642. return false;
  643. }else{
  644. user_json.subscribe_range = sub_from +'-'+ sub_to;
  645. }
  646. }
  647. $('.img_txt_hidde_input_no').val(JSON.stringify(user_json));
  648. var senddyhradioval = $('#dyhradio input').val();
  649. if (!$('.js_selected_group_id').val()) {
  650. if ($(":checkbox[name^='row[service_id]']", $("#add-form")).length) {
  651. var other_tips = $(":checked[name^='row[service_id]']", $("#add-form"));
  652. if (other_tips.length <= 0) {
  653. Toastr.error("请选择需要发送的服务号");
  654. return false;
  655. }
  656. if (senddyhradioval < other_tips.length) {
  657. Toastr.error("最多可选择发送" + senddyhradioval + '个服务号');
  658. return false;
  659. }
  660. }
  661. }
  662. //发送时间必须大于当前时间
  663. var sdatatime=$('#c-sendtime').val()+'';
  664. sdatatime = sdatatime.replace(/-/g,'/');
  665. sdatatime =new Date(sdatatime).getTime();
  666. if(sdatatime <= new Date().getTime()){
  667. Toastr.error("发送时间必须大于当前时间");
  668. return false;
  669. }
  670. sList = JSON.stringify(ore.arrma);
  671. $('.img_txt_hidde_input').val(sList);
  672. // console.log('验证');
  673. // return false;
  674. }
  675. });
  676. Form.api.bindevent($("form[role=form]"),
  677. function (data) {
  678. if (data.jump) {
  679. window.location.href = data.jump;
  680. } else {
  681. Fast.api.close(data);
  682. }
  683. },
  684. function (data) {
  685. console.log('TODO:这里需要处理。。。');
  686. console.log('error', data);
  687. }
  688. );
  689. /**
  690. * 资源类型管理
  691. */
  692. $(document).on('click', "input[name='row[type]']", function () {
  693. var type = $(this).val();
  694. if (type=='all'){
  695. var tagObj = {
  696. all:"1"
  697. }
  698. }else{
  699. var tagObj ={
  700. sex:-1,
  701. mobile_system: 0,
  702. tag:-1,
  703. consume:-1,
  704. kandian: -1,
  705. subscribe_time:-1,
  706. all:"0"
  707. }
  708. }
  709. var ucon = JSON.stringify(tagObj);
  710. $('#usercondition').val(ucon);
  711. $('.group-tag-type').addClass('hide');
  712. $('.group-tag-type input').attr('disabled');
  713. $('#group-tag-type-' + type).removeClass('hide');
  714. $('#group-tag-type-' + type+' input').removeAttr('disabled');
  715. });
  716. //切换推广链接类型
  717. $(document).on('click', "input[name='row[imgtxt_type]']", function () {
  718. var type = $(this).val();
  719. $('.group-type').addClass('hide');
  720. $('.group-type input').attr('disabled');
  721. $('#group-type-' + type).removeClass('hide');
  722. $('#group-type-' + type + ' input').removeAttr('disabled');
  723. var oshowfrombox = $('#group-type-' + type + ' input[type="hidden"]');
  724. simgtexttype = type;
  725. if(type == 0){
  726. Custommain.get_channel_book_name();
  727. }else{
  728. Custommain.get_channel_other_name();
  729. }
  730. });
  731. $(document).on('click', "input[name='book[push]']", function () {
  732. var type = $(this).val();
  733. $('.group-push').addClass('hide');
  734. $('.group-push input').attr('disabled');
  735. $('#group-push-' + type).removeClass('hide');
  736. $('#group-push-' + type + ' input').removeAttr('disabled');
  737. Custommain.get_channel_book_name();
  738. });
  739. /**
  740. * 插入链接
  741. */
  742. $(document).on('click', ".btn-insertlink", function () {
  743. var textarea = $("textarea[name='row[content]']");
  744. var cursorPos = textarea.prop('selectionStart');
  745. var v = textarea.val();
  746. var textBefore = v.substring(0, cursorPos);
  747. var textAfter = v.substring(cursorPos, v.length);
  748. Layer.prompt({title: '请输入显示的文字', formType: 3}, function (text, index) {
  749. Layer.close(index);
  750. Layer.prompt({title: '请输入跳转的链接URL(包含http/https)', formType: 3}, function (link, index) {
  751. text = text == '' ? link : text;
  752. textarea.val(textBefore + '<a href="' + link + '">' + text + '</a>' + textAfter);
  753. Layer.close(index);
  754. });
  755. });
  756. });
  757. if ($('#usercondition').val() && $('#usercondition').val().length > 0) {
  758. $tagval = JSON.parse($('#usercondition').val());
  759. if ($tagval.all == 1){ //选择所有用户
  760. $('#type-all').attr('checked',true);
  761. var type = 'all';
  762. $('.group-tag-type').addClass('hide');
  763. $('.group-tag-type input').attr('disabled');
  764. $('#group-tag-type-' + type).removeClass('hide');
  765. $('#group-tag-type-' + type+' input').removeAttr('disabled');
  766. }
  767. }
  768. $.ajax({
  769. type:'get',
  770. url:'/admin/custom/ajaxcategory',
  771. cache:false,
  772. async:false,
  773. success:function(res){
  774. data = res.data;
  775. var htmlstr = '';
  776. for(var i=0;i<data.length;i++){
  777. htmlstr+='<span data-cid="'+data[i].id+'" >'+data[i].name+'</span>';
  778. }
  779. $('#ctag').append(htmlstr);
  780. $('#mustbe').html('约'+res.ids+'人');
  781. if ($('#usercondition').val() && $('#usercondition').val().length > 0) {
  782. $tagval = JSON.parse($('#usercondition').val());
  783. $("#sex span[data-sex='"+$tagval.sex+"']").addClass('s_s_tag').siblings().removeClass('s_s_tag');
  784. $("#ctag span[data-cid='"+$tagval.tag+"']").addClass('s_s_tag').siblings().removeClass('s_s_tag');
  785. $("#consume span[data-fee='"+$tagval.consume+"']").addClass('s_s_tag').siblings().removeClass('s_s_tag');
  786. $("#kandian span[data-kandian='"+$tagval.kandian+"']").addClass('s_s_tag').siblings().removeClass('s_s_tag');
  787. // $("#subTime span[data-week='"+$tagval.subscribe_time+"']").addClass('s_s_tag').siblings().removeClass('s_s_tag');
  788. // if ($tagval.subscribe_range) {
  789. // var t_l = $tagval.subscribe_range.split('-');
  790. // $('input[name="row[sub_from]"]').val(Moment(parseInt(t_l[0]) * 1000).format("YYYY-MM-DD HH:mm:ss"));
  791. // $('input[name="row[sub_to]"]').val(Moment(parseInt(t_l[1]) * 1000).format("YYYY-MM-DD HH:mm:ss"));
  792. // }
  793. if ($tagval.subscribe_time) {
  794. $("#subscribe_time1 span[data-fee='" + $tagval.subscribe_time + "']").addClass('s_s_tag').siblings().removeClass('s_s_tag');
  795. $('#subscribe_time2').hide();
  796. } else {
  797. $("#subscribe_time1 span").last().addClass('s_s_tag').siblings().removeClass('s_s_tag');
  798. }
  799. }else{
  800. var tagObj1 ={
  801. sex:-1,
  802. mobile_system: 0,
  803. tag:-1,
  804. consume:-1,
  805. kandian: -1,
  806. subscribe_time:-1,
  807. subscribe_range:-1,
  808. all:"0"
  809. };
  810. var ucon1 = JSON.stringify(tagObj1);
  811. $('#usercondition').val(ucon1);
  812. }
  813. },
  814. error:function(err){
  815. }
  816. });
  817. $.ajax({
  818. type:'get',
  819. url:'/admin/manage/cover/ajax?sort=id&order=desc&offset=0&limit=10&filter={"status":"normal"}',
  820. cache:false,
  821. async:false,
  822. success:function(data){
  823. // console.log(data)
  824. ore.imglis = data.rows;
  825. },
  826. error:function(err){
  827. }
  828. });
  829. $.ajax({
  830. type:'get',
  831. url:'/admin/manage/title/ajax?sort=id&order=desc&offset=0&limit=10&filter={"status":"normal"}',
  832. cache:false,
  833. async:false,
  834. success:function(data){
  835. console.log(data)
  836. // ore.titlist = data.rows;
  837. // ore.arrma[0]['image'] = ore.imglis[parseInt(Math.random()*ore.imglis.length)]['image'];
  838. // ore.arrma[0]['title'] = ore.titlist[parseInt(Math.random()*ore.titlist.length)]['title'];
  839. //
  840. // console.log($('.img_txt_hidde_input').val());
  841. // if ($('.img_txt_hidde_input').val() && $('.img_txt_hidde_input').val().length > 0) {
  842. // ore.arrma = JSON.parse($('.img_txt_hidde_input').val());
  843. // for(var i=0; i<ore.arrma.length; i++){
  844. // if(i==0){
  845. // $('.img_txt_list').html('<div class="img_txt_one img_txt_main">\
  846. // <div class="img_txt_one_tit">\
  847. // <i class="fa fa-pencil img_txt_edit_tit"></i>\
  848. // <div class="img_txt_one_h3"><input type="text" value="' + ore.arrma[0]['title'] + '" /></div>\
  849. // <i class="fa fa-chain img_txt_edit_url" title="推广链接"></i>\
  850. // <i class="fa fa-book img_txt_edit_book" title="小说链接"></i>\
  851. // <i class="fa fa-address-card-o img_txt_edit_card_o" title="活动链接"></i>\
  852. // <i class="fa fa-bookmark-o img_txt_edit_bookmark_o" title="继续阅读链接"></i>\
  853. // <i class="fa fa-bars img_txt_edit_bars" title="菜单链接"></i>\
  854. // <div class="img_txt_one_url"><input type="text" value="' + ore.arrma[0]['url'] + '" /></div>\
  855. // </div>\
  856. // <div class="img_txt_one_img img_txt_edit_img"><img src="' + ore.arrma[0]['image'] + '" /></div>\
  857. // </div>');
  858. // }else{
  859. // var sLiImg=ore.sli.replace(/sli_img/g,ore.arrma[i]['image']);
  860. // sLiImg=sLiImg.replace(/sli_value/g,ore.arrma[i]['title']);
  861. // sLiImg=sLiImg.replace(/click_url/g,ore.arrma[i]['url']);
  862. // $('.img_txt_list').append(sLiImg);
  863. // }
  864. // }
  865. // }else{
  866. // $('.img_txt_list').html('<div class="img_txt_one img_txt_main">\
  867. // <div class="img_txt_one_tit">\
  868. // <i class="fa fa-pencil img_txt_edit_tit"></i>\
  869. // <div class="img_txt_one_h3"><input type="text" value="' + ore.arrma[0]['title'] + '" /></div>\
  870. // <i class="fa fa-chain img_txt_edit_url" title="推广链接"></i>\
  871. // <i class="fa fa-book img_txt_edit_book" title="小说链接"></i>\
  872. // <i class="fa fa-address-card-o img_txt_edit_card_o" title="活动链接"></i>\
  873. // <i class="fa fa-bookmark-o img_txt_edit_bookmark_o" title="继续阅读链接"></i>\
  874. // <i class="fa fa-bars img_txt_edit_bars" title="菜单链接"></i>\
  875. // <div class="img_txt_one_url"><input type="text" value="' + ore.arrma[0]['url'] + '" /></div>\
  876. // </div>\
  877. // <div class="img_txt_one_img img_txt_edit_img"><img src="' + ore.arrma[0]['image'] + '" /></div>\
  878. // </div>');
  879. //
  880. // }
  881. },
  882. error:function(err){
  883. }
  884. });
  885. var flag = 0;
  886. //测试发送
  887. $('.test_fans_but').click(function(){
  888. Custommain.fans_send_message();
  889. })
  890. //发送消息时间
  891. $(document).on('click','.s_time_box span',function(){
  892. var $this = $(this);
  893. var nval = parseInt($this.attr('stime'));
  894. var ntime = Date.parse(new Date());
  895. var nt = ntime + nval;
  896. $('#c-sendtime').val(GetRTime(nt));
  897. });
  898. //删除文字列表
  899. $('#group-type-news').on('click','.anticon-delete',function(){
  900. var $this = $(this);
  901. layer.open({
  902. type: 1,
  903. title: '温馨提示',
  904. maxmin: false,
  905. area: ['260px', '160px'],
  906. btn: ['确认', '取消'],
  907. shadeClose: true,
  908. resize: false,
  909. // skin: 'layui-layer-rim',
  910. content: '<div style="height:100%; width:100%; text-align: center; line-height: 65px;">您确定删除此条信息?</div>',
  911. yes: function (index, layero) {
  912. var nindex = $this.parents('li').index();
  913. var arrimgtxt = getimagetxtarr($('.textarea_txt_hidden_input').val());
  914. if(!arrimgtxt) return false;
  915. arrimgtxt.removeItems(nindex);
  916. $('.textarea_txt_hidden_input').val(JSON.stringify(arrimgtxt));
  917. if(arrimgtxt.length == 0){
  918. $('.img_txt_list').html('');
  919. }else{
  920. txttext(arrimgtxt);
  921. }
  922. Toastr.success('删除成功');
  923. layer.close(index);
  924. },
  925. btn2: function (index, node) {
  926. layer.close(index)
  927. }
  928. });
  929. });
  930. //修改文字内容
  931. $(document).on('click','#group-type-news .anticon-novel-edit',function(){
  932. var $this=$(this);
  933. var nIndex = $this.parents('li').index();
  934. var sjson = JSON.parse($('.textarea_txt_hidden_input').val());
  935. Fast.api.open('custom/editlinktext?json=' + encodeURIComponent(JSON.stringify(sjson[nIndex])), '修改文字链接', {
  936. callback: function (data) {
  937. var data = data;
  938. var strImgtext = JSON.parse($('.textarea_txt_hidden_input').val());
  939. strImgtext[nIndex] = data;
  940. $('.textarea_txt_hidden_input').val(JSON.stringify(strImgtext));
  941. txttext(strImgtext);
  942. }
  943. });
  944. });
  945. $(document).on('click','.s_tag_li_list span',function(){
  946. var $this = $(this);
  947. $this.addClass('s_s_tag').siblings('span').removeClass('s_s_tag');
  948. var tagObj ={
  949. sex:$('#sex span.s_s_tag').data('sex'),
  950. mobile_system: $('#mobile_system span.s_s_tag').data('mobile_system'),
  951. tag:$('#ctag span.s_s_tag').data('cid'),
  952. consume:$('#consume span.s_s_tag').data('fee'),
  953. kandian: $('#kandian span.s_s_tag').data('kandian'),
  954. subscribe_time: $('#subscribe_time1 span.s_s_tag').data('fee'),
  955. all:"0"
  956. }
  957. if ($(this).parent().attr('id') == 'subscribe_time1') {
  958. if ($(this).data('fee')) {
  959. $('#cdstarttime').val('');
  960. $('#cdendtime').val('');
  961. $('#subscribe_time2').hide();
  962. } else {
  963. $('#subscribe_time2').show();
  964. }
  965. }
  966. var uconditon = JSON.stringify(tagObj);
  967. $('#usercondition').val(uconditon);
  968. });
  969. var ofansopen=true;
  970. //tag切换
  971. $(document).on('click','.s_tag_fans_num',function(){
  972. var $this = $(this);
  973. //防止重复点击
  974. if(!ofansopen){
  975. return false;
  976. }
  977. ofansopen = false;
  978. $('.s_tag_footer').addClass('s_tag_fans_show');
  979. var tagObj ={
  980. sex:$('#sex span.s_s_tag').data('sex'),
  981. mobile_system: $('#mobile_system span.s_s_tag').data('mobile_system'),
  982. tag:$('#ctag span.s_s_tag').data('cid'),
  983. consume:$('#consume span.s_s_tag').data('fee'),
  984. kandian: $('#kandian span.s_s_tag').data('kandian'),
  985. subscribe_time: $('#subscribe_time1 span.s_s_tag').data('fee'),
  986. all:"0"
  987. }
  988. if ($(this).parent().attr('id') == 'subscribe_time1') {
  989. if ($(this).data('fee')) {
  990. $('#cdstarttime').val('');
  991. $('#cdendtime').val('');
  992. $('#subscribe_time2').hide();
  993. } else {
  994. $('#subscribe_time2').show();
  995. }
  996. }
  997. var uconditon = JSON.stringify(tagObj);
  998. $('#usercondition').val(uconditon);
  999. //console.log(tagObj);
  1000. $.ajax({
  1001. type:'post',
  1002. data:tagObj,
  1003. //dataType:'json',
  1004. url:'/admin/custom/ajaxcustom',
  1005. success:function(data){
  1006. //console.log(data);
  1007. $('#mustbe').html('约'+data.ids+'人');
  1008. ofansopen = true;
  1009. $('.s_tag_footer').removeClass('s_tag_fans_show');
  1010. },
  1011. error:function(err){
  1012. ofansopen = true;
  1013. $('.s_tag_footer').removeClass('s_tag_fans_show');
  1014. }
  1015. });
  1016. });
  1017. // $(document).on('click','.img_txt_add_but',function(){
  1018. // var $List=$('.img_txt_main');
  1019. // var oNowData = {
  1020. // image:ore.imglis[parseInt(Math.random()*ore.imglis.length)]['image'],
  1021. // title:ore.titlist[parseInt(Math.random()*ore.titlist.length)]['title'],
  1022. // url:'http://'
  1023. // };
  1024. // var sLiImg=ore.sli.replace(/sli_img/g,oNowData['image']);
  1025. // sLiImg=sLiImg.replace(/sli_value/g,oNowData['title']);
  1026. // sLiImg=sLiImg.replace(/click_url/g,'http://');
  1027. // if($List.length<8){
  1028. // $('.img_txt_list').append(sLiImg);
  1029. // ore.arrma.push(oNowData);
  1030. // }else{
  1031. // Toastr.error("不能超过8篇");
  1032. // }
  1033. // });
  1034. $(document).on('click','.img_txt_remvoe',function(){
  1035. var $this=$(this);
  1036. $this.parent().remove();
  1037. });
  1038. //修改菜单链接
  1039. $(document).on('click', '.img_txt_edit_bars', function () {
  1040. var $this = $(this);
  1041. Fast.api.open('link/select?one=1', '选择', {
  1042. callback: function (data) {
  1043. var data = data[0];
  1044. $this.parent().find('input').eq(1).val(data.menu_url);
  1045. }
  1046. });
  1047. });
  1048. //添加文字链
  1049. $(document).on('click', '.textarea_txt_add_but', function () {
  1050. Fast.api.open('custom/addlinktext', '添加消息', {
  1051. callback: function (data) {
  1052. strLinktext = $('.textarea_txt_hidden_input').val()
  1053. var linktext_data = [];
  1054. if (strLinktext.length > 0) {
  1055. linktext_data = JSON.parse(strLinktext);
  1056. }
  1057. linktext_data.push(data);
  1058. $('.textarea_txt_hidden_input').val(JSON.stringify(linktext_data));
  1059. txttext(linktext_data);
  1060. }
  1061. })
  1062. });
  1063. $(document).on('click', '.btn_save_media_but button', function () {
  1064. var saveval = $(this).data('save-val');
  1065. if(typeof saveval != 'undefined'){
  1066. $('.js_is_save_media').val(saveval);
  1067. }else{
  1068. Fast.api.close();
  1069. }
  1070. });
  1071. $(document).on('click', '.js_save_media', function () {
  1072. $('.js_is_save_media').val(1);
  1073. });
  1074. //修改最近阅读链接
  1075. $(document).on('click', '.img_txt_edit_bookmark_o', function () {
  1076. var $this = $(this);
  1077. $.ajax({
  1078. type: 'get',
  1079. url: '/admin/book/book/getrecenturl',
  1080. cache: false,
  1081. async: false,
  1082. success:function(data){
  1083. $this.parent().find('input').eq(1).val(data.url);
  1084. },
  1085. error:function(err){
  1086. ofansopen = true;
  1087. $('.s_tag_footer').removeClass('s_tag_fans_show');
  1088. }
  1089. });
  1090. });
  1091. //修改活动
  1092. $(document).on('click', '.img_txt_edit_card_o', function () {
  1093. var $this = $(this);
  1094. Fast.api.open('activity/select?one=1', '选择', {
  1095. callback: function (data) {
  1096. var data = data[0];
  1097. $this.parent().find('input').eq(1).val(data.activity_url);
  1098. }
  1099. });
  1100. });
  1101. //修改url
  1102. $(document).on('click','.img_txt_edit_url',function(){
  1103. var $this=$(this);
  1104. Fast.api.open('referral/referral/select?one=1', '选择', {
  1105. callback: function (data) {
  1106. var data = data[0];
  1107. // console.log('展示title回调', data);
  1108. $this.parent().find('input').eq(1).val(data.source_url);
  1109. }
  1110. });
  1111. });
  1112. //修改book
  1113. $(document).on('click','.img_txt_edit_book',function(){
  1114. var $this=$(this);
  1115. Fast.api.open('book.book/select?one=1', '选择', {
  1116. callback: function (data) {
  1117. var data = data[0];
  1118. $this.parent().find('input').eq(1).val(data.current_book_url);
  1119. }
  1120. });
  1121. });
  1122. //修改图片
  1123. $(document).on('click','.img_txt_edit_img',function(){
  1124. var $this=$(this);
  1125. Fast.api.open('manage/cover/select', '选择', {
  1126. callback: function (data) {
  1127. // console.log('展示image回调', data);
  1128. $this.find('img').attr('src',data.image);
  1129. }
  1130. });
  1131. });
  1132. //修改图片
  1133. $(document).on('click', '.add_img_txt_edit_img', function () {
  1134. var $this = $(this);
  1135. Fast.api.open('manage/cover/select', '选择', {
  1136. callback: function (data) {
  1137. $this.parent().find('img').attr('src', data.image);
  1138. $this.parent().find('input').eq(0).val(data.image);
  1139. }
  1140. });
  1141. });
  1142. //修改跳转链接
  1143. $(document).on('click','.img_txt_main a',function(){
  1144. var $this=$(this);
  1145. var nIndex = $this.parents('.img_txt_main').index();
  1146. layer.prompt({
  1147. formType: 2,
  1148. value: ore.arrma[nIndex].url,
  1149. title: '请输入跳转链接地址(http://)',
  1150. area: ['300px', '100px'] //自定义文本域宽高
  1151. }, function(value, index, elem){
  1152. var reg=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/;
  1153. if(reg.test(value)){
  1154. layer.close(index);
  1155. ore.arrma[nIndex].url = value;
  1156. $this.html(value);
  1157. }else{
  1158. Toastr.error("请输入正确的跳转地址。");
  1159. }
  1160. });
  1161. });
  1162. $(document).on('click', '.btn-close', function () {
  1163. Fast.api.close();
  1164. });
  1165. //禁止修改日期
  1166. // var csendtimeval = '';
  1167. // $(document).on('focus blur','#c-sendtime',function(){
  1168. // csendtimeval = $(this).val();
  1169. // }).on('keyup','#c-sendtime',function(e){
  1170. // $(this).val(csendtimeval);
  1171. // });
  1172. function GetRTime(time){
  1173. var stime;
  1174. time = new Date(time);
  1175. var year = time.getYear() + 1900;
  1176. var month = time.getMonth()+1;
  1177. var day = time.getDate();
  1178. var hours = time.getHours();
  1179. var minutes = time.getMinutes();
  1180. var seconds = time.getSeconds();
  1181. stime = year + '-' +
  1182. (month < 10 ? '0'+month : month) + '-' +
  1183. (day < 10 ? '0'+day : day) + ' ' +
  1184. (hours < 10 ? '0'+hours : hours) + ':' +
  1185. (minutes < 10 ? '0'+minutes : minutes) + ':' +
  1186. (seconds < 10 ? '0'+seconds : seconds);
  1187. return stime;
  1188. }
  1189. },
  1190. formatter: {
  1191. showImage: function (value, row, index) {
  1192. return '<img style="height:100px;" src="' + value + '"/>';
  1193. },
  1194. showType: function (value, row, index) {
  1195. var type_arr = ['书籍', '活动', '继续阅读', '菜单'];
  1196. return type_arr[value];
  1197. },
  1198. showPosition: function (value, row, index) {
  1199. return index + 1;
  1200. },
  1201. showPushType: function (value, row, index) {
  1202. var push_arr = ['外推', '内推'];
  1203. return push_arr[value];
  1204. },
  1205. showStyle: function (value, row, index) {
  1206. var message_data = JSON.parse(row.message_text);
  1207. /*jshint multistr: true */
  1208. var html = '<div class="wxb-card-list-scroll"><div class="wxb-card-item"><div class="wxb-card-item-inner"><div class="item-header"><div>';
  1209. html += '<div class="tweets-card-title"><p>素材id:' + row.id + '</p></div>';
  1210. html += '<div class="tweets-card-title"><p>创建时间:' + Table.api.formatter.datetime(row.createtime, row, index) + '</p></div>';
  1211. html += '<div class="tweets-card-title"><p>修改时间:' + Table.api.formatter.datetime(row.updatetime, row, index) + '</p></div>';
  1212. var offical_type = parseInt(row.official_account_type) == 1 ? '订阅号' : '服务号';
  1213. var send_color = '';
  1214. var send_text = '';
  1215. switch (parseInt(row.status)) {
  1216. case 0:
  1217. send_color = 'red';
  1218. send_text = '待发送';
  1219. break;
  1220. case 1:
  1221. send_color = '#FF9900';
  1222. send_text = '群发中';
  1223. break;
  1224. case 2:
  1225. send_color = '#88d743';
  1226. send_text = '已群发';
  1227. break;
  1228. }
  1229. html += '<div class="tweets-card-title"><p style="color:' + send_color + '">发送时间:' + Table.api.formatter.datetime(row.sendtime, row, index) + ' ' + send_text + '</p></div>';
  1230. html += '<div class="tweets-card-title"><p>群发类型:' + offical_type + '</p></div>';
  1231. html += '</div></div><div class="img_txt_url"><ul>';
  1232. var txtlis = '';
  1233. for(var i=0; i<message_data.length; i++){
  1234. var scolor = '';
  1235. if(message_data[i]['type'] == 4) scolor = 'style="color:#333"';
  1236. txtlis += '<li>\
  1237. <p '+ scolor +'>' + message_data[i]['title'] + '</p>\
  1238. <div class="img_txt_tip_box">\
  1239. <i class="anticon anticon-novel-edit" style="font-size: 13px;" data-toggle="tooltip" data-original-title="编辑链接" data-id="'+row.id+'"></i>\
  1240. <i class="anticon anticon-delete" data-toggle="tooltip" data-original-title="删除链接" data-id="'+row.id+'"></i>\
  1241. </div>\
  1242. </li>'
  1243. }
  1244. html += txtlis +'</ul></div><ul class="footer-btns">';
  1245. html += '<li><a class="btn-del-ajax" href="javascript:void(0);" data-href="/admin/vipcustom/viplinktextmedia/del?table=media&ids=' + row.id + '">删除</a></li>';
  1246. html += '<li><a class="btn-view-ajax" href="javascript:void(0);" data-href="/admin/vipcustom/viplinktextmedia/viewdetail?ids=' + row.id + '">查看详情</a></li>';
  1247. //html += '<li><a rel="popover" data-rowid="' + row.id + '">群发</a></li>';
  1248. html += '<li><a href="javascript:void(0);" class="btn-multi-ajax" data-href="/admin/vipcustom/viplinktextmedia/multisendmessage?table=media&ids=' + row.id + '&official_type=0" data-rowid="' + row.id + '">群发</a></li>';
  1249. html += '</ul></div></div></div>';
  1250. return html;
  1251. }
  1252. }
  1253. }
  1254. };
  1255. return Controller;
  1256. });