Browse Source

招标修改

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7874 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 years ago
parent
commit
00be12fd39

+ 75 - 11
src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java

@@ -139,8 +139,9 @@ public class PurchaseTenderController {
         return new ResponseEntity<String>(HttpStatus.OK);
     }
 
+
     /**
-     * 查看招标单(
+     * 查看招标单
      *
      * @param id
      * @return
@@ -151,6 +152,7 @@ public class PurchaseTenderController {
         return purchaseTenderService.findById(id);
     }
 
+
     /**
      * 公开招标转投标单
      *
@@ -267,8 +269,6 @@ public class PurchaseTenderController {
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("pt_id", false, Sort.Type.LONG, new Long(1)));
         pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-//        String itemStatus = SystemSession.getUser().getEnterprise().getUu() + "待投标";
-//        pageParams.getFilters().put("tp_ptid", itemStatus);
         pageParams.getFilters().put("tp_ptid", SystemSession.getUser().getEnterprise().getEnName());
         pageParams.getFilters().put("pt_ispublish", Constant.YES);
         pageParams.getFilters().put("pt_ifopen", Constant.NO);
@@ -301,8 +301,6 @@ public class PurchaseTenderController {
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("pt_id", false, Sort.Type.LONG, new Long(1)));
         pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-//        String itemStatus = SystemSession.getUser().getEnterprise().getUu() + "待投标";
-//        pageParams.getFilters().put("tp_ptid", itemStatus);
         pageParams.getFilters().put("tp_ptid", SystemSession.getUser().getEnterprise().getEnName());
         pageParams.getFilters().put("pt_ispublish", Constant.YES);
         pageParams.getFilters().put("pt_ifopen", Constant.NO);
@@ -410,8 +408,6 @@ public class PurchaseTenderController {
         pageParams.getFilters().put("pt_ifopen", Constant.YES);
         pageParams.getFilters().put("pt_overdue", Constant.NO);
         pageParams.getFilters().put("tp_ptid", SystemSession.getUser().getEnterprise().getEnName());
-//        String itemStatus = SystemSession.getUser().getEnterprise().getUu() + "待投标";
-//        pageParams.getFilters().put("pti_ptid", itemStatus);
         return searchService.searchPurcTenderIds(keyword, pageParams);
     }
 
@@ -634,11 +630,79 @@ public class PurchaseTenderController {
     /**
      * 发布在录入单据
      *
-     * @param id
+     * @param tender
+     * @return
+     */
+    @RequestMapping(value = "/publishSaved", method = RequestMethod.POST)
+    @ResponseBody
+    @Transactional
+    public ResponseEntity<String> publishSavedTender(String tender, String enterpriseBaseInfo) {
+        PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
+        System.out.println(enterpriseBaseInfo);
+        if (null != enterpriseBaseInfo) {
+            enterpriseBaseInfo = "[".concat(enterpriseBaseInfo);
+            enterpriseBaseInfo = enterpriseBaseInfo.concat("]");
+            List<Enterprise> enterprises = FlexJsonUtils.fromJsonArray(enterpriseBaseInfo, Enterprise.class);
+            System.out.println("enterpriseBaseInfo" + JSON.toJSONString(enterprises));
+            System.out.println("tender" + JSON.toJSONString(purchaseTender));
+            purchaseTenderService.publishSaved(purchaseTender, enterprises);
+        } else {
+            purchaseTenderService.publishSavedOpen(purchaseTender);
+        }
+        logger.log("招标", "采购方招标单发布", "标题" + purchaseTender.getTitle()+ "企业uu" + SystemSession.getUser().getEnterprise().getUu());
+        return new ResponseEntity<String>(HttpStatus.OK);
+    }
+
+    /**
+     * 更新在录入单据
+     *
+     * @param tender
+     * @param enterpriseBaseInfo
+     * @return
      */
