Prechádzať zdrojové kódy

修改招标的问题。修改消息参数

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7644 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 rokov pred
rodič
commit
0a2a2e779c

+ 9 - 12
src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java

@@ -609,25 +609,21 @@ public class PurchaseTenderController {
     /**
      *  删除在录入的单据
      *
-     * @param json
+     * @param id
      */
-    @RequestMapping(value = "/delete", method = RequestMethod.POST)
-    @ResponseBody
-    public void deleteTender(@RequestBody String json) {
-        PurchaseTender tender = FlexJsonUtils.fromJson(json, PurchaseTender.class);
-        purchaseTenderService.delete(tender.getId());
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    public void deleteTender(@PathVariable("id") Long id) {
+        purchaseTenderService.delete(id);
     }
 
     /**
      * 发布在录入单据
      *
-     * @param json
+     * @param id
      */
-    @RequestMapping(value = "/publishSaved", method = RequestMethod.POST)
-    @ResponseBody
-    public void publishSaved(@RequestBody String json) {
-        PurchaseTender tender = FlexJsonUtils.fromJson(json, PurchaseTender.class);
-        purchaseTenderService.publishSaved(tender.getId());
+    @RequestMapping(value = "/publishSaved/{id}", method = RequestMethod.POST)
+    public void publishSaved(@PathVariable("id") Long id) {
+        purchaseTenderService.publishSaved(id);
     }
 
     /**
@@ -680,6 +676,7 @@ public class PurchaseTenderController {
                 throw new IllegalOperatorException("文件格不正确,请上传.xls或.xlsx的文件");
             }
             map = purchaseTenderService.releaseByWorkbook(workbook);
+            System.out.println("map" + JSON.toJSONString(map));
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 3 - 2
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileReleaseServiceImpl.java

@@ -87,8 +87,8 @@ public class MobileReleaseServiceImpl implements MobileReleaseService {
         }
         List<String> dataTypes = commonDao.queryForList(type, String.class);
         if (!CollectionUtils.isEmpty(dataTypes)) {
-            String dataType = dataTypes.get(0);
-            listdata.setType(dataType);
+//            String dataType = dataTypes.get(0);
+            listdata.setType("B2B"); // 暂时设置为b2b
             listdata.setCount(allCount);
         }
         list.add(listdata);
@@ -180,6 +180,7 @@ public class MobileReleaseServiceImpl implements MobileReleaseService {
             PagingRelease release = pagingReleaseDao.findOne(Long.valueOf(id));
             Set<PagingReleaseDetail> releaseDetails = release.getPagingReleaseDetails();
             for (PagingReleaseDetail detail : releaseDetails) {
+                detail.setTotalStatus(Constant.YES);
                 detail.setStatus(Constant.YES);
                 pagingReleaseDetailDao.save(detail);
                 success = true;

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseTenderProd.java

@@ -28,6 +28,12 @@ public class PurchaseTenderProd implements Serializable {
     @Column(name = "tp_id")
     private Long id;
 
+    /**
+     * 序号,用于按序显示
+     */
+    @Column(name = "tp_index")
+    private Short index;
+
     /**
      * 物料名称
      */
@@ -86,6 +92,14 @@ public class PurchaseTenderProd implements Serializable {
         this.id = id;
     }
 
+    public Short getIndex() {
+        return index;
+    }
+
+    public void setIndex(Short index) {
+        this.index = index;
+    }
+
     public String getProdTitle() {
         return prodTitle;
     }

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

@@ -240,13 +240,13 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
                     // 商品名称
                     if (row.getCell(0) != null) {
                         row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
-                        info.setProdname(row.getCell(0).getStringCellValue().trim());
+                        info.setProdTitle(row.getCell(0).getStringCellValue().trim());
                     }
 
                     // 型号
                     if (row.getCell(1) != null) {
                         row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
-                        info.setProdcode(row.getCell(1).getStringCellValue().trim());
+                        info.setProdCode(row.getCell(1).getStringCellValue().trim());
                     }
 
                     // 品牌
@@ -264,10 +264,10 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
                     // 采购数量
                     if (row.getCell(4) != null) {
                         row.getCell(4).setCellType(Cell.CELL_TYPE_STRING);
-                        info.setAmount(Integer.valueOf(row.getCell(4).getStringCellValue()));
+                        info.setQty(Integer.valueOf(row.getCell(4).getStringCellValue()));
                     }
 
-                    if (info.getProdcode() != null && info.getAmount() != null && info.getProdname() != null) {
+                    if (info.getProdTitle() != null && info.getQty() != null && info.getProdCode() != null) {
                         modelMap.put("total", total);
                         modelMap.put("success", total - alters.size());
                         tenderProds.add(info);

+ 18 - 16
src/main/java/com/uas/platform/b2b/temporary/model/PurcTenderProd.java

@@ -21,20 +21,21 @@ public class PurcTenderProd implements Serializable{
      */
     private Long id;
 
+
     /**
      * 产品名称
      */
-    private String prodname;
+    private String prodTitle;
 
     /**
      * 产品型号
      */
-    private String prodcode;
+    private String prodCode;
 
 //    /**
 //     * 产品规格
 //     */
-//    private String prodspec;
+//    private String prodSpec;
 
     /**
      * 品牌
@@ -49,7 +50,7 @@ public class PurcTenderProd implements Serializable{
     /**
      * 采购数量
      */
-    private Integer amount;
+    private Integer qty;
 
 
     public Long getId() {
@@ -60,20 +61,21 @@ public class PurcTenderProd implements Serializable{
         this.id = id;
     }
 
-    public String getProdname() {
-        return prodname;
+
+    public String getProdTitle() {
+        return prodTitle;
     }
 
-    public void setProdname(String prodname) {
-        this.prodname = prodname;
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
     }
 
-    public String getProdcode() {
-        return prodcode;
+    public String getProdCode() {
+        return prodCode;
     }
 
-    public void setProdcode(String prodcode) {
-        this.prodcode = prodcode;
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
     }
 
     public String getBrand() {
@@ -92,12 +94,12 @@ public class PurcTenderProd implements Serializable{
         this.unit = unit;
     }
 
-    public Integer getAmount() {
-        return amount;
+    public Integer getQty() {
+        return qty;
     }
 
-    public void setAmount(Integer amount) {
-        this.amount = amount;
+    public void setQty(Integer qty) {
+        this.qty = qty;
     }
 }
 

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

@@ -9879,15 +9879,14 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             modalInstance.result.then(function(data) {
                 // 获取上传的产品明细,前台展示
                 angular.forEach(data, function(data) {
-                    console.log(data);
                     $scope.tenderProd.push(data);
                     for(var i = 0; i < $scope.tenderProd.length; i++) {
-                        if($scope.tenderProd[i].prodname == null) { // 如果没有填写就删除这行数据
+                        if($scope.tenderProd[i].prodTitle == null) { // 如果没有填写就删除这行数据
                             $scope.tenderProd.splice(i, 1);
+                            console.log($scope.tenderProd);
                         }
                     }
                 });
-
             }, function(){
 
             });
@@ -10049,8 +10048,13 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             }
 
             $scope.tender.purchaseTenderProds = $scope.tenderProd;
-
+            for (var i = 0; i < $scope.tender.purchaseTenderProds.length; i++) {
+                $scope.tender.purchaseTenderProds[i].index = i + 1;
+            }
+            console.log($scope.tender.purchaseTenderProds);
             $scope.tender.tenderAttaches = $scope.attaches;
+
+            $scope.tender.shipAddress = $scope.tender.shipAddress.address + $scope.tender.shipAddress.addressdet + ' ' + $scope.tender.shipAddress.receiver + ' ' + $scope.tender.shipAddress.usertel;
             if (isPublish) { // 发布
                 toaster.pop('info', '提示', '正在发布,请稍候');
                 PurcTender.publish({tender: $scope.tender, enterpriseBaseInfo: $scope.tenderProd.enterpriseBaseInfo}, {},  function(data){
@@ -10077,8 +10081,8 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
         };
 
         // 删除(在录入状态)
-        $scope.deleteThis = function(tender) {
-            PurcTender.deleteOne({}, tender, function() {
+        $scope.deleteThis = function(id) {
+            PurcTender.deleteOne({id: $stateParams.id}, function() {
                 toaster.pop('info', '提示', '删除成功');
                 window.location.hash = '#/purc/tender';
             });
@@ -10091,7 +10095,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                 toaster.pop('warning', '警告', '单据已过期,请重新设置日期');
             } else {
                 toaster.pop('info', '提示', '正在发布,请稍候');
-                PurcTender.publishSaved({}, tender, function() {
+                PurcTender.publishSaved({id: $stateParams.id}, function() {
                     sleep(1500); //当前方法暂停1.5秒  给更新索引留点时间
                     toaster.pop('success', '提示', '发布成功');
                     window.location.hash = '#/purc/tender';
@@ -10179,6 +10183,8 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             PurcTender.getOne({id: $stateParams.id}, function(data){
                 data.$editing = false;
                 $scope.tender = data;
+                $scope.tableParams = new NgTableParams({}, { dataset: data});
+                $scope.tableParams.sorting($scope.sort.field, $scope.sort.desc);
                 $scope.loading  = false;
             }, function(response){
                 $scope.loading  = false;
@@ -10186,17 +10192,34 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             });
         }
         evaluation();
+
+        // 设置排序方式
+        $scope.setSort = function(field, desc) {
+            if(field == 'price' && $scope.sort.field != 'price') {// 切换到价格排序时先升序排序
+                desc = 'asc';
+            } else if( ! desc) {
+                // if($scope.sort.desc == 'asc') {
+                //     desc = 'desc';
+                // } else {
+                //     desc = 'asc';
+                // }
+            }
+            $scope.sort = {field: field, desc: desc};
+            $scope.tableParams.sorting($scope.sort.field, $scope.sort.desc);
+        };
+
+
         $scope.orderType = 'price';
-        $scope.dir = '-';
+        // $scope.dir = '-';
 
         // 改变排序顺序
         $scope.changeOrder = function(type){
             $scope.orderType = type;
-            if(!$scope.dir || $scope.dir === '') {
-                $scope.dir = '-';
-            }else {
-                $scope.dir = '';
-            }
+            // if(!$scope.dir || $scope.dir === '') {
+            //     $scope.dir = '-';
+            // }else {
+            //     $scope.dir = '';
+            // }
         };
 
         $scope.submit = function(tender) {
@@ -10261,6 +10284,20 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
                         params.total(page.totalElement);
                         $defer.resolve(page.content);
                         // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
+                        angular.forEach(page.content, function(purcTender) {
+                            angular.forEach(purcTender.purchaseTenderProds[0].saleTenderItems, function(saleTenderItem) {
+                                if ($scope.currentEn.uu == saleTenderItem.saleTender.vendUU && saleTenderItem.price != null) { // 存在本企业投标明细,且价格已填,判定为已投标
+                                    purcTender.vendorHasBid = true; // 是否投标
+                                    if (seleTenderItem.applyStatus == 1) {
+                                        purcTender.applyVendor = true;  // 是否中标
+                                    } else {
+                                        purcTender.applyVendor = false;  // 是否中标
+                                    }
+                                } else {
+                                    purcTender.vendorHasBid = false; // 是否投标
+                                }
+                            });
+                        });
                     }
                 }, function(response){
                     $scope.loading = false;
@@ -10429,7 +10466,6 @@ 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.itemStatusTodo = true;
         $scope.attaches = []; // 存放上传了的附件
         // var staticItem = null;
         // $scope.loading  = true;
@@ -10452,6 +10488,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 
         AccountEnterprise.get({}, function(data){
             $scope.currentEn = data;
+            console.log($scope.currentEn);
         });
 
         PurcTender.getOne({id: $stateParams.id}, function(data){
@@ -10459,15 +10496,12 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             console.log(data);
             angular.forEach(data.purchaseTenderProds, function(tenderProd) {
                 angular.forEach(tenderProd.saleTenderItems, function(saleTenderItem) {
-                    if (saleTenderItem.saleTender.vendUU == $scope.currentEn.uu) {
+                    if (saleTenderItem.saleTender.vendUU === $scope.currentEn.uu) {
                         tenderProd.currentItem = saleTenderItem;
                         $scope.saleTender = saleTenderItem.saleTender;
                         $scope.attaches = saleTenderItem.saleTender.bidAttaches;
                         console.log($scope.attaches);
                         $scope.currentEnBaseInfo = saleTenderItem.saleTender.enterpriseBaseInfo;
-                        if (tenderProd.currentItem.price != null) { // 为投标时
-                            $scope.itemStatusTodo = false;
-                        }
                     }
                 });
             });
@@ -10493,6 +10527,55 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
             });
         };
 
+        var taxrateYes = false;
+        var cycleYes = false;
+        var priceYes = false;
+        var emNumYes = false;
+        $scope.validateThis = function(value, type) {
+            switch(type) {
+                case 'taxrate':
+                    var regex = /^\+?[0-9][0-9]{0,1}$/;
+                    if (regex.test(value)) {
+                        taxrateYes = true;
+                    } else {
+                        toaster.pop('warning', '警告', '税率不合法,请重新填写');
+                    }
+                    break;
+                case 'cycle':
+                    var regex = /^\+?[1-9][0-9]*$/;
+                    if (regex.test(value)) {
+                        cycleYes = true;
+                    } else {
+                        toaster.pop('warning', '警告', '周期不合法,请重新填写');
+                    }
+                    break;
+                case 'price':
+                    var regex = /^(0|[0-9][0-9]{0,9})(\.[0-9]{1,6})?$/;
+                    if (regex.test(value) && value !== 0) {
+                        priceYes = true;
+                    } else {
+                        if (!value.endsWith(".")) {
+                            toaster.pop('warning', '警告', '单价不合法,请重新填写');
+                        }
+                    }
+                    break;
+                case 'enNum':
+                    var regex = /^\+?[1-9][0-9]*$/;
+                    if (regex.test(value) && value !== 0) {
+                        emNumYes = true;
+                    } else {
+                        toaster.pop('warning', '警告', '员工人数不合法,请重新填写');
+                    }
+                    break;
+            }
+            if (taxrateYes && cycleYes && priceYes && emNumYes) {
+                var canSave = true;
+            } else {
+                var canSave = false;
+            }
+            return canSave;
+        };
+
         // 投标
         $scope.bidIt = function(tender, currentEnBaseInfo){
             $scope.loading = true;

+ 10 - 4
src/main/webapp/resources/js/index/services/Purc.js

@@ -275,12 +275,18 @@ define([ 'ngResource'], function() {
                 method: 'POST'
             },
             deleteOne: {
-                url: 'tender/delete',
-                method: 'POST'
+                url: 'tender/delete/:id',
+                method: 'POST',
+                params: {
+                    id: 'id'
+                }
             },
             publishSaved: {
-                url: 'tender/publishSaved',
-                method: 'POST'
+                url: 'tender/publishSaved/:id',
+                method: 'POST',
+                params: {
+                    id: 'id'
+                }
             },
             removeAttach: {
                 url: 'tender/removeAttach',

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

@@ -380,7 +380,7 @@
                                     <span>采购数量</span>
                                 </dt>
                                 <div class="scroll-y">
-                                    <dd ng-repeat="prod in tender.purchaseTenderProds">
+                                    <dd ng-repeat="prod in tender.purchaseTenderProds | orderBy : 'index'">
                                         <span>{{$index + 1}}</span>
                                         <span class="wid01" ng-bind="prod.prodTitle"></span>
                                         <span class="wid01" ng-bind="prod.prodCode"></span>
@@ -502,10 +502,10 @@
                 </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>
+                        <button class="btn" ng-click="publishSaved(tender.id)">发布</button>
                     </div>
                     <div class="col-xs-2 pull-right btn-delete">
-                        <button class="btn btn-danger" ng-click="deleteThis(tender)">删除</button>
+                        <button class="btn btn-danger" ng-click="deleteThis(tender.id)">删除</button>
                     </div>
                 </div>
             </div>

+ 15 - 7
src/main/webapp/resources/tpl/index/purc/tender.html

@@ -326,6 +326,14 @@
     .per-data ul li a.mod-psd{background: #8dc7f9;margin-left: 30px;}
     .per-data ul li a:hover{background: #3578ba;}
 
+    .add-address {
+        color: #327ebe;
+    }
+
+    .add-address:hover {
+        color: #8dc7f9;
+    }
+
 </style>
 
 <div class="ng-scope">
@@ -374,9 +382,9 @@
                     </div>
                     <div class="col-xs-12">
                         <div class="tender-desc">收货地址:</div>
-                        <span required="required">
-                             <select class="select select-menu fl" style="width: 70%; height: 30px;" ng-model="tender.shipAddress" required="required"
-                                     ng-options="(ship.addressdet + ' ' + ship.receiver + ' ' + ship.usertel) for ship in ships">
+                        <span>
+                             <select class="select select-menu 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 href="javascript:void(0);" class="add-address">+新增收货信息</a>
@@ -389,7 +397,7 @@
                     </span>
                     </div>
                     <div class="col-xs-4">
-                        <span class="tender-desc" style="padding-top: 15px;">投标截止时间:</span>
+                        <span class="tender-desc f14" style="padding-top: 15px;">投标截止时间:</span>
                         <div class="input-group input-trigger date-picker">
                             <input type="text" ng-model="tender.endDate" required
                                    class="form-control" placeholder="点击选择截止日期" readonly="readonly"
@@ -408,7 +416,7 @@
                         </div>
                     </div>
                     <div class="col-xs-4">
-                        <span class="tender-desc" style="padding-top: 15px;">公布结果时间:</span>
+                        <span class="tender-desc f14" style="padding-top: 15px;">公布结果时间:</span>
                         <div class="input-group input-trigger date-picker">
                             <input type="text" ng-model="tender.publishDate" required
                                    class="form-control" placeholder="点击选择公布日期" readonly="readonly"
@@ -544,10 +552,10 @@
                 </div>
                 <div class="col-xs-12" style="padding: 30px;">
                     <div class="col-xs-2 pull-right btn-publish">
-                        <button class="btn" ng-disabled="tenderForm.$invalid" ng-click="save(true)">发布</button>
+                        <button class="btn" ng-disabled="tenderForm.$invalid || !tender.shipAddress" ng-click="save(true)">发布</button>
                     </div>
                     <div class="col-xs-2 pull-right btn-save">
-                        <button class="btn" ng-disabled="tenderForm.$invalid" ng-click="save(false)">保存</button>
+                        <button class="btn" ng-disabled="tenderForm.$invalid || !tender.shipAddress" ng-click="save(false)">保存</button>
                     </div>
                 </div>
             </div>

+ 12 - 28
src/main/webapp/resources/tpl/index/purc/tender_evaluation.html

@@ -228,21 +228,17 @@
                         <div class="bid-desc">联系电话:</div>
                         <div class="unchanged-info">{{tender.userTel}}</div>
                     </div>
-                    <div class="col-xs-4">
-                        <div class="bid-desc">产品名称:</div>
-                        <div class="unchanged-info">{{tender.prodTitle}}</div>
-                    </div>
-                    <div class="col-xs-4">
-                        <div class="bid-desc">产品型号:</div>
-                        <div class="unchanged-info">{{tender.prodCode}}</div>
+                    <div class="col-xs-8">
+                        <div class="bid-desc">收货地址:</div>
+                        <div class="unchanged-info">{{tender.shipAddress}}</div>
                     </div>
                     <div class="col-xs-4">
-                        <div class="bid-desc">单位:</div>
-                        <div class="unchanged-info">{{tender.unit}}</div>
+                        <div class="bid-desc">投标截止时间:</div>
+                        <div class="unchanged-info">{{tender.endDate | date:'yyyy-MM-dd'}}</div>
                     </div>
                     <div class="col-xs-4">
-                        <div class="bid-desc">采购数量:</div>
-                        <div class="unchanged-info">{{tender.qty}}</div>
+                        <div class="bid-desc">公布结果时间:</div>
+                        <div class="unchanged-info">{{tender.publishDate | date:'yyyy-MM-dd'}}</div>
                     </div>
                     <div class="col-xs-4">
                         <div class="bid-desc">交易币别:</div>
@@ -253,23 +249,11 @@
                         <div class="unchanged-info" ng-if="tender.ifTax == 1">是</div>
                         <div class="unchanged-info" ng-if="tender.ifTax == 0">否</div>
                     </div>
-                    <div class="col-xs-4">
-                        <div class="bid-desc">投标截止时间:</div>
-                        <div class="unchanged-info">{{tender.endDate | date:'yyyy-MM-dd'}}</div>
-                    </div>
-                    <div class="col-xs-4">
-                        <div class="bid-desc">公布结果时间:</div>
-                        <div class="unchanged-info">{{tender.publishDate | date:'yyyy-MM-dd'}}</div>
-                    </div>
                     <div class="col-xs-4">
                         <div class="bid-desc">付款方式:</div>
                         <div class="unchanged-info">{{tender.payment}}</div>
                     </div>
-                    <div class="col-xs-12">
-                        <div class="bid-desc">收货地址:</div>
-                        <div class="unchanged-info">{{tender.shipAddress}}</div>
-                    </div>
-                    <div class="col-xs-12">
+                    <div class="col-xs-8">
                         <div class="bid-desc">证照要求:</div>
                         <div class="unchanged-info">{{tender.certificate}}</div>
                     </div>
@@ -340,7 +324,7 @@
                 <div class="tender-list02">
                     <!--投标信息-->
                     <div class="com_title01"><span>投标信息</span></div>
-                    <div class="comment-oder" ng-repeat="tenderProd in tender.purchaseTenderProds">
+                    <div class="comment-oder" ng-repeat="tenderProd in tender.purchaseTenderProds | orderBy : 'index'">
                         <div class="comment-oder-text">
                             <ul>
                                 <li class="list-unstyled">
@@ -360,9 +344,9 @@
                                 <dt>
                                     <span class="wid01">投标供应商</span>
                                     <span>税率</span>
-                                    <span>单价<a class="change01" ng-click="changeOrder('price')" style="margin-top: 8px;"><i class="fa fa-angle-down fa-lg" title="按最低单价排序"></i></a></span>
+                                    <span><a class="change01" ng-click="changeOrder('price')" style="margin-top: 8px;">单价s<i class="fa fa-angle-down fa-lg" title="按最低单价排序"></i></a></span>
                                     <span>含税金额</span>
-                                    <span>采购周期<a class="change01" ng-click="changeOrder('cycle')" style="margin-top: 8px;" title="按最短周期排序"><i class="fa fa-angle-down fa-lg"></i></a></span>
+                                    <span><a class="change01" ng-click="changeOrder('cycle')" style="margin-top: 8px;" title="按最短周期排序">采购周期<i class="fa fa-angle-down fa-lg"></i></a></span>
                                     <span class="wid02">说明</span>
                                     <span>定标</span>
                                     <span>不定标</span>
@@ -372,7 +356,7 @@
                                         暂无企业参加招标
                                     </div>
                                 </dd>
-                                <dd ng-repeat="saleTenderItem in tenderProd.saleTenderItems | orderBy: dir + orderType">
+                                <dd ng-repeat="saleTenderItem in tenderProd.saleTenderItems | orderBy: orderType">
                                     <span class="wid01">{{saleTenderItem.saleTender.enterpriseBaseInfo.enName}}<a ui-sref="sale.vendortender({vendUU:item.enterpriseBaseInfo.uu, id:tender.id})" target="_self" title="查看投标单">查看投标单</a></span>
                                     <span>{{saleTenderItem.taxrate || 0}}</span>
                                     <span>{{saleTenderItem.price || 0}}</span>

+ 29 - 7
src/main/webapp/resources/tpl/index/sale/opentenderlist.html

@@ -323,18 +323,40 @@
                     <td width="150">{{tender.endDate | date:'yyyy-MM-dd'}}</td>
                     <td width="150">{{tender.publishDate | date:'yyyy-MM-dd'}}</td>
                     <td width="150">
-                        <div ng-if = "getTenderStatus(tender) == 'daitoubiao'">
-                            <img src="resources/img/tender/daitoubiao.png">
+                        <div ng-if="tender.status == '已结标' && tender.result == 1 && tender.applyVendor">
+                            <img src="resources/img/tender/zhongbiao.png">
                         </div>
-                        <div ng-if = "getTenderStatus(tender) == 'yitoubiao'">
-                            <img src="resources/img/tender/yitoubiao.png">
+                        <div ng-if="tender.status == '已结标' && tender.result == 1 && !tender.applyVendor">
+                            <img src="resources/img/tender/weizhongbiao.png">
                         </div>
-                        <div ng-if = "getTenderStatus(tender) == 'zhongbiao'">
-                            <img src="resources/img/tender/zhongbiao.png">
+                        <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result == 1 && !tender.vendorHasBid">
+                            <img src="resources/img/tender/liubiao.png">
                         </div>
-                        <div ng-if = "getTenderStatus(tender) == 'weizhongbiao'">
+                        <div ng-if="tender.status == '待评标' && tender.overdue == 1 && 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">
+                            <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.status == '待评标' && tender.overdue != 1">-->
+                        <!--<img src="resources/img/tender/toubiaozhong.png">-->
+                        <!--</div>-->
+                        <!-- overdue与投标截止日期比较  result与公布结果日期比较 -->
+                        <div ng-if="tender.overdue != 1 && tender.vendorHasBid">
+                            <img src="resources/img/tender/yitoubiao.png">
+                        </div>
+                        <div ng-if="tender.status == '待投标' && 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>

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

@@ -207,6 +207,12 @@
     /* 点击变输入框 */
     .editAble{ width: 100%; height: 34px; border: none; font-size: 14px; text-align:center;line-height:34px;}
 
+    /* 覆盖index属性,会导致布局变形 */
+    input.ng-invalid.ng-dirty,textarea.ng-invalid.ng-dirty {
+        box-shadow: 0 0 2px #f00;
+        border: 0;
+    }
+
 </style>
 
 <div class="ng-scope">
@@ -299,7 +305,7 @@
                                     <span>单价</span>
                                     <span>含税金额</span>
                                 </dt>
-                                <dd ng-repeat="prod in bid.purchaseTenderProds">
+                                <dd ng-repeat="prod in bid.purchaseTenderProds | orderBy: 'index'">
                                     <span>{{$index + 1}}</span>
                                     <span class="wid01">
                                         <p>产品编号:{{prod.prodCode}}</p>
@@ -308,9 +314,9 @@
                                     </span>
                                     <span ng-bind="prod.unit"></span>
                                     <span ng-bind="prod.qty"></span>
-                                    <span><input type="text" class="editAble" ng-model="prod.currentItem.cycle" ng-pattern="/^\+?[1-9][0-9]*$/" placeholder="点击填写周期"/></span>
-                                    <span><input type="text" class="editAble" ng-model="prod.currentItem.taxrate" ng-pattern="/^\+?[1-9][0-9]*$/" 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})?$/" placeholder="点击填写单价"/></span>
+                                    <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')" placeholder="点击填写单价"/></span>
                                     <span ng-bind="prod.currentItem.price * prod.qty || ''"></span>
                                 </dd>
                             </dl>
@@ -369,7 +375,7 @@
                     </div>
                     <div class = "col-xs-4">
                         <div class="bid-desc">员工人数:</div>
-                        <input class="bid-input" ng-model="currentEnBaseInfo.emNum" type="text" ng-pattern="/^\+?[1-9][0-9]*$/" />
+                        <input class="bid-input" ng-model="currentEnBaseInfo.emNum" type="text" ng-change="validateThis(currentEnBaseInfo.emNum, 'emNum')" ng-pattern="/^\+?[1-9][0-9]*$/" />
                     </div>
                     <div class = "col-xs-4">
                         <div class="bid-desc">企业电话:</div>
@@ -402,7 +408,7 @@
                 </div>
                 <div class="col-xs-12" style="padding: 30px;">
                     <div class="col-xs-2 pull-right btn-bid">
-                        <button class="btn" ng-disabled="bid.overdue == 1 || !itemStatusTodo" ng-click="bidIt(bid, currentEnBaseInfo)">投标</button>
+                        <button class="btn" ng-disabled="bid.overdue == 1 && !canSave" ng-click="bidIt(bid, currentEnBaseInfo)">投标</button>
                     </div>
                 </div>
             </div>

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

@@ -360,28 +360,40 @@
                     <!--<div ng-if = "getTenderStatus(tender) == 'weizhongbiao'">-->
                     <!--<img src="resources/img/tender/weizhongbiao.png">-->
                     <!--</div>-->
-                    <div ng-if="tender.status == '已结标'">
-                        <img src="resources/img/tender/yijiebiao.png">
+                    <div ng-if="tender.status == '已结标' && tender.result == 1 && tender.applyVendor == true">
+                        <img src="resources/img/tender/zhongbiao.png">
                     </div>
-                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result == 1">
+                    <div ng-if="tender.status == '已结标' && tender.result == 1 && tender.applyVendor == false">
+                        <img src="resources/img/tender/weizhongbiao.png">
+                    </div>
+                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result == 1 && tender.vendorHasBid == false">
                         <img src="resources/img/tender/liubiao.png">
                     </div>
-                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1">
+                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result == 1 && tender.vendorHasBid == true">
+                        <img src="resources/img/tender/weizhongbiao.png">
+                    </div>
+                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1 && tender.vendorHasBid == true">
+                        <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">
-                        <img src="resources/img/tender/toubiaozhong.png">
+                    <div ng-if="tender.status == '待评标' && tender.overdue == 1 && tender.result != 1 && tender.vendorHasBid == false">
+                        <img src="resources/img/tender/liubiao.png">
                     </div>
+                    <!--<div ng-if="tender.status == '待评标' && tender.overdue != 1">-->
+                        <!--<img src="resources/img/tender/toubiaozhong.png">-->
+                    <!--</div>-->
                     <!-- overdue与投标截止日期比较  result与公布结果日期比较 -->
-                    <div ng-if="tender.status == '待投标' && tender.overdue != 1">
+                    <div ng-if="tender.overdue != 1 && tender.vendorHasBid == true">
+                        <img src="resources/img/tender/yitoubiao.png">
+                    </div>
+                    <div ng-if="tender.status == '待投标' && tender.overdue != 1 && tender.vendorHasBid == false">
                         <img src="resources/img/tender/daitoubiao.png">
                     </div>
                     <div ng-if="tender.status == '待投标' && tender.overdue == 1">
                         <img src="resources/img/tender/liubiao.png">
                     </div>
-                    <div ng-if="tender.status == '待发布'">
-                        <img src="resources/img/tender/zailuru.png">
-                    </div>
                 </td>
             </tr>
             <tr>

+ 4 - 4
src/main/webapp/resources/tpl/index/sale/vendor_tender.html

@@ -123,7 +123,7 @@
     .bid-content>div {
         background-color: #fff;
     }
-    .bid-content>div>div>button {
+    .bid-content>div>div>button,a {
         width: 94px;
         height: 36px;
         font-size: 14px;
@@ -131,7 +131,7 @@
         color: #fff;
         border-radius: 0;
     }
-    .bid-content>div>div.btn-bid>button {
+    .bid-content>div>div.btn-bid>button,a {
         background-color: #327EBE;
     }
 
@@ -298,7 +298,7 @@
                                     <span>单价</span>
                                     <span>含税金额</span>
                                 </dt>
-                                <dd ng-repeat="prod in bid.purchaseTenderProds">
+                                <dd ng-repeat="prod in bid.purchaseTenderProds | orderBy : 'index'">
                                     <span>{{$index + 1}}</span>
                                     <span class="wid01">
                                         <p>产品编号:{{prod.prodCode}}</p>
@@ -383,7 +383,7 @@
                 </div>
                 <div class="col-xs-12" style="padding: 30px;">
                     <div class="col-xs-2 pull-right btn-bid">
-                        <button class="btn" ng-click="">返回</button>
+                        <a class="btn" ui-sref="purc.evaluation({id:bid.id})">返回</a>
                     </div>
                 </div>
             </div>