Ver Fonte

询价消息

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7971 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw há 9 anos atrás
pai
commit
a26b9e6c84

+ 0 - 2
src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java

@@ -698,8 +698,6 @@ public class PurchaseTenderController {
             vendorUUs = "[".concat(vendorUUs);
             vendorUUs = vendorUUs.concat("]");
             List<Long> vendUUs = FlexJsonUtils.fromJsonArray(vendorUUs, Long.class);
-            System.out.println("vendUUs" + JSON.toJSONString(vendUUs));
-            System.out.println("tender" + JSON.toJSONString(purchaseTender));
             purchaseTenderService.updateSaved(purchaseTender, vendUUs);
         } else {
             purchaseTenderService.updateSavedOpen(purchaseTender);

+ 7 - 2
src/main/java/com/uas/platform/b2b/event/PurchaseInquiryItemDecideReleaseEvent.java

@@ -34,12 +34,17 @@ public class PurchaseInquiryItemDecideReleaseEvent extends SaveReleaseEvent<Pagi
         Date date = new Date();
         String codeValue = inquiryItem.getInquiry().getCode();
         String from = "B2B";
-        if (inquiryItem.getSourceId() != null) { // erp传到平台的单据,包含erpId字段记录来源
+        if (inquiryItem.getInquiry().getSourceId() != null) { // erp传到平台的单据,包含erpId字段记录来源
             from = "ERP";
         }
         String type = "回复询价单";
         String title = "B2B商务提醒";
-        String context = inquiryItem.getInquiry().getEnterprise().getEnName() + "的" + emName + "给您发送了一张询价单(" + codeValue + ")!";
+        String context;
+        if (inquiryItem.getAgreed() == 1) {
+            context = inquiryItem.getInquiry().getEnterprise().getEnName() + "的" + emName + "采纳了您的报价,询价单号:" + codeValue + "!";
+        } else {
+            context = inquiryItem.getInquiry().getEnterprise().getEnName() + "的" + emName + "未采纳您的报价,询价单号:" + codeValue + "!";
+        }
         PagingRelease release = new PagingRelease(emUU, emName, enUU, date, codeValue, from, title, context, type);
         Long vendUU = inquiryItem.getVendUU();
         Long vendUserUU = inquiryItem.getVendUserUU();

+ 1 - 1
src/main/java/com/uas/platform/b2b/event/PurchaseInquiryItemSaveReleaseEvent.java

@@ -34,7 +34,7 @@ public class PurchaseInquiryItemSaveReleaseEvent extends SaveReleaseEvent<Paging
         Date date = new Date();
         String codeValue = inquiryItem.getInquiry().getCode();
         String from = "B2B";
-        if (inquiryItem.getSourceId() != null) { // erp传到平台的单据,包含erpId字段记录来源
+        if (inquiryItem.getInquiry().getSourceId() != null) { // erp传到平台的单据,包含erpId字段记录来源
             from = "ERP";
         }
         String type = "新增询价单";

+ 27 - 28
src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java

@@ -1,34 +1,11 @@
 package com.uas.platform.b2b.service.impl;
 
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-
 import com.alibaba.fastjson.JSON;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PurcInquiryDao;
-import com.uas.platform.b2b.dao.PurcInquiryItemDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurcInquiry;
-import com.uas.platform.b2b.model.PurcInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiry;
-import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.core.util.ContextUtils;
+import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
+import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.PurcInquiryService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
@@ -39,6 +16,18 @@ import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
 
 @Service
 public class PurcInquiryServiceImpl implements PurcInquiryService {
@@ -194,6 +183,8 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 					}
 				}
 				List<PurchaseInquiryItem> purcitems = purchaseInquiryItemDao.save(items);
+				// 触发事件产生消息
+				ContextUtils.publishEvent(new PurchaseInquiryItemSaveReleaseEvent(purcitems));
 				if (purcitems.get(0).getId() != null) {
 					logger.log("询价单", "平台新增询价单", useruu, SystemSession.getUser().getIp());
 					PurcInquiry inquiry = inquiryDao.findOne(Long.valueOf(inquiryId.toString()));
@@ -245,6 +236,8 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 			}
 		}
 		List<PurchaseInquiryItem> purcitems = purchaseInquiryItemDao.save(items);
+		// 触发事件,产生消息
+		ContextUtils.publishEvent(new PurchaseInquiryItemSaveReleaseEvent(purcitems));
 		if (purcitems.get(0).getId() != null) {
 			inquiry = inquiryDao.findOne(id);
 			inquiry.setEnteryStatus(Status.ENABLED.value());
@@ -309,6 +302,9 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 		} else {
 			map.put("error", "操作失败");
 		}
+		List<PurchaseInquiryItem> items = new ArrayList<>();
+		items.add(item);
+		ContextUtils.publishEvent(new PurchaseInquiryItemDecideReleaseEvent(items));
 		return map;
 	}
 