-    @RequestMapping(value = "/publishSaved/{id}", method = RequestMethod.POST)
-    public void publishSaved(@PathVariable("id") Long id) {
-        purchaseTenderService.publishSaved(id);
+    @RequestMapping(value = "/updateSaved", method = RequestMethod.POST)
+    @ResponseBody
+    @Transactional
+    public ResponseEntity<String> updateSavedTender(String tender, String enterpriseBaseInfo) {
+        PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
+        if (null != enterpriseBaseInfo) {
+            enterpriseBaseInfo = "[".concat(enterpriseBaseInfo);
+            enterpriseBaseInfo = enterpriseBaseInfo.concat("]");
+            List<Enterprise> enterprises = FlexJsonUtils.fromJsonArray(enterpriseBaseInfo, Enterprise.class);
+            System.out.println("enterpriseBaseInfo" + JSON.toJSONString(enterprises));
+            purchaseTenderService.updateSaved(purchaseTender, enterprises);
+        } else {
+            purchaseTenderService.updateSavedOpen(purchaseTender);
+        }
+        return new ResponseEntity<String>(HttpStatus.OK);
+    }
+
+    /**
+     * 删除对应产品明细
+     *
+     * @param tenderProdId
+     * @return
+     */
+    @RequestMapping(value = "/deleteProd/{tenderProdId}", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> deleteProd(@PathVariable("tenderProdId") Long tenderProdId) {
+        purchaseTenderService.deleteProd(tenderProdId);
+        return new ResponseEntity<String>(HttpStatus.OK);
+    }
+
+    /**
+     * 删除对应供应商投标单
+     *
+     * @param tender 招标单
+     * @param vendUU 删除的投标单的供应商UU
+     * @return
+     */
+    @RequestMapping(value = "/removeSaleTender", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> removeSaleTender(String tender, Long vendUU) {
+        PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
+        purchaseTenderService.removeSaleTender(purchaseTender, vendUU);
+        return new ResponseEntity<String>(HttpStatus.OK);
     }
 
     /**

+ 4 - 0
src/main/java/com/uas/platform/b2b/dao/SaleTenderDao.java

@@ -5,6 +5,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * Created by dongbw on 17/03/07 14:10.
  */
@@ -13,4 +15,6 @@ public interface SaleTenderDao extends JpaSpecificationExecutor<SaleTender>,JpaR
 
 
     SaleTender findByEnUUAndVendUUAndCode(Long enUU, Long vendUU, String code);
+
+    List<SaleTender> findByEnUUAndCode(Long enUU, String code);
 }

+ 40 - 7
src/main/java/com/uas/platform/b2b/service/PurchaseTenderService.java

@@ -77,12 +77,8 @@ public interface PurchaseTenderService {
 //     */
 //    SaleTender findByEnUUAndId(Long vendUU, Long id);
 
-    /**
-     *  发布公开招标单
-     * @param purchaseTender
-     */
-    void publishOpen(PurchaseTender purchaseTender);
 
+    void publishOpen(PurchaseTender purchaseTender);
     /**
      *  保存公开招标单
      * @param purchaseTender
@@ -108,8 +104,6 @@ public interface PurchaseTenderService {
      */
     void delete(Long id);
 
-    void publishSaved(Long id);
-
     /**
      * 根据id删除单个附件
      *
@@ -134,4 +128,43 @@ public interface PurchaseTenderService {
     ModelMap releaseByWorkbook(Workbook workbook);
 
     PurchaseTender addTenderItemById(Long id);
+
+    /**
+     *  发布已保存单据
+     * @param purchaseTender
+     * @param enterprises
+     */
+    void publishSaved(PurchaseTender purchaseTender, List<Enterprise> enterprises);
+
+    /**
+     *  发布已保存单据为公开招标
+     * @param purchaseTender
+     */
+    void publishSavedOpen(PurchaseTender purchaseTender);
+
+    /**
+     *  更新已保存单据
+     * @param purchaseTender
+     * @param enterprises
+     */
+    void updateSaved(PurchaseTender purchaseTender, List<Enterprise> enterprises);
+
+    /**
+     *  更新已保存单据为公开
+     * @param purchaseTender
+     */
+    void updateSavedOpen(PurchaseTender purchaseTender);
+
+    /**
+     *  删除产品明细
+     * @param tenderProdId
+     */
+    void deleteProd(Long tenderProdId);
+
+    /**
+     * 删除对应供应商的
+     * @param purchaseTender
+     * @param vendUU
+     */
+    void removeSaleTender(PurchaseTender purchaseTender, Long vendUU);
 }

+ 215 - 31
src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java

@@ -91,26 +91,7 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
         for (PurchaseTenderProd tenderProd : tenderProds) {
             tenderProd.setTender(tender);
             purchaseTenderProdDao.save(tenderProd);
-            for (Enterprise enterprise : enterprises) {
-                EnterpriseBaseInfo enBaseInfo = enterpriseBaseInfoDao.findOne(enterprise.getUu());
-                if (null == enBaseInfo) {
-                    enBaseInfo = new EnterpriseBaseInfo(enterprise.getUu(), enterprise.getEnBussinessCode(), enterprise.getEnName(), enterprise.getEnAddress());
-                }
-                SaleTenderItem tenderItem = new SaleTenderItem();
-                // 找不到投标单主表才新建一个
-                if (tender.getEnUU() != null && enBaseInfo.getUu() != null && tender.getCode() != null) {
-                    SaleTender saleTender =  saleTenderDao.findByEnUUAndVendUUAndCode(tender.getEnUU(), enBaseInfo.getUu(), tender.getCode());
-                    if (null == saleTender) {
-                        saleTender = new SaleTender(tender);
-                        saleTender.setVendUU(enBaseInfo.getUu());
-                        saleTender.setEnterpriseBaseInfo(enBaseInfo); // 投标单主表构造完毕
-                        saleTenderDao.save(saleTender);
-                    }
-                    tenderItem.setSaleTender(saleTender);
-                }
-                tenderItem.setTenderProd(tenderProd);
-                saleTenderItemDao.save(tenderItem);
-            }
+            addSaleTender(tender, enterprises, tenderProd);
         }
     }
 
@@ -201,16 +182,19 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
     public void delete(Long id) {
         PurchaseTender tender = purchaseTenderDao.findOne(id);
         if (null != tender) {
-            purchaseTenderDao.delete(tender);
-        }
-    }
-
-    @Override
-    public void publishSaved(Long id) {
-        PurchaseTender tender = purchaseTenderDao.findOne(id);
-        if (null != tender) {
-            tender.setIsPublish(Constant.YES);
-            purchaseTenderDao.save(tender);
+            List<SaleTender> saleTenders = saleTenderDao.findByEnUUAndCode(tender.getEnUU(), tender.getCode());
+            if (!CollectionUtils.isEmpty(saleTenders)) {
+                for (SaleTender saleTender : saleTenders) {
+                    if (!CollectionUtils.isEmpty(saleTender.getSaleTenderItems())) {
+                        saleTenderItemDao.delete(saleTender.getSaleTenderItems());
+                    }
+                }
+                saleTenderDao.delete(saleTenders);
+            }
+            if (!CollectionUtils.isEmpty(tender.getPurchaseTenderProds())) {
+                purchaseTenderProdDao.delete(tender.getPurchaseTenderProds());
+            }
+                purchaseTenderDao.delete(tender);
         }
     }
 
@@ -311,6 +295,206 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
         return tender;
     }
 
