地区三级联动实现形式
地区三级联动实现方式
<pre name="code" class="html"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>rui</title> <script type="text/javascript" src="resources/js/comm/jquery-1.8.0.min.js"></script> <script type="text/javascript"> $(function() { getAreas("P", "#areaOne"); }) function openTwo(code) { $("#areaTwo").html('<option value="">请选择:</option>'); $("#areaThree").html('<option value="">请选择:</option>'); getAreas(code.value, "#areaTwo"); } function openThree(code) { getAreas(code.value, "#areaThree"); } //通过等级获取了菜单 function getAreas(level, seleId) { $.ajax({ url : "/baseClicent/base/getAreas", type : "POST", dataType : "json", data : { code : level }, success : function(returnData, status) { if (status = "success") { var data = returnData.data; //alert(JSON.stringify(data)) $(seleId).html('<option value="">请选择:</option>'); var html = ''; for (var i = 0; i < data.length; i++) { html += '<option value="'+data[i].code+'" >' + data[i].name + '</option>'; } $(seleId).append(html); } } }); } </script> </head> <body> <select onchange="openTwo(this)" id="areaOne"> </select> <select onchange="openThree(this)" id="areaTwo"> <option>请选择</option> </select> <select id="areaThree"> <option>请选择</option> </select> </body> </html>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.youboy.base.mapper.AreaMapper"> <cache eviction="LRU" size="500" readOnly="true" /> <!-- 关联多表所需查询字段sql 单位和状态 --> <sql id="selectJoinTabField"> </sql> <!-- 插入字段sql --> <sql id="dbField"> <trim suffix="" suffixOverrides=","> <!-- <if test="amount != null and amount != ''">AMOUNT,</if> --> </trim> </sql> <!-- 插入值sql --> <sql id="dbFieldValue"> <trim suffix="" suffixOverrides=","> <!-- <if test="amount != null and amount != ''">#{amount},</if> --> </trim> </sql> <!-- 更新对象判断 --> <sql id="dbUpdateField"> <set> </set> </sql> <!-- 搜索条件判断 --> <sql id="dbSearchField"> <where> <!-- <if test="employee != null and employee != ''">AND EMPLOYEE=#{employee}</if> --> </where> </sql> <!--=========================查询数据返回集合 配置====================================================== --> <resultMap type="com.youboy.base.domain.BArea" id="resultMapId"> <id property="id" column="id" jdbcType="INTEGER" javaType="Integer" /> </resultMap> <!--=========================增加============================================================================= --> <insert id="insert" parameterType="com.youboy.base.domain.BArea"> INSERT INTO DEPOSIT ( <include refid="dbField" /> ) VALUES( <include refid="dbFieldValue" /> ) </insert> <!--=========================修改===================================================== --> <update id="update" parameterType="com.youboy.base.domain.BArea"> </update> <!--=========================删除 ==================================================================== --> <delete id="delete" parameterType="Integer"> </delete> <!--=========================根据id查询对象 productResMap =========================================================== --> <select id="get" parameterType="Integer" resultMap="resultMapId"> </select> <!--=========================查询搜索 账户信息 变更情况 ============================================================================= --> <select id="queryPage" parameterType="com.youboy.baseSystemService.dto.query.Query" resultMap="resultMapId"> SELECT * FROM AREA <include refid="dbSearchField" /> ORDER BY CODE ASC LIMIT #{mStartRow},#{mPageSize} </select> <!--=========================查询总记录数 ===================================================================== --> <select id="searchDataSize" parameterType="com.youboy.baseSystemService.dto.query.Query" resultType="long"> SELECT COUNT(*) AS COUNT FROM AREA TP <include refid="dbSearchField" /> </select> <!--=========================查询全部 ============================================================================= --> <select id="queryByLevel" parameterType="string" resultMap="resultMapId"> <choose> <when test="level=='2'.toString()"> SELECT NAME,CODE FROM AREA WHERE PARENTID LIKE CONCAT(#{code},'%') AND STATUS='OFF' AND TYPE ='C' ORDER BY CODE ASC </when> <when test="level=='4'.toString()"> SELECT NAME,CODE FROM AREA WHERE PARENTID LIKE CONCAT(#{code},'%') AND STATUS='OFF' AND TYPE ='D' ORDER BY CODE ASC </when> <when test="code=='P'.toString()"> SELECT NAME,CODE FROM AREA WHERE CHAR_LENGTH(CODE)=2 ORDER BY CODE ASC; </when> </choose> </select> </mapper>
@Override public List<AreaBean> queryBylevel(String code) throws baseWebOSException { if ("".equals(code) || null == code) { throw new baseWebOSException(ExceptionCode.ARED_QUERY, "地区编码不能为空"); } String level = code.length() + ""; // 直辖市 if ("11".equals(code) || "12".equals(code) || "31".equals(code) || "50".equals(code)) { level = "4"; } // 直辖市 没有三级可查 if (code.length() == 6) { return null; } List<BArea> result = areaDao.queryByLevel(level, code); if (result == null) { return null; } // 转bean BeanCopier copier = BeanCopier.create(BArea.class, AreaBean.class, false); List<AreaBean> beanList = new LinkedList<AreaBean>(); for (BArea entity : result) { AreaBean area = new AreaBean(); copier.copy(entity, area, null); beanList.add(area); } return beanList; }