@@ -324,6 +320,9 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 		} else {
 			map.put("error", "采纳失败");
 		}
+		List<PurchaseInquiryItem> items = new ArrayList<>();
+		items.add(item);
+		ContextUtils.publishEvent(new PurchaseInquiryItemDecideReleaseEvent(items));
 		return map;
 	}
 

+ 18 - 34
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -1,44 +1,13 @@
 package com.uas.platform.b2b.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.AttachDao;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryReplyDao;
-import com.uas.platform.b2b.dao.UserBaseInfoDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.erp.model.QuotationDownDetail;
+import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurchaseInquiry;
-import com.uas.platform.b2b.model.PurchaseInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiryReply;
-import com.uas.platform.b2b.model.SearchFilter;
-import com.uas.platform.b2b.model.UserBaseInfo;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.PurchaseInquiryService;
 import com.uas.platform.b2b.support.SystemSession;
@@ -51,6 +20,20 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.search.b2b.model.PageParams;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
 
 @Service
 public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
@@ -116,6 +99,7 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 						"物料:" + item.getProduct().getTitle() + ",客户:" + inquiry.getEnterprise().getEnName(), "", "");
 			}
 		}
+		ContextUtils.publishEvent(new PurchaseInquiryItemDecideReleaseEvent(inquiryItems));
 	}
 
 	@Override

+ 40 - 54
src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java

@@ -1,16 +1,12 @@
 package com.uas.platform.b2b.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
