/* for theme TaJian */ (function() { // 公用功能 var taJian = { debug: false, domain: 'https://tajian.tv', apis: { addVideos: '/frontapi/addfav', //添加视频 setNickname: '/frontapi/setnickname', //设置昵称 saveTags: '/frontapi/savetags', //保存分类 deleteTag: '/frontapi/deletetag', //删除分类 addTag: '/frontapi/addtag', //添加分类 updateFavsTag: '/frontapi/updatefavstag', //修改视频的分类 deleteFav: '/frontapi/deletefav', //删除收藏的视频 createNewFav: '/frontapi/createdir', //创建新的收藏夹 shareFav2Friend: '/frontapi/sharedir', //共享收藏夹给朋友 deleteSharedFav: '/frontapi/delsharedir', //取消共享收藏夹给朋友 sendSmsCode: '/frontapi/sendsmscode', //发送短信验证码 register: '/frontapi/createuser', //注册 login: '/frontapi/loginuser' //登入 } }; var publicAjax = function(apiUrl, method, datas, callback, fail) { let self = this; let Options = { url: apiUrl, method: method, data: datas, dataType: 'json' }; if (self.debug) { Options.crossDomain = true; Options.xhrFields = { withCredentials: true }; } $.ajax(Options).done(function(data) { callback(data); }).fail(function (jqXHR, textStatus, errorThrown) { fail(jqXHR, textStatus, errorThrown); }); }; //多用户支持 if (typeof(current_user_id) != 'undefined' && current_user_id) { for (var apiKey in taJian.apis) { taJian.apis[apiKey] = '/' + current_user_id + taJian.apis[apiKey]; } } //--v2.0-- // 图片异步加载 if ($("img.lazy").get(0)) { $("img.lazy").lazyload({ effect: "fadeIn", event: "scroll" }); } if ($('.connectmeJS').get(0)) { // 点击打开右侧弹出框 $('.connectmeJS').click(function () { $('.blank_coverJS, .right_sideboxJS').removeClass('elementNone'); window.setTimeout(function () { $('.blank_coverJS').addClass('opacityshow'); $('.right_sideboxJS').addClass('sideboxShow'); }, 0); }); // 点击关闭右侧弹出框 $('.rtcloseJS').click(function () { $('.blank_coverJS').removeClass('opacityshow'); $('.right_sideboxJS').removeClass('sideboxShow'); window.setTimeout(function () { $('.blank_coverJS, .right_sideboxJS').addClass('elementNone'); }, 500); }); } /* //TODO: 待实现 // 打开移动端搜索框 if ($('.search_mob_JS').get(0)) { $('.search_mob_JS').click(function () { $('.blank_coverJS, .mobile_search_JS').removeClass('elementNone'); window.setTimeout(function () { $('.blank_coverJS').addClass('opacityshow'); $('.mobile_search_JS').addClass('sideboxShow'); }, 0); $('#mobile_search .ms_input_js').focus(); }); $('.ms_close_JS').click(function () { $('.blank_coverJS').removeClass('opacityshow'); $('.mobile_search_JS').removeClass('sideboxShow'); window.setTimeout(function () { $('.blank_coverJS, .mobile_search_JS').addClass('elementNone'); }, 500); }); } // 搜索相关 $('#search_form .jsbtn').click(function (e) { e.preventDefault(); if (!$('#search_form .input_sf_JS').val()) { //TODO: do something return; } $('#search_form').submit(); }); */ // 添加视频 if ($('#add_video_form').get(0)) { var handle_add_fav = function (e) { e.preventDefault(); var inputList = $('#add_video_form textarea'); var selectedTag = $('#add_video_form select').val(); if (!inputList[0].value) { alert('请填写分享内容或网址!'); return false; }else if (!selectedTag) { alert('请先选择分类!'); return false; } let bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); let datas = { 'content': inputList[0].value, 'tag': selectedTag } let apiUrl = taJian.debug ? taJian.domain + taJian.apis.addVideos : taJian.apis.addVideos; publicAjax(apiUrl, 'POST', datas, function (data) { bt.prop('disabled', false); btText.text('提交'); btLoading.addClass('elementNone'); if (data.code == 1) { if (data.err) { alert(data.err); }else { $(inputList[0]).val(''); } //alert(data.msg || data.err); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('提交'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#add_video_form .jsbtn').click(handle_add_fav); $('#add_video_form').submit(handle_add_fav); } // 注册帮用户填默认邀请码 if ($('.bt_kf_JS').get(0)) { var kf_default_code = $('.bt_kf_JS').attr('data-default-code'); $('.bt_kf_JS').click(function(e) { $('input[name=friendscode]').val(kf_default_code); }); } //验证码发送 if ($('.bt_sms_JS').get(0)) { var timer_restore_smsBtn = null, timer_num = 60; var autoRestoreSmsBtn = function() { if (timer_restore_smsBtn) {clearTimeout(timer_restore_smsBtn);} if (timer_num <= 0) { $('.bt_sms_JS').removeAttr('disabled').text('发送验证码'); timer_num = 60; return false; } timer_num --; $('.bt_sms_JS').prop('disabled', true).text('已发送(' + timer_num + ')'); timer_restore_smsBtn = setTimeout(autoRestoreSmsBtn, 1000); }; $('.bt_sms_JS').click(function(e) { var cellphone = $('input[name=username]').val(); if (/^1[3-9][0-9]{9}$/.test(cellphone) == false) { alert('请填写正确的手机号码!'); $('input[name=username]').focus(); return false; } autoRestoreSmsBtn(); //调用api发送验证码 var cellphone = $('input[name=username]').val(); var datas = { 'phoneNum': cellphone, 'action': $('#login_form').get(0) ? 'login' : 'register' }; publicAjax(taJian.apis.sendSmsCode, 'POST', datas, function (data) { if (data.code == 0 && data.err) { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { alert('网络请求失败,请重试。'); }); }); } // 注册 if ($('#register_form').get(0)) { var handle_register = function(e) { e.preventDefault(); var friends_code = $('input[name=friendscode]').val(), cellphone = $('input[name=username]').val(), smscode = $('input[name=smscode]').val(); if (!friends_code || !cellphone || !smscode) { alert('请填写完整再注册!'); return false; }else if (!friends_code) { alert('请填写邀请码:朋友的手机尾号 6 位(或加客服微信索要)!'); return false; }else if (!cellphone) { alert('请填写手机号码!'); return false; }else if (!smscode) { alert('请填写你手机收到的短信验证码!'); return false; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'friendscode': friends_code, 'username': cellphone, 'smscode': smscode }; publicAjax(taJian.apis.register, 'POST', datas, function (data) { btLoading.addClass('elementNone'); if (data.code == 1 && data.shareUrl) { btText.text('完成'); //alert(data.msg); setTimeout(function() { location.href = data.shareUrl; }, 100); } else { btText.text('注册'); bt.prop('disabled', false); alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('注册'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#register_form .jsbtn').click(handle_register); $('#register_form').submit(handle_register); } // 登录 if ($('#login_form').get(0)) { var handle_login = function(e) { e.preventDefault(); var cellphone = $('input[name=username]').val(), smscode = $('input[name=smscode]').val(); if (!cellphone || !smscode) { alert('请填写完整再登录!'); return false; }else if (!cellphone) { alert('请填写手机号码!'); return false; }else if (!smscode) { alert('请填写你手机收到的短信验证码!'); return false; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'username': cellphone, 'smscode': smscode }; publicAjax(taJian.apis.login, 'POST', datas, function (data) { btLoading.addClass('elementNone'); if (data.code == 1 && data.shareUrl) { btText.text('完成'); //alert(data.msg); setTimeout(function() { location.href = data.shareUrl; }, 100); } else { btText.text('登录'); bt.prop('disabled', false); alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('登录'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#login_form .jsbtn').click(handle_login); $('#login_form').submit(handle_login); } // 设置昵称 if ($('#nickname_form').get(0)) { var handle_save_nickname = function(e) { e.preventDefault(); var nickname = $('input[name=nickname]').val(); if (!nickname) { alert('请填写 2 - 5 个汉字的昵称!'); return false; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'nickname': nickname }; publicAjax(taJian.apis.setNickname, 'POST', datas, function (data) { btLoading.addClass('elementNone'); bt.prop('disabled', false); btText.text('保存'); if (data.code == 1) { //alert(data.msg); location.reload(); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('保存'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#nickname_form .jsbtn').click(handle_save_nickname); $('#nickname_form').submit(handle_save_nickname); } // tag分类管理 if ($('#tags_form').get(0)) { $('#tags_form .tag-item img').click(function(e) { var action = $(this).attr('data-action'); var current_el = $(this).parents('.tag-item'), next_el = current_el.next('.tag-item'), prev_el = current_el.prev('.tag-item'); var current_tag = current_el.find('input').val(), another_tag; if (action == 'up' && prev_el.length > 0) { another_tag = prev_el.find('input').val(); prev_el.find('input').val(current_tag); }else if (action == 'down' && next_el.length > 0) { another_tag = next_el.find('input').val(); next_el.find('input').val(current_tag); } current_el.find('input').val(another_tag); }); $('#tags_form .tag-item button.btn-danger').click(function(e) { var current_el = $(this).parents('.tag-item'), current_tag = current_el.find('input').val(); if ($('#tags_form input').length == 1) { alert('请至少保留一个分类!'); return false; } if (confirm('确定删除分类“' + current_tag + '”吗?')) { var datas = { 'tag': current_tag }; publicAjax(taJian.apis.deleteTag, 'POST', datas, function (data) { if (data.code == 1) { current_el.remove(); location.reload(); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { alert('网络请求失败,请重试。'); }); } }); var handle_save_tags = function(e) { e.preventDefault(); var tag_els = $('#tags_form input'), tags = []; if (tag_els.length == 0) { alert('请至少保留一个分类!'); return false; } var allTagsOk = true, tagName = ''; for (var index=0;index 15 || isNaN(tagName) == false) { allTagsOk = false; break; } tags.push(tagName); } if (!allTagsOk) { alert('请按规则填写分类名称'); return; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'tags': tags }; publicAjax(taJian.apis.saveTags, 'POST', datas, function (data) { btLoading.addClass('elementNone'); bt.prop('disabled', false); btText.text('保存'); if (data.code == 1) { //alert(data.msg); location.reload(); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('保存'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#tags_form .jsbtn').click(handle_save_tags); $('#tags_form').submit(handle_save_tags); } // 添加tag分类 if ($('#tag_new_form').get(0)) { var handle_new_tag = function(e) { e.preventDefault(); var tag = $('#tag_new_form input[name=tag]').val(); if (!tag || tag.length < 2 || tag.length > 15 || isNaN(tag) == false) { alert('请按规则填写分类名称!'); return false; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'tag': tag }; publicAjax(taJian.apis.addTag, 'POST', datas, function (data) { btLoading.addClass('elementNone'); bt.prop('disabled', false); btText.text('保存'); if (data.code == 1) { //alert(data.msg); location.reload(); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('保存'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#tag_new_form .jsbtn').click(handle_new_tag); $('#tag_new_form').submit(handle_new_tag); } // 视频管理 if ($('#favmg').get(0)) { $('#favmg .act_tags input[type=checkbox]').change(function(e) { var checkbox = e.target; var action = checkbox.checked ? 'add' : 'remove'; var label = $(checkbox).parents('label'), video_id = label.attr('data-video-id'), filename = label.attr('data-filename'), tag = label.attr('data-tag'); $(checkbox).prop('disabled', true); var datas = { 'do': action, 'id': video_id, 'filename': filename, 'tag': tag }; publicAjax(taJian.apis.updateFavsTag, 'POST', datas, function (data) { $(checkbox).prop('disabled', false); if (data.code != 1) { $(checkbox).prop('checked', !checkbox.checked); alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { $(checkbox).prop('disabled', false); alert('网络请求失败,请重试。'); }); }); $('#favmg .favmg-item .btn-del').click(function(e) { var target = e.target; if (target.tagName.toLowerCase() != 'button') { target = $(target).parents('.btn-del'); } var video_id = $(target).attr('data-video-id'), filename = $(target).attr('data-filename'); //console.log('clicked', video_id, filename); if (confirm('确定删除此视频吗?')) { $(target).prop('disabled', true); var datas = { 'id': video_id, 'filename': filename }; publicAjax(taJian.apis.deleteFav, 'POST', datas, function (data) { $(target).prop('disabled', false); if (data.code == 1) { location.reload(); }else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { $(target).prop('disabled', false); alert('网络请求失败,请重试。'); }); } }); } // 分享收藏夹 if ($('#share_form').get(0)) { var clipboard = new ClipboardJS('#share_form .jsbtn'); clipboard.on('success', function(e) { e.clearSelection(); $('#share_form .jsbtn').text('已复制'); setTimeout(function() { $('#share_form .jsbtn').text('复制'); }, 5000); }); clipboard.on('error', function(e) { alert('复制失败,请手动选择后复制。'); }); } // 创建新收藏夹账号 if ($('#dir_new_form').get(0)) { var handle_new_dir = function(e) { e.preventDefault(); var nickname = $('input[name=nickname]').val(); if (!nickname) { alert('请填写 2 - 5 个汉字的昵称!'); return false; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'nickname': nickname }; publicAjax(taJian.apis.createNewFav, 'POST', datas, function (data) { btLoading.addClass('elementNone'); bt.prop('disabled', false); btText.text('保存'); if (data.code == 1) { //alert(data.msg); location.href = '/' + current_user_id + '/my/dirs'; } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('保存'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#dir_new_form .jsbtn').click(handle_new_dir); $('#dir_new_form').submit(handle_new_dir); } // 共享收藏夹账号 if ($('#share_dir_form').get(0)) { var handle_share_dir = function(e) { e.preventDefault(); var cellphone = $('input[name=cellphone]').val(), favName = $('select[name=dir]').val(); if (!cellphone) { alert('请填写需要共享的朋友手机号码!'); return false; }else if (!favName) { alert('请选择需要共享的账号!'); return false; } var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); var datas = { 'cellphone': cellphone, 'dir': favName }; publicAjax(taJian.apis.shareFav2Friend, 'POST', datas, function (data) { btLoading.addClass('elementNone'); bt.prop('disabled', false); btText.text('保存'); if (data.code == 1) { location.reload(); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { bt.prop('disabled', false); btText.text('保存'); btLoading.addClass('elementNone'); alert('网络请求失败,请重试。'); }); }; $('#share_dir_form .jsbtn').click(handle_share_dir); $('#share_dir_form').submit(handle_share_dir); //取消共享 var handle_delete_share = function(e) { var btn = $(e.target); if (e.target.tagName.toLowerCase() != 'button') { btn = btn.parents('button'); } var cellphone = btn.attr('data-cellphone'), dir = btn.attr('data-dir'), favName = btn.text().replace(/\s/g, ''); if (!cellphone || !dir) { alert('系统异常,请刷新网页!'); return false; } if (confirm('确定取消账号共享【' + favName + '】吗?')) { btn.prop('disabled', true); var datas = { 'cellphone': cellphone, 'dir': dir }; publicAjax(taJian.apis.deleteSharedFav, 'POST', datas, function (data) { btn.prop('disabled', false); if (data.code == 1) { location.reload(); } else { alert(data.err); } }, function (jqXHR, textStatus, errorThrown) { btn.prop('disabled', false); alert('网络请求失败,请重试。'); }); } }; $('.my_share_dirs .btn-del').click(handle_delete_share); } })();