fastadmin/public/assets/js/addons.js

106 lines
4.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

define([], function () {
require([], function () {
//绑定data-toggle=addresspicker属性点击事件
$(document).on('click', "[data-toggle='addresspicker']", function () {
var that = this;
var callback = $(that).data('callback');
var input_id = $(that).data("input-id") ? $(that).data("input-id") : "";
var lat_id = $(that).data("lat-id") ? $(that).data("lat-id") : "";
var lng_id = $(that).data("lng-id") ? $(that).data("lng-id") : "";
var lat = lat_id ? $("#" + lat_id).val() : '';
var lng = lng_id ? $("#" + lng_id).val() : '';
var url = "/addons/address/index/select";
url += (lat && lng) ? '?lat=' + lat + '&lng=' + lng : '';
Fast.api.open(url, '位置选择', {
callback: function (res) {
input_id && $("#" + input_id).val(res.address);
lat_id && $("#" + lat_id).val(res.lat);
lng_id && $("#" + lng_id).val(res.lng);
try {
//执行回调函数
if (typeof callback === 'function') {
callback.call(that, res);
}
} catch (e) {
}
}
});
});
});
require.config({
paths: {
'fullcalendar': '../libs/fullcalendar/dist/fullcalendar',
'fullcalendar-lang': '../libs/fullcalendar/dist/locale/zh-cn',
},
// shim依赖配置
shim: {
'fullcalendar-lang': ['fullcalendar'],
},
});
require.config({
paths: {
'async': '../addons/example/js/async',
'BMap': ['//api.map.baidu.com/api?v=2.0&ak=mXijumfojHnAaN2VxpBGoqHM'],
},
shim: {
'BMap': {
deps: ['jquery'],
exports: 'BMap'
}
}
});
//修改验证码为检验验证
require.config({
paths: {
'geet': '../addons/geet/js/gt'
}
});
require(['geet'], function (Geet) {
var geetInit = false;
$("input[name='captcha']").each(function () {
var obj = $(this);
var form = obj.closest('form');
$("<input type='hidden' name='geeturl' value='" + (form.attr("action") ? form.attr("action") : location.pathname + location.search) + "' />").appendTo(form);
$("<input type='hidden' name='geetmodule' value='" + Config.modulename + "' />").appendTo(form);
$("<input type='hidden' name='geetmoduleurl' value='" + Config.moduleurl + "' />").appendTo(form);
form.attr('action', Fast.api.fixurl('/addons/geet/index/check'));
obj.parent().removeClass('input-group').addClass('form-group').html('<div id="embed-captcha"><input type="hidden" name="captcha" class="form-control" data-rule="请完成验证码,验证码:required;" /> </div> <p id="wait" class="show">正在加载验证码......</p>');
var handlerEmbed = function (captchaObj) {
// 将验证码加到id为captcha的元素里同时会有三个input的值geetest_challenge, geetest_validate, geetest_seccode
geetInit = captchaObj;
captchaObj.appendTo("#embed-captcha");
captchaObj.onReady(function () {
$("#wait")[0].className = "hide";
});
captchaObj.onSuccess(function () {
var result = captchaObj.getValidate();
if (result) {
$('#embed-captcha input[name="captcha"]').val('ok');
}
});
// 更多接口参考http://www.geetest.com/install/sections/idx-client-sdk.html
};
Fast.api.ajax("/addons/geet/index/start", function (data) {
// 更多配置参数请参见http://www.geetest.com/install/sections/idx-client-sdk.html#config
// 使用initGeetest接口
// 参数1配置参数
// 参数2回调回调的第一个参数验证码对象之后可以使用它做appendTo之类的事件
initGeetest({
gt: data.gt,
challenge: data.challenge,
new_captcha: data.new_captcha,
product: "embed", // 产品形式包括floatembedpopup。注意只对PC版验证码有效
width: '100%',
offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注
}, handlerEmbed);
form.on("error.form", function (e, data) {
geetInit.reset();
});
return false;
});
});
});
});