device-cat-select-jqcontrol.js
5.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
(function ($) {
$.extend({
//初始化配置
initcat: function (e, p) {
p = $.extend({
urlOrData: null, // 地址获取设备类型数据
deviceParentCat: '', // 一级分类控件ID
deviceChildCat: '', //二级分类控件ID
animate: { showClass: '', hideClass: '' }, // 显示/隐藏动画效果
onChoice: false // 选择后执行的事件
}, p);
var deviceParentCat = p.deviceParentCat ? p.deviceParentCat : 'deviceParentCat';
var deviceChildCat = p.deviceChildCat ? p.deviceChildCat : 'deviceChildCat';
var option = {
_LoadParentCat:function (control,getDeviceCatListURL) {
$.ajax({
type: "post",
url: getDeviceCatListURL,
dataType:"json",
data: $.csrf({"parentId":0}),
success:function(msg){
if(msg['status'] == 1){
var data = eval(msg['modelList']);
var html = "<option value=''>--请选择--</option>";
for(var s in data){
html = html +"<option value='"+data[s]['id']+"'>"+data[s]['name']+"</option>";
}
$(control).html(html);
//触发二级选择
//$("#deviceParentCat").trigger("change");
}else{
//提示确认失败
alert("加载失败");
}
},
error:function(msg){
//提示确认失败
alert("加载异常");
}
});
},
_Change:function(pid,getDeviceCatListURL,childselect){
if(pid == ""){
$("#"+childselect).html("<option value=''>--请选择二级分类--</option>");
return false;
}
$.ajax({
type: "post",
url:getDeviceCatListURL,
dataType:"json",
data: $.csrf({"parentId":pid}),
success:function(msg){
if(msg['status'] == 1){
var data = eval(msg['modelList']);
var html = "<option value=''>--请选择二级分类--</option>";
var cat_id = $("#hid_cat_id").val();
for(var s in data){
if(parseInt(cat_id) == parseInt(data[s]['id'])){
html = html +"<option value='"+data[s]['id']+"' selected=\"selected\">"+data[s]['name']+"</option>";
}else{
html = html +"<option value='"+data[s]['id']+"'>"+data[s]['name']+"</option>";
}
}
$("#"+childselect).html(html);
}else{
alert("加载失败");
}
},
error:function(msg){
//提示确认失败
alert("加载异常");
}
});
},
//加载数据
loadData: function () {
if (typeof p.urlOrData == 'string') {
option._LoadParentCat($("#"+deviceParentCat),p.urlOrData);
var pid = $("#"+deviceParentCat).val();
option._Change(pid,p.urlOrData,deviceChildCat);
}
}
}
option.loadData();
$(e).bind("change",function(){
var pid = $("#"+deviceParentCat).val();
option._Change(pid,p.urlOrData,deviceChildCat);
});
}
});
$.fn.extend({
initcat: function (p) {
return this.each(function () {
$.initcat(this, p);
});
}
});
})(jQuery);
/*
使用方法:
<script src="<?php echo Url::toRoute('/exts-src/base/1.0.0/ui/device-cat-select/device-cat-select-jqcontrol.js'); ?>" type="text/javascript" ></script>
$(function () {
$('#deviceParentCat').initcat({
urlOrData: '<?=Url::toRoute("/device/model/get-device-cat-list")?>', // 地址获取设备类型数据
deviceParentCat: 'deviceParentCat', // 一级分类控件ID
deviceChildCat: 'deviceChildCat', //二级分类控件ID
animate: { showClass: 'animated flipInX', hideClass: 'animated flipOutX' },
onChoice: function (data) {
console.log(data);
}
});
});
*/