createcustom.js 59 KB

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