给商品模型添加搜索设定

来源:互联网 发布:淘宝装修用什么版本? 编辑:程序博客网 时间:2024/06/07 14:17

请先看看京东的商品搜索。

通常都有基础搜索属性及高级搜索属性。为了区分这两个,特意给每一个可以搜索的属性添加上一个功能。









效果图如下:





拖曳排序:


后台数据交换格式:



代码如下:

<%@ page import="Easis.util.DataTable" %><%@ page import="Easis.util.DataRow" %><%@ page import="Easis.Common.StringUtil" %><%@ page import="Easis.util.PagerResult" %><%@ page import="com.eweb.Controller.admin.Shop.ModuleController" %><%@ page import="com.alibaba.fastjson.JSON" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><%    /************************************     初始化参数--给予默认值     ************************************/    ModuleController.SearchSettingViewObject detailview = (ModuleController.SearchSettingViewObject) request.getAttribute("obj");    ModuleController.ViewItem model = detailview.model;%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <meta http-equiv="X-UA-Compatible" content="IE=7"/>    <title>        <%=detailview.model.name%> - 搜索条件设定    </title>    <%@include file="/WEB-INF/jsp/global/padmin.css.jsp" %>    <%@include file="/WEB-INF/jsp/global/admin.js.jsp" %>    <link type="text/css" rel="stylesheet" href="/static/UI/jquery-ui-1.11.0/jquery-ui.min.css">    <script src="/static/UI/jquery-ui-1.11.0/jquery-ui.min.js"></script>    <style type="text/css">html {        _overflow-y: scroll    }</style></head><body><div class="subnav">    <div class="content-menu ib-a blue line-x">        <a class="add fb" href="javascript:void(0);"><em>模型管理</em></a>         <a href='javascript:;' class="on"><em><%=detailview.model.name%>搜索条件设定</em></a>        <span>|</span>        <a href='javascript:history.back(-1);'><em>返回上一页</em></a>        <!--<span>|</span>        <a href=''><em></em></a>-->    </div></div><div class="pad-10">    <form action="" method="post" id="myform">        <fieldset>            <legend>基本信息</legend>            <table width="100%" class="table_form">                <tr style="display: none;">                    <th>主键:</th>                    <td>                        <input id="txt_id" type="hidden" name="model.id" value="<%=model.id%>"/>                        【隐藏字段】                        <span tipsfor="tips_model_id"></span>                    </td>                </tr>                <tr>                    <th width="80">模型名称:</th>                    <td class="y-bg"><%=model.name%></td>                </tr>                <tr>                    <th width="80">属性列表:</th>                    <td class="y-bg">                        <span style="background-color:#638421;padding-right:10px;"> </span>表示该属性可用于搜索,<span style="background-color: #999999;padding-right: 10px;"> </span>表示该属性不可用于搜索。                    </td>                </tr>                <tr>                    <th width="80"> </th>                    <td class="y-bg">                        <div id="attrList" class="tagsinput"></div>                    </td>                </tr>                <tr>                    <th width="80">基础搜索:</th>                    <td class="y-bg">                        <input type="button" value="编辑" onclick="_editBaseAttrList();" class="button">                    </td>                </tr>                <tr>                    <th width="80"> </th>                    <td class="y-bg">                        <div id="baseSearchAttrList" class="tagsinput"></div>                    </td>                </tr>                <tr>                    <th width="80">高级搜索:</th>                    <td class="y-bg">                        <input type="button" value="编辑" onclick="_editAdAttrList();" class="button">                    </td>                </tr>                <tr>                    <th width="80"> </th>                    <td class="y-bg">                        <div id="advancedSearchAttrList" class="tagsinput"></div>                    </td>                </tr>            </table>        </fieldset>        <div class="bk15"></div>        <!--        <fieldset>            <legend>FTP服务器</legend>            <table width="100%" class="table_form">                <tr>                    <th width="80">服务器地址:</th>                    <td class="y-bg"><input type="text" class="input-text" name="host" id="host" size="30"/></td>                </tr>            </table>        </fieldset>        <div class="bk15"></div>        -->        <input type="button" class="button" id="dosubmit" name="dosubmit" onclick="saveToServer();" value="保存修改"/>    </form></div><script type="text/javascript">      var _attrList=<%=JSON.toJSONString(detailview.attrList)%>;//当前资料的json数组。      var _baseSearchAttrList=[];//基础搜索属性列表。      var _advancedSearchAttrList=[];//高级搜索属性列表      function _resetAttrList(){          var arr2=_attrList.sort(function(a,b){              var _a_orders=(a["usedInSearch"]?0:1)*9999+(a["enabled"]?0:1)*9999+parseInt(a.orders);              var _b_orders=(b["usedInSearch"]?0:1)*9999+(b["enabled"]?0:1)*9999+parseInt(b.orders);              return _a_orders-_b_orders;          });         _attrList=arr2;          var html=[];          var _str_baselist="";          for(var i=0;i<_baseSearchAttrList.length;i++){              _str_baselist+=",,"+_baseSearchAttrList[i]["id"]+",,";          }          var _str_adlist="";          for(var i=0;i<_advancedSearchAttrList.length;i++){              _str_baselist+=",,"+_advancedSearchAttrList[i]["id"]+",,";          }          for(var i=0;i<_attrList.length;i++){              var item=_attrList[i];              if(_str_baselist.indexOf(",,"+item["id"]+",,")!=-1||_str_adlist.indexOf(",,"+item["id"]+",,")!=-1){                  continue;              }              var _str_item="";              //'<li arrindex="'+i+'" attrid="'+item["id"]+'" attrname="'+item["name"]+'" attrorders="'+item["orders"]+'" attrcolor="'+item["color"]+'"><span class="option_text">'+item["name"]+'(排序:'+item["orders"]+')</span>' +              //'<a onclick="javascript:editSingleSelectOption(this);">编辑</a><a onclick="javascript:deleteSingleSelectOption(this);" >删除</a></li>';              if(item["enabled"]==false||item["usedInSearch"]==false){                  _str_item='<span class="tag" arrindex="'+i+'" style="background-color: #999999;" >'+item["name"]+'</span>';              }              else{                  _str_item='<span class="tag" arrindex="'+i+'"><span class="tag_title"  >'+item["name"]+'</span></span>';              }              html.push(_str_item);          }          $("#attrList").html(html.join(""));      }      var _hashAttrList={};//建立一个对象用于存放相关key值对。      (function(){          for(var i=0;i<_attrList.length;i++){          var item=_attrList[i];              _hashAttrList["key"+item["id"]]=item;          }      })();    _resetAttrList();    function _resetBaseAttrList(){            var arr2=_baseSearchAttrList.sort(function(a,b){                var _a_orders=(a["suborders"]==undefined?parseInt(a.orders):parseInt(a["suborders"]));                var _b_orders=(b["suborders"]==undefined?parseInt(b.orders):parseInt(b["suborders"]));                return _a_orders-_b_orders;            });            _baseSearchAttrList=arr2;            var html=[];            for(var i=0;i<_baseSearchAttrList.length;i++){                var item=_baseSearchAttrList[i];                var _str_item="";                //'<li arrindex="'+i+'" attrid="'+item["id"]+'" attrname="'+item["name"]+'" attrorders="'+item["orders"]+'" attrcolor="'+item["color"]+'"><span class="option_text">'+item["name"]+'(排序:'+item["orders"]+')</span>' +                //'<a onclick="javascript:editSingleSelectOption(this);">编辑</a><a onclick="javascript:deleteSingleSelectOption(this);" >删除</a></li>';                _str_item='<span class="tag" arrindex="'+i+'"><span class="tag_title"  >'+item["name"]+'</span></span>';                html.push(_str_item);            }            $("#baseSearchAttrList").html(html.join(""));    }      _resetBaseAttrList();    function _resetAdvancedAttrList(){        var arr2=_advancedSearchAttrList.sort(function(a,b){            var _a_orders=(a["suborders"]==undefined?parseInt(a.orders):parseInt(a["suborders"]));            var _b_orders=(b["suborders"]==undefined?parseInt(b.orders):parseInt(b["suborders"]));            return _a_orders-_b_orders;        });        _advancedSearchAttrList=arr2;        var html=[];        for(var i=0;i<_advancedSearchAttrList.length;i++){            var item=_advancedSearchAttrList[i];            var _str_item="";            //'<li arrindex="'+i+'" attrid="'+item["id"]+'" attrname="'+item["name"]+'" attrorders="'+item["orders"]+'" attrcolor="'+item["color"]+'"><span class="option_text">'+item["name"]+'(排序:'+item["orders"]+')</span>' +            //'<a onclick="javascript:editSingleSelectOption(this);">编辑</a><a onclick="javascript:deleteSingleSelectOption(this);" >删除</a></li>';            _str_item='<span class="tag" arrindex="'+i+'"><span class="tag_title"  >'+item["name"]+'</span></span>';            html.push(_str_item);        }        $("#advancedSearchAttrList").html(html.join(""));    }    _resetAdvancedAttrList();</script><script type="text/javascript">    function _editBaseAttrList(){        var _str_baselist="";        for(var i=0;i<_baseSearchAttrList.length;i++){            _str_baselist+=",,"+_baseSearchAttrList[i]["id"]+",,";        }        var _str_adlist="";        for(var i=0;i<_advancedSearchAttrList.length;i++){            _str_baselist+=",,"+_advancedSearchAttrList[i]["id"]+",,";        }        var html_leftList=[];        for(var i=0;i<_attrList.length;i++ ){            var id=_attrList[i]["id"];            if((_str_adlist.indexOf(",,"+id+",,")!=-1||_str_baselist.indexOf(",,"+id+",,")!=-1)||_attrList[i]["usedInSearch"]==false){                continue;            }            var item=_attrList[i];            var _str='<option value="'+item["id"]+'">'+item["name"]+'</option>';            html_leftList.push(_str);        }        var html_rightList=[];        for(var i=0;i<_baseSearchAttrList.length;i++){            var item=_baseSearchAttrList[i];            html_rightList.push('<option value="'+item["id"]+'">'+item["name"]+'</option>');        }        var str_tpl=[];        str_tpl.push("<div class=\"lr_container\">   ");        str_tpl.push("  <div class=\"lr_select_side\">   ");        str_tpl.push("  <p>待选区</p>    ");        str_tpl.push(" <select id=\"selectL\" name=\"selectL\" multiple=\"multiple\" class=\"lr_select\">    ");        str_tpl.push(html_leftList.join(""));        str_tpl.push("   </select>   ");        str_tpl.push("  </div>    ");        str_tpl.push(" <div class=\"lr_select_opt\">      ");        str_tpl.push("  <p id=\"toright\" title=\"添加\" onclick='_moveToRight();'>></p>     ");        str_tpl.push("   <p id=\"toleft\" title=\"移除\" onclick='_moveToLeft();'><</p>  ");        str_tpl.push("   </div>   ");        str_tpl.push("  <div class=\"lr_select_side\">    ");        str_tpl.push(" <p>已选区</p>  ");        str_tpl.push("   <select id=\"selectR\" name=\"selectR\" multiple=\"multiple\" class=\"lr_select\"> ");        str_tpl.push(html_rightList.join(""));        str_tpl.push("    </select>   ");        str_tpl.push("  </div>  ");        str_tpl.push("</div>");        art.dialog({            title:"添加及移除基础搜索属性",            content:str_tpl.join(""),            okVal:"确定",            lock:true,            ok:function(){                _saveSelectResult("base");                return true;            },            cancelVal:"取消",            cancel:function(){}        });            }    function _moveToRight(){        var selectL=$("#selectL");        var selectedListL=selectL.find("option:selected");        if(selectedListL.length<=0){            return;        }        var selectR=$("#selectR");        selectedListL.each(function(){            $(this).remove().appendTo(selectR);        });    }    function _moveToLeft(){        var selectL=$("#selectL");        var selectR=$("#selectR");        var selectedListR=selectR.find("option:selected");        if(selectedListR.length<=0){            return;        }        selectedListR.each(function(){            $(this).remove().appendTo(selectL);        });    }    function _saveSelectResult(type){        var selectL=$("#selectL");        var selectR=$("#selectR");        var selectedListR=selectR.find("option");        if(type=="base"){            _baseSearchAttrList=[];        }        else if(type="advanced"){            _advancedSearchAttrList=[];        }        selectedListR.each(function(){                var id=$(this).val();                if(type=="base"){                    _baseSearchAttrList.push(_hashAttrList["key"+id]);                }                else if(type="advanced"){                    _advancedSearchAttrList.push(_hashAttrList["key"+id]);                }            });        if(type=="base"){            _resetAttrList();            _resetBaseAttrList();        }        else if(type=="advanced"){            _resetAttrList();            _resetAdvancedAttrList();        }        return;    }    function _editAdAttrList(){        var _str_baselist="";        for(var i=0;i<_baseSearchAttrList.length;i++){            _str_baselist+=",,"+_baseSearchAttrList[i]["id"]+",,";        }        var _str_adlist="";        for(var i=0;i<_advancedSearchAttrList.length;i++){            _str_baselist+=",,"+_advancedSearchAttrList[i]["id"]+",,";        }        var html_leftList=[];        for(var i=0;i<_attrList.length;i++ ){            var id=_attrList[i]["id"];            if((_str_adlist.indexOf(",,"+id+",,")!=-1||_str_baselist.indexOf(",,"+id+",,")!=-1)||_attrList[i]["usedInSearch"]==false){                continue;            }            var item=_attrList[i];            var _str='<option value="'+item["id"]+'">'+item["name"]+'</option>';            html_leftList.push(_str);        }        var html_rightList=[];        for(var i=0;i<_advancedSearchAttrList.length;i++){            var item=_advancedSearchAttrList[i];            html_rightList.push('<option value="'+item["id"]+'">'+item["name"]+'</option>');        }        var str_tpl=[];        str_tpl.push("<div class=\"lr_container\">   ");        str_tpl.push("  <div class=\"lr_select_side\">   ");        str_tpl.push("  <p>待选区</p>    ");        str_tpl.push(" <select id=\"selectL\" name=\"selectL\" multiple=\"multiple\" class=\"lr_select\">    ");        str_tpl.push(html_leftList.join(""));        str_tpl.push("   </select>   ");        str_tpl.push("  </div>    ");        str_tpl.push(" <div class=\"lr_select_opt\">      ");        str_tpl.push("  <p id=\"toright\" title=\"添加\" onclick='_moveToRight();'>></p>     ");        str_tpl.push("   <p id=\"toleft\" title=\"移除\" onclick='_moveToLeft();'><</p>  ");        str_tpl.push("   </div>   ");        str_tpl.push("  <div class=\"lr_select_side\">    ");        str_tpl.push(" <p>已选区</p>  ");        str_tpl.push("   <select id=\"selectR\" name=\"selectR\" multiple=\"multiple\" class=\"lr_select\"> ");        str_tpl.push(html_rightList.join(""));        str_tpl.push("    </select>   ");        str_tpl.push("  </div>  ");        str_tpl.push("</div>");        art.dialog({            title:"编辑高级搜索",            content:str_tpl.join(""),            okVal:"确定",            lock:true,            ok:function(){                _saveSelectResult("advanced");                return true;            },            cancelVal:"取消",            cancel:function(){}        });    }</script>    <script type="text/javascript">        //拖曳排序            $(document).ready(function(){                $("#baseSearchAttrList" ).sortable({                    update: function(event, ui) {                        //.log("排序结束");                        var _dom=$("#baseSearchAttrList");                        var _orders=0;                        _dom.find("li").each(function(){                            var _arrindex=parseInt($(this).attr("arrindex"));                            _baseSearchAttrList[_arrindex].suborders=_orders;                            _orders++;                        });                    }                });$( "#baseSearchAttrList" ).disableSelection();                $( "#advancedSearchAttrList" ).sortable({                    update: function(event, ui) {                        //.log("排序结束");                        var _dom=$("#advancedSearchAttrList");                        var _orders=0;                        _dom.find("li").each(function(){                            var _arrindex=parseInt($(this).attr("arrindex"));                            _advancedSearchAttrList[_arrindex].suborders=_orders;                            _orders++;                        });                    }                });$( "#advancedSearchAttrList" ).disableSelection();            });</script><script type="text/javascript">    var saveData={        moduleid:0,        baselist:[],//item为{id:0,suborders:0}        adlist:[]//item为{id:0,suborders:0}    };    function saveToServer(){         saveData.moduleid=$("#txt_id").val();        saveData.baselist=[];        saveData.adlist=[];        for(var i=0;i<_baseSearchAttrList.length;i++){            var item=_baseSearchAttrList[i];            var id=item["id"];            var suborders=item["suborders"]==undefined?0:item["suborders"];            saveData.baselist.push({                id:id,                suborders:suborders            });        }        for(var i=0;i<_advancedSearchAttrList.length;i++){            var item=_advancedSearchAttrList[i];            var id=item["id"];            var suborders=item["suborders"]==undefined?0:item["suborders"];            saveData.adlist.push({                id:id,                suborders:suborders            });        }        layer.alert(""+JSON.stringify(saveData));    }</script></body></html>    


0 0
原创粉丝点击