tmp.js 2.98 KB
function selectCity(id, type, changeUrl) {
	var renderData = function(elId, data, selectedId) {
		var comp = $('#' + elId);
		comp.prop('disabled', true);
		comp.children().remove();
		$.each(data, function(i, item) {
					var content = '<option value="';
					content += item.dataId;
					content += '"';
					if (item.dataId == selectedId) {
						content += ' selected="selected"';
					}
					content += '>';
					content += item.label;
					content += '</option>';
					comp.append(content);
				});
		comp.prop('disabled', false);
	};

	var modal = new window.bs.modal({
				id : 'cityModal',
				title : '请选择城市',
				closeAction : 'destroy',
				body : [{
							xtype : 'select',
							id : 'province',
							label : '省:',
							events : {
								change : function() {
									var parentId = this.value;
									$.get('/dataAuth/listJson.do', {
												type : 'city',
												parentId : parentId
											}, function(data) {
												if (data.success) {
													if (data.data.length > 0) {
														renderData('city', data.data, id);
													} else {
														var city = $('#city');
														city.children().remove();
														var val = $('#province').val();
														var text = $('#province>option:selected').text();
														city.append('<option value="' + val + '">' + text + '</option>');
													}
												}
											}, 'json');
								}
							}
						}, {
							xtype : 'select',
							id : 'city',
							label : '市:',
							disabled : true,
							options : [{
										text : '请选择',
										value : ''
									}]
						}],
				footer : [{
							xtype : 'button',
							value : '确定',
							cls : 'btn btn-primary',
							events : {
								click : function() {
									var val = $('#city>option:selected').val();
									window.location.href = changeUrl + '?type=' + type + '&current=' + val;
								}
							}
						}]
			});
	modal.show();
	$.get('/dataAuth/findByDataIdJson.do', {
				type : 'city',
				dataId : id
			}, function(data) {
				if (data.success) {
					var da = data.data;
					if (da) {
						var selectedPId = null;
						if (da.parentDataId == 0) {
							$.get('/dataAuth/listJson.do', {
										type : 'city',
										parentId : 0
									}, function(res) {
										if (res.success) {
											renderData('province', res.data, da.dataId);
											renderData('city', [da], da.dataId);
										}
									}, 'json');
						} else {
							$.get('/dataAuth/listJson.do', {
										type : 'city',
										parentId : 0
									}, function(res) {
										if (res.success) {
											renderData('province', res.data, da.parentDataId);
											$.get('/dataAuth/listJson.do', {
														type : 'city',
														parentId : da.parentDataId
													}, function(res) {
														if (res.success) {
															renderData('city', res.data, da.dataId);
														}
													}, 'json');
										}
									}, 'json');
						}
					}
				}
			}, 'json');
}