+    /**
+     * 发布已保存单据
+     *
+     * @param purchaseTender
+     * @param enterprises
+     */
+    @Override
+    public void publishSaved(PurchaseTender purchaseTender, List<Enterprise> enterprises) {
+        publishOrSave(purchaseTender, enterprises , true , false);
+    }
+
+    /**
+     * 发布已保存单据为公开招标
+     *
+     * @param purchaseTender
+     */
+    @Override
+    public void publishSavedOpen(PurchaseTender purchaseTender) {
+        publishOrSave(purchaseTender, null , true , true);
+    }
+
+    /**
+     * 更新已保存单据
+     *
+     * @param purchaseTender
+     * @param enterprises
+     */
+    @Override
+    public void updateSaved(PurchaseTender purchaseTender, List<Enterprise> enterprises) {
+        publishOrSave(purchaseTender, enterprises , false , false);
+    }
+
+    /**
+     * 更新已保存单据为公开
+     *
+     * @param purchaseTender
+     */
+    @Override
+    public void updateSavedOpen(PurchaseTender purchaseTender) {
+        publishOrSave(purchaseTender, null , false , false);
+    }
+
+    /**
+     * 发布或保存方法(针对保存的单据)
+     *
+     * @param purchaseTender
+     * @param enterprises
+     * @param isPublish
+     * @param ifOpen
+     */
+    private void publishOrSave(PurchaseTender purchaseTender, List<Enterprise> enterprises, boolean isPublish, boolean ifOpen) {
+        PurchaseTender oldTender = purchaseTenderDao.findOne(purchaseTender.getId());
+        if (null != oldTender) {
+            if (isPublish) {
+                oldTender.setIsPublish(Constant.YES);
+            } else {
+                oldTender.setIsPublish(Constant.NO);
+            }
+            oldTender.setModified(new Date());
+            if (null != purchaseTender.getCertificate()) {
+                oldTender.setCertificate(purchaseTender.getCertificate());
+            } else {
+                oldTender.setCertificate("");
+            }
+            oldTender.setCurrency(purchaseTender.getCurrency());
+            oldTender.setEndDate(purchaseTender.getEndDate());
+            oldTender.setPublishDate(purchaseTender.getPublishDate());
+            oldTender.setIfTax(purchaseTender.getIfTax());
+            oldTender.setInvoiceType(purchaseTender.getInvoiceType());
+            oldTender.setPayment(purchaseTender.getPayment());
+            oldTender.setShipAddress(purchaseTender.getShipAddress());
+            oldTender.setTitle(purchaseTender.getTitle());
+            oldTender.setUser(purchaseTender.getUser());
+            oldTender.setUserTel(purchaseTender.getUserTel());
+            oldTender.setTenderAttaches(purchaseTender.getTenderAttaches());
+            purchaseTenderDao.save(oldTender);
+            for (PurchaseTenderProd tenderProd : purchaseTender.getPurchaseTenderProds()) {
+                if (tenderProd.getId() != null) { // 存在id的是修改的
+                    PurchaseTenderProd oldTenderProd = purchaseTenderProdDao.findOne(tenderProd.getId());
+                    oldTenderProd.setBrand(tenderProd.getBrand());
+                    oldTenderProd.setProdCode(tenderProd.getProdCode());
+                    oldTenderProd.setProdTitle(tenderProd.getProdTitle());
+                    oldTenderProd.setUnit(tenderProd.getUnit());
+                    oldTenderProd.setQty(tenderProd.getQty());
+                } else { // 新增的
+                    tenderProd.setTender(oldTender);
+                    purchaseTenderProdDao.save(tenderProd);
+                }
+
+            }
+            // 先清除掉所有存在的投标单
+            List<SaleTender> oldSaleTenders = saleTenderDao.findByEnUUAndCode(oldTender.getEnUU(), oldTender.getCode());
+            for (SaleTender saleTender : oldSaleTenders) {
+                for (SaleTenderItem saleTenderItem : saleTender.getSaleTenderItems()) {
+                    saleTenderItemDao.delete(saleTenderItem.getId());
+                }
+                saleTenderDao.delete(saleTender.getId());
+            }
+            if (ifOpen) {
+                oldTender.setIfOpen(Constant.YES);
+
+            } else { // 非公开招标再添加投标单
+                oldTender.setIfOpen(Constant.NO);
+                Set<PurchaseTenderProd> tenderProds = oldTender.getPurchaseTenderProds();
+                for (PurchaseTenderProd tenderProd : tenderProds) {
+                    if (tenderProd.getId() != null) { // 存在id的是修改的
+                        PurchaseTenderProd oldTenderProd = purchaseTenderProdDao.findOne(tenderProd.getId());
+                        oldTenderProd.setBrand(tenderProd.getBrand());
+                        oldTenderProd.setProdCode(tenderProd.getProdCode());
+                        oldTenderProd.setProdTitle(tenderProd.getProdTitle());
+                        oldTenderProd.setUnit(tenderProd.getUnit());
+                        oldTenderProd.setQty(tenderProd.getQty());
+                        purchaseTenderProdDao.save(oldTenderProd);
+                    } else { // 新增的
+                        tenderProd.setTender(oldTender);
+                        purchaseTenderProdDao.save(tenderProd);
+                    }
+                    addSaleTender(oldTender, enterprises, tenderProd);
+                }
+            }
+//            if (!CollectionUtils.isEmpty(oldTender.getTenderAttaches())) {
+//                Set<Attach> attachSet = new HashSet<>();
+//                for (Attach oldAttach : oldTender.getTenderAttaches()) {
+//                    boolean old = false;
+//                    for (Attach attach : purchaseTender.getTenderAttaches()) {
+//                        if (attach.getId() == oldAttach.getId()) {
+//                            old = true;
+//                        }
+//                        if (!old) {
+//                            attachSet.add(attach);
+//                        }
+//                    }
+//                }
+//            }
+        }
+    }
+
+    /**
+     *  根据供应商信息和招标单新增投标单
+     * @param tender
+     * @param enterprises
+     * @param tenderProd
+     */
+    private void addSaleTender(PurchaseTender tender, List<Enterprise> enterprises, PurchaseTenderProd tenderProd) {
+        for (Enterprise enterprise : enterprises) {
+            EnterpriseBaseInfo enBaseInfo = enterpriseBaseInfoDao.findOne(enterprise.getUu());
+            if (null == enBaseInfo) {
+                enBaseInfo = new EnterpriseBaseInfo(enterprise.getUu(), enterprise.getEnBussinessCode(), enterprise.getEnName(), enterprise.getEnAddress());
+            }
+            SaleTenderItem tenderItem = new SaleTenderItem();
+            // 找不到投标单主表才新建一个,确保只有一个投标单
+            if (tender.getEnUU() != null && enBaseInfo.getUu() != null && tender.getCode() != null) {
+                SaleTender saleTender =  saleTenderDao.findByEnUUAndVendUUAndCode(tender.getEnUU(), enBaseInfo.getUu(), tender.getCode());
+                if (null == saleTender) {
+                    saleTender = new SaleTender(tender);
+                    saleTender.setVendUU(enBaseInfo.getUu());
+                    saleTender.setEnterpriseBaseInfo(enBaseInfo); // 投标单主表构造完毕
+                    saleTenderDao.save(saleTender);
+                }
+                tenderItem.setSaleTender(saleTender);
+            }
+            tenderItem.setTenderProd(tenderProd);
+            saleTenderItemDao.save(tenderItem);
+        }
+    }
+
+
+    /**
+     * 删除产品明细
+     *
+     * @param tenderProdId
+     */
+    @Override
+    public void deleteProd(Long tenderProdId) {
+        PurchaseTenderProd tenderProd = purchaseTenderProdDao.findOne(tenderProdId);
+        if (null != tenderProd) {
+            for (SaleTenderItem saleTenderItem : tenderProd.getSaleTenderItems()) {
+                if (saleTenderItem.getSaleTender() != null) {
+                    saleTenderDao.delete(saleTenderItem.getSaleTender());
+                }
+                saleTenderItemDao.delete(saleTenderItem.getId());
+            }
+            purchaseTenderProdDao.delete(tenderProd);
+        }
+    }
+
+    /**
+     * 删除对应供应商的投标单
+     *
+     * @param purchaseTender
+     * @param vendUU
+     */
+    @Override
+    public void removeSaleTender(PurchaseTender purchaseTender, Long vendUU) {
+        SaleTender saleTender = saleTenderDao.findByEnUUAndVendUUAndCode(purchaseTender.getEnUU(), vendUU, purchaseTender.getCode());
+        for (SaleTenderItem saleTenderItem : saleTender.getSaleTenderItems()) {
+            saleTenderItemDao.delete(saleTenderItem.getId());
+        }
+        saleTenderDao.delete(saleTender);
+    }
 
 
     /**
@@ -324,7 +508,7 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
     @Override
     public void reply(List<SaleTenderItem> tenderItems, EnterpriseBaseInfo enBaseInfo, List<Attach> attaches) {
         enterpriseBaseInfoDao.save(enBaseInfo);
-        SaleTender saleTender = tenderItems.get(0).getSaleTender();
+        SaleTender saleTender = saleTenderDao.findOne(tenderItems.get(0).getSaleTender().getId());
         saleTender.setStatus("已投标");
         Set<Attach> attachSet = new HashSet<>();
         if (!CollectionUtils.isEmpty(attaches)) {

+ 13 - 13
src/main/webapp/resources/js/index/app.js

@@ -10484,7 +10484,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
         // 获取收货地址列表
         ShipAddress.shipAddList({}, function(data) {
             $scope.ships = data;
-            $scope.tender.shipAddress = $scope.ships[0];
+            $scope.tender.shipAdd = $scope.ships[0];
         });
 
         // 获取地址信息
@@ -10502,7 +10502,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                     // 获取收货地址列表
                     ShipAddress.shipAddList({}, function(data) {
                         $scope.ships = data;
-                        $scope.tender.shipAddress = $scope.ships[0];
+                        $scope.tender.shipAdd = $scope.ships[0];
                     });
                 }
                 if(data.error) {
@@ -10976,9 +10976,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                     $scope.tender.purchaseTenderProds[i].index = i + 1;
                 }
                 $scope.tender.tenderAttaches = $scope.attaches;
-                if ($scope.tender.shipAddress.address !== null && $scope.tender.shipAddress.addressdet !== null && $scope.tender.shipAddress.receriver !== null && $scope.tender.shipAddress.usertel !== null) {
-                    $scope.tender.shipAddress = $scope.tender.shipAddress.address + $scope.tender.shipAddress.addressdet + ' ' + $scope.tender.shipAddress.receiver + ' ' + $scope.tender.shipAddress.usertel;
-                }
+                $scope.tender.shipAddress = $scope.tender.shipAdd.address + $scope.tender.shipAdd.addressdet + ' ' + $scope.tender.shipAdd.receiver + ' ' + $scope.tender.shipAdd.usertel;
                 if (isPublish) { // 发布
                     toaster.pop('info', '提示', '正在发布,请稍候');
                     PurcTender.publish({tender: $scope.tender, enterpriseBaseInfo: $scope.tenderProd.enterpriseBaseInfo}, {},  function(data){
@@ -11435,12 +11433,12 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                         // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
                         angular.forEach(page.content, function(purcTender) {
                             angular.forEach(purcTender.purchaseTenderProds[0].saleTenderItems, function(saleTenderItem) {
-                                purcTender.vendorHasBid = false; // 未投标
+                                saleTenderItem.saleTender.vendorHasBid = false; // 未投标
                                 if ($scope.currentEn.uu === saleTenderItem.saleTender.vendUU && saleTenderItem.price !== null) { // 存在本企业投标明细,且价格已填,判定为已投标
-                                    purcTender.vendorHasBid = true; // 已投标
-                                    purcTender.applyVendor = false;  // 未中标
+                                    saleTenderItem.saleTender.vendorHasBid = true; // 已投标
+                                    saleTenderItem.saleTender.applyVendor = false;  // 未中标
                                     if (saleTenderItem.applyStatus === 1) {
-                                        purcTender.applyVendor = true;  // 是否中标
+                                        saleTenderItem.saleTender.applyVendor = true;  // 是否中标
                                     }
                                 }
                             });
@@ -11612,8 +11610,10 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
      * 查看投标单详情
      */
     app.controller('SaleTenderDetailCtrl', ['$scope', '$filter', 'PurcTender', 'ngTableParams', 'toaster', 'BaseService', '$stateParams', '$modal', '$rootScope', '$upload', 'AccountEnterprise', function($scope, $filter, PurcTender, ngTableParams, toaster, BaseService, $stateParams, $modal, $rootScope, $upload, AccountEnterprise) {
-    	BaseService.scrollBackToTop();
-        $scope.attaches = []; // 存放上传了的附件
+        BaseService.scrollBackToTop();
+        if (!$scope.attaches) {
+            $scope.attaches = []; // 存放上传了的附件
+        }
         // var staticItem = null;
         // $scope.loading  = true;
 
@@ -11733,7 +11733,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             // /^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/;
             // 判断填写过的有为0或不符合正则式的,设置不能保存
             console.log(tenderProd.currentItem.cycle);
-            if (tenderProd.currentItem.cycle !== null && (!cycleRegex.test(tenderProd.currentItem.cycle)) || (tenderProd.currentItem.taxrate !== null && !taxrateRegex.test(tenderProd.currentItem.taxrate)) || (tenderProd.currentItem.price !== null && (!priceRegex.test(tenderProd.currentItem.price) && tenderProd.currentItem.price !== 0))) {
+            if (tenderProd.currentItem.cycle && (!cycleRegex.test(tenderProd.currentItem.cycle)) || (tenderProd.currentItem.taxrate && !taxrateRegex.test(tenderProd.currentItem.taxrate)) || (tenderProd.currentItem.price && (!priceRegex.test(tenderProd.currentItem.price) && tenderProd.currentItem.price !== 0))) {
                 $scope.canSave = false;
             } else {
                 $scope.canSave = true;
@@ -11902,7 +11902,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             // /^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/;
             // 判断填写过的有为0或不符合正则式的,设置不能保存
             console.log(tenderProd.currentItem.cycle);
-            if (tenderProd.currentItem.cycle !== null && (!cycleRegex.test(tenderProd.currentItem.cycle)) || (tenderProd.currentItem.taxrate !== null && !taxrateRegex.test(tenderProd.currentItem.taxrate)) || (tenderProd.currentItem.price !== null && (!priceRegex.test(tenderProd.currentItem.price) && tenderProd.currentItem.price !== 0))) {
+            if (tenderProd.currentItem.cycle && (!cycleRegex.test(tenderProd.currentItem.cycle)) || (tenderProd.currentItem.taxrate && !taxrateRegex.test(tenderProd.currentItem.taxrate)) || (tenderProd.currentItem.price && (!priceRegex.test(tenderProd.currentItem.price) && tenderProd.currentItem.price !== 0))) {
                 $scope.canSave = false;
             } else {
                 $scope.canSave = true;

+ 17 - 5
src/main/webapp/resources/js/index/services/Purc.js

@@ -287,11 +287,12 @@ define([ 'ngResource'], function() {
                 }
             },
             publishSaved: {
-                url: 'tender/publishSaved/:id',
-                method: 'POST',
-                params: {
-                    id: 'id'
-                }
+                url: 'tender/publishSaved',
+                method: 'POST'
+            },
+            updateSaved: {
+                url: 'tender/updateSaved',
+                method: 'POST'
             },
             removeAttach: {
                 url: 'tender/removeAttach',
@@ -299,6 +300,17 @@ define([ 'ngResource'], function() {
                 params: {
                     attachId: 'attachId'
                 }
+            },
+            removeSaleTender: {
+                url: 'tender/removeSaleTender',
+                method: 'POST'
+            },
+            deleteProd: {
+                url: 'tender/deleteProd/:tenderProdId',
+                method: 'POST',
+                params: {
+                    tenderProdId: 'tenderProdId'
+                }
             }
 		});
 	}]).factory('PurcInquiryMould', ['$resource', function($resource) {

+ 1 - 1
src/main/webapp/resources/tpl/index/purc/modal/product_brandChoose_modal.html

@@ -1,6 +1,6 @@
 <style>
 .modal-dialog {
-    width: 420px;
+    width: 435px;
     margin: 30px auto;
 }
 table tr {

+ 175 - 66
src/main/webapp/resources/tpl/index/purc/saved_tender.html

@@ -1,7 +1,6 @@
 
 <link rel="stylesheet" href="static/css/add.css "/>
 <style>
-
     /* 标题 */
     .tender-label {
         /*height: 30px;*/
@@ -20,7 +19,6 @@
     /* 主体 */
     .purc-tender {
         line-height: 2;
-        font-family: "Microsoft Yahei Regular";
         font-size: 14px;
     }
     .purc-tender .row {
@@ -39,7 +37,6 @@
     }
     /* 二级标题栏 */
     .title-div {
-        font-family: "Microsoft Yahei Regular";
         font-size: 14px;
         font-weight: 600;
         padding-left: 30px;
@@ -55,13 +52,21 @@
     }
     /* 输入框 */
     .tender-input {
-        border: none;
-        border-bottom: 1px solid #323232;
-        text-align: center;
+        /*border: #bfbfbf 1px solid !important;
+        padding-left: 10px;
+        height: 34px;
+        line-height: 34px;
+        width: 160px;*/
+    }
+    .tender-input01{
+        border: #bfbfbf 1px solid !important;
+        padding-left: 10px;
+        height: 34px;
+        line-height: 34px;
+        width: 160px;
     }
     .tender-input:focus{
-        outline:none;
-        border-bottom: 1px solid #5078cb;
+        border: #3578ba 1px solid !important;
     }
 
     /* 收货地址 */
@@ -95,26 +100,20 @@
         padding: 0 5%;
         height: 30px;
     }
-    select.select-address {
-        width: 568px !important;
-        height: 34px;
-        border: #ccc 1px solid;
-        font-size: 14px;
-        position: relative;
-        margin: 3px auto 0 auto;
-    }
 
     select.select-menu {
         /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/
-        border: solid 1px #5078cb;
-
+        border: solid 1px #bfbfbf;
+        height: 34px;
+        line-height: 34px;
+        width: 160px;
         /*很关键:将默认的select选择框样式清除*/
-        appearance:none;
-        -moz-appearance:none;
-        -webkit-appearance:none;
+        /* appearance:none;
+         -moz-appearance:none;
+         -webkit-appearance:none;*/
 
         /*在选择框的最右侧中间显示小箭头图片*/
-        background: url("resources/img/tender/select.png") no-repeat scroll right center transparent;
+        /*background: url("resources/img/tender/select.png") no-repeat scroll right center transparent;*/
 
 
         /*为下拉小箭头留出一点位置,避免被文字覆盖*/
@@ -184,8 +183,8 @@
         margin-top: 20px;
     }
     .fileInput{
+        height: 100px;
         width: 100px;
-        height:100px;
         font-size: 100px;
         position:absolute;
         margin-left: 100px;
@@ -246,7 +245,6 @@
         width: 94px;
         height: 36px;
         font-size: 14px;
-        font-family: "Microsoft Yahei Regular";
         color: #fff;
         border-radius: 0;
     }
@@ -295,10 +293,10 @@
     }
 
     /*招标单*/
-    .tender-list02 dl{width: 100%;margin:0 auto;}
+    .tender-list02 dl{width: 100%;margin:0 auto;position: relative;}
     .tender-list02 dl dt{width: 100%;margin:0 auto;height: 40px;}
-    .tender-list02 dl dt span{height: 50px;line-height: 50px;display: inline-block;color: #999;}
-    .tender-list02 dl dd{width: 100%;margin:0 auto;height: 50px;border-bottom: #ccc 1px dotted;overflow: hidden; position: relative;}
+    .tender-list02 dl dt span{height: 50px;line-height: 50px;display: inline-block;color: #323232;}
+    .tender-list02 dl dd{width: 100%;margin:0 auto;height: 50px;border-bottom: #ccc 1px dotted;overflow: hidden; }
     .tender-list02 dl dd:hover{border: #d32526 1px solid;}
     .tender-list02 dl dd:hover span a{ display: inline-block;}
     .tender-list02 dl dd span{height: 50px;line-height: 50px;display: inline-block;}
@@ -312,7 +310,7 @@
     .tender-list02 dl span.wid03 a.active{ display: inline-block;}
     .tender-list02 dl span.wid03 a i{width: 20px;height: 20px;display: inline-block;line-height: 20px;background: #d2272d;text-align: center;border-radius: 100%;color: #fff;}
     .tender-list02 .com_title01 a{float: right;margin-right: 45px;font-size: 14px;line-height: 50px;}
-    .scroll-y{width: 100%;margin: 0 auto;max-height: 500px;}
+    .scroll-y{width: 100%;margin: 0 auto;max-height: 500px; overflow-y: auto;}
     .scroll-y.active{overflow-y: scroll;  overflow-x: hidden;  }
 
     /* 弹框 */
@@ -345,17 +343,110 @@
         color: #8dc7f9;
     }
 
+    .tender-content  ul.association {
+        position: absolute;
+        left: 0;
+        top: 100%;
+        right: 61px;
+        list-style: none;
+        -webkit-padding-start: 0;
+        background: #ffffff;
+        border: 1px solid #dddddd;
+        z-index: 21;
+    }
+    .tender-content  ul.association li {
+        padding: 0 15px;
+        line-height: 30px;
+        text-align: left;
+    }
 
-    a.change-address {
-        color: #327ebe;
-        font-size: 14px;
-        padding-left: 50px;
+    .tender-content  ul.association li.active, .tender-content  ul.association li.active:hover {
+        background: #dddddd;
+    }
+    .tender-content  ul.association li:hover {
+        background: #EEEEEE;
+        cursor: pointer;
     }
 
-    a.change-address:hover {
-        color: #8dc7f9;
+    .tender-list02 dl div.wid01{ width:22%; float: left; margin-top: 9px;}
+
+    .tender-list02 dl div.wid02{ width:18%; float: left; margin-top: 9px;}
+
+    .tender-list02 dl div.wid03{ width:5%; float: left; margin-top: 9px;}
+
+    .tender-list02 dl div.input-group>input {
+        border: 1px solid #ccc;
+        border-right: 0;
+        margin-left: 5px;
+    }
+
+    .tender-list02 dl dd input {
+        border: 1px solid #ccc;
+        padding-left: 5px;
     }
 
+    /*.tender-list02 dl div.input-group .input-group-addon {*/
+    /*border-bottom-right-radius: 0;*/
+    /*border-top-right-radius: 0;*/
+    /*border: 1px solid #ccc;*/
+    /*border-left: 0;*/
+    /*}*/
+
+    #li01 ul {
+        width: 200px;
+    }
+
+    #li01 ul li{
+        height: 30px;
+        line-height: 30px;
+        padding: 0;
+    }
+    #li01 ul li a{
+        display: inline-block;
+        height:30px;
+        width: 100%;
+    }
+    #li01 .input-group{
+        position: absolute;
+        width: 155px;
+    }
+    #li01 .input-group-addon{
+        width: 30px;
+        line-height: 34px;
+        height: 34px;
+        padding: 0;
+        display: inline-block;
+        position: absolute;
+        top: 8.5px;
+        right: -7px;
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+    }
+    .dropdown-menu {
+        min-width: 150px;
+    }
+
+    .tender-list02 dl dd span.codeInput input {
+        border: 1px solid #ccc;
+    }
+
+    .tender-content>div>div.btn-publish>button {
+        background-color: #327EBE;
+    }
+    .tender-content>div>div.btn-save>button {
+        background-color: #32bebc;
+    }
+
+    .btn-publish,.btn-save,.btn-delete {
+        width: 13%;
+    }
+
+    .attach-file {
+        margin-left: 100px;
+        width: 400px;
+    }
+
+    /*
     .cancel-address {
         color: #FF2E2F;
         padding-left: 20px;
@@ -363,7 +454,7 @@
 
     .cancel-address:hover {
         color: #D32526;
-    }
+    }*/
 
 </style>
 
@@ -397,36 +488,35 @@
                     </div>
                     <div class = "col-xs-4">
                         <div class="tender-desc">交易币别:</div>
-                        <select class="select-menu" data-style="btn-primary">
-                            <option name="currency" ng-model="tender.currency" value ="RMB">RMB</option>
-                            <option name="currency" ng-model="tender.currency" value ="USD">USD</option>
-                            <option name="currency" ng-model="tender.currency" value ="HKD">HKD</option>
-                            <option name="currency" ng-model="ttender.currency" value = "EUR">EUR</option>
+                        <select class="select-menu" data-style="btn-primary" ng-model="tender.currency" >
+                            <option name="currency" value ="RMB">RMB</option>
+                            <option name="currency" value ="USD">USD</option>
+                            <option name="currency" value ="HKD">HKD</option>
+                            <option name="currency" value = "EUR">EUR</option>
                         </select>
                     </div>
                     <div class = "col-xs-4">
                         <div class="tender-desc">是否含税:</div>
-                        <select class="select-menu">
-                            <option ng-model="tender.ifTax" value ="yes">是</option>
-                            <option ng-model="tender.ifTax" value ="no">否</option>
+                        <select class="select-menu"  ng-model="tender.ifTax">
+                            <option value ="yes">是</option>
+                            <option value ="no">否</option>
                         </select>
                     </div>
                     <div class="col-xs-12">
                         <div class="tender-desc">收货地址:</div>
                         <div ng-show = "!changeShipAddress" style="padding-top: 6px;">
                             {{tender.shipAddress}}
-                            <a class="change-address" ng-click="changeAddress()">
+                            <a class="change-address" style="color: #327ebe;" ng-click="changeAddress()">
                                 修改
                             </a>
                         </div>
                         <span ng-show = "changeShipAddress">
                              <select class="select select-address fl" style="width: 70%; height: 30px;" ng-model="tender.shipAddress"
                                      ng-options="(ship.address + ship.addressdet + ' ' + ship.receiver + ' ' + ship.usertel) for ship in ships">
-								<option value="">请选择收货地址</option>
 							</select>
-                            <a class="cancel-address" ng-click="changeAddress()">
+                            <!--<a class="cancel-address" ng-click="changeAddress()">
                                 取消
-                            </a>
+                            </a>-->
                             <a href="javascript:void(0);" class="add-address">+新增收货信息</a>
                         </span>
                         <!--<span style="border-bottom: 1px solid #323232;"></span>-->
@@ -486,9 +576,6 @@
                         <div style="margin-left: 100px; color: #969595; font-size: 12px; font-family: 'Microsoft Yahei Regular';">
                             提示:选择附件大小不超过5MB,可上传JPG,PNG,EXCEL,WORD,PDF
                         </div>
-                        <!--<div style="margin-left: 100px; color: #969595; font-size: 12px; font-family: 'Microsoft Yahei Regular';">
-                            如果需要上传多个文件,请尝试同时选取多个文件
-                        </div>-->
                     </div>
                 </div>
 
@@ -499,7 +586,7 @@
                             <div class="com_title01"><span>产品明细</span><a ng-click="uplodaByBatch()">批量导入</a></div>
                             <dl>
                                 <dt>
-                                    <span>序号</span>
+                                    <span style="width: 90px;">序号</span>
                                     <span class="wid01">型号</span>
                                     <span class="wid01">产品名称</span>
                                     <span class="wid02">品牌</span>
@@ -508,14 +595,36 @@
                                     <span class="wid03">&nbsp;</span>
                                 </dt>
                                 <div class="scroll-y">
-                                    <dd ng-repeat="prod in tender.purchaseTenderProds">
-                                        <span>{{$index + 1}}</span>
-                                        <span class="wid01"><input type="text"  ng-model="prod.prodCode" placeholder="点击填入型号" required/></span>
-                                        <span class="wid01"><input type="text" ng-model="prod.prodTitle" placeholder="点击填入产品名称" required/></span>
-                                        <span class="wid02"><input type="text" ng-model="prod.brand" placeholder="点击填入品牌" required/></span>
-                                        <span><input type="text" ng-model="prod.unit" placeholder="点击填入单位" required/></span>
-                                        <span><input type="text" ng-model="prod.qty" placeholder="点击填入数量" required/></span>
-                                        <span class="wid03"><a ng-click="del($index)"><i class="fa fa-close"></i></a></span>
+                                    <dd ng-repeat="prod in tenderProd" id="li01">
+                                        <span style="width: 90px;">{{$index + 1}}</span>
+                                        <span class="wid01 codeInput">
+                                            <input type="text" name="code" ng-model="prod.prodCode" ng-change="getSimilarCodes(prod.prodCode)" ng-focus="onFocus('code')" placeholder="请输入标准原厂型号" typeahead="prod.code for prod in getSimilarCodes($viewValue)" autocomplete="off" typeahead-on-select="onAssociateCmpClick($item, prod)" spellcheck = "false" required>
+                                        </span>
+                                        <!--<span class="wid01">-->
+                                        <!--<input type="text" ng-model="prod.prodTitle" placeholder="点击填入产品名称" required/>-->
+                                        <!--</span>-->
+                                        <span class="wid01">
+                                             <div class="input-group">
+                                            <input type="text" style="width: 192px; text-align: left;" class="input01" name="kindName" ng-model="prod.prodTitle"  required placeholder="请输入或选择分类" spellcheck = "false" autocomplete="off" />
+                                                 <!-- typeahead="kind.nameCn  for kind in getSimilarKinds($viewValue)"
+                                                        typeahead-on-select="onAssociateKindClick($item)" -->
+                                            <div class="input-group-addon" ng-click="selectKind(prod)">
+                                                <i class="fa fa-search" aria-hidden="true"></i>
+                                            </div>
+                                        </div>
+                                        </span>
+                                        <!--<span class="wid02"><input type="text" ng-model="prod.brand" placeholder="点击填入品牌" /></span>-->
+                                        <span class="wid02">
+                                            <div class="input-group">
+                                                <input type="text" style="width: 100%; text-align: left;" ng-change="getSimilarBrands(prod.brand)" class="input01" name="brandName" ng-model="prod.brand" required  placeholder="请输入或选择品牌" spellcheck = "false" typeahead="prod.brandCn for prod in getSimilarBrands($viewValue)" autocomplete="off" typeahead-on-select="onAssociateBrandClick($item, prod)" />
+                                                <div class="input-group-addon" ng-click="selectBrand(prod)">
+                                                    <i class="fa fa-search" aria-hidden="true"></i>
+                                                </div>
+                                            </div>
+                                        </span>
+                                        <span class="codeInput"><input type="text" ng-model="prod.unit" placeholder="点击填入单位" required/></span>
+                                        <span class="codeInput" style="margin-left: 4px;"><input type="text" ng-model="prod.qty" ng-pattern="/^\+?[1-9][0-9]*$/" placeholder="点击填入数量" required/></span>
+                                        <span class="wid03"><a ng-click="del($index);deleteProd(prod.id);"><i class="fa fa-close"></i></a></span>
                                     </dd>
                                 </div>
                             </dl>
@@ -556,7 +665,7 @@
                                    ng-required="tender.ifOpen == 0">
                         </div>
                         <div class="col-xs-1">
-                            <a class="remove-vendor" href="javascript:void(0)" ng-click="removeVendor($index)" title="删除"><i class="fa fa-trash-o"></i></a>
+                            <a class="remove-vendor" href="javascript:void(0)" ng-click="removeVendor($index);removeSaleTender(tender, en.uu);" title="删除"><i class="fa fa-trash-o"></i></a>
                         </div>
                     </div>
                     <div class="col-xs-12" style="border-bottom: 1px dashed #327ebe;">
@@ -590,14 +699,14 @@
                         </div>
                     </div>
                 </div>
-                <div class="col-xs-12" style="padding: 30px;">
-                    <div class="col-xs-2 pull-right btn-publish">
-                        <button class="btn" ng-click="publishSaved(tender)">发布</button>
+                <div class="col-xs-12" style="padding: 60px 30px;">
+                    <div class="pull-right btn-publish">
+                        <button class="btn" ng-click="updateSaved(true)">发布</button>
                     </div>
-                    <div class="col-xs-2 pull-right btn-publish">
-                        <button class="btn" ng-click="updateSaved(tender)">更新</button>
+                    <div class="pull-right btn-save">
+                        <button class="btn" ng-click="updateSaved(false)">更新</button>
                     </div>
-                    <div class="col-xs-2 pull-right btn-delete">
+                    <div class="pull-right btn-delete">
                         <button class="btn btn-danger" ng-click="deleteThis(tender.id)">删除</button>
                     </div>
                 </div>

+ 1 - 4
src/main/webapp/resources/tpl/index/purc/tender.html

@@ -503,7 +503,7 @@
                             <input type="text" ng-model="tender.endDate" required
                                    class="form-control" placeholder="点击选择截止日期" readonly="readonly"
                                    datepicker-popup="yyyy-MM-dd" is-open="condition.$fromOpened"
-                                   ng-required="true" max-date="tender.publishDate" current-text="今天" min-date = "currentDay()"
+                                   ng-required="true" max-date="getMaxDate()" current-text="今天" min-date = "currentDay()"
                                    clear-text="清除" close-text="关闭"
                                    datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                    ng-click="openDatePicker($event, condition, '$fromOpened')"
@@ -547,9 +547,6 @@
                         <div style="margin-left: 100px; color: #969595; font-size: 12px; ">
                             提示:选择附件大小不超过5MB,可上传JPG,PNG,EXCEL,WORD,PDF
                         </div>
-                        <!--<div style="margin-left: 100px; color: #969595; font-size: 12px; ">
-                            如果需要上传多个文件,请尝试同时选取多个文件
-                        </div>-->
                     </div>
                 </div>
 

+ 14 - 9
src/main/webapp/resources/tpl/index/purc/tender_evaluation.html

@@ -197,6 +197,11 @@
         text-align: right;
     }
 
+    .prod-center { /* 数字居右 */
+        text-align: center;
+    }
+
+
     .tender-list02 .comment-oder-list dl dt span {
         text-align: center;
     }
@@ -227,7 +232,7 @@
                         <div class="bid-desc">联系电话:</div>
                         <div class="unchanged-info">{{tender.userTel}}</div>
                     </div>
-                    <div class="col-xs-8">
+                    <div class="col-xs-12">
                         <div class="bid-desc">收货地址:</div>
                         <div class="unchanged-info">{{tender.shipAddress}}</div>
                     </div>
@@ -252,7 +257,7 @@
                         <div class="bid-desc">付款方式:</div>
                         <div class="unchanged-info">{{tender.payment}}</div>
                     </div>
-                    <div class="col-xs-8">
+                    <div class="col-xs-12">
                         <div class="bid-desc">证照要求:</div>
                         <div class="unchanged-info">{{tender.certificate}}</div>
                     </div>
@@ -364,13 +369,13 @@
                                     <span class="prod-number" ng-show="tender.overdue == 1">{{saleTenderItem.price || 0}}</span>
                                     <span class="prod-number" ng-show="tender.overdue == 1">{{saleTenderItem.price * tenderProd.qty  || 0 | number: 2}}</span>
                                     <span class="prod-number" ng-show="tender.overdue == 1">{{saleTenderItem.cycle || 0}}</span>
-                                    <span class="bid-desc" ng-show="tender.overdue != 1">*</span>
-                                    <span class="bid-desc" ng-show="tender.overdue != 1">*</span>
-                                    <span class="bid-desc" ng-show="tender.overdue != 1">*</span>
-                                    <span class="bid-desc" ng-show="tender.overdue != 1">*</span>
-                                    <span class="wid02"><input type="text" ng-model="saleTenderItem.description" class="explain" placeholder="请输入说明文字"/></span>
-                                    <span><input type="radio" ng-model="saleTenderItem.applyStatus" value="1"/></span>
-                                    <span><input type="radio" ng-model="saleTenderItem.applyStatus" value="0"/></span>
+                                    <span class="bid-desc prod-number" ng-show="tender.overdue != 1">*</span>
+                                    <span class="bid-desc prod-number" ng-show="tender.overdue != 1">*</span>
+                                    <span class="bid-desc prod-number" ng-show="tender.overdue != 1">*</span>
+                                    <span class="bid-desc prod-number" ng-show="tender.overdue != 1">*</span>
+                                    <span class="wid02 prod-center"><input type="text" ng-model="saleTenderItem.description" class="explain" placeholder="请输入说明文字"/></span>
+                                    <span class="prod-center"><input type="radio" ng-model="saleTenderItem.applyStatus" value="1"/></span>
+                                    <span class="prod-center"><input type="radio" ng-model="saleTenderItem.applyStatus" value="0"/></span>
                                 </dd>
                             </dl>
                         </div>

+ 1 - 1
src/main/webapp/resources/tpl/index/sale/tender.html

@@ -318,7 +318,7 @@
                                     <span><input type="text" class="editAble" ng-model="prod.currentItem.price" ng-pattern="/^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/" ng-change="validateThis(prod.currentItem.price, 'price')" ng-focus="validPrice(prod.currentItem.price)" ng-blur="validPrice(prod.currentItem.price)" placeholder="点击填写单价"/></span>-->
                                     <span><input type="text" class="editAble" ng-model="prod.currentItem.cycle" ng-pattern="/^\+?[1-9][0-9]*$/" ng-change="validateProds(prod);validateThis(prod.currentItem.cycle, 'cycle')" ng-blur="validateProds(prod);validateThis(prod.currentItem.cycle, 'cycle')" ng-focus="validateProds(prod);validateThis(prod.currentItem.cycle, 'cycle')" placeholder="请输入周期"/></span>
                                     <span><input type="text" class="editAble" ng-model="prod.currentItem.taxrate" ng-pattern="/^\+?[0-9][0-9]{0,1}$/" ng-change="validateProds(prod);validateThis(prod.currentItem.taxrate, 'taxrate')" ng-focus="validateProds(prod);validateThis(prod.currentItem.taxrate, 'taxrate')" ng-blur="validateProds(prod);validateThis(prod.currentItem.taxrate, 'taxrate')" placeholder="请输入税率"/></span>
-                                    <span><input type="text" class="editAble" ng-model="prod.currentItem.price" ng-pattern="/^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/" ng-change="validateProds(prod);" ng-blur="validateThis(prod.currentItem.price, 'price')" ng-focus="validateThis(prod.currentItem.price, 'price')" placeholder="请输入单价"/></span>
+                                    <span><input type="text" class="editAble" ng-model="prod.currentItem.price" ng-pattern="/^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/" ng-change="validateProds(prod);" ng-blur="validateThis(prod.currentItem.price, 'price')" ng-focus="validateProds(prod);" placeholder="请输入单价"/></span>
                                     <span ng-bind="prod.currentItem.price * prod.qty || '' | number:2"></span>
                                     <span  ng-show = "bid.result == 1" ng-bind="prod.currentItem.applyStatus == 1 ? '中标' : '未中标'"></span>
                                     <span  ng-show = "bid.result == 1" ng-bind="prod.currentItem.description"></span>

+ 2 - 11
src/main/webapp/resources/tpl/index/sale/tenderlist.html

@@ -421,30 +421,21 @@
                     <div ng-if="tender.status == '已结标' && tender.result == 1 && tender.applyVendor">
                         <img src="resources/img/tender/zhongbiao.png">
                     </div>
-                    <div ng-if="(tender.status == '已结标' && tender.result == 1 && !tender.applyVendor) || (tender.status == '待评标' && tender.overdue == 1 && tender.result == 1 && tender.vendorHasBid)">
+                    <div ng-if="(tender.status == '流标' && tender.vendorHasBid) || (tender.status == '已结标' && tender.result == 1 && !tender.applyVendor) || (tender.status == '待评标' && tender.result == 1 && tender.vendorHasBid)">
                         <img src="resources/img/tender/weizhongbiao.png">
                     </div>
-                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result == 1 && !tender.vendorHasBid">
+                    <div ng-if="(tender.status == '流标' && !tender.vendorHasBid) || (tender.status == '待评标' && !tender.vendorHasBid) || (tender.status == '待投标' && tender.overdue == 1)">
                         <img src="resources/img/tender/liubiao.png">
                     </div>
                     <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1 && tender.vendorHasBid">
                         <img src="resources/img/tender/daipingbiao.png">
                     </div>
-                    <div ng-if="tender.result == 0 && tender.overdue == 1">
-                        <img src="resources/img/tender/daipingbiao.png">
-                    </div>
-                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1 && !tender.vendorHasBid">
-                        <img src="resources/img/tender/liubiao.png">
-                    </div>
                     <div ng-if="tender.overdue != 1 && tender.vendorHasBid">
                         <img src="resources/img/tender/yitoubiao.png">
                     </div>
                     <div ng-if="tender.overdue != 1 && !tender.vendorHasBid">
                         <img src="resources/img/tender/daitoubiao.png">
                     </div>
-                    <div ng-if="tender.status == '待投标' && tender.overdue == 1">
-                        <img src="resources/img/tender/liubiao.png">
-                    </div>
                 </td>
             </tr>
             <tr>