소스 검색

买家发布求购品牌型号联想词

yangc 8 년 전
부모
커밋
59ba62c4d9

+ 2 - 2
src/main/webapp/resources/js/usercenter/app.js

@@ -1,7 +1,7 @@
 
-define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'common/services', 'common/directives','common/query/kind', 'common/query/brand', 'common/query/component', 'common/query/order', 'common/query/cart', 'common/query/goods', 'common/query/return' ,'angular-toaster', 'common/query/urlencryption', 'ui-jquery', 'common/query/bankTransfer', 'common/query/bankInfo', 'common/query/change', 'common/query/rate', 'common/query/logistics', 'common/query/address' ,'angular-toaster','common/query/collection', 'common/query/proofing', 'common/query/bill', 'common/query/user','file-upload', 'file-upload-shim', 'common/query/bankInfo' , 'common/query/responseLogistics', 'common/query/payment', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/importDeclaration', 'common/query/enterprise', 'common/query/invoice', 'common/query/refund', 'common/query/recommendation', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/tradeMessageNotice', 'common/query/tradeBasicProperties', 'common/query/browsingHistory', 'common/query/internalMessage', 'common/module/chat_web_module', 'angular-filter', 'common/query/vendor','common/query/seekPurchase'], function(angularAMD) {
+define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'common/services', 'common/directives','common/query/kind', 'common/query/brand', 'common/query/component', 'common/query/order', 'common/query/cart', 'common/query/goods', 'common/query/return' ,'angular-toaster', 'common/query/urlencryption', 'ui-jquery', 'common/query/bankTransfer', 'common/query/bankInfo', 'common/query/change', 'common/query/rate', 'common/query/logistics', 'common/query/address' ,'angular-toaster','common/query/collection', 'common/query/proofing', 'common/query/bill', 'common/query/user','file-upload', 'file-upload-shim', 'common/query/bankInfo' , 'common/query/responseLogistics', 'common/query/payment', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/importDeclaration', 'common/query/enterprise', 'common/query/invoice', 'common/query/refund', 'common/query/recommendation', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/tradeMessageNotice', 'common/query/tradeBasicProperties', 'common/query/browsingHistory', 'common/query/internalMessage', 'common/module/chat_web_module', 'angular-filter', 'common/query/vendor','common/query/seekPurchase', 'common/query/search'], function(angularAMD) {
 	'use strict';
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ngTable', 'common.services', 'common.directives', 'tool.directives', 'common.query.kind', 'brandServices', 'componentServices', 'orderServices', 'cartServices', 'goodsServices', 'returnServices' , 'toaster', 'urlencryptionServices', 'ui.jquery', 'bankTransfer', 'bankInfo', 'changeServices','rateServices', 'logisticsServices', 'addressServices', 'toaster','collection','proofingServices', 'billServices', 'common.query.user', 'angularFileUpload', 'bankInfo', 'responseLogisticsService', 'PaymentService', 'afterSaleService', 'messageBoardServices', 'table.directives', 'importDeclaration', 'common.query.enterprise', 'invoiceServices', 'refundModule', 'recommendation','logisticsPortService', 'storeInfoServices', 'tradeMessageNoticeModule', 'tradeBasicPropertiesServices', 'BrowsingHistory', 'internalMessageServices', 'WebChatModule', 'angular.filter', 'vendorServices','seekPurchaseServices']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ngTable', 'common.services', 'common.directives', 'tool.directives', 'common.query.kind', 'brandServices', 'componentServices', 'orderServices', 'cartServices', 'goodsServices', 'returnServices' , 'toaster', 'urlencryptionServices', 'ui.jquery', 'bankTransfer', 'bankInfo', 'changeServices','rateServices', 'logisticsServices', 'addressServices', 'toaster','collection','proofingServices', 'billServices', 'common.query.user', 'angularFileUpload', 'bankInfo', 'responseLogisticsService', 'PaymentService', 'afterSaleService', 'messageBoardServices', 'table.directives', 'importDeclaration', 'common.query.enterprise', 'invoiceServices', 'refundModule', 'recommendation','logisticsPortService', 'storeInfoServices', 'tradeMessageNoticeModule', 'tradeBasicPropertiesServices', 'BrowsingHistory', 'internalMessageServices', 'WebChatModule', 'angular.filter', 'vendorServices','seekPurchaseServices', 'searchService']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};

+ 61 - 2
src/main/webapp/resources/js/usercenter/controllers/forstore/seek_purchase_ctrl.js