+import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.model.*;
+import com.uas.platform.b2b.service.AttachService;
+import com.uas.platform.b2b.service.PurchaseTenderService;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.temporary.model.PurcTenderProd;
+import com.uas.platform.core.model.Constant;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -21,27 +17,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 
-import com.uas.platform.b2b.dao.AttachDao;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.EnterpriseBaseInfoDao;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.PurchaseTenderDao;
-import com.uas.platform.b2b.dao.PurchaseTenderProdDao;
-import com.uas.platform.b2b.dao.SaleTenderDao;
-import com.uas.platform.b2b.dao.SaleTenderItemDao;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.EnterpriseBaseInfo;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.PurchaseTender;
-import com.uas.platform.b2b.model.PurchaseTenderProd;
-import com.uas.platform.b2b.model.SaleTender;
-import com.uas.platform.b2b.model.SaleTenderItem;
-import com.uas.platform.b2b.service.AttachService;
-import com.uas.platform.b2b.service.PurchaseTenderService;
-import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.b2b.temporary.model.PurcTenderProd;
-import com.uas.platform.core.model.Constant;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
 
 /**
  * Created by dongbw on 17/03/07 14:16.
@@ -135,6 +115,11 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
         tender.setStatus("待发布");
         tender.setEnUU(SystemSession.getUser().getEnterprise().getUu());
         purchaseTenderDao.save(tender);
+        Set<PurchaseTenderProd> tenderProds = tender.getPurchaseTenderProds();
+        for (PurchaseTenderProd tenderProd : tenderProds) {
+            tenderProd.setTender(tender);
+            purchaseTenderProdDao.save(tenderProd);
+        }
     }
 
     @Override
@@ -398,6 +383,11 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
             } else {
                 oldTender.setIsPublish(Constant.NO);
             }
+            if (ifOpen) {
+                oldTender.setIfOpen(Constant.YES);
+            } else {
+                oldTender.setIfOpen(Constant.NO);
+            }
             oldTender.setModified(new Date());
             if (null != purchaseTender.getCertificate()) {
                 oldTender.setCertificate(purchaseTender.getCertificate());
@@ -439,28 +429,24 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
                 }
                 saleTenderDao.delete(saleTender.getId());
             }
-            if (ifOpen) {
-                oldTender.setIfOpen(Constant.YES);
-
-            } else { // 非公开招标再添加投标单
-                oldTender.setIfOpen(Constant.NO);
-                // 新的招标产品明细
-                Set<PurchaseTenderProd> tenderProds = purchaseTender.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());
-						Set<SaleTenderItem> saleTenderItems = new HashSet<>();
-						oldTenderProd.setSaleTenderItems(saleTenderItems);
-                        purchaseTenderProdDao.save(oldTenderProd);
-                    } else { // 新增的
-                        tenderProd.setTender(oldTender);
-                        purchaseTenderProdDao.save(tenderProd);
-                    }
+            // 新的招标产品明细
+            Set<PurchaseTenderProd> tenderProds = purchaseTender.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());
+                    Set<SaleTenderItem> saleTenderItems = new HashSet<>();
+                    oldTenderProd.setSaleTenderItems(saleTenderItems);
+                    purchaseTenderProdDao.save(oldTenderProd);
+                } else { // 新增的
+                    tenderProd.setTender(oldTender);
+                    purchaseTenderProdDao.save(tenderProd);
+                }
+                if (!ifOpen) { // 指定招标的增加招标单
                     addSaleTender(oldTender, vendUUs, tenderProd);
                 }
             }

+ 30 - 18
src/main/webapp/resources/js/index/app.js

@@ -775,12 +775,19 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
         $scope.checkOne = function(vendor) {
             vendor.checked = true;
 
+            var checked = true;
+            angular.forEach($scope.tableParams.data, function(message) { // 单选全部时,全选选中
+                if (!message.checked) {
+                    checked = false;
+                }
+            });
+            $scope.checks.checked = checked;
         };
 
         // 单反选
         $scope.unCheckOne = function(vendor) {
             vendor.checked = false;
-
+            $scope.checks.checked = false;
         };
 
         // 标为已读
@@ -3974,12 +3981,19 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
         $scope.checkOne = function(vendor) {
             vendor.checked = true;
 
+            var checked = true;
+            angular.forEach($scope.tableParams.data, function(message) { // 单选全部时,全选选中
+                if (!message.checked) {
+                    checked = false;
+                }
+            });
+            $scope.checks.checked = checked;
         };
 
         // 单反选
         $scope.unCheckOne = function(vendor) {
             vendor.checked = false;
-
+            $scope.checks.checked = false;
         };
 
         $scope.close = function(){
@@ -11117,7 +11131,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
         // };
 
         $scope.removeChecked = function() {
-            if ($scope.tenderProd.enterpriseBaseInfo.length > 0) {
+            if ($scope.tenderProd.enterpriseBaseInfo.size > 0) {
                 $scope.tenderProd.enterpriseBaseInfo = [];
             }
         };
@@ -11363,7 +11377,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                         $scope.loading = false;
                         sleep(1500); //当前方法暂停1.5秒  给更新索引留点时间
                         toaster.pop('success', '成功', '保存成功');
-                        window.location.hash = '#/purc/tender';
+                        window.location.reload();
                     }, function(response){
                         $scope.loading = false;
                         toaster.pop('error', '保存失败', response.data);
@@ -11752,14 +11766,13 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                         console.log(page.content);
                         // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
                         angular.forEach(page.content, function(purcTender) {
+                            purcTender.vendorHasBid = false;
                             angular.forEach(purcTender.purchaseTenderProds, function(tenderProd) {
                                 angular.forEach(tenderProd.saleTenderItems, function(saleTenderItem) {
                                     if ($scope.currentEn.uu === saleTenderItem.saleTender.vendUU) {
                                         tenderProd.currentItem = saleTenderItem;
                                         if (saleTenderItem.price) { //TODO 如果存在当前企业的投标明细已投标,即判断为已投标
                                             purcTender.vendorHasBid = true;
-                                        } else {
-                                            purcTender.vendorHasBid = false;
                                         }
                                     }
                                 });
@@ -12114,19 +12127,18 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
         };
 
         $scope.validateProds = function(tenderProd) {
-            // angular.forEach(tenderProds, function (tenderProd) {
-            var cycleRegex = /^\+?[1-9][0-9]*$/;
-            var taxrateRegex = /^\+?[0-9][0-9]{0,1}$/;
-            var priceRegex = /^(([0-9]+\.[0-9]{1,6})|([0-9]*[1-9][0-9]*\.[0-9]{1,6})|([0-9]*[1-9][0-9]*))$/; // 非零最多六位小数正实数
-            // /^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/;
-            // 判断填写过的有为0或不符合正则式的,设置不能保存
-            console.log(tenderProd.currentItem.cycle);
-            if (!cycleRegex.test(tenderProd.currentItem.cycle) || !taxrateRegex.test(tenderProd.currentItem.taxrate) || !priceRegex.test(tenderProd.currentItem.price) && (tenderProd.currentItem.cycle !== null && tenderProd.currentItem.taxrate !== null && tenderProd.currentItem.price !== null)) {
-                $scope.canSave = false;
-            } else {
-                $scope.canSave = true;
+            if (tenderProd.currentItem.cycle && tenderProd.currentItem.taxrate && tenderProd.currentItem.price) {
+                var cycleRegex = /^\+?[1-9][0-9]*$/;
+                var taxrateRegex = /^\+?[0-9][0-9]{0,1}$/;
+                var priceRegex = /^(([0-9]+\.[0-9]{1,6})|([0-9]*[1-9][0-9]*\.[0-9]{1,6})|([0-9]*[1-9][0-9]*))$/; // 非零最多六位小数正实数
+                // /^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/;
+                // 判断填写过的有为0或不符合正则式的,设置不能保存
+                if (!cycleRegex.test(tenderProd.currentItem.cycle) || !taxrateRegex.test(tenderProd.currentItem.taxrate) || !priceRegex.test(tenderProd.currentItem.price) && (Number(tenderProd.currentItem.cycle) !== 0 && Number(tenderProd.currentItem.taxrate) !== 0 && Number(tenderProd.currentItem.price) !== 0)) {
+                    $scope.canSave = false;
+                } else {
+                    $scope.canSave = true;
+                }
             }
-            // });
         };
 
         // 投标

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

@@ -644,7 +644,7 @@
                             <span>只允许我邀请的供应商参与</span>
                         </div>
                         <div class="input-select col-xs-4">
-                            <input class="tender-input" name="ifOpen" type="radio" value="1" ng-model="tender.ifOpen"/>
+                            <input class="tender-input" name="ifOpen" type="radio" value="1" ng-model="tender.ifOpen" ng-click="removeChecked()"/>
                             <span>允许优软平台的供应商参与</span>
                         </div>
                     </div>

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

@@ -537,10 +537,10 @@
                 </div>
                 <div class="col-xs-12" style="padding: 30px;">
                     <div ng-show="!currentHasBid" class="col-xs-2 pull-right btn-publish">
-                        <button class="btn" ng-click="iWantToBid(tender.id)" ng-disabled="hasClick">我要投标</button>
+                        <button class="btn" ng-click="iWantToBid(tender.id)" ng-disabled="hasClick || tender.overdue == 1" title="如果招标单已过期,将无法进入投标">我要投标</button>
                     </div>
                     <div ng-show="currentHasBid" class="col-xs-2 pull-right btn-disabled">
-                        <button class="btn" disabled>已转投标</button>
+                        <button class="btn" ng-disabled="disabled">已转投标</button>
                     </div>
                     <div ng-show="currentHasBid" class="pull-right a-detail">
                         <a ui-sref="sale.tender({id:tender.id})" target="_self" title="点击查看详情">>>查看详情</a>

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

@@ -318,9 +318,9 @@
                                     <!--<span><input type="text" class="editAble" ng-model="prod.currentItem.cycle" ng-pattern="/^\+?[1-9][0-9]*$/" ng-change="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="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="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="validateThis(prod.currentItem.cycle, 'cycle');" ng-focus="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="validateThis(prod.currentItem.taxrate, 'taxrate');" ng-blur="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');validateProds(prod);" 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="validateThis(prod.currentItem.cycle, 'cycle');validateProds(prod);" ng-focus="validateThis(prod.currentItem.cycle, 'cycle');validateProds(prod);" 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="validateThis(prod.currentItem.taxrate, 'taxrate');validateProds(prod);" ng-blur="validateThis(prod.currentItem.taxrate, 'taxrate');validateProds(prod);" 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');validateProds(prod);" 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>

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

@@ -514,7 +514,7 @@
                     <div ng-if="tenderProd.currentItem.applyStatus == 1 && tenderProd.currentItem.price">
                         <img src="resources/img/tender/zhongbiao.png">
                     </div>
-                    <div ng-if="(tender.status == '已结标' && !tenderProd.currentItem.applyStatus) || tender.status == '流标' || ((tender.status == '待评标' || tender.status == '待投标') && tender.result == 1)">
+                    <div ng-if="(tender.status == '已结标' && !tenderProd.currentItem.applyStatus) || tender.status == '流标' || (tender.status == '待评标' && tender.result == 1)">
                         <!-- 报了到期没评、评了没有采纳 -->
                         <img src="resources/img/tender/weizhongbiao.png">
                     </div>