查询条件与查询数据的ajax拼装

打印 上一主题 下一主题

主题 1627|帖子 1627|积分 4881

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面我将先容如何使用 AJAX 动态拼装查询条件和获取查询数据,包罗前端和后端的完备实现方案。
一、前端实现方案

1. 基础 HTML 布局

html
复制
  1. <div class="query-container">
  2.     <!-- 查询条件表单 -->
  3.     <form id="queryForm">
  4.         <div class="form-group">
  5.             <label>用户名:</label>
  6.             <input type="text" name="username" class="form-control">
  7.         </div>
  8.         <div class="form-group">
  9.             <label>状态:</label>
  10.             <select name="status" class="form-control">
  11.                 <option value="">全部</option>
  12.                 <option value="1">启用</option>
  13.                 <option value="0">禁用</option>
  14.             </select>
  15.         </div>
  16.         <div class="form-group">
  17.             <label>注册时间:</label>
  18.             <input type="date" name="startDate" class="form-control">
  19.             <span>至</span>
  20.             <input type="date" name="endDate" class="form-control">
  21.         </div>
  22.         <button type="button" id="queryBtn" class="btn btn-primary">查询</button>
  23.         <button type="reset" class="btn btn-default">重置</button>
  24.     </form>
  25.    
  26.     <!-- 查询结果表格 -->
  27.     <table id="resultTable" class="table table-striped">
  28.         <thead>
  29.             <tr>
  30.                 <th>ID</th>
  31.                 <th>用户名</th>
  32.                 <th>状态</th>
  33.                 <th>注册时间</th>
  34.             </tr>
  35.         </thead>
  36.         <tbody>
  37.             <!-- 数据将通过AJAX动态填充 -->
  38.         </tbody>
  39.     </table>
  40.     <div id="pagination"></div>
  41. </div>
复制代码
运行 HTML
2. jQuery AJAX 实现

javascript
复制
  1. $(function() {
  2.     // 查询按钮点击事件
  3.     $('#queryBtn').click(function() {
  4.         loadData(1); // 加载第一页数据
  5.     });
  6.    
  7.     // 初始加载第一页数据
  8.     loadData(1);
  9.    
  10.     // 加载数据函数
  11.     function loadData(pageNum) {
  12.         // 1. 收集表单数据
  13.         var formData = $('#queryForm').serialize();
  14.         
  15.         // 2. 添加分页参数
  16.         var queryParams = formData + '&pageNum=' + pageNum + '&pageSize=10';
  17.         
  18.         // 3. 显示加载中状态
  19.         $('#resultTable tbody').html('<tr><td colspan="4" class="text-center">加载中...</td></tr>');
  20.         
  21.         // 4. 发送AJAX请求
  22.         $.ajax({
  23.             url: '/api/user/list',
  24.             type: 'GET',
  25.             data: queryParams,
  26.             dataType: 'json',
  27.             success: function(response) {
  28.                 if (response.success) {
  29.                     // 渲染表格数据
  30.                     renderTable(response.data.list);
  31.                     // 渲染分页
  32.                     renderPagination(pageNum, response.data.total, response.data.pages);
  33.                 } else {
  34.                     alert(response.message);
  35.                 }
  36.             },
  37.             error: function(xhr) {
  38.                 alert('请求失败: ' + xhr.statusText);
  39.             }
  40.         });
  41.     }
  42.    
  43.     // 渲染表格数据
  44.     function renderTable(data) {
  45.         var $tbody = $('#resultTable tbody');
  46.         $tbody.empty();
  47.         
  48.         if (data.length === 0) {
  49.             $tbody.append('<tr><td colspan="4" class="text-center">暂无数据</td></tr>');
  50.             return;
  51.         }
  52.         
  53.         $.each(data, function(i, item) {
  54.             var statusText = item.status === 1 ? '启用' : '禁用';
  55.             var row = '<tr>' +
  56.                 '<td>' + item.id + '</td>' +
  57.                 '<td>' + item.username + '</td>' +
  58.                 '<td>' + statusText + '</td>' +
  59.                 '<td>' + new Date(item.createTime).toLocaleString() + '</td>' +
  60.                 '</tr>';
  61.             $tbody.append(row);
  62.         });
  63.     }
  64.    
  65.     // 渲染分页
  66.     function renderPagination(currentPage, total, totalPages) {
  67.         var $pagination = $('#pagination');
  68.         $pagination.empty();
  69.         
  70.         if (totalPages <= 1) return;
  71.         
  72.         // 上一页
  73.         if (currentPage > 1) {
  74.             $pagination.append('<button class="page-btn" data-page="' + (currentPage - 1) + '">上一页</button>');
  75.         }
  76.         
  77.         // 页码
  78.         for (var i = 1; i <= totalPages; i++) {
  79.             var active = i === currentPage ? 'active' : '';
  80.             $pagination.append('<button class="page-btn ' + active + '" data-page="' + i + '">' + i + '</button>');
  81.         }
  82.         
  83.         // 下一页
  84.         if (currentPage < totalPages) {
  85.             $pagination.append('<button class="page-btn" data-page="' + (currentPage + 1) + '">下一页</button>');
  86.         }
  87.         
  88.         // 分页按钮事件
  89.         $('.page-btn').click(function() {
  90.             var page = $(this).data('page');
  91.             loadData(page);
  92.         });
  93.     }
  94. });
复制代码
3. 使用 Axios 实现 (现代推荐)

javascript
复制
  1. document.addEventListener('DOMContentLoaded', function() {
  2.     const queryBtn = document.getElementById('queryBtn');
  3.     const queryForm = document.getElementById('queryForm');
  4.     const resultTable = document.getElementById('resultTable').getElementsByTagName('tbody')[0];
  5.     const pagination = document.getElementById('pagination');
  6.    
  7.     // 查询按钮点击事件
  8.     queryBtn.addEventListener('click', () => loadData(1));
  9.    
  10.     // 初始加载
  11.     loadData(1);
  12.    
  13.     async function loadData(pageNum) {
  14.         try {
  15.             // 1. 收集表单数据
  16.             const formData = new FormData(queryForm);
  17.             const params = new URLSearchParams();
  18.             
  19.             // 2. 添加表单数据到查询参数
  20.             formData.forEach((value, key) => {
  21.                 if (value) params.append(key, value);
  22.             });
  23.             
  24.             // 3. 添加分页参数
  25.             params.append('pageNum', pageNum);
  26.             params.append('pageSize', 10);
  27.             
  28.             // 4. 显示加载状态
  29.             resultTable.innerHTML = '<tr><td colspan="4" class="text-center">加载中...</td></tr>';
  30.             
  31.             // 5. 发送请求
  32.             const response = await axios.get('/api/user/list', { params });
  33.             
  34.             if (response.data.success) {
  35.                 renderTable(response.data.data.list);
  36.                 renderPagination(pageNum, response.data.data.total, response.data.data.pages);
  37.             } else {
  38.                 alert(response.data.message);
  39.             }
  40.         } catch (error) {
  41.             alert('请求失败: ' + error.message);
  42.         }
  43.     }
  44.    
  45.     function renderTable(data) {
  46.         resultTable.innerHTML = '';
  47.         
  48.         if (data.length === 0) {
  49.             resultTable.innerHTML = '<tr><td colspan="4" class="text-center">暂无数据</td></tr>';
  50.             return;
  51.         }
  52.         
  53.         data.forEach(item => {
  54.             const statusText = item.status === 1 ? '启用' : '禁用';
  55.             const row = document.createElement('tr');
  56.             row.innerHTML = `
  57.                 <td>${item.id}</td>
  58.                 <td>${item.username}</td>
  59.                 <td>${statusText}</td>
  60.                 <td>${new Date(item.createTime).toLocaleString()}</td>
  61.             `;
  62.             resultTable.appendChild(row);
  63.         });
  64.     }
  65.    
  66.     function renderPagination(currentPage, total, totalPages) {
  67.         pagination.innerHTML = '';
  68.         
  69.         if (totalPages <= 1) return;
  70.         
  71.         // 上一页
  72.         if (currentPage > 1) {
  73.             const prevBtn = document.createElement('button');
  74.             prevBtn.className = 'page-btn';
  75.             prevBtn.textContent = '上一页';
  76.             prevBtn.dataset.page = currentPage - 1;
  77.             prevBtn.addEventListener('click', () => loadData(parseInt(prevBtn.dataset.page)));
  78.             pagination.appendChild(prevBtn);
  79.         }
  80.         
  81.         // 页码
  82.         for (let i = 1; i <= totalPages; i++) {
  83.             const pageBtn = document.createElement('button');
  84.             pageBtn.className = i === currentPage ? 'page-btn active' : 'page-btn';
  85.             pageBtn.textContent = i;
  86.             pageBtn.dataset.page = i;
  87.             pageBtn.addEventListener('click', () => loadData(parseInt(pageBtn.dataset.page)));
  88.             pagination.appendChild(pageBtn);
  89.         }
  90.         
  91.         // 下一页
  92.         if (currentPage < totalPages) {
  93.             const nextBtn = document.createElement('button');
  94.             nextBtn.className = 'page-btn';
  95.             nextBtn.textContent = '下一页';
  96.             nextBtn.dataset.page = currentPage + 1;
  97.             nextBtn.addEventListener('click', () => loadData(parseInt(nextBtn.dataset.page)));
  98.             pagination.appendChild(nextBtn);
  99.         }
  100.     }
  101. });
复制代码
二、后端实现方案 (Spring Boot)

1. 控制器实现

java
复制
  1. @RestController
  2. @RequestMapping("/api/user")
  3. public class UserController {
  4.     @Autowired
  5.     private UserService userService;
  6.     @GetMapping("/list")
  7.     public Result listUsers(UserQuery query,
  8.                           @RequestParam(defaultValue = "1") Integer pageNum,
  9.                           @RequestParam(defaultValue = "10") Integer pageSize) {
  10.         PageInfo<User> pageInfo = userService.queryUsers(query, pageNum, pageSize);
  11.         return Result.success(pageInfo);
  12.     }
  13. }
复制代码
2. 查询参数对象

java
复制
  1. public class UserQuery {
  2.     private String username;
  3.     private Integer status;
  4.     private Date startDate;
  5.     private Date endDate;
  6.    
  7.     // getter 和 setter 方法
  8.     // ...
  9. }
复制代码
3. 服务层实现

java
复制
  1. @Service
  2. public class UserServiceImpl implements UserService {
  3.     @Autowired
  4.     private UserMapper userMapper;
  5.     @Override
  6.     public PageInfo<User> queryUsers(UserQuery query, Integer pageNum, Integer pageSize) {
  7.         PageHelper.startPage(pageNum, pageSize);
  8.         List<User> users = userMapper.selectByQuery(query);
  9.         return new PageInfo<>(users);
  10.     }
  11. }
复制代码
4. MyBatis Mapper 示例

java
复制
  1. public interface UserMapper {
  2.     List<User> selectByQuery(UserQuery query);
  3. }
