fastadmin弹出窗口选择的前端效果

应用场景:当一个部门,选择负责人的时候,会用到。从100多个员工中选择一个负责人,需要弹出窗口,窗口里面是员工的列表。类似这种应用场景还有很多。

在admin控制器里面,增加一个select函数,select函数里面和index函数一样,都是获取员工列表。

在view层的模板里面,创建一个选择按钮, 选择

在select.js里面做以下定义:

select: function(){
          var table = $("#table");
          $(".btn-chooseone").on("click",function(e){
              console.log($(this).attr('title'));
              console.log($(this).attr('alt'));
              Fast.api.close({url:'dfefe', multiple: false});
          });
          Controller.api.bindevent();
},

这个代码的意思是点击“选择”以后,回传到参数。

下面看打开窗口的代码:

$(".btn-openwindow").bind('click',function(){
	var that = this;
	var multiple = $(this).data("multiple") ? $(this).data("multiple") : false;
	var mimetype = $(this).data("mimetype") ? $(this).data("mimetype") : '';
	parent.Fast.api.open("auth/admin/select?element_id=" + $(this).attr("id") + "&multiple=" + multiple + "&mimetype=" + mimetype, __('Choose'), {
		callback: function (data) {
			var button = $("#" + $(that).attr("id"));//当前按钮的id
			var maxcount = $(button).data("maxcount");//最大数量
			var input_id = $(button).data("input-id") ? $(button).data("input-id") : "";//指定元素的id
			maxcount = typeof maxcount !== "undefined" ? maxcount : 0;
			if (input_id && data.multiple) {
				var urlArr = [];
				var inputObj = $("#" + input_id);
				var value = $.trim(inputObj.val());
				if (value !== "") {
					urlArr.push(inputObj.val());
				}
				urlArr.push(data.url);
				var result = urlArr.join(",");
				if (maxcount > 0) {
					var nums = value === '' ? 0 : value.split(/\,/).length;
					var files = data.url !== "" ? data.url.split(/\,/) : [];
					var remains = maxcount - nums;
					if (files.length > remains) {
						Toastr.error(__('You can choose up to %d file%s', remains));
						return false;
					}
				}
				inputObj.val(result).trigger("change");
			} else {
				$("#" + input_id).val(data.url).trigger("change");//触发onchange事件
			}
		}
	});
	return false;
});


你可能感兴趣的:(fastadmin)