Browse Source

Add 食品管理-编辑功能

enilu 6 years ago
parent
commit
3a43658610
23 changed files with 264 additions and 112 deletions
  1. 0 29
      flash-waimai-api/src/main/java/cn/enilu/flash/api/config/CORSConfiguration.java
  2. 36 0
      flash-waimai-api/src/main/java/cn/enilu/flash/api/config/CorsConfig.java
  3. 2 1
      flash-waimai-api/src/main/java/cn/enilu/flash/api/config/Swagger2Configuration.java
  4. 1 1
      flash-waimai-api/src/main/java/cn/enilu/flash/api/config/UserIDAuditorConfig.java
  5. 27 0
      flash-waimai-api/src/main/java/cn/enilu/flash/api/config/WebConfig.java
  6. 4 3
      flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/BaseController.java
  7. 3 2
      flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/FileController.java
  8. 25 5
      flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/FoodController.java
  9. 4 3
      flash-waimai-api/src/main/java/cn/enilu/flash/api/interceptor/JwtFilter.java
  10. 1 1
      flash-waimai-api/src/main/java/cn/enilu/flash/api/runner/StartJob.java
  11. 5 1
      flash-waimai-core/src/main/java/cn/enilu/flash/bean/entity/front/SpecFood.java
  12. 23 0
      flash-waimai-core/src/main/java/cn/enilu/flash/bean/vo/business/FoodVo.java
  13. 14 0
      flash-waimai-core/src/main/java/cn/enilu/flash/bean/vo/business/SpecVo.java
  14. 2 1
      flash-waimai-core/src/main/java/cn/enilu/flash/core/aop/LogAop.java
  15. 3 1
      flash-waimai-core/src/main/java/cn/enilu/flash/service/system/FileService.java
  16. 1 0
      flash-waimai-core/src/main/java/cn/enilu/flash/utils/Constants.java
  17. 1 1
      flash-waimai-core/src/main/java/cn/enilu/flash/utils/HttpKit.java
  18. 39 0
      flash-waimai-manage/src/api/business/food.js
  19. 0 26
      flash-waimai-manage/src/api/getData.js
  20. 6 6
      flash-waimai-manage/src/utils/request.js
  21. 61 28
      flash-waimai-manage/src/views/business/food/food.js
  22. 5 3
      flash-waimai-manage/src/views/business/food/index.vue
  23. 1 0
      flash-waimai-manage/src/views/system/cfg/cfg.js

+ 0 - 29
flash-waimai-api/src/main/java/cn/enilu/flash/api/config/CORSConfiguration.java

@@ -1,29 +0,0 @@
-package cn.enilu.flash.api.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-/**
- * 跨域配置
- *
- * @author enilu
- * @version 2018-07-25
- */
-@Configuration
-public class CORSConfiguration {
-    @Bean
-    public WebMvcConfigurer corsConfigurer() {
-        return new WebMvcConfigurerAdapter() {
-            @Override
-            public void addCorsMappings(CorsRegistry registry) {
-                registry.addMapping("/**")
-                        .allowedHeaders("*")
-                        .allowedMethods("*")
-                        .allowedOrigins("*");
-            }
-        };
-    }
-}

+ 36 - 0
flash-waimai-api/src/main/java/cn/enilu/flash/api/config/CorsConfig.java

@@ -0,0 +1,36 @@
+package cn.enilu.flash.api.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * @author :enilu
+ * @date :Created in 2019/9/7 7:58
+ */
+@Configuration
+public class CorsConfig {
+    private CorsConfiguration buildConfig() {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        //  你需要跨域的地址  注意这里的 127.0.0.1 != localhost
+        // * 表示对所有的地址都可以访问
+        corsConfiguration.addAllowedOrigin("*");
+        //  跨域的请求头
+        corsConfiguration.addAllowedHeader("*");
+        //  跨域的请求方法
+        corsConfiguration.addAllowedMethod("*");
+        //加上了这一句,大致意思是可以携带 cookie
+        //最终的结果是可以 在跨域请求的时候获取同一个 session
+        corsConfiguration.setAllowCredentials(true);
+        return corsConfiguration;
+    }
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        //配置 可以访问的地址
+        source.registerCorsConfiguration("/**", buildConfig()); // 4
+        return new CorsFilter(source);
+    }
+}