复制代码
xml
复制
  1. <!-- mapper.xml -->
  2. <select id="selectByQuery" resultType="User" parameterType="UserQuery">
  3.     SELECT * FROM user
  4.     <where>
  5.         <if test="username != null and username != ''">
  6.             AND username LIKE CONCAT('%', #{username}, '%')
  7.         </if>
  8.         <if test="status != null">
  9.             AND status = #{status}
  10.         </if>
  11.         <if test="startDate != null">
  12.             AND create_time >= #{startDate}
  13.         </if>
  14.         <if test="endDate != null">
  15.             AND create_time <![CDATA[<=]]> #{endDate}
  16.         </if>
  17.     </where>
  18.     ORDER BY id DESC
  19. </select>
复制代码
运行 HTML
5. 统一返回结果封装

java
复制
  1. public class Result implements Serializable {
  2.     private boolean success;
  3.     private String message;
  4.     private Object data;
  5.    
  6.     public static Result success(Object data) {
  7.         Result result = new Result();
  8.         result.setSuccess(true);
  9.         result.setData(data);
  10.         return result;
  11.     }
  12.    
  13.     public static Result error(String message) {
  14.         Result result = new Result();
  15.         result.setSuccess(false);
  16.         result.setMessage(message);
  17.         return result;
  18.     }
  19.    
  20.     // getter 和 setter 方法
  21.     // ...
  22. }
复制代码
三、高级功能扩展

1. 防抖处理处罚 (优化频繁查询)

javascript
复制
  1. // 使用 lodash 的防抖函数
  2. $('#queryBtn').click(_.debounce(function() {
  3.     loadData(1);
  4. }, 500));
复制代码
2. 查询条件本地存储

javascript
复制
  1. // 保存查询条件
  2. function saveQueryParams() {
  3.     const formData = $('#queryForm').serializeArray();
  4.     localStorage.setItem('lastQueryParams', JSON.stringify(formData));
  5. }
  6. // 加载上次查询条件
  7. function loadQueryParams() {
  8.     const params = localStorage.getItem('lastQueryParams');
  9.     if (params) {
  10.         const formData = JSON.parse(params);
  11.         formData.forEach(item => {
  12.             $(`[name="${item.name}"]`).val(item.value);
  13.         });
  14.     }
  15. }
复制代码
3. 导出查询结果

javascript
复制
  1. function exportData() {
  2.     const formData = $('#queryForm').serialize();
  3.     window.open('/api/user/export?' + formData, '_blank');
  4. }
复制代码
四、最佳实践建议


  • 参数校验:前后端都要对查询参数举行校验
  • 分页处理处罚:大数据量时务必使用分页
  • 性能优化:添加符合的数据库索引
  • 错误处理处罚:友爱的错误提示和日志纪录
  • 安全性:防止SQL注入和XSS攻击
  • API文档:使用Swagger等工具天生API文档
通过以上实现,您可以构建一个完备的、可维护的查询功能,满意大多数业务场景的需求。

  1. /**
  2.  * 按品种查询资源
  3.  *
  4.  * @param breedId
  5.  *            品名Id集,单个或多个
  6.  */
  7. function searchMarket(breedId)
  8. {
  9.     var prBreedId=pi;
  10.     $.ajax
  11.     ({
  12.         url: "/resource/getMarketProperties.jsp",
  13.         type:"post",
  14.         async:false,
  15.         data:{"breedId":breedId,"prBreedId":prBreedId},
  16.         dataType:"text",
  17.         success: function(message){
  18.             
  19.             var data = eval("(" + message + ")");
  20.             var breed = eval("("+ data.breedJsonProperty +")");
  21.             
  22.             var material = eval("("+ data.materialJsonProperty +")");
  23.             var spec = eval("("+ data.specJsonProperty +")");
  24.             var brand = eval("("+ data.brandJsonProperty +")");
  25.             
  26.             // 刷新选择收索部分的数据
  27.             changeHtml(breed,"breed",breedId);
  28.             changeHtml(material,"material",breedId);
  29.             changeHtml(spec,"spec",breedId);
  30.             changeBrandHtml(brand);
  31.             // 刷新输入框部分收索数据
  32.             clickBreed(breed,material,spec,brand);
  33.             
  34.             // 品名的全部初值设置为当前大品名
  35.             document.getElementById("breed_option_all").href = "javascript:searchMarket('"+ prBreedId +"');searchParams['breedNames']='';searchParams['breedIds']='';searchParams['breedInfos']='';searchByParams();";
  36.             // 设置为全部
  37.             $("#material_option_all").attr("class","option-all cur");
  38.             $("#spec_option_all").attr("class","option-all cur");
  39.             $("#brand_option_all").attr("class","option-all cur");
  40.             
  41.           }
  42.     });
  43. }
  44. /**
  45.  * 单选查询品种
  46.  *
  47.  * @param breedId
  48.  * @param breedName
  49.  */
  50. function searchBySingleBreed(breedId, breedName) {
  51.     var breedInfo = {};
  52.     breedInfo[breedId] = breedName;
  53.     searchParams["breedInfos"] = breedInfo;
  54.     searchByParams();
  55. }
  56. /**
  57.  * 确认执行多选品种
  58.  */
  59. function searchByMultiBreed() {
  60.     $("#breedReset").click();
  61.     var breedParams = {};
  62.     var breedIds = "";
  63.     $("[name='breedIds']:checked").each(function() {
  64.         var breedId = $(this).val();
  65.         var breedName = $("#label_breed_" + breedId).text();
  66.         breedParams[breedId] = breedName;
  67.         if (breedIds == "") {
  68.             breedIds += breedId;
  69.         } else {
  70.             breedIds += "," + breedId;
  71.         }
  72.     });
  73.     searchParams["breedInfos"] = breedParams;
  74.     searchMarket(breedIds);
  75.     searchByParams();
  76. }
  77. /**
  78.  * 确认执行多选材质
  79.  */
  80. function searchByMultiMaterial() {
  81.     $("#materialReset").click();
  82.     var materials = "";
  83.     $("[name='materialIds']:checked").each(function() {
  84.         var material = $(this).val();
  85.         if (materials == "") {
  86.             materials += material;
  87.         } else {
  88.             materials += "," + material;
  89.         }
  90.     });
  91.     searchParams["materials"] = materials;
  92.     searchByParams();
  93. }
  94. /**
  95.  * 确认执行多选规格
  96.  */
  97. function searchByMultiSpec() {
  98.     $("#specReset").click();
  99.     var specs = "";
  100.     $("[name='specIds']:checked").each(function() {
  101.         var spec = $(this).val();
  102.         if (specs == "") {
  103.             specs += spec;
  104.         } else {
  105.             specs += "," + spec;
  106.         }
  107.     });
  108.     searchParams["specs"] = specs;
  109.     searchByParams();
  110. }
  111. /**
  112.  * 确认执行多选交货地
  113.  */
  114. function searchByMultiCity() {
  115.     $("#cityReset").click();
  116.     var cities = "";
  117.     var cityNameMutis = "";
  118.     $("[name='cityIds']:checked").each(function() {
  119.         var city = $(this).val().split(",")[0];
  120.         var cityNameMuti = $(this).val().split(",")[1];
  121.         if (cities == "") {
  122.             cities += city;
  123.         } else {
  124.             cities += "," + city;
  125.         }
  126.         
  127.         if (cityNameMutis == "") {
  128.             cityNameMutis += cityNameMuti;
  129.         } else {
  130.             cityNameMutis += "," + cityNameMuti;
  131.         }
  132.     });
  133.     searchParams["cityId"] = cities;
  134.     searchParams["cityName"] = cityNameMutis;
  135.     searchByParams();
  136. }
  137. /**
  138.  * 点击钢厂logo相应事件
  139.  */
  140. function clickBrandLogo(brand) {
  141.     var resetButton = $("#brandReset");
  142.     if (resetButton.is(":hidden")) {
  143.         searchParams["brands"] = brand;
  144.         searchByParams();
  145.     } else {
  146.         var selectItem = document.getElementById("brandDiv_" + brand);
  147.         selectItem.setAttribute("class", "selected");
  148.     }
  149. }
  150. /**
  151.  * 确认执行钢厂多选
  152.  */
  153. function searchByMultiBrand() {
  154.     // 回到单选
  155.     $("#brandReset").click();
  156.     var brands = "";
  157.     $("#show-logo-div .selected").each(function() {
  158.         var id = $(this).attr("id");
  159.         var brand = id.replace("brandDiv_", "");
  160.         if (brands == "") {
  161.             brands += brand;
  162.         } else {
  163.             brands += "," + brand;
  164.         }
  165.     });
  166.     searchParams["brands"] = brands;
  167.     searchByParams();
  168. }
  169. /**
  170.  * 根据城市交货地进行搜索
  171.  *
  172.  * @param obj
  173.  */
  174. function searchByCity(obj){
  175.     var cityName;
  176.     searchParams["warehouses"]="";
  177.     $("#warehouseDiv").remove();
  178.     $("#whText").val("");
  179.     if(obj.id == "quanguo"){
  180.         cityName = "全国";
  181.         ci="";
  182.         searchParams["cityId"]="";
  183.         searchParams["cityName"] = "";
  184.         searchByParams();
  185.         searchWarehouse("");
  186.     }
  187.     else{
  188.         cityName=$("#"+obj.id).text();
  189.         ci=obj.id;
  190.         searchParams["cityName"] = cityName;
  191.         searchParams["cityId"]=obj.id;
  192.         searchByParams();
  193.         searchWarehouse(obj.id);
  194.     }
  195. }
  196. /**
  197.  * 选择城市刷新仓库输入框
  198.  *
  199.  * @param obj
  200.  */
  201.  function searchWarehouse(obj){
  202.             $.ajax
  203.             ({
  204.                 url: "/resource/getWarehouseProperties.jsp",
  205.                 type:"post",
  206.                 data:{"prBreedId":pi,"cityId":obj},
  207.                 dataType:"text",
  208.                 success: function(message){
  209.                     
  210.                     var data = eval("(" + message + ")");
  211.                     var warehouseDa = eval("("+ data.warehouseJsonProperty +")");
  212.                     $("#warehouseSelector").singleSelector("仓库", {
  213.                         "data" : warehouseDa,
  214.                         "defaultValue" : "",
  215.                         "defaultText" : ""
  216.                     }, "whValue", "whText",afterSelectOthers,inputEnter,"down1");
  217.                   }
  218.             });
  219.         }
  220. /**
  221.  * 点击上方品名,下方收索框数据重新加载
  222.  *
  223.  * @param breedData
  224.  *            品名数据
  225.  * @param materialData
  226.  *            材质数据
  227.  * @param specData
  228.  *            规格数据
  229.  * @param brandData
  230.  *            钢厂数据
  231.  */
  232. function clickBreed(breedData,materialData,specData,brandData)
  233. {
  234.     $("#breedSelector").singleSelector("品名", {
  235.         "data" : breedData,
  236.         "defaultValue" : "",
  237.         "defaultText" : ""
  238.     }, "biValue", "bdText",afterSelectBreed,inputEnter,"down1");
  239.     $("#materialSelector").singleSelector("材质", {
  240.         "data" : materialData,
  241.         "defaultValue": "",
  242.         "defaultText": ""
  243.     }, "mlValue", "mlText",afterSelectOthers,inputEnter,"down2");
  244.     $("#specSelector").singleSelector("规格", {
  245.         "data" : specData,
  246.         "defaultValue": "",
  247.         "defaultText": ""
  248.     }, "spValue", "spText",afterSelectOthers,inputEnter,"down2");
  249.     $("#brandSelector").singleSelector("钢厂", {
  250.         "data" : brandData,
  251.         "defaultValue": "",
  252.         "defaultText": ""
  253.     }, "brValue", "brText",afterSelectOthers,inputEnter,"down2");
  254. }
  255. /**
  256.  * 点击品种后更新资源信息
  257.  *
  258.  * @param param
  259.  *            参数对应信息
  260.  * @param paramName
  261.  *            参数名字
  262.  * @param breedId
  263.  *            品种Id
  264.  */
  265. function changeHtml(param,paramName,breedId)
  266. {
  267.     var changeId = "change" + paramName;
  268.     var html = "";
  269.     for(var i=0; i<param.length;i++)
  270.     {
  271.         var css = "";
  272.         if(i>11)
  273.         {
  274.             css = "class='more'";
  275.         }
  276.         
  277.         var method = "";
  278.         if(paramName == "material")
  279.         {
  280.             var paramNames ="materials";
  281.             method+= "searchBySingleParam(""+paramNames+"",""+ param[i].value +"");";
  282.         }    
  283.         if(paramName == "spec")
  284.         {
  285.             var paramNames ="specs";
  286.             method+= "searchBySingleParam(""+paramNames+"",""+ param[i].value +"");";
  287.         }    
  288.         
  289.         if(paramName == "breed")
  290.         {
  291.             method = "searchMarket(""+ param[i].value +"");"+"searchBySingleBreed(""+param[i].value+"",""+ param[i].name +"");";
  292.         }
  293.         var check = "";
  294.         var id = breedId.split(",");
  295.         for(var j=0;j<id.length;j++)
  296.         {
  297.             if(param[i].value == id[j])
  298.             {
  299.                 check = "checked";
  300.             }    
  301.         }    
  302.         html+="<li "+ css +">"+
  303.             "<span class='block-choose-more'>" +
  304.             "<input type='checkbox' "+ check +" class='check-choose' value='"+ param[i].value +"' name='"+ paramName +"Ids' id='checkItem_"+ paramName +"_"+ param[i].value +"' /><label id='label_"+paramName+"_"+param[i].value+"'>"+param[i].name +"</label>"+
  305.             "</span>" +
  306.             "<a href='javascript:"+ method +"' class='listitem-link' id='item_"+ paramName +"_" + param[i].value +"' >" + param[i].name +"</a>" +
  307.             "</li>";
  308.     }
  309.     
  310.     document.getElementById(changeId).innerHTML= html;
  311. }
  312. /**
  313.  * 单选动作,材质规格
  314.  *
  315.  * @param paramName
  316.  *            输入种类
  317.  * @param paramvalue
  318.  *            获取值
  319.  */
  320. function searchBySingleParam(paramName,paramvalue)
  321. {
  322.     searchParams[paramName] = paramvalue;
  323.     searchByParams();
  324. }
  325. /**
  326.  * 选择品种后更新钢厂信息
  327.  *
  328.  * @param paramBrand
  329.  *            钢厂信息
  330.  */
  331. function changeBrandHtml(paramBrand)
  332. {
  333.     var html = "";
  334.     for(var i=0; i<paramBrand.length;i++)
  335.     {
  336.         var count = i+1;
  337.         var css = "";
  338.         if(count>7)
  339.         {
  340.             css = "class='more'";
  341.         }
  342.         var value = "";
  343.         if(count>15)
  344.         {
  345.             value = "more";
  346.         }
  347.         
  348.         var html1 = "onMouseOver='this.style.cursor="pointer";onMouseOver(this,"+ count +")'";
  349.         var html2 = "onMouseOut='onMouseOut(this,"+ count +")'";
  350.         
  351.         html+="<div  id='brandDiv_"+ paramBrand[i].value+ "'" + css + html1 + html2 +" onclick='clickBrandLogo(""+paramBrand[i].value+"")"+"'> "+
  352.         "<span  id='brandSpan_"+ count +"'>" +
  353.         "<input  id='brandInput_"+ count + "'" +" type='hidden' value='"+ paramBrand[i].value +"' />" +
  354.         "<input  id='checkItem_brand_"+ paramBrand[i].value +"' type='hidden'  value='"+ value +"' />" +
  355.         "</span>" +
  356.         "<a id='item_brand_"+ paramBrand[i].value +"'  href='#'  ><img src='../../../skin/images/factory/"+ paramBrand[i].image +".jpg' width='102' height='36' /></a>" +
  357.         "</div>";
  358.     }
  359.     
  360.     html+="<span class='clr'></span>";
  361.     document.getElementById("show-logo-div").innerHTML= html;
  362. }
  363. /**
  364.  * 选择品种下拉输入框触发动作
  365.  *
  366.  * @param value
  367.  *            品名ID
  368.  * @param text
  369.  */
  370. function afterSelectBreed(value,text){
  371.     $.post("/resource/getMarketProperties.jsp",{"breedId":value},
  372.             function(result){
  373.         if(result!=""){
  374.             var data = eval("(" + result + ")");
  375.              var materialData = eval("("+ data.materialJsonProperty +")");
  376.              var specData = eval("("+ data.specJsonProperty +")");
  377.              var brandData = eval("("+ data.brandJsonProperty +")");
  378.         
  379.             $("#materialSelector").singleSelector("材质", {
  380.                 "data" : materialData,
  381.                 "defaultValue" : "",
  382.                 "defaultText" : ""
  383.             }, "mlValue", "mlText",afterSelectOthers,inputEnter,"down2");
  384.             $("#specSelector").singleSelector("规格", {
  385.                 "data" : specData,
  386.                 "defaultValue" : "",
  387.                 "defaultText" : ""
  388.             }, "spValue", "spText",afterSelectOthers,inputEnter,"down2");
  389.             $("#brandSelector").singleSelector("钢厂", {
  390.                 "data" : brandData,
  391.                 "defaultValue" : "",
  392.                 "defaultText" : ""
  393.             }, "brValue", "brText",afterSelectOthers,inputEnter,"down2");
  394.             
  395.             var ids = data.ids;
  396.             var jsonids = eval("("+ ids +")");
  397.             if(jsonids.length == 1)
  398.             {
  399.                 searchRoolerMarket(jsonids[0].id);
  400.                 var breedName = $("#bdText").val();
  401.                 var breedInfo = {};
  402.                 breedInfo[jsonids[0].id] = breedName;
  403.                 searchParams["breedInfos"] = breedInfo;
  404.                 buttonSearch();
  405.             }    
  406.         }
  407.     },"text");
  408. }
  409. /**
  410.  * 选择下拉框品名,重新刷新上方列表数据
  411.  *
  412.  * @param breedId
  413.  */
  414. function searchRoolerMarket(breedId)
  415. {
  416.     var prBreedId=pi;
  417.     $.ajax
  418.     ({
  419.         url: "resource/getMarketProperties.jsp",
  420.         type:"post",
  421.         async:false,
  422.         data:{"breedId":breedId,"pi":prBreedId},
  423.         dataType:"text",
  424.         success: function(message){
  425.             
  426.             var data = eval("(" + message + ")");
  427.             var breed = eval("("+ data.breedJsonProperty +")");
  428.             
  429.             var material = eval("("+ data.materialJsonProperty +")");
  430.             var spec = eval("("+ data.specJsonProperty +")");
  431.             var brand = eval("("+ data.brandJsonProperty +")");
  432.             changeHtml(breed,"breed",breedId);
  433.             changeHtml(material,"material",breedId);
  434.             changeHtml(spec,"spec",breedId);
  435.             changeBrandHtml(brand);
  436.             document.getElementById("breed_option_all").href = "javascript:searchMarket('"+ prBreedId +"');searchParams['breedNames']='';searchParams['breedIds']='';searchParams['breedInfos']='';searchByParams();";
  437.             $("#material_option_all").attr("class","option-all cur");
  438.             $("#spec_option_all").attr("class","option-all cur");
  439.             $("#brand_option_all").attr("class","option-all cur");
  440.           }
  441.     });
  442. }
  443. /**
  444.  * 选择规格、材质、钢厂触发动作
  445.  *
  446.  * @param value
  447.  * @param text
  448.  */
  449. function afterSelectOthers(value, text)
  450. {
  451.     buttonSearch();
  452. }
  453. /**
  454.  * 输入值按enter键进行收索
  455.  *
  456.  * @param value
  457.  * @param text
  458.  */
  459. function inputEnter(value, text)
  460. {
  461.      var events = window.event || arguments.callee.caller.arguments[0];
  462.      if (events.keyCode == 13)
  463.      {
  464.         buttonSearch();
  465.      }
  466. }
  467. /**
  468.  * 点击搜索按钮进行搜索
  469.  */
  470. function buttonSearch() {
  471.     var bi = $("#biValue").val();
  472.     var breadInfos = {};
  473.     if (bi != null && bi != "") {
  474.         searchParams["breedIds"] = bi;
  475.         breadInfos[bi] = $("#bdText").val() ;
  476.     } else {
  477.         searchParams["breedIds"] = "";
  478.         breadInfos="";
  479.     }
  480.     var bd = escape($("#bdText").val());
  481.     if (bd != null && bd != "") {
  482.         searchParams["breedNames"] = bd;
  483.         searchParams["breedInfos"] = breadInfos;
  484.         searchParams["breedIds"] = "";
  485.     } else {
  486.         searchParams["breedNames"] = "";
  487.         searchParams["breedIds"] = "";
  488.         searchParams["breedInfos"] ="";
  489.     }
  490.     var ml = escape($("#mlText").val());
  491.     if (ml != null && ml != "") {
  492.         searchParams["materials"] = ml;
  493.     } else {
  494.         searchParams["materials"] = "";
  495.     }
  496.     var sp = escape($("#spText").val());
  497.     if (sp != null && sp != "") {
  498.         searchParams["specs"] = sp;
  499.     } else {
  500.         searchParams["specs"] = "";
  501.     }
  502.     var br = escape($("#brText").val());
  503.     if (br != null && br != "") {
  504.         searchParams["brands"] = br;
  505.     } else {
  506.         searchParams["brands"] = "";
  507.     }
  508.     var whs = escape($("#whText").val());
  509.     if (whs != null && whs != "") {
  510.         searchParams["warehouses"] = whs;
  511.     } else {
  512.         searchParams["warehouses"] = "";
  513.     }
  514.     var ts1 = $("#ts1").val();
  515.     if (ts1 != null && ts1 != "") {
  516.         searchParams["startThickness"] = ts1;
  517.     } else {
  518.         searchParams["startThickness"] = "";
  519.     }
  520.     var ts2 = $("#ts2").val();
  521.     if (ts2 != null && ts2 != "") {
  522.         searchParams["endThickness"] = ts2;
  523.     } else {
  524.         searchParams["endThickness"] = "";
  525.     }
  526.     var wi1 = $("#wi1").val();
  527.     if (wi1 != null && wi1 != "") {
  528.         searchParams["startWidth"] = wi1;
  529.     } else {
  530.         searchParams["startWidth"] = "";
  531.     }
  532.     
  533.     var wi2 = escape($("#wi2").val());
  534.     if (wi2 != null && wi2 != "") {
  535.         searchParams["endWidth"] = wi2;
  536.     } else {
  537.         searchParams["endWidth"] = "";
  538.     }
  539.     
  540.     var pr1 = $("#pr1").val();
  541.     if (pr1 != null && pr1 != "") {
  542.         if (!isNaN(pr1)) {
  543.             searchParams["startPrice"] = pr1;
  544.         }
  545.         else{
  546.             searchParams["startPrice"] = "";
  547.         }
  548.     } else {
  549.         searchParams["startPrice"] = "";
  550.     }
  551.     
  552.     var pr2 = $("#pr2").val();
  553.     if (pr2 != null && pr2 != "") {
  554.         if (!isNaN(pr2)) {
  555.             searchParams["endPrice"] = pr2;
  556.         }
  557.         else{
  558.             searchParams["endPrice"] = "";
  559.         }
  560.     } else {
  561.         searchParams["endPrice"] = "";
  562.     }
  563.     searchParams["pageNum"] = 1;
  564.     searchByParams();
  565.     
  566.     $("#pr1").val(pr1);
  567.     $("#pr2").val(pr2);
  568. }
  569. /**
  570.  * 设置选中效果,并设值
  571.  */
  572. function setAttrParams() {
  573.     var cityName = searchParams["cityName"];
  574.     // 当前城市展示
  575.     if(cityName==null ||cityName=="undefined" ||cityName=="")
  576.     {
  577.         $(".selects").text("交货地 :");
  578.         $("#cityName").text("全国");
  579.     }else
  580.     {
  581.         if(typeof(cityName) == "undefined")
  582.         {
  583.             $(".selects").text("交货地 :");
  584.             $("#cityName").text("全国");
  585.         }
  586.         else
  587.         {
  588.             var cityNameMutiList = cityName.split(",");
  589.             if(cityNameMutiList.length == 1)
  590.             {
  591.                 $(".selects").text("交货地 :"+searchParams["cityName"]);
  592.                 $("#cityName").text(searchParams["cityName"]);
  593.             }
  594.             else
  595.             {
  596.                 $(".selects").text("交货地 :");
  597.                 $("#cityName").text("全国");
  598.             }
  599.             
  600.         }    
  601.     }
  602.     $("#breed_option_all").attr("class", "option-all cur");
  603.     $("#changebreed [class='listitem-link cur']").attr("class", "listitem-link");
  604.     $("#changebreed [class='check-choose']").prop("checked", false);
  605.     $("#bdText").val("");
  606.     $("#biValue").val("");
  607.     if (searchParams["breedInfos"] != null && searchParams["breedInfos"] != "") {
  608.         $("#breed_option_all").attr("class", "option-all");
  609.         var breedNames = "";
  610.         var breedIds = "";
  611.         var breedInfos = searchParams["breedInfos"];
  612.         var i = 0;
  613.         for ( var breedId in breedInfos) {
  614.             i++;
  615.             var breedName = breedInfos[breedId];
  616.             if (breedName != "") {
  617.                 if (breedNames == "") {
  618.                     breedNames += breedName;
  619.                 } else {
  620.                     breedNames += "," + breedName;
  621.                 }
  622.             }
  623.             if (breedId != "") {
  624.                 if (breedIds == "") {
  625.                     breedIds += breedId;
  626.                 } else {
  627.                     breedIds += "," + breedId;
  628.                 }
  629.             }
  630.             $("#breed_option_all").attr("class", "option-all");
  631.             $("#item_breed_" + breedId).attr("class", "listitem-link cur");
  632.             $("#checkItem_breed_" + breedId).prop("checked", true);
  633.         }
  634.         if (i == 1) {
  635.             $("#bdText").val(breedNames);
  636.             $("#biValue").val(breedIds);
  637.         }
  638.         searchParams["breedNames"] = "";
  639.         searchParams["breedIds"] = breedIds;
  640.     } else {
  641.         var breedNames = searchParams["breedNames"];
  642.         if (breedNames != null && breedNames != "") {
  643.             $("#breed_option_all").attr("class", "option-all");
  644.             $("#bdText").val(unescape(breedNames));
  645.         }
  646.     }
  647.     var specs = searchParams["specs"];
  648.     $("#spec_option_all").attr("class", "option-all cur");
  649.     $("#changespec [class='listitem-link cur']").attr("class", "listitem-link");
  650.     $("#changespec [class='check-choose']").prop("checked", false);
  651.     $("#spText").val("");
  652.     if (specs != null && specs != "") {
  653.         $("#spec_option_all").attr("class", "option-all");
  654.         var specList = specs.split(",");
  655.         for (var i = 0; i < specList.length; i++) {
  656.             var selectItem = document.getElementById("item_spec_" + specList[i]);
  657.             if (selectItem != null) {
  658.                 selectItem.setAttribute("class", "listitem-link cur");
  659.             }
  660.             var checkItem = document.getElementById("checkItem_spec_" + specList[i]);
  661.             if (checkItem != null) {
  662.                 checkItem.checked = true;
  663.             }
  664.         }
  665.         if (specList.length == 1) {
  666.             $("#spText").val(unescape(specs));
  667.         }
  668.     }
  669.     var materials = searchParams["materials"];
  670.     $("#material_option_all").attr("class", "option-all cur");
  671.     $("#changematerial [class='listitem-link cur']").attr("class", "listitem-link");
  672.     $("#changematerial [class='check-choose']").prop("checked", false);
  673.     $("#mlText").val("");
  674.     $("#mlValue").val("");
  675.     if (materials != null && materials != "") {
  676.         $("#material_option_all").attr("class", "option-all");
  677.         var materialList = materials.split(",");
  678.         for (var i = 0; i < materialList.length; i++) {
  679.             var selectItem = document.getElementById("item_material_" + materialList[i]);
  680.             if (selectItem != null) {
  681.                 selectItem.setAttribute("class", "listitem-link cur");
  682.             }
  683.             var checkItem = document.getElementById("checkItem_material_" + materialList[i]);
  684.             if (checkItem != null) {
  685.                 checkItem.checked = true;
  686.             }
  687.         }
  688.         if (materialList.length == 1) {
  689.             $("#mlText").val(unescape(materials));
  690.         }
  691.     }
  692.     var brands = searchParams["brands"];
  693.     $("#brand_option_all").attr("class", "option-all cur");
  694.     $("#show-logo-div [class='selected']").attr("class", "");
  695.     $("#brText").val("");
  696.     $("#btValue").val("");
  697.     if (brands != null && brands != "") {
  698.         $("#brand_option_all").attr("class", "option-all");
  699.         var brandList = brands.split(",");
  700.         for (var i = 0; i < brandList.length; i++) {
  701.             var selectItem = document.getElementById("brandDiv_" + brandList[i]);
  702.             if (selectItem != null) {
  703.                 selectItem.setAttribute("class", "selected");
  704.             }
  705.         }
  706.         if (brandList.length == 1) {
  707.             $("#brText").val(unescape(brands));
  708.         }
  709.     }
  710.     
  711.     var cityName = searchParams["cityName"];
  712.     if(typeof(cityName) != "undefined")
  713.     {
  714.         var cityiesList = cityName.split(",");
  715.         if(cityiesList.length == 1)
  716.         {
  717.             $(".selects").text("交货地 :"+cityiesList[0]);
  718.         }
  719.         else
  720.         {
  721.             $(".selects").text("交货地 :");
  722.         }
  723.     }    
  724.     
  725.     var cityIds = searchParams["cityId"];
  726.     $("#city_option_all").attr("class", "option-all cur");
  727.     $("#changecity [class='listitem-link cur']").attr("class", "listitem-link");
  728.     $("#changecity [class='check-choose']").prop("checked", false);
  729.     
  730.     if (cityIds != null && cityIds != "") {
  731.         $("#city_option_all").attr("class", "option-all");
  732.         
  733.         var cityList = cityIds.split(",");
  734.         for (var i = 0; i < cityList.length; i++) {
  735.             var selectItem = document.getElementById("item_city_" + cityList[i]);
  736.             if (selectItem != null) {
  737.                 selectItem.setAttribute("class", "listitem-link cur");
  738.             }
  739.             var checkItem = document.getElementById("checkItem_city_" + cityList[i]);
  740.             if (checkItem != null) {
  741.                 checkItem.checked = true;
  742.             }
  743.         }
  744.     }
  745.     var warehouses = searchParams["warehouses"];
  746.     $("#whText").val("");
  747.     if (warehouses != null && warehouses != "") {
  748.         $("#whText").val(unescape(warehouses));
  749.     }
  750.     var startPrice = searchParams["startPrice"];
  751.     var endPrice = searchParams["endPrice"];
  752.     $("#pr1").val("¥最低价");
  753.     $("#pr2").val("¥最高价");
  754.     var i = 0;
  755.     var j = 0;
  756.     if (startPrice != null && startPrice != "") {
  757.         i++;
  758.         j = 1;
  759.     }
  760.     if (endPrice != null && endPrice != "") {
  761.         i++;
  762.         j = 2;
  763.     }
  764.     if (i == 2) {
  765.         $("#pr1").val(startPrice);
  766.         $("#pr2").val(endPrice);
  767.     }
  768.     if (i == 1 && j == 1) {
  769.         $("#pr1").val(startPrice);
  770.     }
  771.     if (i == 1 && j == 2) {
  772.         $("#pr2").val(endPrice);
  773.     }
  774.     i = 0;
  775.     j = 0;
  776.     $("#ts1").val("");
  777.     $("#ts2").val("");
  778.     var startThickness = searchParams["startThickness"];
  779.     var endThickness = searchParams["endThickness"];
  780.     if (startThickness != null && startThickness != "") {
  781.         i++;
  782.         j = 1;
  783.     }
  784.     if (endThickness != null && endThickness != "") {
  785.         i++;
  786.         j = 2;
  787.     }
  788.     if (i == 2) {
  789.         $("#ts1").val(startThickness);
  790.         $("#ts2").val(endThickness);
  791.     }
  792.     if (i == 1 && j == 1) {
  793.         $("#ts1").val(startThickness);
  794.     }
  795.     if (i == 1 && j == 2) {
  796.         $("#ts2").val(endThickness);
  797.     }
  798.     i = 0;
  799.     j = 0;
  800.     $("#wi1").val("");
  801.     $("#wi2").val("");
  802.     var startWidth = searchParams["startWidth"];
  803.     var endWidth = searchParams["endWidth"];
  804.     if (startWidth != null && startWidth != "") {
  805.         i++;
  806.         j = 1;
  807.     }
  808.     if (endWidth != null && endWidth != "") {
  809.         i++;
  810.         j = 2;
  811.     }
  812.     if (i == 2) {
  813.         $("#wi1").val(startWidth);
  814.         $("#wi2").val(endWidth);
  815.     }
  816.     if (i == 1 && j == 1) {
  817.         $("#wi1").val(startWidth);
  818.     }
  819.     if (i == 1 && j == 2) {
  820.         $("#wi2").val(endWidth);
  821.     }
  822. }
  823. /**
  824.  * 清空输入价格
  825.  */
  826. function clean(){
  827.     
  828. searchParams["startPrice"]="";
  829. searchParams["endPrice"]= "";
  830. searchByParams();    
  831. }
  832. /**
  833.  * 分页查询
  834.  */
  835. function pageQuery(index){
  836.     searchParams["pageNum"] = index;
  837.     directSearchByParam();
  838. }
  839. /**
  840.  * 分页效果展示
  841.  */
  842. function page() {
  843.     var totalPages = $("#totalPages").val();
  844.     var currPageNum = $("#currPageNum").val();
  845.     
  846.     if (totalPages < 10)
  847.         for (var i = 1; i <= totalPages; i++) {
  848.             if (i == currPageNum) {
  849.                 $("#pageSpan").append("<a class="current">" + i + "</a>");
  850.             } else {
  851.                 $("#pageSpan").append("<a href="javascript:void(0)" id="page_" + i + "">" + i + "</a>");
  852.                 $("#page_" + i).attr("onclick", "pageQuery("+i+")");
  853.             }
  854.         }
  855.     else {
  856.         if (currPageNum < 6) {
  857.             for (var i = 1; i <= 10; i++) {
  858.                 if (i == currPageNum) {
  859.                     $("#pageSpan").append("<a class="current">" + i + "</a>");
  860.                 } else {
  861.                     $("#pageSpan").append("<a href="javascript:void(0)" id="page_" + i + "">" + i + "</a>");
  862.                     $("#page_" + i).attr("onclick", "pageQuery("+i+")");
  863.                 }
  864.             }
  865.         } else {
  866.             var cur = parseInt(currPageNum) + 5;
  867.             if (cur <= totalPages) {
  868.                 var pre = parseInt(currPageNum) - 4;
  869.                 var last = parseInt(currPageNum) + 5;
  870.                 for (i = pre; i <= last; i++) {
  871.                     if (i == currPageNum) {
  872.                         $("#pageSpan").append("<a class="current">" + i + "</a>");
  873.                     } else {
  874.                         $("#pageSpan").append("<a href="javascript:void(0)" id="page_" + i + "">" + i + "</a>");
  875.                         $("#page_" + i).attr("onclick", "pageQuery("+i+")");
  876.                     }
  877.                 }
  878.             } else {
  879.                 var pre = parseInt(totalPages) - 9;
  880.                 for (i = pre; i <= parseInt(totalPages); i++) {
  881.                     if (i == currPageNum) {
  882.                         $("#pageSpan").append("<a class="current">" + i + "</a>");
  883.                     } else {
  884.                         $("#pageSpan").append("<a href="javascript:void(0)" id="page_" + i + "">" + i + "</a>");
  885.                         $("#page_" + i).attr("onclick", "pageQuery("+i+")");
  886.                     }
  887.                 }
  888.             }
  889.         }
  890.     }
  891.     $("#totalSpan").append(totalPages);
  892. }
  893. /**
  894.  * 上一页
  895.  */
  896. function prePage() {
  897.     var currPageNum = parseInt($("#currPageNum").val());
  898.     var tempPageNum = 1;
  899.     if (currPageNum > 0) {
  900.         tempPageNum = currPageNum - 1;
  901.     }
  902.     if (tempPageNum == 0) {
  903.         tempPageNum = 1;
  904.     }
  905.     
  906.     searchParams["pageNum"]=tempPageNum;
  907.     directSearchByParam();
  908. }
  909. /**
  910.  * 跳转下一页
  911.  */
  912. function nextPage() {
  913.     var currPageNum = parseInt($("#currPageNum").val());
  914.     var totalPages = parseInt($("#totalPages").val());
  915.     var tempPageNum;
  916.     if (currPageNum >= totalPages) {
  917.         tempPageNum = totalPages;
  918.     } else {
  919.         tempPageNum = parseInt(currPageNum) + 1;
  920.     }
  921.     searchParams["pageNum"]=tempPageNum;
  922.     directSearchByParam();
  923. }
  924. /**
  925.  * 转到
  926.  */
  927. function goPage() {
  928.     var totalPages = parseInt($("#totalPages").val());
  929.     var pageNum = parseInt($("#pageNum").val());
  930.     if (!isNaN(pageNum) && pageNum <= totalPages && pageNum > 0) {
  931.         searchParams["pageNum"]=pageNum;
  932.         directSearchByParam();
  933.     } else {
  934.         $("#pageNum").val("");
  935.     }
  936. }
  937. /**
  938.  * 首页
  939.  */
  940. function firstPage() {
  941.     searchParams["pageNum"]=1;
  942.     directSearchByParam();
  943. }
  944. /**
  945.  * 尾页
  946.  */
  947. function lastPage() {
  948.     var totalPages = $("#totalPages").val();
  949.     searchParams["pageNum"]= totalPages;
  950.     directSearchByParam();
  951. }
  952. /**
  953.  * 设置按照品种进行排序
  954.  */
  955. function setSortBreed() {
  956.     var sortBreedFlag = $("#sortBreedFlag").attr("class");
  957.     if (sortBreedFlag == "basic") {
  958.         $("#sortBreedFlag").attr("class", "up");
  959.         searchParams["breedSort"] = "10";
  960.     } else if (sortBreedFlag == "up") {
  961.         $("#sortBreedFlag").attr("class", "down");
  962.         searchParams["breedSort"] = "11";
  963.     } else if (sortBreedFlag == "down") {
  964.         $("#sortBreedFlag").attr("class", "basic");
  965.         searchParams["breedSort"] = "";
  966.     }
  967.     
  968.     directSearchByParam();
  969. }
  970. /**
  971.  * 设置按照规格进行排序
  972.  */
  973. function setSortSpec() {
  974.     var sortSpecFlag = $("#sortSpecFlag").attr("class");
  975.     if (sortSpecFlag == "basic") {
  976.         $("#sortSpecFlag").attr("class", "up");
  977.         searchParams["specSort"] = "10";
  978.     } else if (sortSpecFlag == "up") {
  979.         $("#sortSpecFlag").attr("class", "down");
  980.         searchParams["specSort"] = "11";
  981.     } else if (sortSpecFlag == "down") {
  982.         $("#sortSpecFlag").attr("class", "basic");
  983.         searchParams["specSort"] = "";
  984.     }
  985.     directSearchByParam();
  986. }
  987. /**
  988.  * 设置按照材质进行排序
  989.  */
  990. function setSortMaterial() {
  991.     var sortMaterialFlag = $("#sortMaterialFlag").attr("class");
  992.     if (sortMaterialFlag == "basic") {
  993.         $("#sortMaterialFlag").attr("class", "up");
  994.         searchParams["materialSort"] = "10";
  995.     }
  996.     if (sortMaterialFlag == "up") {
  997.         $("#sortMaterialFlag").attr("class", "down");
  998.         searchParams["materialSort"] = "11";
  999.     }
  1000.     if (sortMaterialFlag == "down") {
  1001.         $("#sortMaterialFlag").attr("class", "basic");
  1002.         searchParams["materialSort"] = "";
  1003.     }
  1004.     directSearchByParam();
  1005. }
  1006. /**
  1007.  * 设置按照钢厂排序
  1008.  */
  1009. function setSortBrand() {
  1010.     var sortBrandFlag = $("#sortBrandFlag").attr("class");
  1011.     if (sortBrandFlag == "basic") {
  1012.         $("#sortBrandFlag").attr("class", "up");
  1013.         searchParams["brandSort"] = "10";
  1014.     } else if (sortBrandFlag == "up") {
  1015.         $("#sortBrandFlag").attr("class", "down");
  1016.         searchParams["brandSort"] = "11";
  1017.     } else if (sortBrandFlag == "down") {
  1018.         $("#sortBrandFlag").attr("class", "basic");
  1019.         searchParams["brandSort"] = "";
  1020.     }
  1021.     directSearchByParam();
  1022. }
  1023. /**
  1024.  * 设置按照仓库排序
  1025.  */
  1026. function setSortWarehouse() {
  1027.     var sortWarehouseFlag = $("#sortWarehouseFlag").attr("class");
  1028.     if (sortWarehouseFlag == "basic") {
  1029.         $("#sortWarehouseFlag").attr("class", "up");
  1030.         searchParams["warehouseSort"] = "10";
  1031.     } else if (sortWarehouseFlag == "up") {
  1032.         $("#sortWarehouseFlag").attr("class", "down");
  1033.         searchParams["warehouseSort"] = "11";
  1034.     } else if (sortWarehouseFlag == "down") {
  1035.         $("#sortWarehouseFlag").attr("class", "basic");
  1036.         searchParams["warehouseSort"] = "";
  1037.     }
  1038.     directSearchByParam();
  1039. }
  1040. /**
  1041.  * 设置根据交货地排序
  1042.  */
  1043. function setSortCity() {
  1044.     var sortCityFlag = $("#sortCityFlag").attr("class");
  1045.     if (sortCityFlag == "basic") {
  1046.         $("#sortCityFlag").attr("class", "up");
  1047.         searchParams["citySort"] = "10";
  1048.     } else if (sortCityFlag == "up") {
  1049.         $("#sortCityFlag").attr("class", "down");
  1050.         searchParams["citySort"] = "11";
  1051.     } else if (sortCityFlag == "down") {
  1052.         $("#sortCityFlag").attr("class", "basic");
  1053.         searchParams["citySort"] = "";
  1054.     }
  1055.     directSearchByParam();
  1056. }
  1057. /**
  1058.  * 设置按照重量进行排序
  1059.  */
  1060. function setSortAverageQty() {
  1061.     var sortAverageQtyFlag = $("#sortAverageQtyFlag").attr("class");
  1062.     if (sortAverageQtyFlag == "basic") {
  1063.         $("#sortAverageQtyFlag").attr("class", "up");
  1064.         searchParams["averageQtySort"] = "10";
  1065.     } else if (sortAverageQtyFlag == "up") {
  1066.         $("#sortAverageQtyFlag").attr("class", "down");
  1067.         searchParams["averageQtySort"] = "11";
  1068.     } else if (sortAverageQtyFlag == "down") {
  1069.         $("#sortAverageQtyFlag").attr("class", "basic");
  1070.         searchParams["averageQtySort"] = "";
  1071.     }
  1072.     directSearchByParam();
  1073. }
  1074. /**
  1075.  * 设置按照价格进行排序
  1076.  */
  1077. function setSortPrice() {
  1078.     var sortPriceFlag = $("#sortPriceFlag").attr("class");
  1079.     if (sortPriceFlag == "basic") {
  1080.         $("#sortPrice").attr("class", "sorton");
  1081.         $("#sortPriceFlag").attr("class", "up");
  1082.         searchParams["priceSort"] = "10";
  1083.     } else if (sortPriceFlag == "up") {
  1084.         $("#sortPrice").attr("class", "sortoff");
  1085.         $("#sortPriceFlag").attr("class", "down");
  1086.         searchParams["priceSort"] = "11";
  1087.     } else if (sortPriceFlag == "down") {
  1088.         $("#sortPrice").attr("class", "default");
  1089.         $("#sortPriceFlag").attr("class", "basic");
  1090.         searchParams["priceSort"] = "";
  1091.     }
  1092.     directSearchByParam();
  1093. }
  1094. /**
  1095.  * 设置按照价格进行排序
  1096.  */
  1097. function sortPrice() {
  1098.     var sortPriceFlag = $("#sortPrice").attr("class");
  1099.     if (sortPriceFlag == "default") {
  1100.         $("#sortPrice").attr("class", "sorton");
  1101.         $("#sortPriceFlag").attr("class", "up");
  1102.         searchParams["priceSort"] = "10";
  1103.     } else if (sortPriceFlag == "sorton") {
  1104.         $("#sortPrice").attr("class", "sortoff");
  1105.         $("#sortPriceFlag").attr("class", "down");
  1106.         searchParams["priceSort"] = "11";
  1107.     } else if (sortPriceFlag == "sortoff") {
  1108.         $("#sortPrice").attr("class", "default");
  1109.         $("#sortPriceFlag").attr("class", "basic");
  1110.         searchParams["priceSort"] = "";
  1111.     }
  1112.     directSearchByParam();
  1113. }
  1114. /**
  1115.  * 设置按默认排序查找
  1116.  */
  1117. function setDefaultSort() {
  1118.     $("#sortBreedFlag").attr("class", "basic");
  1119.     $("#sortSpecFlag").attr("class", "basic");
  1120.     $("#sortMaterialFlag").attr("class", "basic");
  1121.     $("#sortBrandFlag").attr("class", "basic");
  1122.     $("#sortWarehouseFlag").attr("class", "basic");
  1123.     $("#sortCityFlag").attr("class", "basic");
  1124.     $("#sortAverageQtyFlag").attr("class", "basic");
  1125.     $("#sortPriceFlag").attr("class", "basic");
  1126.     $("#sortPrice").attr("class","default");
  1127.     searchParams["breedSort"] = "";
  1128.     searchParams["specSort"] = "";
  1129.     searchParams["materialSort"] = "";
  1130.     searchParams["brandSort"] = "";
  1131.     searchParams["warehouseSort"] = "";
  1132.     searchParams["citySort"] = "";
  1133.     searchParams["averageQtySort"] = "";
  1134.     searchParams["priceSort"] = "";
  1135. }
  1136. /**
  1137.  * 资源列表初始化
  1138.  */
  1139. function resListInit()
  1140. {
  1141.     // 清空数据
  1142.     $("#thead").siblings().remove();
  1143.     $(".page").attr("style", "display:none");
  1144.     
  1145.     // 添加加载效果图片
  1146.     var table = $("#resList");
  1147.     var loadingTr = $("#loading");
  1148.     if (typeof (loadingTr) == "undefined" || loadingTr.length == 0) {
  1149.         var loadingTr = "<tr class='item-loading'><td colspan="11" id="loading"><img id="loadingImg" width="100" height="100" src="//static.banksteel.com/v6/images/loading.gif"></td></tr>";
  1150.         table.append(loadingTr);
  1151.     }
  1152.     // 加载动画
  1153.     $("#loadingImg").animate({left:"520px"},1000);
  1154. }
  1155. /**
  1156.  * 展示资源列表(没有查询到资源)
  1157.  */
  1158. function noRes(){
  1159.     var table = $("#resList");
  1160.     var breedNames = "";
  1161.     var breedNameTemp = "";
  1162.     var specs = "";
  1163.     var materials ="";
  1164.     var brands = "";
  1165.     var warehouses = "";
  1166.     var thickness = "";
  1167.     var width = "";
  1168.     var price = "";
  1169.     var prBreedName = "";
  1170.     var city = "";
  1171.     var keyword = "";
  1172.     
  1173.     if(searchParams["keyword"]){
  1174.         keyword = "【"+unescape(searchParams["keyword"])+"】";
  1175.     }
  1176.     if(searchParams["breedInfos"]){
  1177.         for(var key in searchParams["breedInfos"]){
  1178.             if(breedNameTemp==""){
  1179.                 breedNameTemp = searchParams["breedInfos"][key];
  1180.                 breedNames = "【"+breedNameTemp+"】";
  1181.             }
  1182.             else{
  1183.                 breedNameTemp = breedNameTemp +"," + searchParams["breedInfos"][key];
  1184.                 breedNames = "【"+breedNameTemp+"】";
  1185.             }
  1186.             
  1187.         }
  1188.     }
  1189.     if(searchParams["breedNames"]){
  1190.         breedNames = "【"+unescape(searchParams["breedNames"])+"】";
  1191.     }
  1192.     if(searchParams["specs"]){
  1193.         specs = "【"+unescape(searchParams["specs"])+"】";
  1194.     }
  1195.     if(searchParams["materials"]){
  1196.         materials = "【"+searchParams["materials"]+"】";
  1197.     }
  1198.     if(searchParams["brands"]){
  1199.         brands = "【"+searchParams["brands"]+"】";
  1200.     }
  1201.     if(searchParams["warehouses"]){
  1202.         warehouses = "【"+unescape(searchParams["warehouses"])+"】";
  1203.     }
  1204.     if(searchParams["startThickness"]){
  1205.         thickness = "【厚度大于等于"+searchParams["startThickness"]+"】";
  1206.     }
  1207.     if(searchParams["endThickness"]){
  1208.         thickness = "【厚度小于等于"+searchParams["endThickness"]+"】";
  1209.     }
  1210.     if(searchParams["startThickness"] && searchParams["endThickness"]){
  1211.         thickness = "【厚度"+searchParams["startThickness"]+"-"+searchParams["endThickness"]+"】";
  1212.     }
  1213.     if(searchParams["startWidth"]){
  1214.         width = "【宽度大于等于"+searchParams["startWidth"]+"】";
  1215.     }
  1216.     if(searchParams["endWidth"]){
  1217.         width = "【宽度小于等于"+searchParams["endWidth"]+"】";
  1218.     }
  1219.     if(searchParams["startWidth"] && searchParams["endWidth"]){
  1220.         width = "【宽度"+searchParams["startWidth"]+"-"+searchParams["endWidth"]+"】";
  1221.     }
  1222.     if(searchParams["startPrice"]){
  1223.         price = "【价格大于等于"+searchParams["startPrice"]+"】";
  1224.     }
  1225.     if(searchParams["endPrice"]){
  1226.         price = "【价格小于等于"+searchParams["endPrice"]+"】";
  1227.     }
  1228.     if(searchParams["startPrice"] && searchParams["endPrice"]){
  1229.         price = "【价格"+searchParams["startPrice"]+"-"+searchParams["endPrice"]+"】";
  1230.     }
  1231.     
  1232.     if(searchParams["cityName"]){
  1233.         city = "【"+searchParams["cityName"]+"】";
  1234.     }
  1235.     if(searchParams["prBreedName"]){
  1236.         prBreedName = searchParams["prBreedName"];
  1237.     }
  1238.     else{
  1239.         prBreedName = "全部";
  1240.     }
  1241.     
  1242.     var content1 = "<div class='conten1'>"+
  1243.                "您要找的<span class='blue' id='conditions'></span>"+
  1244.                              "在当前大类<span class='orange' id='prBreedName'></span>中暂时没有相匹配的商品。" +
  1245.                          "</div>";
  1246.     
  1247.     var content3 = "<div class='conten3 cl'>"+
  1248.                     "<span>对不起,没有找到相关商品!</span>"+
  1249.                     "<a class='goods_tips_btn' href='javascript:;' onclick='findRes()'>帮我找</a>"+
  1250.                    "</div>";
  1251.     
  1252.     var content2 = "<div class='conten2'>钢银钢材超市具有海量真实现货资源,百家钢厂、贸易商在线直销,钢材价格。钢材库存实时更新,买卖钢材无忧。</div>";
  1253.     
  1254.     var tbody = "<tbody>"+
  1255.                     "<tr class='hasno'>"+
  1256.                         "<td align='center' colspan='11'>"+
  1257.                             "<div class='goods_tips cl'>"+
  1258.                                 "<div class='fl goods_tips_img'></div>"+
  1259.                                 "<div class='goods_tips_inner fl' id='info'>"+
  1260.                                 "</div>" +
  1261.                             "</div>" +
  1262.                         "</td>" +
  1263.                     "</tr>" +
  1264.                 "</tbody>";
  1265.     setTimeout(
  1266.             function(){
  1267.                 $("#resCount").text(0);
  1268.                 $("#middlearrow_btn").html("");
  1269.                 $("#middlearrow_btn").append("<span>0</span>/0");
  1270.                 $("#loading").remove();
  1271.                 table.append(tbody);
  1272.                 $("#info").append(content3);
  1273.                 $("#info").append(content1);
  1274.                 $("#info").append(content2);
  1275.                 $("#conditions").text(city+keyword+breedNames+specs+materials+unescape(brands)+warehouses+thickness+width+price);
  1276.                 $("#prBreedName").text(prBreedName);
  1277.                 sendFlag = "0";
  1278.             },400);
  1279.     
  1280. }
  1281. /**
  1282.  * 展示列表信息(查询到资源)
  1283.  *
  1284.  * @param resData
  1285.  * @param onsell
  1286.  */
  1287. function showResTable(resData, onsell) {
  1288.     var table = $("#resList");
  1289.     $("#pageSpan").html("");
  1290.     $("#totalSpan").html("");
  1291.     $("#middlearrow_btn").html("");
  1292.     $("#loading").remove();
  1293.     $
  1294.             .each(
  1295.                     resData.pageData,
  1296.                     function(index) {
  1297.                         var i = index + 1;
  1298.                         var tbody = "<tbody id="summaryRes_" + i + ""></tbody>";
  1299.                         table.append(tbody);
  1300.                         var tr = "<tr id="resource_" + i + ""></tr>";
  1301.                         $("#summaryRes_" + i).append(tr);
  1302.                         var td1 = "<td id="breed_" + i + ""></td>";
  1303.                         var td2 = "<td id="spec_" + i + "">" + this.spec + "</td>";
  1304.                         var td3 = "<td id="material_" + i + "">" + this.material + "</td>";
  1305.                         var td4 = "<td id="brand_" + i + "">" + this.brand + "</td>";
  1306.                         var td5 = "<td id="city_" + i + "">" + this.city + "</td>";
  1307.                         var td6 = "<td id="warehouse_" + i + ""></td>";
  1308.                         var td7 = "<td id="onboardItems_" + i + ""></td>";
  1309.                         var td8 = "<td id="averageQty_" + i + ""></td>";
  1310.                         var td9 = "<td id="onboardQty_" + i + "">" + this.onboardQty + "</td>";
  1311.                         var td10 = "<td id="price_" + i + ""></td>";
  1312.                         var td11 = "<td align="center" id="operate_" + i + ""></td>";
  1313.                         $("#resource_" + i).append(td1);
  1314.                         $("#resource_" + i).append(td2);
  1315.                         $("#resource_" + i).append(td3);
  1316.                         $("#resource_" + i).append(td4);
  1317.                         $("#resource_" + i).append(td5);
  1318.                         $("#resource_" + i).append(td6);
  1319.                         $("#resource_" + i).append(td7);
  1320.                         $("#resource_" + i).append(td8);
  1321.                         $("#resource_" + i).append(td9);
  1322.                         $("#resource_" + i).append(td10);
  1323.                         $("#resource_" + i).append(td11);
  1324.                         if (i % 2 == 0) {
  1325.                             $("#resource_" + i).attr("class", "item-data-m");
  1326.                         } else {
  1327.                             $("#resource_" + i).attr("class", "alt");
  1328.                         }
  1329.                         // 封装第一列
  1330.                         var div1 = "<div class="pad-l14 t-l blue" id="div1_" + i + ""></div>";
  1331.                         $("#breed_" + i).append(div1);
  1332.                         var label = "<a id="breed_" + this.resourceId + "" href="javascript:void(0);">" + this.breed + "</a>";
  1333.                         $("#div1_" + i).append(label);
  1334.                         if (this.offFlag == 1) {
  1335.                             $("#div1_" + i).append("<span class="ico-b ico-b-yi" title="可议价!"></span>");
  1336.                         }
  1337.                         
  1338.                         if (this.relationType == 1) {
  1339.                             $("#div1_" + i).append("<span class="ico-b ico-b-cang" title="仓"></span> ");
  1340.                         } else if (this.relationType == 3) {
  1341.                             $("#div1_" + i).append("<span title="融" class="ico-b ico-b-rong"></span>");
  1342.                         }
  1343.                         if (this.resourceItems == 1) {
  1344.                             $("#resource_" + i).attr("onmouseover","onMouseOverDetailTr(this.id)");
  1345.                             $("#resource_" + i).attr("onmouseout","onMouseOutDetailTr(this.id)");
  1346.                             
  1347.                             // 展示备注信息事件添加
  1348.                             $("#div1_" + i).attr("onmousemove", "showNote(this);");
  1349.                             $("#div1_" + i).attr("onmouseout", "hideNote(this);");
  1350.                             // 备注信息内容展示
  1351.                             if(this.realBreedAlias && (this.realBreedAlias != this.breed || this.note || this.serialNo || this.qualityFatherRemark)){
  1352.                                 var pop_bname = "<div class="pop-bname" style="display: none;" id="pop_bname_" + i + ""></div>";
  1353.                                 var pop_bname_arrow = "<div class="pop-bname-arrow">";
  1354.                                 var pop_bname_col = "<div class="pop-bname-col" id="pop_bname_col_" + i + ""> </div>";
  1355.                                 $("#div1_" + i).append(pop_bname);
  1356.                                 $("#pop_bname_" + i).append(pop_bname_arrow);
  1357.                                 $("#pop_bname_" + i).append(pop_bname_col);
  1358.                                 if (this.realBreedAlias && this.realBreedAlias != this.breed) {
  1359.                                     $("#pop_bname_col_" + i).append("别名:" + this.realBreedAlias);
  1360.                                 }
  1361.                                 if (this.note) {
  1362.                                     $("#pop_bname_col_" + i).append("<span>备注:" + this.note + "</span>");
  1363.                                 }
  1364.                                 if (this.serialNo) {
  1365.                                     $("#pop_bname_col_" + i).append("捆包号:" + this.serialNo);
  1366.                                 }
  1367.                                 if(this.qualityFatherRemark){
  1368.                                     $("#pop_bname_col_" + i).append("协议品:" + this.qualityFatherRemark);
  1369.                                 }
  1370.                             }
  1371.                             
  1372.                             $("#averageQty_" + i).html(this.averageQty);
  1373.                             
  1374.                             if (this.weightWay == 0) {
  1375.                                 $("#onboardQty_" + i).attr("title", "理重");
  1376.                             } else if (this.weightWay == 1) {
  1377.                                 $("#onboardQty_" + i).attr("title", "过磅");
  1378.                             } else {
  1379.                                 $("#onboardQty_" + i).attr("title", "抄码");
  1380.                             }
  1381.                             
  1382.                             var div8 = "<div class="cl" id="div8_" + i + ""></div>";
  1383.                             $("#operate_" + i).append(div8);
  1384.                             var div9 = "<div class="operate" id="div9_" + i + ""></div>";
  1385.                             $("#div8_" + i).append(div9);
  1386.                             
  1387.                             if (onsell=="true") {
  1388.                                 if (this.isOutDate == "1") {
  1389.                                     var span1 = "<span  class="btn-buy-gray" >待挂牌</span>";
  1390.                                     $("#div9_" + i).append(span1);
  1391.                                 } else {
  1392.                                     var cart = "<a class="buy btnCart" href="javascript:void(0);" onclick="addCartv6('"
  1393.                                             + this.resourceId
  1394.                                             + "','0','1','"
  1395.                                             + this.onboardPrice
  1396.                                             + "','"
  1397.                                             + this.onboardQty
  1398.                                             + "','"
  1399.                                             + this.averageQty
  1400.                                             + "',1,this);">购买</a>"
  1401.                                             + "<div class="pop-addcart">"
  1402.                                             + "<div class="pop-addcart-arrow"></div>"
  1403.                                             + "<div class="pop-addcart-col">"
  1404.                                             + "<div class="tcon">已成功添加到购物车</div>"
  1405.                                             + "<div class="t">共计<span class="orange" id="averageQtyTotalTempPop"></span>吨 <span class="orange" id="itemTotalTempPop"></span>件 <span class="orange" id="priceTotalTempPop"></span></div>"
  1406.                                             + "<div class="pop-addcart-operate">" + "<input type="button" value="去结算" class="btn-js" name="" onclick="goCar();">"
  1407.                                             + "<input type="button" value="继续购物" class="btn-gobuy" name="">" + "</div></div></div>";
  1408.                                     $("#div9_" + i).append(cart);
  1409.                                     $(".btn-gobuy").attr("onclick","goBuy()");
  1410.                                 }
  1411.                             } else {
  1412.                                 $("#div9_" + i).append("<a href="javascript:void(0);" class="buy-gray">已闭市</a>");
  1413.                             }
  1414.                             // 当无明细时操作列展示元素添加
  1415.                             var div10 = "<div class="chat f-fl">"
  1416.                                     + "<a class="img" href="javascript:void(0);" onclick="showAdmin(this);"></a>"
  1417.                                     + "<div class="pop-tel" style="display: none;">"
  1418.                                     + this.marketAdminName
  1419.                                     + "<a class="link" href="http://b.qq.com/webc.htm?new=0&sid=4001618891&eid=218808P8z8p8y8Q8P8y8K&o=banksteel.com&q=7&ref=http://www.banksteel.com/" target="_blank">87325713</a>"
  1420.                                     + "<br>电话:" + this.marketPhone + "<br>手机:" + this.marketMobile + "</div><div class="pop-tel-arrow" style="display: none;"></div></div>";
  1421.                             $("#div8_" + i).append(div10);
  1422.                         }
  1423.                         if (this.resourceItems > 1) {
  1424.                             // 添加点击展示明细事件
  1425.                             $("#summaryRes_" + i).attr("class","item-data");
  1426.                             $("#resource_" + i).attr("onmouseover","onMouseOverSummaryTr(this.id)");
  1427.                             $("#resource_" + i).attr("onmouseout","onMouseOutSummaryTr(this.id)");
  1428.                             $("#breed_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1429.                             $("#spec_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1430.                             $("#material_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1431.                             $("#brand_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1432.                             $("#city_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1433.                             $("#onboardItems_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1434.                             $("#averageQty_" + i).html("-");
  1435.                             $("#onboardQty_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1436.                             $("#price_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1437.                             $("#operate_" + i).attr("onclick", "showDetail(this,'" + this.summaryCode + "'," + i + ");");
  1438.                             // 当有明细时操作列元素添加
  1439.                             var div7 = "<div class="cl"><div class="operate"><a class="btn-open btnoff" href="javascript:void(0);" id="btnopen" >展开</a><div class="table_hover" >"
  1440.                                     + "<div class="table_hover_left" style="display: none;"></div>" + "<div class="table_hover_right"  style="display: none;"></div>"
  1441.                                     + "<div class="table_hover_top" style="display: none;"></div>" + "<div class="table_hover_bottom" style="display: none;"></div>" + "</div></div></div>";
  1442.                             $("#operate_" + i).append(div7);
  1443.                         }
  1444.                         // 价格列元素封装
  1445.                         if (onsell=="true") {
  1446.                             if (this.isOutDate == "1") {
  1447.                                 var b2 = "<b class="f14 gray">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-</b>";
  1448.                                 $("#price_" + i).append(b2);
  1449.                             } else {
  1450.                                 var b3 = "<b class="f14 orange">" + this.onboardPrice + "</b>";
  1451.                                 $("#price_" + i).append(b3);
  1452.                             }
  1453.                         }
  1454.                         else {
  1455.                             var b4 = "<b class="f14 orange">" + this.onboardPrice + "</b>";
  1456.                             $("#price_" + i).append(b4);
  1457.                         }
  1458.                         // 封装仓库列
  1459.                         var div5 = "<div class="warehouse-name" id="div5_" + i + ""></div>";
  1460.                         var href = "<a class="t-warehouse" href="javascript:void(0);" id="href_" + i + "">" + this.warehouse + "</a>";
  1461.                         $("#warehouse_" + i).append(div5);
  1462.                         $("#div5_" + i).append(href);
  1463.                         $("#href_" + i).attr("onclick", "showWarehouseInfo(this,'" + this.warehouseName + "'," + i + ");");
  1464.                         $("#div5_" + i).attr("onmouseout", "hideWarehouse(this)");
  1465.                         // 封装数量列
  1466.                         var div6 = "<div class="pad-l7">" + this.onboardItems + "</div>";
  1467.                         $("#onboardItems_" + i).append(div6);
  1468.                         var input = "<input type="hidden" id="cityId_" + i + "" value='" + this.cityId + "'/>";
  1469.                         $("#resource_" + i).append(input);
  1470.                     });
  1471.     // 分页
  1472.     $("#currPageNum").val(resData.currPageNum);
  1473.     $("#totalPages").val(resData.totalPages);
  1474.     $("#totalRows").val(resData.totalRows);
  1475.     $(".page").attr("style", "display:block");
  1476.     
  1477.     // 资源统计展示
  1478.     $("#resCount").text(resData.totalRows);
  1479.     $("#middlearrow_btn").append("<span>" + resData.currPageNum + "</span>/" + resData.totalPages);
  1480.     page();
  1481.     sendFlag = "0";
  1482. }
  1483. /**
  1484.  * 使用searchParams直接进行查询
  1485.  */
  1486. function directSearchByParam() {
  1487.     // 初始化
  1488.     resListInit();
  1489.     // 关键字中含城市
  1490.     keyWordIsCity();
  1491.     // 设置选中效果
  1492.     setAttrParams();
  1493.     // 展示当前查询条件
  1494.     showParams();
  1495.     // 有收索字段时添加记录
  1496.     if((searchParams["keyword"]!="" && typeof(searchParams["keyword"])!="undefined") || (searchParams["breedIds"]!="" && typeof(searchParams["breedIds"])!="undefined" )
  1497.             ||(searchParams["breedNames"]!="" && typeof(searchParams["breedNames"])!="undefined")
  1498.             ||(searchParams["specs"]!="" && typeof(searchParams["specs"])!="undefined") || (searchParams["materials"]!="" && typeof(searchParams["materials"])!="undefined" )
  1499.             ||(searchParams["brands"]!="" && typeof(searchParams["brands"])!="undefined")|| (searchParams["warehouses"]!="" && typeof(searchParams["warehouses"])!="undefined")
  1500.             ||(searchParams["cityId"]!="" && typeof(searchParams["cityId"])!="undefined")|| (searchParams["startPrice"]!="" && typeof(searchParams["startPrice"])!="undefined")
  1501.             ||(searchParams["endPrice"]!=""&&typeof(searchParams["endPrice"])!="undefined"))
  1502.     {
  1503.         addRecords(searchParams);
  1504.     }
  1505.     
  1506.     // 通过ajax请求超市资源(为防止ajax请求过于频繁,导致页面内容重叠,使用sendFlag,下一次请求只能在这次请求完成后继续进行)
  1507.     if(sendFlag == "0"){
  1508.         sendFlag = "1";
  1509.         $.ajax({
  1510.             type : "post",
  1511.             data : searchParams,
  1512.             url : "/resource/searchSuperMarketResource.jsp",
  1513.             timeout:60000,
  1514.             dataType : "text",
  1515.             
  1516.             success : function(message) {
  1517.                 if (message != null && message != ""){
  1518.                     var map = $.parseJSON(message);
  1519.                     var onsell = $("#onSellValue").val();
  1520.                     if (map["pageSet"] != null) {
  1521.                         setTimeout(function(){showResTable(map["pageSet"], onsell);},300);
  1522.                     }
  1523.                 }
  1524.                 else {
  1525.                     noRes();
  1526.                 }    
  1527.             },
  1528.             error : function() {
  1529.                 alert("程序内部发生错误,请联系管理员");
  1530.             }
  1531.         });
  1532.     }
  1533. }
  1534. /**
  1535.  * 查询方法(分页和排序自动回复默认)
  1536.  *
  1537.  * @param params
  1538.  */
  1539. function searchByParams() {
  1540.     searchParams["pageNum"] = 1;
  1541.     setDefaultSort();
  1542.     directSearchByParam();
  1543. }
  1544. /**
  1545.  * 展示汇总下面的明细
  1546.  */
  1547. function showDetail(obj,summaryCode,count){
  1548.     var btnOpenClass = $(obj).parent().find("#operate_"+count).find("#btnopen").attr("class");
  1549.     
  1550.     if(btnOpenClass == "btn-open btnoff"){
  1551.         $(obj).parent().find("#operate_"+count).find("#btnopen").text("收起");
  1552.     }
  1553.     else{
  1554.         $(obj).parent().find("#operate_"+count).find("#btnopen").text("展开");
  1555.     }
  1556.     
  1557.     var tableBody=$("#summaryRes_"+count);
  1558.     // 取得onSell的值
  1559.     var onSell=$("#onSellValue").val();
  1560.     
  1561.     // 判断如果旗下已经加载了明细则直接展示不增加
  1562.     var trLength=tableBody.children("tr").length;
  1563.     
  1564.     if(trLength>1){
  1565.         var hiddenRows = tableBody.children('tr:hidden').length;
  1566.         var fold_btn=$("#fold_btn_"+summaryCode);
  1567.         if(hiddenRows>0){
  1568.             // 展开的全部缩起来
  1569.             foldAllDetail();
  1570.             openDetail(fold_btn);
  1571.             configDetailEdage(count);
  1572.         }else{
  1573.             foldDetail(fold_btn);
  1574.         }
  1575.     }else{
  1576.         // 加载等待图标
  1577.         var showWait="<tr class='item-data-detail'  id='"+'showWait_'+count+"' style='display:table-row'> <td align='center'  colspan='11'><img height='24' width='24' src='/skin/images/loading.gif'></td></tr>";
  1578.            tableBody.append(showWait);
  1579.         $.ajax({     
  1580.             type: "Post",     
  1581.             url: "/resource/getMarketResourceDetail.jsp?callback=?",     // 查询该汇总下的明细列表
  1582.             // 方法传参的写法一定要对,str为形参的名字,str2为第二个形参的名字
  1583.             "data" : {"summaryId" : summaryCode},
  1584.             dataType: "jsonp",     
  1585.             success : function(json){
  1586.                 // 展开的全部缩起来
  1587.                 foldAllDetail();
  1588.                 // 返回的数据列表在 json.returnStr中循环并展示
  1589.                 var resArr=json.returnStr;
  1590.                 var b='';
  1591.                 
  1592.                 for (var i=0;i<resArr.length;i++)
  1593.                 {
  1594.                     var txt='';
  1595.                     if(i%2==0)
  1596.                     {
  1597.                     txt="<tr  class='item-data-detail'  onMouseOver='this.className="item-data-detail thover over"' onMouseOut='this.className="item-data-detail"'><td ><div class='pad-l14 t-l blue' onmousemove='showNote(this);' onmouseout='hideNote(this);'>" +resArr[i].breed  ;
  1598.                     }
  1599.                     else{
  1600.                     txt="<tr  class='item-data-detail alt'  onMouseOver='this.className="item-data-detail thover over"' onMouseOut='this.className="item-data-detail alt"'><td ><div class='pad-l14 t-l blue' onmousemove='showNote(this);' onmouseout='hideNote(this);'>" +resArr[i].breed  ;
  1601.                     }
  1602.                     // 加载资源类型图片
  1603.                     var pic1='';
  1604.                     if(resArr[i].offFlag=="1"){
  1605.                         pic1="<span class='ico-b ico-b-yi' title='可议价!'></span>";
  1606.                     }
  1607.                     var pic2='';
  1608.                     if(resArr[i].relationType=="1"){
  1609.                         pic2="<span class='ico-b ico-b-cang' title='仓'></span>";
  1610.                     }
  1611.                      if(resArr[i].relationType=="3"){
  1612.                         pic2="<span title='融' class='ico-b ico-b-rong'></span>";
  1613.                     }
  1614.                     var detailPic=pic1+pic2;
  1615.                     
  1616.                     // 备注和别名的内容
  1617.                     var aliasAndNote='';
  1618.                     // 别名和备注dom
  1619.                     var detailAlias='';
  1620.                     if(resArr[i].realBreedAlias !=null && resArr[i].realBreedAlias!=''){
  1621.                         aliasAndNote=aliasAndNote+"别名:"+resArr[i].realBreedAlias;
  1622.                     }
  1623.                     if(resArr[i].note !=null && resArr[i].note!=''){
  1624.                         aliasAndNote=aliasAndNote+" 备注:"+resArr[i].note+"<br>";
  1625.                     }
  1626.                     if(resArr[i].serialNo !=null && resArr[i].serialNo!=''){
  1627.                         aliasAndNote=aliasAndNote+" 捆包号:"+resArr[i].serialNo;
  1628.                     }
  1629.                     if(aliasAndNote!=''){
  1630.                        detailAlias="<div class='pop-bname' style='display: none;'> <div class='pop-bname-arrow'></div> <div class='pop-bname-col'>" +aliasAndNote+"</div> </div> </div></td>";
  1631.                     }
  1632.                     // 规格
  1633.                     var detailSpec="<td>"+resArr[i].spec+"</td>";
  1634.                     // 材质
  1635.                     var detailMaterial="<td>"+resArr[i].material+"</td>";
  1636.                     // 钢厂
  1637.                     var detailBrand="<td>"+resArr[i].brand+"</td>";
  1638.                     // 交货地
  1639.                     var detailCity="<td>"+resArr[i].city+"</td>";
  1640.                     // 仓库
  1641.                     var detailWarehouse="<td><div  class='warehouse-name'" +"><a class='t-warehouse'"+"onclick="showWarehouseInfo(this,'"+resArr[i].warehouseName+"',"+ count +");"  "+"href='javascript:void(0);' >"+resArr[i].warehouse+"</a></div></td>";
  1642.                     
  1643.                     // 数量
  1644.                     var detailNum="<td><div class='pad-l7'>"+resArr[i].onboardItems+"</div></td>";
  1645.                     
  1646.                     
  1647.                     var detailQtyTitle='';
  1648.                     if(resArr[i].weightWay==0){
  1649.                         detailQtyTitle="title=理重";
  1650.                     }
  1651.                     else if(resArr[i].weightWay==1){
  1652.                         detailQtyTitle="title=过磅";
  1653.                     }
  1654.                     else{
  1655.                         detailQtyTitle="title=抄码";
  1656.                     }
  1657.                     // 重量
  1658.                     var detailQty="<td "+detailQtyTitle+">"+resArr[i].onboardQty+"</td>";
  1659.                     var detailAverageQty="<td>" + resArr[i].averageQty +"</td>";
  1660.                     
  1661.                     // 价格的内容
  1662.                     var priceInfo='';
  1663.                     if(onSell=='true'){
  1664.                         if(resArr[i].status==null||resArr[i].status==0||resArr[i].status==""){
  1665.                             priceInfo="<b class='f14 orange'>"+未挂牌+"</b>";
  1666.                         }
  1667.                         else
  1668.                         {
  1669.                            if(resArr[i].isOutDate==1){
  1670.                                priceInfo="<b class='f14 gray'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-</b>";
  1671.                            }
  1672.                            else
  1673.                            {
  1674.                                priceInfo="<b class='f14 orange'>"+parseFloat(resArr[i].onboardPrice)+"</b>";
  1675.                            }
  1676.                         }
  1677.                     }
  1678.                     else
  1679.                     {
  1680.                         priceInfo="<b class='f14 orange'>"+parseFloat(resArr[i].onboardPrice)+"</b>";
  1681.                     }
  1682.                     
  1683.                     var detailPrice="<td class='price'>"+priceInfo+"</td>";
  1684.                     // 联系人和联系方式
  1685.                     var detailCallWay="<div class='chat f-fl'><a  onclick='showAdmin(this);' class='img' href='javascript:void(0);'></a> <div class='pop-tel' style='display: none;'> "+ resArr[i].marketAdminName + " <a class='link' target='_blank' href='http://b.qq.com/webc.htm?new=0&sid=4001618891&eid=218808P8z8p8y8Q8P8y8K&o=banksteel.com&q=7&ref=http://www.banksteel.com/'>4001618891</a><br>电话:"+ resArr[i].marketPhone + "<br>手机:"+ resArr[i].marketMobile + "</div><div class='pop-tel-arrow' style='display: none;'></div> </div>";
  1686.                     // 购买框显示的内容
  1687.                     var buyValue='';
  1688.                     if(onSell=='true'){
  1689.                         if(resArr[i].isOutDate=='1'){
  1690.                             buyValue="<span  class='btn-buy-gray'>待挂牌</span>";
  1691.                         }
  1692.                         else{
  1693.                             buyValue="<a class='buy btnCart' href='javascript:void(0);'  onclick='addCartv6("+resArr[i].resId+","+resArr[i].shopId+","+resArr[i].channelType+","+resArr[i].onboardPrice+","+resArr[i].onboardQty+","+resArr[i].averageQty +",1,this);'>购买</a>" +
  1694.                                         "<div class='pop-addcart'>" +
  1695.                                             "<div class='pop-addcart-arrow'></div>" +
  1696.                                             "<div class='pop-addcart-col'>" +
  1697.                                                 "<div class='tcon'>已成功添加到购物车</div>" +
  1698.                                                 "<div class='t'>共计<span class='orange' id='averageQtyTotalTempPop'></span>吨 <span class='orange' id='itemTotalTempPop'></span>件 <span class='orange' id='priceTotalTempPop'></span></div>" +
  1699.                                                 "<div class='pop-addcart-operate'>" +
  1700.                                                     "<input type='button' value='去结算' class='btn-js' name='' onclick='goCar();'>" +
  1701.                                                     "<input type='button' value='继续购物' class='btn-gobuy' name='' onclick='closePopCart(this);'>" +
  1702.                                                 "</div>" +
  1703.                                             "</div>" +
  1704.                                         "</div>";
  1705.                         }
  1706.                     }
  1707.                     else{
  1708.                         buyValue="<a href='javascript:void(0);' class='buy-gray'>已闭市</a>";
  1709.                     }
  1710.                     
  1711.                     // 购买dom
  1712.                     var detailBuy="<td> <div class='cl'> <div class='operate'> "+buyValue+"</div>"+detailCallWay+"</div> </td>"+"</tr>";
  1713.                     b=b+txt+detailPic+detailAlias+detailSpec+detailMaterial+detailBrand+detailCity+detailWarehouse+detailNum+detailAverageQty+detailQty+detailPrice+detailBuy;
  1714.                 }
  1715.                 $("#showWait_"+count).remove();
  1716.                 tableBody.append(b);
  1717.                 // 绑定子仓库移出后消失的事件
  1718.                                 $(".warehouse-name").mouseleave(function(){
  1719.                                     $(".pop-warehouse,.pop-warehouse-arrow").hide();
  1720.                                 });
  1721.                                 
  1722.                 tableBody.children(".item-data-detail").mouseleave(function(){
  1723.                     $(".pop-warehouse,.pop-warehouse-arrow").hide();
  1724.                 });
  1725.                 
  1726.                 // 增加折叠行
  1727.                 var fold=$("<tr class='item-data-detail' ><td align='center' colspan='11'> <span id='fold_btn_"+summaryCode+"' class='btn-blue-back140' onclick='foldDetail(this);' >点击折叠资源</span></td></tr>");
  1728.                 tableBody.append(fold);
  1729.                 openDetail(fold);
  1730.                 configDetailEdage(count);
  1731.             },
  1732.             error :function(){
  1733.                 $("#showWait_"+count).remove();
  1734.                 // 增加暂无数据行
  1735.                 var noData="<tr class='item-data-detail' ><td align='center' colspan='11'> <div class='pad-l14 blue'><label>资源下架或已售罄,请稍后...</label></div></td></tr>";
  1736.                 // 增加折叠行
  1737.                 var fold=$(noData+"<tr class='item-data-detail' ><td align='center' colspan='11'> <span id='fold_btn_"+summaryCode+"' class='btn-blue-back140' onclick='foldDetail(this);' >点击折叠资源</span></td></tr>");
  1738.                 tableBody.append(fold);
  1739.                 openDetail(fold);
  1740.                 configDetailEdage(count);
  1741.             }   
  1742.         });   
  1743.     }
  1744. }
  1745. function onMouseOverSummaryTr(id){
  1746.     $("#"+id).attr("class","item-data-m alt thover over");
  1747. }
  1748. function onMouseOutSummaryTr(id){
  1749.     var index = id.split("_")[1];
  1750.     
  1751.     if (index % 2 == 0) {
  1752.         $("#resource_" + index).attr("class", "item-data-m");
  1753.     } else {
  1754.         $("#resource_" + index).attr("class", "alt");
  1755.     }
  1756. }
  1757. function onMouseOverDetailTr(id){
  1758.     $("#"+id).attr("class","thover over");
  1759. }
  1760. function onMouseOutDetailTr(id){
  1761.     var index = id.split("_")[1];
  1762.     
  1763.     if (index % 2 == 0) {
  1764.         $("#resource_" + index).attr("class", "item-data-m");
  1765.     } else {
  1766.         $("#resource_" + index).attr("class", "alt");
  1767.     }
  1768. }
  1769. /**
  1770.  * 展示仓库信息
  1771.  */
  1772. function showWarehouseInfo(obj,warehouseName,count){
  1773.     // 如果已经加载了仓库信息 则直接把旗下仓库信息展现出来即可
  1774.     if($(obj).parents(".warehouse-name").find(".pop-warehouse-arrow").length > 0 ){
  1775.         $(obj).parents(".warehouse-name").find(".pop-warehouse").show();
  1776.         $(obj).parents(".warehouse-name").find(".pop-warehouse-arrow").show();
  1777.         return
  1778.     }
  1779.     // 获取城市Id
  1780.     var cityIdName="#cityId_"+count;
  1781.     var cityId=$(cityIdName).val();
  1782.      $.ajax({     
  1783.             type: "Post",     
  1784.             url: "/resource/getWarehouseInfo.jsp?callback=?",     // 查询该汇总下的明细列表
  1785.             // 方法传参的写法一定要对,str为形参的名字,str2为第二个形参的名字
  1786.             "data" : {"warehouse" : warehouseName,"cityId" : cityId},
  1787.             dataType: "jsonp",     
  1788.             success : function(json){
  1789.              var txt=json.returnStr;
  1790.              // 仓库名字
  1791.              var detailName= "<strong class='f14 orange'>"+txt.name+"</strong>";
  1792.              // 仓库地址
  1793.              var detailAdd="<br><strong>仓库地址:</strong>"+txt.address+"<br>";
  1794.              // 联系电话
  1795.              var detailPhone="<strong>联系电话:</strong>"+txt.phone;
  1796.            // 拼装仓库信息展示元素
  1797.             var warehouseInfo= "<div class='pop-warehouse' style='display: none;'>"+detailName+detailAdd+detailPhone+"</div> <div class='pop-warehouse-arrow' style='display: none;'></div>";
  1798.             $(obj).parents(".warehouse-name").append(warehouseInfo);
  1799.             // 展示出仓库信息
  1800.             $(obj).parents(".warehouse-name").find(".pop-warehouse").show();
  1801.             $(obj).parents(".warehouse-name").find(".pop-warehouse-arrow").show();
  1802.             },
  1803.             error:function(){
  1804.             }   
  1805.         });   
  1806. }
  1807. /**
  1808.  * 隐藏仓库信息
  1809.  *
  1810.  * @param obj
  1811.  */
  1812. function hideWarehouse(obj){
  1813.     
  1814.     $(obj).children(".pop-warehouse,.pop-warehouse-arrow").hide();    
  1815. }
  1816. /**
  1817.  * 展示备注等
  1818.  */
  1819. function showNote(obj){
  1820.     $(obj).find(".pop-bname").show();
  1821. }
  1822. /**
  1823.  * 移开消失备注
  1824.  */
  1825. function hideNote(obj){
  1826.     $(obj).find(".pop-bname").hide();
  1827. }
  1828. function onMouseOver(obj,count){
  1829.     var aId=$(obj).attr("class");
  1830.     if(aId=="select"||aId=="more select"||aId=="selected"||aId=="more selected"){
  1831.         return;
  1832.     }
  1833.     $(obj).addClass("hover");
  1834.     var spanId="#brandSpan_"+count;
  1835.     $(spanId).addClass("border");
  1836. }
  1837. function onMouseOut(obj,count){
  1838.     $(obj).removeClass("hover");
  1839.     var spanId="#brandSpan_"+count;
  1840.     $(spanId).removeClass("border");
  1841. }
  1842. function foldAllDetail(){
  1843.     $('.item-data').find(".table_hover .table_hover_left").css("display","none");
  1844.     $('.item-data').find(".table_hover .table_hover_right").css("display","none");
  1845.     $('.item-data').find(".table_hover .table_hover_top").css("display","none");
  1846.     $('.item-data').find(".table_hover .table_hover_bottom").css("display","none");
  1847.     $('.item-data').removeClass("show");
  1848.     $('.item-data').find(".item-data-detail").hide();
  1849.     $('.item-data').find(".btn-open").text("展开");
  1850.     $('.item-data').find(".btn-open").addClass("btnoff");
  1851. }
  1852. /**
  1853.  * 点击折叠
  1854.  */
  1855. function foldDetail(obj){
  1856.     var index = $(obj).parents(".item-data").attr("id").split("_")[1];
  1857.     if (index % 2 == 0) {
  1858.         $(obj).parents(".item-data").find(".table_hover .table_hover_left").css("display","none");
  1859.         $(obj).parents(".item-data").find(".table_hover .table_hover_right").css("display","none");
  1860.         $(obj).parents(".item-data").find(".table_hover .table_hover_top").css("display","none");
  1861.         $(obj).parents(".item-data").find(".table_hover .table_hover_bottom").css("display","none");
  1862.     } else {
  1863.         $(obj).parents(".item-data").find(".alt .table_hover_left").css("display","none");
  1864.         $(obj).parents(".item-data").find(".alt .table_hover_right").css("display","none");
  1865.         $(obj).parents(".item-data").find(".alt .table_hover_top").css("display","none");
  1866.         $(obj).parents(".item-data").find(".alt .table_hover_bottom").css("display","none");
  1867.     }
  1868.     
  1869.     $(obj).parents(".item-data").removeClass("show");
  1870.     $(obj).parents(".item-data").find(".item-data-detail").hide();
  1871.     $(obj).parents(".item-data").find(".btn-open").text("展开");
  1872.     $(obj).parents(".item-data").find(".btn-open").addClass("btnoff");
  1873.     
  1874. }
  1875. function openDetail(obj){
  1876.     $(obj).parents(".item-data").find(".item-data-m .table_hover div").css("display","block");
  1877.     $(obj).parents(".item-data").addClass("show");
  1878.     $(obj).parents(".item-data").find(".item-data-detail").show();
  1879.     $(obj).parents(".item-data").find(".btn-open").text("收起");
  1880.     $(obj).parents(".item-data").find(".btn-open").removeClass("btnoff");
  1881.     $(obj).parents(".table_hover .table_hover_bottom").css("top","11px");
  1882.     $(obj).parents(".table_hover .table_hover_left").css("height","44px");
  1883.     $(obj).parents(".table_hover .table_hover_right").css("height","44px");
  1884. }
  1885. function configDetailEdage(index){
  1886.     var edage=$("#summaryRes_"+index);
  1887.     edage.find('.table_hover div').css("display","block");
  1888.     var hbottom=edage.height()-38;
  1889.     var hlefet=edage.height();
  1890.     edage.find(".table_hover .table_hover_bottom").css("top",hbottom+"px");
  1891.     edage.find(".table_hover .table_hover_left").css("height",hlefet+"px");
  1892.     edage.find(".table_hover .table_hover_right").css("height",hlefet+"px");
  1893. }
  1894. /**
  1895.  * 点击展示联系人等
  1896.  */
  1897. function showAdmin(obj){
  1898.     // 先把打开的关掉
  1899.     if($(obj.target).attr('class')!='img'){
  1900.         $('.pop-tel,.pop-tel-arrow').hide();
  1901.     }
  1902.     $(obj).parents(".chat").find(".pop-tel").show();
  1903.     $(obj).parents(".chat").find(".pop-tel-arrow").show();
  1904. }
  1905. /**
  1906.  * 点击其他地方消除联系方式
  1907.  */
  1908. $(document).click(function(ee){
  1909.     if($(ee.target).attr('class')!='img'){
  1910.         $('.pop-tel,.pop-tel-arrow').hide();
  1911.     }
  1912.     
  1913. });
  1914. $('.pop-tel,.pop-tel-arrow').click(function(ee){
  1915.     if(ee && ee.stopPropagation()){
  1916.         ee.stopPropagation();
  1917.     }else{
  1918.         ee.cancelBubble=true;
  1919.     }
  1920.     
  1921. });
  1922. /**
  1923.  * 抛物线形式加入购物车以及弹出pop操作
  1924.  *
  1925.  * @param currentObj
  1926.  */
  1927. function goCart(currentObj){
  1928.     // 元素以及其他一些变量
  1929.     var eleFlyElement = $("#flyItem")[0], eleShopCart = $(".fc-cart-item")[0];
  1930.     
  1931.     // 抛物线运动
  1932.     var myParabola = funParabola(eleFlyElement, eleShopCart, {
  1933.         speed: 200,
  1934.         curvature: 0.002,    
  1935.         complete: function() {
  1936.             eleFlyElement.style.display = "none";
  1937.         }
  1938.     });
  1939.     
  1940.     // 绑定点击事件
  1941.     if (eleFlyElement && eleShopCart) {
  1942.         // 滚动大小
  1943.         eleFlyElement.style.display = "block";
  1944.         eleFlyElement.style.left = $(currentObj).offset().left + "px";
  1945.         eleFlyElement.style.top = $(currentObj).offset().top +"px";
  1946.             
  1947.         // 需要重定位
  1948.         myParabola.position().move();
  1949.         var fcl = document.getElementById('flyItem').offsetLeft - 10;
  1950.         document.getElementById('flyItem').style.left=fcl+'px';
  1951.         
  1952.         $(currentObj).removeAttr("onclick");
  1953.         $(currentObj).attr("class","buy-gray");
  1954.         $(currentObj).attr("class","buy-gray");
  1955.         $(currentObj).text("已购买");
  1956.     }
  1957. }
  1958. /**
  1959.  * 传入参数拼装成cookie
  1960.  */
  1961. function getCookieValue(resourceId, shopId, channelType, price, qty, averageQty , items)
  1962. {
  1963.     // 返回数据格式:资源ID+shopId+资源类型+价格+ 数量+件重
  1964.     return resourceId + "_" + shopId + "_" + channelType + "_" + price + "_" + qty + "_" + averageQty + "_" + items;
  1965. }
  1966. /**
  1967.  * 将资源相关信息加入购物车
  1968.  *
  1969.  * @param name
  1970.  * @param resourceId
  1971.  * @param shopId
  1972.  * @param price
  1973.  * @param qty
  1974.  * @param averageQty
  1975.  * @param channelType
  1976.  * @param currentObj
  1977.  */
  1978. function SetCookiev6(name, resourceId, shopId, price, qty, averageQty, items, channelType,currentObj)
  1979. {
  1980.     var cookieValue = $.cookie(name);
  1981.     if (cookieValue != null && cookieValue != "")  // 如果存在 则累加
  1982.     {
  1983.         var uneacapeCookieValue = unescape(cookieValue);  // 解码
  1984.         
  1985.         if(uneacapeCookieValue.indexOf(resourceId)==-1){
  1986.             uneacapeCookieValue += "," + getCookieValue(resourceId, shopId, channelType, price, qty, averageQty,items);
  1987.             $.cookie(name, escape(uneacapeCookieValue), {expires: 30, domain:'banksteel.com', path: '/'});
  1988.         }
  1989.         changeShortCarListv6(uneacapeCookieValue);  // 更新购物车数据
  1990.     }
  1991.     else    // 如果不存在Cookie 创建
  1992.     {
  1993.         var values = getCookieValue(resourceId, shopId, channelType, price, qty, averageQty,items);
  1994.         $.cookie(name, escape(values), {expires: 30, domain:'banksteel.com', path: '/'});
  1995.         var cookieValue = $.cookie(name);
  1996.         changeShortCarListv6(unescape(cookieValue));  // 更新购物车数据
  1997.     }
  1998. }
  1999. // 关闭该窗体
  2000. function closePopCart(currentObj)
  2001. {
  2002.     $(currentObj).parent().parent().parent(".pop-addcart").css("display","none");
  2003. }
  2004. // 更新购物车数据 参数为未加密的Cookie
  2005. function changeShortCarListv6(cookieValue)
  2006. {
  2007.     var qtySum = 0;
  2008.     var priceSum = 0;
  2009.     var averageQtySum = 0;
  2010.     var priceTotal = 0;
  2011.     var itemTotal = 0;
  2012.     if(!cookieValue)
  2013.     {
  2014.         $('#rcart_top').html(0);
  2015.         $('#rcart').html(0);
  2016.         $('#cartCountNav').html(0);
  2017.         $('#cartCountNav1').html(0);
  2018.         $('#itemTotalTemp').html(0);
  2019.         $('#averageQtyTotalTemp').html(0.0000);
  2020.         $('#priceTotalTemp').html(0.00);
  2021.         
  2022.         return;
  2023.     }
  2024.     
  2025.     var values = cookieValue.split(',');
  2026.     for (var i = 0; i < values.length; i++)
  2027.     {
  2028.         var averageQty1 = parseFloat(values[i].split("_")[5]);
  2029.         var qty1 =  parseFloat(values[i].split("_")[4]);
  2030.         var price1 = parseFloat(values[i].split("_")[3]);
  2031.         var items = parseInt(values[i].split("_")[6]);
  2032.         var oneResourcePrice = MyNumber.precision(MyNumber.mul(averageQty1,price1),4);
  2033.         
  2034.         priceTotal = MyNumber.add(MyNumber.precision(parseFloat(priceTotal),2),MyNumber.precision(parseFloat(MyNumber.mul(oneResourcePrice,items)),2),2);
  2035.         averageQtySum = MyNumber.add(MyNumber.precision(parseFloat(averageQtySum),4),MyNumber.precision(parseFloat(MyNumber.mul(averageQty1,items)),4),4);
  2036.         qtySum = MyNumber.add(MyNumber.precision(parseFloat(qtySum),4),MyNumber.precision(parseFloat(qty1),4),4);
  2037.         priceSum = MyNumber.add(MyNumber.precision(parseFloat(priceSum),2),MyNumber.precision(parseFloat(price1),2),2);
  2038.         itemTotal = items + itemTotal;
  2039.     }
  2040.     
  2041.     $('#rcart_top').html(itemTotal);
  2042.     $('#rcart').html(itemTotal);
  2043.     $('#cartCountNav').html(itemTotal);
  2044.     $('#cartCountNav1').html(itemTotal);
  2045.     $('#itemTotalTemp').html(itemTotal);
  2046.     $('#averageQtyTotalTemp').html(averageQtySum);
  2047.     $('#priceTotalTemp').html(priceTotal);
  2048. }
  2049. function orFade(currentObj)
  2050. {
  2051.     $(currentObj).siblings(".pop-addcart").show();
  2052. }
  2053. /**
  2054.  * 如果关键词是交货地,则按交货地查询
  2055.  */
  2056. function keyWordIsCity(){
  2057.     if(searchParams["keyword"] != null && searchParams["keyword"] != ""  && searchParams["keyword"] != "undefiend" && typeof(searchParams["keyword"])!="undefiend"){
  2058.         var keyword = searchParams["keyword"];
  2059.         var cityMap = $.parseJSON(cities);
  2060.         var cityId = "";
  2061.         var cityName = "";
  2062.         for(var key in cityMap){
  2063.             if(unescape(keyword).indexOf(cityMap[key])>= 0){
  2064.                 if (cityId == "") {
  2065.                     cityId += key;
  2066.                     cityName += cityMap[key];
  2067.                 } else {
  2068.                     cityId += "," + key;
  2069.                     cityName += "," + cityMap[key];
  2070.                 }
  2071.             }
  2072.         }
  2073.          searchParams["cityId"]=cityId;
  2074.          searchParams["cityName"]=cityName;
  2075.     }
  2076. }
  2077. // 展示查询条件
  2078. function showParams() {
  2079.     var cityName = searchParams["cityName"];
  2080.     // 当前城市展示
  2081.     if(cityName==null || cityName=="")
  2082.     {
  2083.         $(".selects").text("交货地 :  ");
  2084.         $("#cityName").text("全国");
  2085.     }
  2086.     else
  2087.     {
  2088.         if(typeof(cityName) == "undefined")
  2089.         {
  2090.             $(".selects").text("交货地 :  ");
  2091.             $("#cityName").text("全国");
  2092.         }
  2093.         else
  2094.         {
  2095.             var cityNameMutiList = cityName.split(",");
  2096.             if(cityNameMutiList.length == 1)
  2097.             {
  2098.                 $(".selects").text("交货地 :"+searchParams["cityName"]);
  2099.                 $("#cityName").text(searchParams["cityName"]);
  2100.             }
  2101.             else
  2102.             {
  2103.                 $(".selects").text("交货地 : ");
  2104.                 $("#cityName").text("全国");
  2105.             }
  2106.         }    
  2107.     }
  2108.     
  2109.     var flagRight = false;
  2110.     $("#cityDiv").remove();
  2111.     if (cityName != null && cityName != "" && typeof(cityName) != "undefined") {
  2112.         flagRight = true;
  2113.         var cityDiv = "<div class="filter"  id="cityDiv"><div class="fl">城市:</div><div class="fl">" + unescape(cityName) + "<span id="citySpan"></span></div>";
  2114.         $("#searchCondition").append(cityDiv);
  2115.         $("#citySpan").attr("onclick", "setSearchParams('cityName');setSearchParams('cityId');searchByParams()");
  2116.     }
  2117.     $("#breedDiv").remove();
  2118.     if (searchParams["breedInfos"] != null && searchParams["breedInfos"] != "") {
  2119.         var breedNames = "";
  2120.         var breedIds = "";
  2121.         var breedInfos = searchParams["breedInfos"];
  2122.         for ( var breedId in breedInfos) {
  2123.             var breedName = breedInfos[breedId];
  2124.             if (breedName != "") {
  2125.                 if (breedNames == "") {
  2126.                     breedNames += breedName;
  2127.                 } else {
  2128.                     breedNames += "," + breedName;
  2129.                 }
  2130.             }
  2131.             if (breedId != "") {
  2132.                 if (breedIds == "") {
  2133.                     breedIds += breedId;
  2134.                 } else {
  2135.                     breedIds += "," + breedId;
  2136.                 }
  2137.             }
  2138.         }
  2139.         searchParams["breedNames"] = "";
  2140.         searchParams["breedIds"] = breedIds;
  2141.         var breedDiv = "<div class="filter" id="breedDiv"><div class="fl">品种:</div><div class="fl">" + unescape(breedNames) + "<span id="breedSpan"></span></div>";
  2142.         flagRight = true;
  2143.         $("#searchCondition").append(breedDiv);
  2144.         $("#breedSpan").attr("onclick", "setSearchParams('breedNames');setSearchParams('breedIds');setSearchParams('breedInfos');searchByParams()");
  2145.     } else {
  2146.         var breedNames = searchParams["breedNames"];
  2147.         if (breedNames != null && breedNames != "" && typeof(breedNames) != "undefined") {
  2148.             var breedDiv = "<div class="filter" id="breedDiv"><div class="fl">品种:</div><div class="fl">" + unescape(breedNames) + "<span id="breedSpan"></span></div>";
  2149.             flagRight = true;
  2150.             $("#searchCondition").append(breedDiv);
  2151.             $("#breedSpan").attr("onclick", "setSearchParams('breedNames');setSearchParams('breedIds');setSearchParams('breedInfos');searchByParams()");
  2152.         }
  2153.     }
  2154.     $("#specDiv").remove();
  2155.     var specs = searchParams["specs"];
  2156.     if (specs != null && specs != "" && typeof(specs) != "undefined") {
  2157.         flagRight = true;
  2158.         var specDiv = "<div class="filter" id="specDiv"><div class="fl">规格:</div><div class="fl">" + unescape(specs) + "<span id="specSpan"></span></div>";
  2159.         $("#searchCondition").append(specDiv);
  2160.         $("#specSpan").attr("onclick", "setSearchParams('specs');searchByParams()");
  2161.     }
  2162.     $("#materialDiv").remove();
  2163.     var materials = searchParams["materials"];
  2164.     if (materials != null && materials != "" && typeof(materials) != "undefined") {
  2165.         flagRight = true;
  2166.         var materialDiv = "<div class="filter" id="materialDiv"><div class="fl">材质:</div><div class="fl">" + unescape(materials) + "<span id="materialSpan"></span></div>";
  2167.         $("#searchCondition").append(materialDiv);
  2168.         $("#materialSpan").attr("onclick", "setSearchParams('materials');searchByParams()");
  2169.     }
  2170.     
  2171.     $("#brandDiv").remove();
  2172.     var brands = searchParams["brands"];
  2173.     if (brands != null && brands != ""  && typeof(brands) != "undefined") {
  2174.         flagRight = true;
  2175.         var brandDiv = "<div class="filter" id="brandDiv"><div class="fl">钢厂:</div><div class="fl">" + unescape(brands) + "<span id="brandSpan"></span></div>";
  2176.         $("#searchCondition").append(brandDiv);
  2177.         $("#brandSpan").attr("onclick", "setSearchParams('brands');searchByParams()");
  2178.     }
  2179.     
  2180.     $("#keywordDiv").remove();
  2181.     var keyword = searchParams["keyword"];
  2182.     if (keyword != null && keyword != "" && typeof(keyword) != "undefined") {
  2183.         flagRight = true;
  2184.         var keywordDiv = "<div class="filter" id="keywordDiv"><div class="fl">关键字:</div><div class="fl">" + unescape(keyword) + "<span id="keywordSpan"></span></div>";
  2185.         $("#searchCondition").append(keywordDiv);
  2186.         $("#keywordSpan").attr("onclick", "setSearchParams('keyword');searchByParams();cleanKeyword();");
  2187.     }
  2188.     $("#warehouseDiv").remove();
  2189.     var warehouses = searchParams["warehouses"];
  2190.     if (warehouses != null && warehouses != "") {
  2191.         var warehouseDiv = "<div class="filter" id="warehouseDiv"><div class="fl">仓库:</div><div class="fl">" + unescape(warehouses) + "<span id="warehouseSpan"></span></div>";
  2192.         flagRight = true;
  2193.         $("#searchCondition").append(warehouseDiv);
  2194.         $("#warehouseSpan").attr("onclick", "setSearchParams('warehouses');searchByParams()");
  2195.     }
  2196.     $("#priceRangeDiv").remove();
  2197.     var startPrice = searchParams["startPrice"];
  2198.     var endPrice = searchParams["endPrice"];
  2199.     var i = 0;
  2200.     var j = 0;
  2201.     if (startPrice != null && startPrice != "") {
  2202.         i++;
  2203.         j = 1;
  2204.     }
  2205.     if (endPrice != null && endPrice != "") {
  2206.         i++;
  2207.         j = 2;
  2208.     }
  2209.     if (i == 2) {
  2210.         var priceRangeDiv = "<div class="filter" id="priceRangeDiv"><div class="fl">价格:</div><div class="fl">" + startPrice + "-" + endPrice
  2211.                 + "</div><span id="priceRangeSpan"></span></div>";
  2212.         flagRight = true;
  2213.         $("#searchCondition").append(priceRangeDiv);
  2214.         $("#priceRangeSpan").attr("onclick", "setSearchParams('startPrice');setSearchParams('endPrice');searchByParams()");
  2215.     }
  2216.     if (i == 1 && j == 1) {
  2217.         $("#pr1").val(startPrice);
  2218.         var priceRangeDiv = "<div class="filter" id="priceRangeDiv"><div class="fl">价格:</div><div class="fl">大于等于" + startPrice + "</div><span id="priceRangeSpan"></span></div>";
  2219.         flagRight = true;
  2220.         $("#searchCondition").append(priceRangeDiv);
  2221.         $("#priceRangeSpan").attr("onclick", "setSearchParams('startPrice');setSearchParams('endPrice');searchByParams()");
  2222.     }
  2223.     if (i == 1 && j == 2) {
  2224.         $("#pr2").val(endPrice);
  2225.         var priceRangeDiv = "<div class="filter" id="priceRangeDiv"><div class="fl">价格:</div><div class="fl">小于等于" + endPrice + "</div><span id="priceRangeSpan"></span></div>";
  2226.         flagRight = true;
  2227.         $("#searchCondition").append(priceRangeDiv);
  2228.         $("#priceRangeSpan").attr("onclick", "setSearchParams('startPrice');setSearchParams('endPrice');searchByParams()");
  2229.     }
  2230.     
  2231.     i = 0;
  2232.     j = 0;
  2233.     $("#thicknessRangeDiv").remove();
  2234.     var startThickness = searchParams["startThickness"];
  2235.     var endThickness = searchParams["endThickness"];
  2236.     if (startThickness != null && startThickness != "") {
  2237.         i++;
  2238.         j = 1;
  2239.     }
  2240.     if (endThickness != null && endThickness != "") {
  2241.         i++;
  2242.         j = 2;
  2243.     }
  2244.     if (i == 2) {
  2245.         var thicknessRangeDiv = "<div class="filter" id="thicknessRangeDiv"><div class="fl">厚度:</div><div class="fl">" + startThickness + "-" + endThickness
  2246.                 + "</div><span id="thicknessRangeSpan"></span></div>";
  2247.         flagRight = true;
  2248.         $("#searchCondition").append(thicknessRangeDiv);
  2249.         $("#thicknessRangeSpan").attr("onclick", "setSearchParams('startThickness');setSearchParams('endThickness');searchByParams()");
  2250.     }
  2251.     if (i == 1 && j == 1) {
  2252.         var thicknessRangeDiv = "<div class="filter" id="thicknessRangeDiv"><div class="fl">厚度:</div><div class="fl">大于等于" + startThickness
  2253.                 + "</div><span id="thicknessRangeSpan"></span></div>";
  2254.         flagRight = true;
  2255.         $("#searchCondition").append(thicknessRangeDiv);
  2256.         $("#thicknessRangeSpan").attr("onclick", "setSearchParams('startThickness');setSearchParams('endThickness');searchByParams()");
  2257.     }
  2258.     if (i == 1 && j == 2) {
  2259.         var thicknessRangeDiv = "<div class="filter" id="thicknessRangeDiv"><div class="fl">厚度:</div><div class="fl">小于等于" + endThickness
  2260.                 + "</div><span id="thicknessRangeSpan"></span></div>";
  2261.         flagRight = true;
  2262.         $("#searchCondition").append(thicknessRangeDiv);
  2263.         $("#thicknessRangeSpan").attr("onclick", "setSearchParams('startThickness');setSearchParams('endThickness');searchByParams()");
  2264.     }
  2265.     i = 0;
  2266.     j = 0;
  2267.     $("#widthRangeDiv").remove();
  2268.     var startWidth = searchParams["startWidth"];
  2269.     var endWidth = searchParams["endWidth"];
  2270.     if (startWidth != null && startWidth != "") {
  2271.         i++;
  2272.         j = 1;
  2273.     }
  2274.     if (endWidth != null && endWidth != "") {
  2275.         i++;
  2276.         j = 2;
  2277.     }
  2278.     if (i == 2) {
  2279.         var widthRangeDiv = "<div class="filter" id="widthRangeDiv"><div class="fl">宽度:</div><div class="fl">" + startWidth + "-" + endWidth
  2280.                 + "</div><span id="widthRangeSpan"></span></div>";
  2281.         flagRight = true;
  2282.         $("#searchCondition").append(widthRangeDiv);
  2283.         $("#widthRangeSpan").attr("onclick", "setSearchParams('startWidth');setSearchParams('endWidth');searchByParams()");
  2284.     }
  2285.     if (i == 1 && j == 1) {
  2286.         var widthRangeDiv = "<div class="filter" id="widthRangeDiv"><div class="fl">宽度:</div><div class="fl">大于等于" + startWidth + "</div><span id="widthRangeSpan"></span></div>";
  2287.         flagRight = true;
  2288.         $("#searchCondition").append(widthRangeDiv);
  2289.         $("#widthRangeSpan").attr("onclick", "setSearchParams('startWidth');setSearchParams('endWidth');searchByParams()");
  2290.     }
  2291.     if (i == 1 && j == 2) {
  2292.         var widthRangeDiv = "<div class="filter" id="widthRangeDiv"><div class="fl">宽度:</div><div class="fl">小于等于" + endWidth + "</div><span id="widthRangeSpan"></span></div>";
  2293.         flagRight = true;
  2294.         $("#searchCondition").append(widthRangeDiv);
  2295.         $("#widthRangeSpan").attr("onclick", "setSearchParams('startWidth');setSearchParams('endWidth');searchByParams()");
  2296.     }
  2297.     
  2298.     $("#cleanDiv").remove();
  2299.     if (searchParams !=null && searchParams != "" && typeof(searchParams) != "undefined")
  2300.     {
  2301.         if (flagRight == true) {
  2302.             var cleanDiv = "<div class="btn-filter-clear" style="display:block;" id="cleanDiv">清除全部</div>";
  2303.             $("#searchCondition").append(cleanDiv);
  2304.             $(".btn-filter-clear").attr("onclick", "searchParams={};ci='';searchByParams({});cleanKeyword()");
  2305.         }
  2306.     }
  2307.     if(flagRight == true)
  2308.     {
  2309.         $("#leftspn").show();
  2310.     }
  2311.     else
  2312.     {
  2313.         $("#leftspn").hide();
  2314.     }
  2315. }
  2316. /**
  2317.  * 清除关键字
  2318.  */
  2319. function cleanKeyword()
  2320. {
  2321.     $("input[name='kw']").val("");
  2322.     $("#kwInput1").val("");
  2323. }
  2324.     
  2325. /**
  2326.  * 重设查询参数
  2327.  */
  2328. function setSearchParams(field)
  2329. {
  2330.     searchParams[field] = "";
  2331. }
  2332. /**
  2333.  * 帮我找
  2334.  */
  2335. function findRes(){
  2336.         goodsBtn = dialog({
  2337.                id: 'goods_tips_btn',
  2338.                title: '钢银找货',
  2339.                url: '/shop/market/v6/hasno_dialog.html',
  2340.                width:'400',
  2341.                height:'230',
  2342.                fixed:true
  2343.             });
  2344.          Autofixed('#goods_tips_btn',goodsBtn) ;
  2345.          goodsBtn.showModal();
  2346.          return false;
  2347. }
  2348. /**
  2349.  * 大类名跳转要带交货地
  2350.  * @param url
  2351.  */
  2352. function redirect(url){
  2353.     var ci = searchParams["cityId"];
  2354.     
  2355.     if(!ci){
  2356.         ci="";
  2357.         ct="quangguo";
  2358.         url = url+"?ct="+ct;
  2359.     }
  2360.     else{
  2361.         url = url+"?ci="+ci;
  2362.     }
  2363.     
  2364.     window.location.href=url;
  2365. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表