@@ -6,9 +6,9 @@ define(['app/app'], function (app) {
   'use strict';
   app.register.controller('seekPurchaseCtrl',
       ['$scope', '$rootScope', 'seekPurchase', 'toaster', 'BaseService',
-        'ngTableParams', 'Order', 'SessionService', '$filter', '$upload', '$stateParams',
+        'ngTableParams', 'Order', 'SessionService', '$filter', '$upload', '$stateParams', 'Search',
         function ($scope, $rootScope, seekPurchase, toaster, BaseService,
-            ngTableParams, Order, SessionService, $filter, $upload, $stateParams) {
+            ngTableParams, Order, SessionService, $filter, $upload, $stateParams, Search) {
           $rootScope.active = 'seek_purchase';
           document.title = '我的求购-优软商城';
           $scope.activeType = $stateParams.type ? $stateParams.type :'seekManage';
@@ -63,6 +63,7 @@ define(['app/app'], function (app) {
           $scope.deadDate.setMonth($scope.deadDate.getMonth() + 3);
 
           $scope.checkCode = function () {
+            $scope.setShowSimilarCodeList($scope.isInCodeList);
             $scope.validObj.code = $scope.applyObj.code && $scope.applyObj.code !== '';
             if (!$scope.validObj.code) {
               toaster.pop('error', '型号不能为空');
@@ -70,6 +71,7 @@ define(['app/app'], function (app) {
             return this.validObj.code;
           }
           $scope.checkBrand = function () {
+            $scope.setShowSimilarBrandList($scope.isInBrandList);
             $scope.validObj.brand = $scope.applyObj.brand
                 && $scope.applyObj.brand !== '';
             if (!$scope.validObj.brand) {
@@ -133,6 +135,12 @@ define(['app/app'], function (app) {
               $scope.applyObj.code = cutOutString($scope.applyObj.code, chineseIndex);
             } else if ($scope.applyObj.code && getRealLen($scope.applyObj.code) > 100) {
               $scope.applyObj.code = cutOutString($scope.applyObj.code, 100);
+            } else {
+              if ($scope.applyObj.code) {
+                $scope.getSimilarCode();
+              } else {
+                $scope.showSimilarCodeList = false;
+              }
             }
           }
           $scope.onBrandChange = function () {
@@ -150,6 +158,12 @@ define(['app/app'], function (app) {
               }
             } else if ($scope.applyObj.brand && getRealLen($scope.applyObj.brand) > 50) {
               $scope.applyObj.brand = cutOutString($scope.applyObj.brand, 50);
+            } else {
+              if ($scope.applyObj.brand) {
+                $scope.getSimilarBrand();
+              } else {
+                $scope.showSimilarBrandList = false;
+              }
             }
           }
           $scope.onProduceDateChange = function () {
@@ -710,5 +724,50 @@ define(['app/app'], function (app) {
             $scope.bomTableParams.reload();
           }
 
+          $scope.showSimilarCodeList = false;
+          $scope.isInCodeList = false;
+          $scope.showSimilarBrandList = false;
+          $scope.isInBrandList = false;
+
+          $scope.getSimilarCode = function () {
+            if ($scope.applyObj.code) {
+              Search.getSimilarComponents({keyword : $scope.applyObj.code}, function (data) {
+                $scope.similarCode = data || [];
+                $scope.setShowSimilarCodeList(data && data.length);
+              }, function (error) {
+                toaster.pop('error', '系统错误');
+              })
+            }
+          }
+
+          $scope.getSimilarBrand = function () {
+            if ($scope.applyObj.brand) {
+              Search.getSimilarBrands({keyword : $scope.applyObj.brand}, function (data) {
+                $scope.similarBrand = data || [];
+                $scope.setShowSimilarBrandList(data && data.length);
+              }, function (error) {
+                toaster.pop('error', '系统错误');
+              })
+            }
+          }
+          
+          $scope.setCode = function (code) {
+            $scope.applyObj.code = code;
+            $scope.setShowSimilarCodeList(false);
+          }
+
+          $scope.setShowSimilarCodeList = function (flag) {
+            $scope.showSimilarCodeList = flag;
+          }
+
+          $scope.setBrand = function (brand) {
+            $scope.applyObj.brand = brand;
+            $scope.setShowSimilarBrandList(false);
+          }
+
+          $scope.setShowSimilarBrandList = function (flag) {
+            $scope.showSimilarBrandList = flag;
+          }
+          
         }]);
 });

+ 33 - 0
src/main/webapp/resources/view/usercenter/forstore/seekPurchase.html

@@ -25,6 +25,7 @@
         width: 198px;
         display: inline-block;
         margin-top: 16px;
+        position: relative;
     }
     .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block >span {
         width: 86px;
@@ -66,6 +67,32 @@
     .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block.single-price input{
         padding-left: 37px;
     }
+    .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block ul {
+        position: absolute;
+        top: 23px;
+        left: 86px;
+        background: #fff;
+        border: 1px solid #b5b5b5;
+        z-index: 1;
+        max-height: 112px;
+        overflow-y: auto;
+        overflow-x: hidden;
+        border-radius: 3px;
+        width: 111px;
+        font-size: 12px;
+    }
+    .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block ul li {
+        height: 22px;
+        line-height: 22px;
+        cursor: pointer;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        padding: 0 5px;
+    }
+    .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block ul li:hover {
+        background: #ddd;
+    }
     .seek-purchase .seek-purchase-content .publish-purchase .fl >a {
         display: block;
         width: 142px;
@@ -573,10 +600,16 @@
                 <div class="form-block">
                     <span><i>*</i>型号</span>
                     <input type="text" class="form-group" ng-model="applyObj.code" ng-class="{'error': !validObj.code}" ng-blur="checkCode()" ng-change="onCodeChange()" >
+                    <ul ng-show="showSimilarCodeList" ng-mouseenter="isInCodeList = true;" ng-mouseleave="isInCodeList = false;">
+                        <li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(sCode.code)"></li>
+                    </ul>
                 </div>
                 <div class="form-block">
                     <span><i>*</i>品牌</span>
                     <input type="text" class="form-group" ng-class="{'error': !validObj.brand}" maxlength="20" ng-model="applyObj.brand" ng-blur="checkBrand()" ng-change="onBrandChange()">
+                    <ul ng-show="showSimilarBrandList" ng-mouseenter="isInBrandList = true;" ng-mouseleave="isInBrandList = false;">
+                        <li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(sBrand.nameEn)"></li>
+                    </ul>
                 </div>
                 <div class="form-block">
                     <span><i>*</i>截止日期</span>