zoukankan      html  css  js  c++  java
  • shop--6.店铺注册--店铺注册之js实现

    1.获取初始的区域和类别

    2.提交给后台

    首先要有初始化的url,一加载此js,就执行此url,进行初始化

    initUrl中的getshopinitinfo 是获取店铺分类和区域信息,进行前端的店铺分类和所属区域的下拉菜单的初始化

    registerShopUrl 是进行店铺的注册,即在前面的WEB-INF/html/shop/shopoperation.html中添加的信息,通过此url返回给后台的Controller处理,进行店铺的注册

    js页面的调试:运行Tomcat,在Chrome中按F12,找到sources,在其中找到js页面,然后打上断点就可以了,F10是步过,F8是跳过

    其中加入了

    getShopInitInfo()  获取店铺初始信息

    getShopInfo(shopId)  通过传入的shopId,查询shop的信息,然后获取到js页面中,为后面修改shop信息做准备

    $('#submit')  提交店铺信息的按钮

      1 /**
      2  * 
      3  */
      4 // 从后台获取到区域信息和地区信息 填充进去
      5 $(function() {
      6     var shopId = getQueryString('shopId');
      7     var isEdit = shopId ? true : false;
      8 
      9     var initUrl = '/o2o/shopadmin/getshopinitinfo';
     10     var registerShopUrl = '/o2o/shopadmin/registershop';
     11     var shopInfoUrl = '/o2o/shopadmin/getshopbyid?shopId=' + shopId;
     12     var editShopUrl = '/o2o/shopadmin/modifyshop';
     13     if (!isEdit) {
     14         getShopInitInfo();
     15     } else {
     16         getShopInfo(shopId);
     17     }
     18     function getShopInfo(shopId) {
     19         $.getJSON(shopInfoUrl, function(data) {
     20             if (data.success) {
     21                 var shop = data.shop;
     22                 $('#shop-name').val(shop.shopName);
     23                 $('#shop-addr').val(shop.shopAddr);
     24                 $('#shop-phone').val(shop.phone);
     25                 $('#shop-desc').val(shop.shopDesc);
     26                 var shopCategory = '<option data-id="'
     27                         + shop.shopCategory.shopCategoryId + '" selected>'
     28                         + shop.shopCategory.shopCategoryName + '</option>';
     29                 var tempAreaHtml = '';
     30                 data.areaList.map(function(item, index) {
     31                     tempAreaHtml += '<option data-id="' + item.areaId + '">'
     32                             + item.areaName + '</option>';
     33                 });
     34                 $('#shop-category').html(shopCategory);
     35                 $('#shop-category').attr('disabled', 'disabled');
     36                 $('#area').html(tempAreaHtml);
     37                 $("#area option[data-id='"+shop.area.areaId+"']").attr('data-id', shop.areaId);
     38             }
     39         });
     40     }
     41     function getShopInitInfo() {
     42         $.getJSON(initUrl, function(data) {
     43             if (data.success) {
     44                 var tempHtml = '';
     45                 var tempAreaHtml = '';
     46                 data.shopCategoryList.map(function(item, index) {
     47                     tempHtml += '<option data-id="' + item.shopCategoryId
     48                             + '">' + item.shopCategoryName + '</option>';
     49                 });
     50                 data.areaList.map(function(item, index) {
     51                     tempAreaHtml += '<option data-id="' + item.areaId + '">'
     52                             + item.areaName + '</option>';
     53                 });
     54                 $('#shop-category').html(tempHtml);
     55                 $('#area').html(tempAreaHtml);
     56             }
     57         });
     58     }
     59     //
     60     $('#submit').click(function() {
     61         var shop = {};
     62         if(isEdit){
     63             shop.shopId = shopId;
     64         }
     65         shop.shopName = $('#shop-name').val();
     66         shop.shopAddr = $('#shop-addr').val();
     67         shop.phone = $('#shop-phone').val();
     68         shop.shopDesc = $('#shop-desc').val();
     69         shop.shopCategory = {
     70             shopCategoryId : $('#shop-category').find('option').not(function() {
     71                 return !this.selected;
     72             }).data('id')
     73         };
     74         shop.area = {
     75             areaId : $('#area').find('option').not(function() {
     76                 return !this.selected;
     77             }).data('id')
     78         };
     79         var shopImg = $('#shop-img')[0].files[0];
     80         var formData = new FormData();
     81         formData.append('shopImg', shopImg);
     82         formData.append('shopStr', JSON.stringify(shop));
     83         var verifyCodeActual = $('#j_captcha').val();
     84         if (!verifyCodeActual) {
     85             $.toast('请输入验证码!');
     86             return;
     87         }
     88         formData.append('verifyCodeActual', verifyCodeActual);
     89         $.ajax({
     90             url : (isEdit ? editShopUrl : registerShopUrl),
     91             type : 'POST',
     92             data : formData,
     93             contentType : false,
     94             processData : false,
     95             cache : false,
     96             success : function(data) {
     97                 console.log(data)
     98                 if (data.success) {
     99                     $.toast('提交成功');
    100                 } else {
    101                     $.toast('提交失败' + data.errMsg);
    102                 }
    103                 $('#captcha_img').click();
    104             },
    105             error : function(err) {
    106                 console.log(err.status);
    107                 console.log('异常');
    108             }
    109 
    110         });
    111     });
    112 })

    然后在shopoperation.html中添加js的标签

    1 <script type='text/javascript' src='../resources/js/shop/shopoperation.js' charset='utf-8'></script>

    其中的initUrl='/shopadmin/getshopinitinfo'; 中的初始化调用方法

     1 @RequestMapping(value="getshopinitinfo", method=RequestMethod.GET)
     2     @ResponseBody
     3     public Map<String, Object> getShopInitInfo(){
     4         Map<String, Object> modelMap = new HashMap<>();
     5         List<ShopCategory> shopCategoryList = new ArrayList<>(  );
     6         List<Area> areaList = new ArrayList<>(  );
     7         try{
     8             shopCategoryList = shopCategoryService.getShopCategoryList( new ShopCategory() );
     9             areaList = areaService.getAreaList();
    10         } catch(Exception e){
    11             modelMap.put("success", false);
    12             modelMap.put("errMsg", e.toString());
    13         }
    14         modelMap.put( "shopCategoryList", shopCategoryList );
    15         modelMap.put( "areaList", areaList );
    16         modelMap.put( "success", true );
    17         return modelMap;
    18  
    19     }
  • 相关阅读:
    中台入门系列1
    微服务 2.0 技术栈选型手册
    mysql计划任务每天定时执行
    更高效地提高redis client多线程操作的并发吞吐设计
    azure之MSSQL服务性能测试
    .NET Socket服务编程之-高效连接接入编
    轻易实现基于linux或win运行的聊天服务端程序
    零配置Socket TCP消息通讯服务容器EC
    azure存储压测的问题(农码主观意识太强被坑了)
    业务逻辑层缓存应该设计
  • 原文地址:https://www.cnblogs.com/windbag7/p/9346967.html
Copyright © 2011-2022 走看看