cascade_street.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /**
  2. * @name jQuery Cascdejs plugin
  3. * @author rayyang
  4. * @version 1.0
  5. * @level 4级
  6. */
  7. //首先需要初始化
  8. var _provinceNetworkData =null;
  9. var _cityNetworkData =null;
  10. var _districtNetworkData =null;
  11. var _streetNetworkData =null;
  12. function cascdeInit(v1,v2,v3,v4){
  13. getProvinceData(v1,v2,v3,v4);
  14. }
  15. // 获取省数据
  16. function getProvinceData(v1,v2,v3,v4){
  17. $.ajax({
  18. url:window.sysinfo.get_address,
  19. data:{type:'province'},
  20. type:'GET', //GET
  21. async:true, //或false,是否异步
  22. timeout:5000, //超时时间
  23. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  24. success:function(data){
  25. _provinceNetworkData = data;
  26. getCityData(v1,v2,v3,v4);
  27. }
  28. })
  29. }
  30. // 获取城市数据
  31. function getCityData(v1,v2,v3,v4){
  32. if(!v1){
  33. v1 = $("#sel-provance").attr("value");
  34. }
  35. $.ajax({
  36. url:window.sysinfo.get_address,
  37. data:{type:'city',parentid:v1},
  38. type:'GET', //GET
  39. async:true, //或false,是否异步
  40. timeout:5000, //超时时间
  41. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  42. success:function(data){
  43. //console.log(data)
  44. _cityNetworkData = data;
  45. getDistrictData(v1,v2,v3,v4);
  46. }
  47. });
  48. }
  49. // 获取区数据
  50. function getDistrictData(v1,v2,v3,v4){
  51. if(!v2){
  52. v2 = $("#sel-city").attr("value");
  53. }
  54. $.ajax({
  55. url:window.sysinfo.get_address,
  56. data:{type:'district',parentid:v2},
  57. type:'GET', //GET
  58. async:true, //或false,是否异步
  59. timeout:5000, //超时时间
  60. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  61. success:function(data){
  62. //console.log(data)
  63. _districtNetworkData = data;
  64. getStreetData(v1,v2,v3,v4);
  65. }
  66. })
  67. }
  68. // 获取街道
  69. function getStreetData(v1,v2,v3,v4){
  70. if(!v3){
  71. v3 = $("#sel-area").attr("value");
  72. }
  73. $.ajax({
  74. url:window.sysinfo.get_address,
  75. data:{type:'street',parentid:v3},
  76. type:'GET', //GET
  77. async:true, //或false,是否异步
  78. timeout:5000, //超时时间
  79. dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text
  80. success:function(data){
  81. //console.log(data)
  82. _streetNetworkData = data;
  83. setProvinceData(v1,v2,v3,v4);
  84. }
  85. })
  86. }
  87. // 设置省
  88. function setProvinceData(v1,v2,v3,v4){
  89. let _pro_id = $("#sel-provance").attr("value");
  90. var _html = "";
  91. _html += '<option value="0">请选择省份</option>';
  92. for (var i = 0; i < _provinceNetworkData.length; i++) {
  93. var _selected = '';
  94. if (v1 == _provinceNetworkData[i].id || _provinceNetworkData[i].id == _pro_id ) {
  95. _selected = 'selected="selected"';
  96. }
  97. _html += '<option '+_selected+' value="'+_provinceNetworkData[i].id+'">'+_provinceNetworkData[i].areaname+'</option>';
  98. }
  99. $("#sel-provance").html(_html);
  100. setCityData(v1,v2,v3,v4);
  101. }
  102. //设置市
  103. function setCityData(v1,v2,v3,v4){
  104. let _city_id = $("#sel-city").attr("value");
  105. var _html = '<option value="0">请选择城市</option>';
  106. for (var i = 0; i < _cityNetworkData.length; i++) {
  107. var _selected = '';
  108. if (v2 == _cityNetworkData[i].id || _cityNetworkData[i].id == _city_id ) {
  109. _selected = 'selected="selected"';
  110. }
  111. _html += '<option '+_selected+' value="'+_cityNetworkData[i].id+'">'+_cityNetworkData[i].areaname+'</option>';
  112. }
  113. $("#sel-city").html(_html);
  114. setDistrictData(v1,v2,v3,v4);
  115. }
  116. //设置区
  117. function setDistrictData(v1,v2,v3,v4){
  118. let _area_id = $("#sel-area").attr("value");
  119. var _html = "";
  120. _html += '<option value="0">请选择区域</option>';
  121. for (var i = 0; i < _districtNetworkData.length; i++) {
  122. var _selected = '';
  123. if (v3 == _districtNetworkData[i].id || _districtNetworkData[i].id == _area_id) {
  124. _selected = 'selected="selected"';
  125. }
  126. _html += '<option '+_selected+' value="'+_districtNetworkData[i].id+'">'+_districtNetworkData[i].areaname+'</option>';
  127. }
  128. $("#sel-area").html(_html);
  129. setStreetData(v1,v2,v3,v4);
  130. }
  131. //设置区
  132. function setStreetData(v1,v2,v3,v4){
  133. let _street_id = $("#sel-street").attr("value");
  134. var _html = "";
  135. _html += '<option value="0">请选择街道</option>';
  136. for (var i = 0; i < _streetNetworkData.length; i++) {
  137. var _selected = '';
  138. if (v4 == _streetNetworkData[i].id || _streetNetworkData[i].id == _street_id ) {
  139. _selected = 'selected="selected"';
  140. }
  141. _html += '<option '+_selected+' value="'+_streetNetworkData[i].id+'">'+_streetNetworkData[i].areaname+'</option>';
  142. }
  143. $("#sel-street").html(_html);
  144. }
  145. /*
  146. //依据省设置城市,县,街道
  147. */
  148. function selectCity() {
  149. var _provanceid = $("#sel-provance").val();
  150. getCityData(_provanceid);
  151. setProvinceData(_provanceid);
  152. }
  153. function selectcounty() {
  154. var _provanceid = $("#sel-provance").val();
  155. var _cityid = $("#sel-city").val();
  156. getCityData(_provanceid,_cityid);
  157. setProvinceData(_provanceid,_cityid);
  158. }
  159. function selectstreet() {
  160. var _provanceid = $("#sel-provance").val();
  161. var _cityid = $("#sel-city").val();
  162. var _areaid = $("#sel-area").val();
  163. getDistrictData(_provanceid,_cityid,_areaid);
  164. setProvinceData(_provanceid,_cityid,_areaid);
  165. }