Browse Source

批量删除和批量导出功能

hulh 8 years ago
parent
commit
54f8a93862

+ 30 - 7
src/main/java/com/uas/platform/b2c/external/erp/order/service/impl/B2cOrderServiceImpl.java

@@ -5,7 +5,9 @@ import com.uas.api.b2c_erp.buyer.model.B2cOrderDetail;
 import com.uas.api.b2c_erp.buyer.model.Payment;
 import com.uas.api.b2c_erp.buyer.service.B2cOrderService;
 import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.dao.UserDao;
 import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
@@ -22,6 +24,7 @@ import com.uas.platform.b2c.trade.order.dao.OrderDao;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.OrderDetail;
 import com.uas.platform.b2c.trade.order.service.OrderService;
+import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.model.Type;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
@@ -68,9 +71,17 @@ public class B2cOrderServiceImpl implements B2cOrderService {
     @Autowired
     private BankInfoService bankInfoService;
 
+    @Autowired
+    private UserDao userDao;
+
     @Autowired
     private EnterpriseDao enterpriseDao;
 
+    /**
+     * 成功标语
+     */
+    private static final String SUCCESS = "success";
+
     @Override
     public List<B2cOrder> getAllOrder() {
         // 要获取的采购的状态
@@ -105,13 +116,14 @@ public class B2cOrderServiceImpl implements B2cOrderService {
                 GoodsHistory goodsHistory = goodsHistoryDao.findNewByBatchCode(orderDetail.getBatchCode());
                 if (goodsHistory != null) {
                     List<Product> products = productDao.findByEnUUAndCmpUuId(enuu, goodsHistory.getUuid());
+                    B2cOrderDetail b2cOrderDetail = ModelConverter.convertUas(orderDetail);
                     if (!CollectionUtils.isEmpty(products)) {
-                        B2cOrderDetail b2cOrderDetail = ModelConverter.convertUas(orderDetail);
                         b2cOrderDetail.setProductCode(products.get(0).getProdNum());// 添加erp物料编号
-                        b2cOrderDetails.add(b2cOrderDetail);
-                    } else {
-                        productExists = false;
                     }
+                    b2cOrderDetails.add(b2cOrderDetail);
+                    // else {
+                    //     productExists = false;
+                    // }
                 }
             }
             if (productExists) {
@@ -149,17 +161,28 @@ public class B2cOrderServiceImpl implements B2cOrderService {
         if (!CollectionUtils.isEmpty(mallBankInfos)) {
             bankTransfer.setJsonReceive(FastjsonUtils.toJson(mallBankInfos.get(0)));
         }
-
+        // erp部分修改当前处理人信息
+        Order order = orderDao.findByOrderid(payment.getOrderid());
+        List<User> users = userDao.findUserByUserUU(order.getBuyeruu());
+        if (!SystemSession.getUser().getEnterprise().getUu().equals(order.getBuyerenuu())){
+            throw new IllegalOperatorException("警告!订单不能确认!您无权限操作");
+        }
+        if (!CollectionUtils.isEmpty(users)){
+            users.get(0).setCurrentEnterprise(order.getBuyerenuu());
+        }
+        SystemSession.setUser(users.get(0));
         bankTransferService.save(bankTransfer, payment.getOrderid());
         return true;
     }
 
     @Override
-    public B2cOrder ensury(String orderid) {
+    public String ensury(String orderid) {
         Order order = orderDao.findByOrderid(orderid);
         if (order != null) {
             orderService.ensureOrderAccept(order.getId().toString());
+            return SUCCESS;
+        } else {
+            throw new IllegalOperatorException("警告!订单编号有误");
         }
-        return null;
     }
 }

+ 16 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java

@@ -94,7 +94,7 @@ public class ProductController {
      * @return model and view
      * @throws UnsupportedEncodingException the unsupported encoding exception
      */
-    @RequestMapping(value = "/template/download/type", method = RequestMethod.POST)
+    @RequestMapping(value = "/template/download/type", method = RequestMethod.GET)
 	public ModelAndView exportProductsStandard(@RequestParam("type") String type, @RequestParam(required = false, value = "isAjax", defaultValue = "false")Boolean isAjax, HttpServletRequest request, @RequestParam(value = "keyword", required = false) String keyword) throws UnsupportedEncodingException {
 		HttpSession session = request.getSession();
 		ModelAndView modelAndView = new ModelAndView();
@@ -122,6 +122,21 @@ public class ProductController {
 		return modelAndView;
 	}
 
+	/**
+	 * 根据选中的id列表导出数据
+	 *
+	 * @param idList	id列表
+	 * @return
+	 */
+	@RequestMapping(value = "/template/selected/data", method = RequestMethod.GET)
+	public ModelAndView exportSelectedProduct(String idList) {
+		ModelAndView modelAndView = new ModelAndView();
+		List<Goods> productsGoods = productService.getSelectedProducts(idList);
+		modelAndView.addObject("data", productsGoods);
+		modelAndView.addObject("goodsService", goodsService);
+		modelAndView.setView(new JxlsExcelView("classpath:jxls-tpl/trade/products", "优软商城--产品库列表"));
+		return modelAndView;
+	}
 
     /**
      * 批量删除产品

+ 1 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java

@@ -1569,6 +1569,7 @@ public class Goods implements Serializable {
 		g.setCode(product.getPcmpcode());
 		g.setEncapsulation(product.getEncapsulation());
 		g.setPackaging(product.getPackaging());
+		g.setProduceDate(product.getProduceDate());
 		g.setUuid(product.getCmpUuId());
 		return g;
 	}

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -38,6 +38,14 @@ public interface ProductService {
      */
     List<Goods> getProductsGoods(String type, String keyword);
 
+    /**
+     * 根据id字符串获取对应的产品列表
+     *
+     * @param idList
+     * @return  List<Goods>
+     */
+    List<Goods> getSelectedProducts(String idList);
+
     /**
      * 批量删除产品
      *

+ 17 - 36
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -3019,35 +3019,24 @@ public class GoodsServiceImpl implements GoodsService {
      */
     @Override
     public ResultMap getDeleteProductMessage(Long productid) {
-        if(productid == null) {
-            throw new IllegalOperatorException
-                    ("传入的信息为空");
+        if (productid == null) {
+            throw new IllegalOperatorException("传入的信息为空");
         }
-        Integer homeCount = 0, recommentCount =
-                0, onSaleCount = 0;
+        Integer homeCount = 0, recommentCount = 0, onSaleCount = 0;
         List<Goods> goodsList = goodsDao.findByProductId(productid);
         for (Goods goods : goodsList) {
             List<OrderDetail> orderDetails = orderDetailDao.findByBatchCode
                     (goods.getBatchCode());
             for (OrderDetail orderDetail : orderDetails) {
                 Order order = orderDetail.getOrder();
-                if((order.getStatus().intValue()
-                 != Status.TOBECONFIRMED.value
-                        ()) && (
-                        OrderStatus.UNAVAILABLE
-                                .getCodes()
-                                .indexOf(order.getStatus
-                                        ()
-                                        .intValue())) > -1) {
-                    return new ResultMap
-                            (CodeType
-                                    .NOT_PERMIT, "已存在订单信息,不能删除");
+                if((order.getStatus() != Status.TOBECONFIRMED.value())
+                        && (OrderStatus.UNAVAILABLE.getCodes().indexOf(order.getStatus())) > -1) {
+                    return new ResultMap(CodeType.NOT_PERMIT, "已存在订单信息,不能删除");
                 }
             }
 
-            JSONObject jsonObject = floorsService.isInHome(goods
-                    .getBatchCode());
-            if(jsonObject != null) {
+            JSONObject jsonObject = floorsService.isInHome(goods.getBatchCode());
+            if (jsonObject != null) {
                 homeCount ++;
             }
 
@@ -3060,29 +3049,21 @@ public class GoodsServiceImpl implements GoodsService {
                     recommentCount++;
                 }
             }
-            int status = goods.getStatus()
-                    .intValue();
-            if( status ==
-                    Status.AVAILABLE.value() ||
-                    status == Status
-                            .UNAVAILABLE.value()) {
+            int status = goods.getStatus();
+            if ( status == Status.AVAILABLE.value() ||
+                    status == Status.UNAVAILABLE.value()) {
                 onSaleCount ++;
             }
 
         }
-        if(homeCount != 0) {
-            return new ResultMap(CodeType
-                    .OK, "存在被推荐到商城首页的信息");
+        if (homeCount != 0) {
+            return new ResultMap(CodeType.OK, "存在被推荐到商城首页的信息");
         }
-        if(recommentCount != 0) {
-            return new ResultMap
-                    (CodeType.OK,
-                            "存在已被推荐到店铺首页的信息");
+        if (recommentCount != 0) {
+            return new ResultMap(CodeType.OK, "存在已被推荐到店铺首页的信息");
         }
-        if(onSaleCount != 0) {
-            return new ResultMap
-                    (CodeType.OK,
-                            "存在已上架信息");
+        if (onSaleCount != 0) {
+            return new ResultMap(CodeType.OK, "存在已上架信息");
         }
 
         return ResultMap.success(null);

+ 66 - 40
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -8,6 +8,7 @@ import com.uas.platform.b2c.common.account.service.EnterpriseService;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.IntegerConstant;
 import com.uas.platform.b2c.core.constant.ShortConstant;
+import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
@@ -228,22 +229,22 @@ public class ProductServiceImpl implements ProductService {
         page.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
         page.filter("b2cEnabled", com.uas.platform.b2c.prod.commodity.constant.IntegerConstant.YES_INT);
         //产品部要求导出是非标和标准全部导出,先注释这条代码
-//        if(StringUtils.isEmpty(type)) {
-//            type = "all";
-//        }
-//        if(type.contains("standard")) {
-//            page.filter("standard", (short)1);
-//        }else if(type.contains("nStandard")){
-//            page.filter("standard", (short)0);
-//        }
-//        if(StringUtils.hasText(keyword)) {
-//            SimpleExpression code = PredicateUtils.like("kind", keyword, true);
-//            SimpleExpression brandEn = PredicateUtils.like("pbranden", keyword, true);
-//            SimpleExpression cmpCode = PredicateUtils.like("pcmpcode", keyword, true);
-//            SimpleExpression[] expressions2 = new SimpleExpression[] {code, brandEn, cmpCode};
-//            LogicalExpression logicalExpression2 = PredicateUtils.or(expressions2);
-//            page.expression(logicalExpression2);
-//        }
+        if (StringUtils.isEmpty(type)) {
+            type = "all";
+        }
+        if (type.contains("standard")) {
+            page.filter("standard", (short)1);
+        } else if (type.contains("nStandard")) {
+            page.filter("standard", (short)0);
+        }
+        if (StringUtils.hasText(keyword)) {
+            SimpleExpression code = PredicateUtils.like("kind", keyword, true);
+            SimpleExpression brandEn = PredicateUtils.like("pbranden", keyword, true);
+            SimpleExpression cmpCode = PredicateUtils.like("pcmpcode", keyword, true);
+            SimpleExpression[] expressions2 = new SimpleExpression[] {code, brandEn, cmpCode};
+            LogicalExpression logicalExpression2 = PredicateUtils.or(expressions2);
+            page.expression(logicalExpression2);
+        }
         products = productDao.findAll(new Specification<Product>() {
             @Override
             public Predicate toPredicate(Root<Product> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
@@ -265,18 +266,45 @@ public class ProductServiceImpl implements ProductService {
                 return o2.getStandard().compareTo(o1.getStandard());
             }
         });
-        List<Goods> goodses = new ArrayList<>();
-        for (Product product : products) {
-            System.out.println(product.getId() + " -" + product.getStandard());
-            List<Goods> goodses1 = goodsDao.findByProductIdOrderByGoodsId(product.getId());
-            if(goodses1.size() > 0) {
-                goodses.addAll(goodses1);
-            }else {
+
+        return exportGoodsByProduct(products);
+    }
+
+    /**
+     * 将获取的product转化为goods信息导出
+     * @param   productList 产品列表
+     * @return  List<Goods>
+     */
+    private List<Goods> exportGoodsByProduct(List<Product> productList) {
+        List<Goods> resultList = new ArrayList<>();
+        for (Product product : productList) {
+            List<Goods> goodsList = goodsDao.findByProductIdOrderByGoodsId(product.getId());
+            if (!CollectionUtils.isEmpty(goodsList)) {
+                resultList.addAll(goodsList);
+            } else {
                 Goods g = Goods.productConvertGoods(product);
-                goodses.add(g);
+                resultList.add(g);
             }
         }
-        return goodses;
+        return resultList;
+    }
+
+    @Override
+    public List<Goods> getSelectedProducts(String idList) {
+        String[] idArray = idList.split(SplitChar.COMMA);
+        List<Long> longList = new ArrayList<>();
+        for (String id : idArray) {
+            longList.add(Long.valueOf(id));
+        }
+        List<Product> productList = productDao.findProductInId(longList);
+        //先按照id降序排列
+        Collections.sort(productList, new Comparator<Product>() {
+            @Override
+            public int compare(Product o1, Product o2) {
+                return (o2.getId().compareTo(o1.getId()));
+            }
+        });
+        return exportGoodsByProduct(productList);
     }
 
     @Override
@@ -294,13 +322,12 @@ public class ProductServiceImpl implements ProductService {
                     for (OrderDetail detail : orderList) {
                         Order order = detail.getOrder();
                         int status = order.getStatus() == null ? detail.getStatus() : order.getStatus();
-                        if (codes.indexOf(String.valueOf(status)) < 0) {
+                        if (!codes.contains(String.valueOf(status))) {
                             // 区分是否是假单,or_orderids 不为空
                            if (StringUtils.isEmpty(order.getOrderids())) {
                                isExistOrder = true;
                                break;
                            }
-
                         }
                     }
                     if (isExistOrder) {
@@ -314,8 +341,7 @@ public class ProductServiceImpl implements ProductService {
                     goodsService.deleteGoods(goodses);
                     productDao.delete(id);
                 } else {
-                    throw new
-                            IllegalOperatorException("该产品中存在已下单的在售产品信息,不能删除");
+                    throw new IllegalOperatorException("该产品中存在已下单的在售产品信息,不能删除");
                 }
         }
     }
@@ -331,9 +357,9 @@ public class ProductServiceImpl implements ProductService {
         Integer fail = 0;
         Integer success = 0;
         Long uu = SystemSession.getUser().getEnterprise().getUu();
-        if(ProductConstant.STANDARD.equals(type)) {
+        if (ProductConstant.STANDARD.equals(type)) {
             standard = IntegerConstant.YES_SHORT;
-        }else {
+        } else {
             standard = IntegerConstant.NO_SHORT;
         }
         List<Product> products = productDao.findProductByEnuuAndStandard(uu, standard);
@@ -349,7 +375,7 @@ public class ProductServiceImpl implements ProductService {
                     for (OrderDetail detail : orderList) {
                         Order order = detail.getOrder();
                         Integer status = order.getStatus() == null ? detail.getStatus() : order.getStatus();
-                        if(codes.indexOf(String.valueOf(status)) < 0) {
+                        if (!codes.contains(String.valueOf(status))) {
                             //防止虚拟单据
                             if (StringUtils.isEmpty(order.getOrderids())) {
                                 isExistOrder = true;
@@ -358,12 +384,12 @@ public class ProductServiceImpl implements ProductService {
 
                         }
                     }
-                    if(isExistOrder) {
+                    if (isExistOrder) {
                         break;
                     }
                 }
-                if(!isExistOrder) {
-                    //删除外键关联的匹配结果列表,不然删除product失败
+                if (!isExistOrder) {
+                    // 删除外键关联的匹配结果列表,不然删除product失败
                     Set<ProductMatchResult> productMatchResultSet =  product.getMatchresults();
                     productMatchResultDao.delete(productMatchResultSet);
                     goodsService.deleteGoods(goodses);
@@ -372,7 +398,7 @@ public class ProductServiceImpl implements ProductService {
                         uuids.add(product.getCmpUuId());
                     }
                     success++;
-                }else {
+                } else {
                     fail++;
                 }
             } catch (Exception e) {
@@ -382,17 +408,17 @@ public class ProductServiceImpl implements ProductService {
 
         Integer status = CodeType.OK.code();
         String message = "";
-        if(success != 0) {
+        if (success != 0) {
             message += "成功删除" + success + "条";
         }
-        if(fail != 0) {
+        if (fail != 0) {
             if(success != 0) {
                 message += ",";
             }
             message += "删除失败" + fail + "条,原因:该产品可能已经被其他单据引用,无法删除";
         }
-        //如果是全部都不能删除,才能设置失败的状态码
-        if((products.size() != 0) && (products.size() ==  fail.intValue())) {
+        // 如果是全部都不能删除,才能设置失败的状态码
+        if ((products.size() != 0) && (products.size() ==  fail)) {
             status = CodeType.ERROR_STATE.code();
         }
         for (String uuid : uuids) {

+ 5 - 0
src/main/webapp/resources/js/common/query/material.js

@@ -87,6 +87,11 @@ define([ 'ngResource' ], function() {
             updateInfoAfterChoose : {
                 url: 'trade/products/update/goods',
                 method: 'POST'
+            },
+            // 导出选择的列表
+            exportSelectedProduct: {
+                url: 'trade/products/template/selected/data',
+                method: 'POST'
             }
         });
     }]);

+ 46 - 18
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -291,6 +291,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 
 		//获取选中之后的信息
 		$scope.getChoosedInfo = function () {
+			$scope.choosedIds = [];
 			angular.forEach($scope.currenctMaterial, function (material) {
 				if (material.isChoosed) {
 					$scope.choosedIds.push(material.id);
@@ -382,7 +383,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 		// 批量删除
 		$scope.deleteBatch = function () {
             $scope.getChoosedInfo();
-            if(!$scope.choosedIds || $scope.choosedIds.length == 0) {
+            if (!$scope.choosedIds || $scope.choosedIds.length == 0) {
                 toaster.pop('warning', '提示','请选择要删除的信息');
                 return ;
             }
@@ -396,19 +397,19 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 
 		// 单个删除
 		$scope.deleteMaterial = function(material) {
-			if(!material || !material.id) {
+			if (!material || !material.id) {
 				return ;
 			}
 			Goods.getDeleteProductMessage({productid: material.id}, function (data) {
 				console.log(data);
-				if(data.code == 1) {
+				if (data.code == 1) {
 					$scope.$$nonProduct.deleteMessage = data.message;
 					$scope.choosedIds = [];
 					$scope.choosedIds.push(material.id);
 					$scope.$$nonProduct.deleteGoods = false;
 					$scope.$$nonProduct.deleteMaterial = true;
 					$scope.opendeleteModal();
-				}else {
+				} else {
 					toaster.pop('warning', '提示', data.message);
 				}
 			}, function (response) {
@@ -435,7 +436,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 						return $scope.$$nonProduct.deleteGoods;
 					},
 					selectAll : function () {
-						return $scope.isChoosedAll;
+						return $scope.chooseAllPage;
 					},
 					standard_tab : function () {
 						return $scope.standard_tab;
@@ -852,16 +853,43 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 			form.submit();
 		}
 
+		function downloadSelectedByJs(url, idList) {
+			var form = $("<form>");   //定义一个form表单
+			form.attr('style', 'display:none');   //在form表单中添加查询参数
+			form.attr('target', '');
+			form.attr('method', 'get');
+			form.attr('action', url);
+
+			var input1 = $('<input>');
+			input1.attr('type', 'hidden');
+			input1.attr('name', 'idList');
+			input1.attr('value', idList);
+
+			$('body').append(form);  //将表单放置在web中
+			form.append(input1);   //将查询参数控件提交到表单上
+			form.submit();
+		}
+
 		// 下载模板
 		$scope.download = function() {
 			if ($scope.currenctMaterial && $scope.currenctMaterial.length == 0) {
 				toaster.pop('info', '当前产品列表为空,无法下载');
 				return;
 			}
-			if ('standard' == $scope.standard_tab)
-				downloadByJs('trade/products/template/download/type', $scope.param.keyword, 'standard');
-			if ('unstandard' == $scope.standard_tab)
-				downloadByJs('trade/products/template/download/type', $scope.param.keyword, 'nStandard');
+			if ($scope.chooseAllPage) {
+				if ('standard' == $scope.standard_tab)
+					downloadByJs('trade/products/template/download/type', $scope.param.keyword, 'standard');
+				if ('unstandard' == $scope.standard_tab)
+					downloadByJs('trade/products/template/download/type', $scope.param.keyword, 'nStandard');
+			} else {
+				$scope.getChoosedInfo();
+				if (!$scope.choosedIds || $scope.choosedIds.length == 0) {
+					toaster.pop("info", "您尚未选中任何产品");
+					return ;
+				}
+				var idStr = $scope.choosedIds.join(',');
+				downloadSelectedByJs('trade/products/template/selected/data', idStr);
+			}
 		};
 
 		//初始化页数信息
@@ -2622,13 +2650,13 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 
         // 确认删除
         $scope.confirmDelete = function () {
-            if(deleteMaterial) {
-                if(selectAll) {
-                    if(standard_tab == 'standard') {
+            if (deleteMaterial) {
+                if (selectAll) {
+                    if (standard_tab == 'standard') {
                         Material.deleteStandardAll(null, null, function (data) {
-                            if(data.code != 1) {
+                            if (data.code != 1) {
                                 toaster.pop('error','错误' ,data.message);
-                            }else {
+                            } else {
                                 toaster.pop('success', '删除成功');
 								$scope.deleteModal = false;
                                 $modalInstance.close(data);
@@ -2636,7 +2664,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                         }, function (response) {
                             toaster.pop('error', '错误', response.data);
                         });
-                    }else {
+                    } else {
                         Material.deleteUnstandardAll(null, null, function (data) {
                             if(data.code != 1) {
                                 toaster.pop('error', '错误', data.message);
@@ -2649,7 +2677,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                             toaster.pop('error', '错误', response.data);
                         });
                     }
-                }else {
+                } else {
                     if(!$scope.ids || $scope.ids.length == 0) {
                         toaster.pop('warning', '提示','请选择要删除的信息');
                         return ;
@@ -2663,8 +2691,8 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
                         toaster.pop('error', response.data);
                     });
                 }
-            }else if(deleteGoods){
-                if(!$scope.ids || $scope.ids.length < 1) {
+            } else if (deleteGoods) {
+                if (!$scope.ids || $scope.ids.length < 1) {
                     return ;
                 }
                 Goods.deleteGoodsById({id: $scope.ids[0]}, function (data) {

+ 49 - 9
src/main/webapp/resources/view/vendor/forstore/vendor_material.html

@@ -215,12 +215,48 @@
 		font-size: 14px;
 		line-height: 35px;
 	}
-	.search-check .check a{
+	.search-check .check > .operate-btn{
 		font-size: 14px;
 		margin-right: 20px;
 		color: #fff !important;
 		background: #5078cb;
-		padding: 6px 10px;
+		position: relative;
+		display: inline-block;
+		height: 30px;
+		line-height: 30px;
+		padding: 0 10px;
+		cursor: pointer;
+	}
+	.search-check .check > .operate-btn .expander {
+		position: absolute;
+		color: #333;
+		right: 0;
+		display: none;
+		height: 57px;
+		line-height: 26px;
+		text-align: center;
+		background: #fff;
+		bottom: -57px;
+		width: 98px;
+		z-index: 10;
+		border: 1px solid #e4e5e5;
+	}
+	.search-check .check > .operate-btn.more-operate {
+		padding: 0;
+		width: 98px;
+		height: 30px;
+		line-height: 30px;
+		text-align: center;
+		display: inline-block;
+	}
+	.search-check .check > .operate-btn.more-operate:hover .expander {
+		display: block;
+	}
+	.search-check .check > .operate-btn.more-operate .expander span {
+		display: block;
+	}
+	.search-check .check > .operate-btn.more-operate .expander span:hover {
+		color: #5078cb;
 	}
 	.pro_management .table .check-active {
 		margin-right: 15px;
@@ -1538,10 +1574,17 @@
 				<div class="search fl">
 					<input type="text" class="form-control" ng-model="param.keyword" ng-search="onSearch()" placeholder="类目/型号/品牌"/>
 					<button ng-click="onSearch()">搜索</button>
-					<a ng-click="download()">批量导出</a>
+					<!--<a ng-click="download()">批量导出</a>-->
 				</div>
 				<div class="check fr">
-					<a ng-show="!isBatch && standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="!isBatch && standard_tab == 'unstandard'">匹配</span></a>
+					<div class="operate-btn" ng-show="standard_tab == 'unstandard'" ng-click="matchAll()"><span ng-show="standard_tab == 'unstandard'">匹配</span></div>
+					<div class="operate-btn more-operate">
+						<span>更多操作</span>
+						<span class="expander">
+							<span ng-click="download()">导出选中</span>
+							<span ng-click="deleteBatch()" name="delete-material">删除选中</span>
+						</span>
+					</div>
 					<!--<a ng-show="!isBatch" ng-click="enterBatch()"><span ng-show="!isBatch">批量操作</span></a>-->
 					<span class="check-btn" ng-show="isBatch">
 						<a ng-click="deleteBatch()" name="delete-material">删除</a>
@@ -1800,9 +1843,7 @@
 														<div class="input-list">
 															<button class="off" ng-click="editGoods(material, goods)">编辑</button>
 															<button ng-if="goods.status != 601 && goods.status != 602" class="ok" ng-click="putOn(material, goods)">上架</button>
-															<button class="ok" ng-click="isRecommendGoods(goods)" name =
-																	"delete-goods">删除
-															</button>
+															<button class="ok" ng-click="isRecommendGoods(goods)" name ="delete-goods">删除</button>
 														</div>
 													</div>
 												</div>
@@ -1828,8 +1869,7 @@
 														<a><img ng-src="{{goods.editPic || 'static/img/store/common/default.png'}}" alt="img"/></a>
 														<div class="edit-img">
 															<a ng-if="goods.editPic" ng-click="deleteImg(goods)" class="delete-img" title="删除"><i class="fa fa-trash"></i></a>
-															<a
-																	ng-click="editGoodsPicture(goods.editPic || 'static/img/store/common/default.png', goods)" title="修改图片"><img ng-src="static/img/icon/update-img.png" /></a>
+															<a ng-click="editGoodsPicture(goods.editPic || 'static/img/store/common/default.png', goods)" title="修改图片"><img ng-src="static/img/icon/update-img.png" /></a>
 														</div>
 													</div>
 													<div class="content margin10">