+ 2 - 1
flash-waimai-api/src/main/java/cn/enilu/flash/api/config/Swagger2Configuration.java

@@ -1,5 +1,6 @@
 package cn.enilu.flash.api.config;
 
+import cn.enilu.flash.utils.Constants;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import springfox.documentation.builders.ApiInfoBuilder;
@@ -32,7 +33,7 @@ public class Swagger2Configuration {
         //添加head参数start
         ParameterBuilder tokenPar = new ParameterBuilder();
         List<Parameter> pars = new ArrayList<Parameter>();
-        tokenPar.name("Authorization").description("Token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
+        tokenPar.name(Constants.TOKEN_NAME).description("Token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
         pars.add(tokenPar.build());
         //添加head参数end
 

+ 1 - 1
flash-waimai-api/src/main/java/cn/enilu/flash/api/config/UserIDAuditorConfig.java

@@ -20,7 +20,7 @@ public class UserIDAuditorConfig implements AuditorAware<Long> {
     @Override
     public Optional<Long> getCurrentAuditor() {
         try {
-            String token = HttpKit.getRequest().getHeader("Authorization");
+            String token = HttpKit.getRequest().getHeader(Constants.TOKEN_NAME);
             if (StringUtils.isNotEmpty(token)) {
                 return Optional.of(JwtUtil.getUserId(token));
             }

+ 27 - 0
flash-waimai-api/src/main/java/cn/enilu/flash/api/config/WebConfig.java

@@ -0,0 +1,27 @@
+package cn.enilu.flash.api.config;
+
+import org.apache.catalina.connector.Connector;
+import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author :enilu
+ * @date :Created in 2019/9/7 11:03
+ */
+@Configuration
+public class WebConfig {
+    @Bean
+    public ConfigurableServletWebServerFactory webServerFactory() {
+        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
+        factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
+            @Override
+            public void customize(Connector connector) {
+                connector.setProperty("relaxedQueryChars", "|{}[]");
+            }
+        });
+        return factory;
+    }
+}

+ 4 - 3
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/BaseController.java

@@ -3,6 +3,7 @@ package cn.enilu.flash.api.controller;
 
 import cn.enilu.flash.api.utils.ApiConstants;
 import cn.enilu.flash.security.JwtUtil;
+import cn.enilu.flash.utils.Constants;
 import cn.enilu.flash.utils.HttpKit;
 import cn.enilu.flash.utils.StringUtils;
 import com.alibaba.fastjson.JSON;
@@ -38,7 +39,7 @@ public class BaseController {
      * @return
      */
     public Long getIdUser(HttpServletRequest request) {
-        String token = request.getHeader("Authorization");
+        String token = request.getHeader(Constants.TOKEN_NAME);
 
         Long idUser = JwtUtil.getUserId(token);
         if (idUser == null) {
@@ -54,11 +55,11 @@ public class BaseController {
      * @return
      */
     public String getToken(HttpServletRequest request) {
-        return request.getHeader("Authorization");
+        return request.getHeader(Constants.TOKEN_NAME);
     }
 
     public String getToken() {
-        return HttpKit.getRequest().getHeader("Authorization");
+        return HttpKit.getRequest().getHeader(Constants.TOKEN_NAME);
     }
 
     /**

+ 3 - 2
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/FileController.java

@@ -139,8 +139,9 @@ public class FileController extends BaseController {
         }
 
         FileInputStream fis = null;
-        response.setContentType("image/"+fileInfo.getRealFileName().split("\\.")[1]);
+
         try {
+            response.setContentType("image/"+fileInfo.getRealFileName().split("\\.")[1]);
             OutputStream out = response.getOutputStream();
             File file = new File(fileInfo.getAblatePath());
             fis = new FileInputStream(file);
@@ -149,7 +150,7 @@ public class FileController extends BaseController {
             out.write(b);
             out.flush();
         } catch (Exception e) {
-            logger.error("getImgStream error",e);
+            logger.error("getImgStream error",e.getMessage());
         } finally {
             if (fis != null) {
                 try {

+ 25 - 5
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/FoodController.java

@@ -6,9 +6,12 @@ import cn.enilu.flash.bean.entity.front.Food;
 import cn.enilu.flash.bean.entity.front.Ids;
 import cn.enilu.flash.bean.entity.front.KeyValue;
 import cn.enilu.flash.bean.entity.front.SpecFood;
+import cn.enilu.flash.bean.vo.business.FoodVo;
+import cn.enilu.flash.bean.vo.business.SpecVo;
 import cn.enilu.flash.bean.vo.front.Rets;
 import cn.enilu.flash.dao.MongoRepository;
 import cn.enilu.flash.service.front.IdsService;
+import cn.enilu.flash.utils.Lists;
 import cn.enilu.flash.utils.Maps;
 import cn.enilu.flash.utils.StringUtils;
 import cn.enilu.flash.utils.factory.Page;
@@ -17,10 +20,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Created  on 2017/12/29 0029.
@@ -72,16 +75,33 @@ public class FoodController extends BaseController {
         return Rets.success("count", count);
     }
     @RequestMapping(value = "/v2/food/{id}",method = RequestMethod.DELETE)
-
     public Object delete(@PathVariable("id") Long id) {
          mongoRepository.delete("foods", Maps.newHashMap("item_id",id));
         return Rets.success();
     }
     //todo 未完成
     @RequestMapping(value = "/v2/updatefood",method = RequestMethod.POST)
-    public Object update(HttpServletRequest request){
-        Map<String,Object> data = getRequestPayload(Map.class);
-        System.out.println(Json.toJson(data));
+    public Object update(@ModelAttribute @Valid FoodVo food){
+        List<SpecVo> specVoList = Json.fromJsonAsList(SpecVo.class,food.getSpecsJson());
+        List<SpecFood> specList = Lists.newArrayList();
+        for(SpecVo specVo:specVoList){
+            SpecFood specFood = new SpecFood();
+            specFood.setName(specVo.getSpecs());
+            specFood.setPrice(Double.valueOf(specVo.getPrice()));
+            specFood.setPacking_fee(Double.valueOf(specVo.getPacking_fee()));
+            specFood.setSpecs_name(specVo.getSpecs());
+            specList.add(specFood);
+        }
+        Food old = mongoRepository.findOne(Food.class,"item_id",food.getId());
+        System.out.println(Json.toJson(food));
+
+        old.setName(food.getName());
+        old.setDescription(food.getDescript());
+        old.setCategory_id(food.getIdMenu());
+        old.setImage_path(food.getImagePath());
+        old.setSpecfoods(specList);
+        System.out.println(Json.toJson(old));
+        mongoRepository.update(old);
         return Rets.success();
     }
 

+ 4 - 3
flash-waimai-api/src/main/java/cn/enilu/flash/api/interceptor/JwtFilter.java

@@ -1,6 +1,7 @@
 package cn.enilu.flash.api.interceptor;
 
 import cn.enilu.flash.security.JwtToken;
+import cn.enilu.flash.utils.Constants;
 import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,7 +29,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter {
     @Override
     protected boolean isLoginAttempt(ServletRequest request, ServletResponse response) {
         HttpServletRequest req = (HttpServletRequest) request;
-        String authorization = req.getHeader("Authorization");
+        String authorization = req.getHeader(Constants.TOKEN_NAME);
         return authorization != null;
     }
 
@@ -38,7 +39,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter {
     @Override
     protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
         HttpServletRequest httpServletRequest = (HttpServletRequest) request;
-        String authorization = httpServletRequest.getHeader("Authorization");
+        String authorization = httpServletRequest.getHeader(Constants.TOKEN_NAME);
 
         JwtToken token = new JwtToken(authorization);
         // 提交给realm进行登入,如果错误他会抛出异常并被捕获
@@ -82,7 +83,7 @@ public class JwtFilter extends BasicHttpAuthenticationFilter {
         // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
         if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
             httpServletResponse.setStatus(HttpStatus.OK.value());
-            return false;
+            return true;
         }
         return super.preHandle(request, response);
     }

+ 1 - 1
flash-waimai-api/src/main/java/cn/enilu/flash/api/runner/StartJob.java

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
 import java.util.List;
 
 /**
- * 启动定时任务
+ * 初始化定时任务
  *
  * @author enilu
  * @Date 2019-08-13

+ 5 - 1
flash-waimai-core/src/main/java/cn/enilu/flash/bean/entity/front/SpecFood.java

@@ -3,20 +3,23 @@ package cn.enilu.flash.bean.entity.front;
 import java.util.List;
 
 /**
- * Created  on 2018/1/3 0003.
+ * 食品规格
  *
  * @author zt
  */
 public class SpecFood {
+    //原价
     private Double original_price;
     private Integer sku_id;
     private String name;
     private String pinyin_name;
     private Long restaurant_id;
     private Long food_id;
+    //包装费
     private Double packing_fee=0.0;
     private Double recent_rating=0.0;
     private Double promotion_stock=-1.0;
+    //现价
     private Double price;
     private Boolean sold_out;
     private Double recent_popularity=0.0;
@@ -24,6 +27,7 @@ public class SpecFood {
     private Long item_id;
     private Integer checkout_mode=0;
     private Integer stock=1000;
+    //规格名称
     private String specs_name;
     private List<KeyValue> specs;
 

+ 23 - 0
flash-waimai-core/src/main/java/cn/enilu/flash/bean/vo/business/FoodVo.java

@@ -0,0 +1,23 @@
+package cn.enilu.flash.bean.vo.business;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 接收食品信息参数
+ * @author :enilu
+ * @date :Created in 2019/9/7 10:36
+ */
+@Data
+public class FoodVo {
+    private Long id;
+    private String name;
+    private String descript;
+    private Long idMenu;
+    private String imagePath;
+    private Long idShop;
+    private List<SpecVo> specs;
+    private String specsJson;
+
+}

+ 14 - 0
flash-waimai-core/src/main/java/cn/enilu/flash/bean/vo/business/SpecVo.java

@@ -0,0 +1,14 @@
+package cn.enilu.flash.bean.vo.business;
+
+import lombok.Data;
+
+/**
+ * @author :enilu
+ * @date :Created in 2019/9/7 11:13
+ */
+@Data
+public class SpecVo {
+    private String specs;
+    private String packing_fee;
+    private String price;
+}

+ 2 - 1
flash-waimai-core/src/main/java/cn/enilu/flash/core/aop/LogAop.java

@@ -7,6 +7,7 @@ import cn.enilu.flash.core.log.LogManager;
 import cn.enilu.flash.core.log.LogTaskFactory;
 import cn.enilu.flash.security.JwtUtil;
 import cn.enilu.flash.service.system.LogObjectHolder;
+import cn.enilu.flash.utils.Constants;
 import cn.enilu.flash.utils.HttpKit;
 import cn.enilu.flash.utils.StringUtils;
 import org.aspectj.lang.ProceedingJoinPoint;
@@ -70,7 +71,7 @@ public class LogAop {
         //获取用户id,admin和api模块获取idUser方式不同
         Long idUser = null;
         HttpServletRequest request = HttpKit.getRequest();
-        String token = request.getHeader("Authorization");
+        String token = request.getHeader(Constants.TOKEN_NAME);
         if(StringUtils.isNotEmpty(token)) {
             idUser = JwtUtil.getUserId(token);
         }

+ 3 - 1
flash-waimai-core/src/main/java/cn/enilu/flash/service/system/FileService.java

@@ -145,7 +145,9 @@ public class FileService extends BaseService<FileInfo,Long,FileInfoRepository> {
 //        }
 //        fileInfoRepository.saveAll(fileInfoList);
         FileInfo fileInfo = fileInfoRepository.findByRealFileName(fileName);
-        fileInfo.setAblatePath(configCache.get(ConfigKeyEnum.SYSTEM_FILE_UPLOAD_PATH.getValue()) + File.separator+fileInfo.getRealFileName());
+        if(fileInfo!=null) {
+            fileInfo.setAblatePath(configCache.get(ConfigKeyEnum.SYSTEM_FILE_UPLOAD_PATH.getValue()) + File.separator + fileInfo.getRealFileName());
+        }
         return fileInfo;
     }
 }

+ 1 - 0
flash-waimai-core/src/main/java/cn/enilu/flash/utils/Constants.java

@@ -1,6 +1,7 @@
 package cn.enilu.flash.utils;
 
 public interface Constants {
+    String TOKEN_NAME ="Authorization";
 
     long SYSTEM_USER_ID=-1;
 

+ 1 - 1
flash-waimai-core/src/main/java/cn/enilu/flash/utils/HttpKit.java

@@ -68,7 +68,7 @@ public class HttpKit {
         return new WafRequestWrapper(request);
     }
     public static  String getToken(){
-        return  getRequest().getHeader("Authorization");
+        return  getRequest().getHeader(Constants.TOKEN_NAME);
     }
 
     /**

+ 39 - 0
flash-waimai-manage/src/api/business/food.js

@@ -0,0 +1,39 @@
+import request from '@/utils/request'
+
+/**
+ * 获取食品列表
+ */
+
+// export const getFoods = data => fetch('/shopping/v2/foods', data)
+export function getFoods(params) {
+  return request({
+    url: '/shopping/v2/foods',
+    method: 'get',
+    params
+  })
+}
+
+/**
+ * 更新食品信息
+ */
+
+// export const updateFood = data => fetch('/shopping/v2/updatefood', data, 'POST');
+export function updateFood(params) {
+  return request({
+    url: '/shopping/v2/updatefood',
+    method: 'post',
+    params
+  })
+}
+
+/**
+ * 删除食品
+ */
+
+// export const deleteFood = food_id => fetch('/shopping/v2/food/' + food_id, {}, 'DELETE');
+export function deleteFood(id) {
+  return request({
+    url: '/shopping/v2/food/' + id,
+    method: 'delete'
+  })
+}

+ 0 - 26
flash-waimai-manage/src/api/getData.js

@@ -104,29 +104,3 @@ export function deleteResturant(id) {
     method: 'delete'
   })
 }
-
-/**
- * 获取食品列表
- */
-
-// export const getFoods = data => fetch('/shopping/v2/foods', data)
-export function getFoods(params) {
-  return request({
-    url: '/shopping/v2/foods',
-    method: 'get',
-    params
-  })
-}
-
-/**
- * 更新食品信息
- */
-
-// export const updateFood = data => fetch('/shopping/v2/updatefood', data, 'POST');
-export function updateFood(params) {
-  return request({
-    url: '/shopping/v2/updatefood',
-    method: 'post',
-    params
-  })
-}

+ 6 - 6
flash-waimai-manage/src/utils/request.js

@@ -2,7 +2,7 @@ import axios from 'axios'
 import { Message, MessageBox } from 'element-ui'
 import store from '../store'
 import { getToken } from '@/utils/auth'
-
+// axios.defaults.withCredentials=true
 // 创建axios实例
 const service = axios.create({
   baseURL: process.env.BASE_API, // api的base_url
@@ -10,7 +10,6 @@ const service = axios.create({
 
 })
 
-
 // request拦截器
 service.interceptors.request.use(
   config => {
@@ -18,12 +17,13 @@ service.interceptors.request.use(
     if (token) {
       config.headers['Authorization'] = token // 让每个请求携带自定义token 请根据实际情况自行修改
     }
-    // config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
+    // config.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'
+    // config.data = true
     return config
   },
   error => {
     // Do something with request error
-    console.log('error',error) // for debug
+    console.log('error', error) // for debug
     Promise.reject(error)
   }
 )
@@ -46,13 +46,13 @@ service.interceptors.response.use(
   },
   error => {
     //debug
-    if(error.response && error.response.data.errors) {
+    if (error.response && error.response.data.errors) {
       Message({
         message: error.response.data.errors[0].defaultMessage,
         type: 'error',
         duration: 5 * 1000
       })
-    }else {
+    } else {
       if (error.response && error.response.data.message) {
         Message({
           message: error.response.data.message,

+ 61 - 28
flash-waimai-manage/src/views/business/food/food.js

@@ -1,17 +1,24 @@
 import { getApiUrl } from '@/utils/utils'
 import { baseUrl, baseImgPath } from '@/config/env'
+import { getToken } from '@/utils/auth'
 
 import {
   getFoods,
   updateFood,
   deleteFood
-} from '@/api/getData'
+} from '@/api/business/food'
 import { getResturantDetail, getMenuById, getMenu } from '@/api/business/shop'
+import { Loading } from 'element-ui'
+
 export default {
   data() {
     return {
       baseUrl,
       baseImgPath,
+      uploadUrl: '',
+      uploadHeaders: {
+        'Authorization': ''
+      },
       restaurant_id: null,
       city: {},
       offset: 0,
@@ -46,6 +53,8 @@ export default {
   created() {
     this.restaurant_id = this.$route.query.restaurant_id
     this.initData()
+    this.uploadUrl = getApiUrl() + '/file'
+    this.uploadHeaders['Authorization'] = getToken()
   },
   computed: {
     specs: function() {
@@ -69,7 +78,7 @@ export default {
     async getMenu() {
       this.menuOptions = []
       try {
-        console.log('seltable',this.selectTable)
+        console.log('seltable', this.selectTable)
         const menuResponse = await getMenu({ restaurant_id: this.selectTable.restaurant_id, allMenu: true })
         const menu = menuResponse.data
         menu.forEach((item, index) => {
@@ -175,16 +184,13 @@ export default {
     },
     async handleDelete(index, row) {
       try {
-        const res = await deleteFood(row.item_id)
-        if (res.status === 1) {
+        deleteFood(row.item_id).then(response => {
           this.$message({
             type: 'success',
             message: '删除食品成功'
           })
           this.tableData.splice(index, 1)
-        } else {
-          throw new Error(res.message)
-        }
+        })
       } catch (err) {
         this.$message({
           type: 'error',
@@ -212,29 +218,56 @@ export default {
       }
       return isRightType && isLt2M
     },
+
+    handleBeforeUpload() {
+      this.loadingInstance = Loading.service({
+        lock: true,
+        text: this.$t('common.uploading'),
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      })
+    },
+    handleUploadSuccess(response, raw) {
+      this.loadingInstance.close()
+      if (response.code === 20000) {
+        console.log(response.data)
+        this.selectTable.image_path = response.data.realFileName
+        this.selectTable.image = getApiUrl() + '/file/getImgStream?fileName=' + response.data.realFileName
+      } else {
+        this.$message({
+          message: this.$t('common.uploadError'),
+          type: 'error'
+        })
+      }
+    },
     async updateFood() {
       this.dialogFormVisible = false
-      try {
-        const subData = { new_category_id: this.selectMenu.value, specs: this.specs }
-        const postData = { ...this.selectTable, ...subData }
-        console.log('postdata',postData)
-        const res = await updateFood(postData)
-        console.log(res)
-        if (res.status === 1) {
-          this.$message({
-            type: 'success',
-            message: '更新食品信息成功'
-          })
-          this.getFoods()
-        } else {
-          this.$message({
-            type: 'error',
-            message: res.message
-          })
-        }
-      } catch (err) {
-        console.log('更新餐馆信息失败', err)
-      }
+
+      // const subData = { new_category_id: this.selectMenu.value, specs: this.specs }
+      // const postData = { ...this.selectTable, ...subData }
+
+      const me = this
+      updateFood({
+        name: me.selectTable.name,
+        id: me.selectTable.item_id,
+        descript: me.selectTable.description,
+        idMenu: me.selectMenu.value,
+        idShop: me.selectTable.restaurant_id,
+        imagePath: me.selectTable.image_path,
+        specsJson: JSON.stringify(me.specs)
+      }).then(response => {
+        this.fetchData()
+        this.$message({
+          type: 'success',
+          message: '更新食品信息成功'
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'error',
+          message: err.message
+        })
+      })
+
     },
     fetchNext() {
       this.listQuery.page = this.listQuery.page + 1

+ 5 - 3
flash-waimai-manage/src/views/business/food/index.vue

@@ -96,10 +96,12 @@
           <el-form-item label="食品图片" label-width="100px">
             <el-upload
               class="avatar-uploader"
-              :action="baseUrl + '/v1/addimg/food'"
+
               :show-file-list="false"
-              :on-success="handleServiceAvatarScucess"
-              :before-upload="beforeAvatarUpload">
+              :action="uploadUrl"
+              :headers="uploadHeaders"
+              :before-upload="handleBeforeUpload"
+              :on-success="handleUploadSuccess">
               <img v-if="selectTable.image_path" :src="selectTable.image" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>

+ 1 - 0
flash-waimai-manage/src/views/system/cfg/cfg.js

@@ -167,6 +167,7 @@ export default {
             this.fetchData()
           })
         }).catch(() => {
+
         })
       }
     },