فهرست منبع

帐户中心发货地址空状态编辑功能

wangcz 7 سال پیش
والد
کامیت
a0c9210f3f

+ 98 - 165
src/main/webapp/resources/js/sso/controllers/ssoAddressCtrl.js

@@ -1,19 +1,20 @@
 /**
- *  账户管理控制器
+ *  账户管理控制器canAddTotal
  */
 define(['app/app'], function (app) {
     "use strict";
     app.register.controller('ssoAddressCtrl',
         ['$scope', '$rootScope', 'ngTableParams', 'BaseService',
             'ShippingAddress', '$modal', 'Enterprise', 'User', 'toaster', '$http',
-            '$stateParams', 'AuthenticationService',
             function ($scope, $rootScope, ngTableParams, BaseService,
-                      ShippingAddress, $modal, Enterprise, User, toaster, $http,
-                      $stateParams, AuthenticationService) {
+                      ShippingAddress, $modal, Enterprise, User, toaster, $http) {
                 document.title = '收货地址-帐户中心';
                 $rootScope.active = 'sso_address';
                 $rootScope.userInfoBackup = angular.copy($rootScope.userInfo);
                 $scope.canAddTotal = 20;
+                $scope.isSendType = false;
+                $scope.newAddr = {};
+                $scope.isSetTop = false;
 
                 /**
                  * 设置默认收货地址
@@ -46,131 +47,6 @@ define(['app/app'], function (app) {
                         toaster.pop('error', '删除收货地址失败');
                     });
                 };
-                $scope.telFlag = true;
-                $scope.emailFlag = true;
-                /**
-                 * 验证手机号是否可用
-                 */
-                $scope.telValid = function (tel) {
-                    if (tel) {
-                        if (tel == $rootScope.userInfoBackup.userTel){
-                            $scope.telFlag = true;
-                            return;
-                        }
-                        $http.get('basic/user/telEnable', {
-                            params: {
-                                tel: tel
-                            }
-                        }).success(function (data) {
-                            data = eval(data);
-                            if (data == true) {
-                                $scope.telFlag = true;
-                            } else {
-                                if (tel.length == 11)
-                                    toaster.pop('error', '错误', '手机号 ' + tel + ' 已被注册');
-                                $scope.telFlag = false;
-                            }
-                        }).error(function () {
-                            $scope.telFlag = false;
-                        });
-                    } else {
-                        $scope.telFlag = false;
-                    }
-                };
-
-                /**
-                 * 验证邮箱是否可用
-                 */
-                $scope.emailValid = function (email) {
-                    if (email) {
-                        if (email == $rootScope.userInfoBackup.userEmail){
-                            $scope.emailFlag = true;
-                            return;
-                        }
-                        $http.get('basic/user/emailEnable', {
-                            params: {
-                                email: email
-                            }
-                        }).success(function (data) {
-                            data = eval(data);
-                            if (data == true) {
-                                $scope.emailFlag = true;
-                            } else {
-                                toaster.pop('error', '错误', '邮箱 ' + email + ' 已被注册');
-                                $scope.emailFlag = false;
-                            }
-                        }).error(function () {
-                            $scope.emailFlag = false;
-                        });
-                    } else {
-                        $scope.emailFlag = false;
-                    }
-                };
-                /**
-                 * 变更到更新状态
-                 */
-                $scope.changeToUpdate = function(isUpdate) {
-                    $scope.updateState = isUpdate;
-                    if ($scope.updateState == false){
-                        $rootScope.userInfo = angular.copy($rootScope.userInfoBackup);
-                    }
-                };
-                /**
-                 * 验证用户信息
-                 */
-                function validateUserInfo() {
-                    var props = ['userName', 'userEmail', 'userTel'];
-
-                    var flag = true;
-                    angular.forEach(props, function (prop) {
-                        if ($rootScope.userInfo.hasOwnProperty(prop)) {
-                            if (!$rootScope.userInfo[prop] || $rootScope.userInfo[prop] === '') {
-                                console.log(prop + '不能为空');
-                                // TODO 记录验证信息
-                                flag = false;
-                            }
-                        } else {
-                            console.log(prop + '不能为空');
-                            flag = false;
-                        }
-                    });
-                    return flag;
-                }
-                /**
-                 * 保存用户信息
-                 */
-                $scope.saveUpdate = function () {
-                    // 先检查信息是否为空
-                    if (angular.equals($rootScope.userInfo,$rootScope.userInfoBackup)){
-                        toaster.pop('error', '未做任何修改');
-                        $scope.updateState = false;
-                        return ;
-                    }
-                    var userInfoFlag = validateUserInfo();
-                    if (!userInfoFlag) {
-                        toaster.pop('error', '请补充完信息后再次提交');
-                        return ;
-                    }
-
-                    if ($scope.telFlag && $scope.emailFlag) {
-                        Enterprise.updateUser({uu: $rootScope.userInfo.userUU}, $rootScope.userInfo, function () {
-                            $scope.loading = false;
-                            toaster.pop('success', '提示', '用户信息修改成功');
-                            $rootScope.userInfoBackup = angular.copy($rootScope.userInfo);
-                            $scope.updateState = false;
-
-                        }, function (response) {
-                            $scope.updateState = false;
-                            $rootScope.userInfo = angular.copy($rootScope.userInfoBackup);
-                            toaster.pop('error', '修改失败', response.data);
-                        });
-                    }
-                    else{
-                        toaster.pop('error', '提示', '修改失败!');
-                        $rootScope.userInfo = angular.copy($rootScope.userInfoBackup);
-                        $scope.updateState = false;
-                    }
-                };
 
                 // 分页数据
                 $scope.addressList = [];
@@ -222,6 +98,99 @@ define(['app/app'], function (app) {
                     toaster.pop('error', '系统错误 ' + '加载城市信息失败');
                 });
 
+                $scope.checkForm = function (num) {
+                    var size;
+                    if (num == 1) {
+                        if ($scope.newAddr.name) {
+                            size = $scope.newAddr.name.replace(/[^\x00-\xff]/g,
+                                '**').length;
+                            if (size > 20) {
+                                console.log(size);
+                                $scope.userError = true;
+                                return;
+                            }
+                            $scope.userError = false;
+                        }
+                    } else if (num == 2) {
+                        if ($scope.newAddr.tel) {
+                            size = $scope.newAddr.tel.replace(/[^\x00-\xff]/g,
+                                '**').length;
+                            if (size < 8 || size > 11) {
+                                $scope.telError = true;
+                                return;
+                            }
+                            $scope.telError = false;
+                            var telPatt = new RegExp("^[0-9]+$");
+                            if (telPatt.test($scope.newAddr.tel)) {
+                                $scope.telPatternError = false;
+                            } else {
+                                $scope.telPatternError = true;
+                            }
+                        }
+                    } else if (num == 3) {
+                        if ($scope.newAddr.detailAddress) {
+                            size = $scope.newAddr.detailAddress.replace(
+                                /[^\x00-\xff]/g, '**').length;
+                            if (size > 60) {
+                                $scope.addrError = true;
+                                return;
+                            }
+                            $scope.addrError = false;
+                        }
+                    } else if (num == 4) {
+                        var emailPatt = new RegExp(
+                            "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$");
+                        if ($scope.newAddr.email.length > 0 && !emailPatt.test(
+                            $scope.newAddr.email)) {
+                            $scope.emailPatternError = true;
+                        } else {
+                            $scope.emailPatternError = false;
+                        }
+                    }
+                };
+
+                $scope.reset = function(type) {
+                    type.$setPristine();
+                    type.$setUntouched();
+                    angular.forEach($scope.newAddr, function(value, key) {
+                        $scope.newAddr[key] = '';
+                    })
+                };
+
+                $scope.save = function () {
+                    var address = $scope.newAddr;
+
+                    if (!address){
+                        toaster.pop('error', '请补充未填写的信息');
+                        return ;
+                    }
+                    if (!address.name || !address.province || !address.city || !address.district ||
+                        !address.detailAddress || !address.tel){
+                        toaster.pop('error', '请补充未填写的信息');
+                        return ;
+                    }
+                    if ($scope.userError || $scope.telError || $scope.addrError || $scope.telPatternError ||
+                        $scope.emailPatternError){
+                        toaster.pop('error', '请修改红色框内的信息');
+                        return ;
+                    }
+
+                    //拼装地区
+                    address.area = address.province + ',' + address.city + ',' + address.district;
+
+                    // send属性 控制本地址是否是发货地址
+                    ShippingAddress.save({
+                        isSetTop: $scope.isSetTop,
+                        send: $scope.isSendType,
+                        isPersonal: !$scope.isSendType
+                    }, address, function () {
+                        toaster.pop('success', '成功 ', '保存收货地址成功');
+                        $scope.loadAddresses();
+                    }, function (res) {
+                        toaster.pop('error', '保存收货地址失败 ', res.data);
+                    });
+                };
+
                 $scope.modifyAddress = function (address) {
                     $modal.open({
                         templateUrl : $rootScope.rootPath + '/static/view/common/modal/edit_address_modal.html',
@@ -365,41 +334,5 @@ define(['app/app'], function (app) {
                         $modalInstance.dismiss();
                     };
                 }]);
-                //修改密码:
-                $scope.updatePassword = function(){
-                    AuthenticationService.redirectPassword()
-                };
-                //修改邮箱或设置邮箱;
-                $scope.updateUserEmail = function () {
-                    AuthenticationService.redirectEmail()
-                };
-                //修改电话号码;
-                $scope.updateUserTel = function () {
-                    AuthenticationService.redirectPhone()
-                };
-
-
-                //修改密保问题;
-                $scope.updateUserQuestion = function () {
-                    AuthenticationService.redirectSecQuestion()
-                };
-
-                $scope.updateUserPay = function () {
-                    var modalInstance = $modal.open({
-                        animation: true,
-                        templateUrl: $rootScope.rootPath
-                        + '/static/view/vendor/modal/updateUserPay.html',
-                        controller: 'UserPayCtrl',
-                        resolve: {
-                            user: function () {
-                                return angular.copy($rootScope.userInfo);
-                            }
-                        }
-                    });
-
-                    modalInstance.result.then(function () {
-                    }, function () {
-                    });
-                };
             }]);
 });

+ 4 - 4
src/main/webapp/resources/view/common/modal/edit_address_modal.html

@@ -47,7 +47,7 @@
 		border: none !important;
 	}
 	.form-horizontal .control-label{
-		width: 105px;
+		width: 120px;
 		padding-right: 5px;
 	}
 	.checkbox .col-md-3{
@@ -79,8 +79,8 @@
 			<form name="myForm" class="form-horizontal" role="form" ng-submit="save(address)">
 				<div class="form-group">
 					<label for="userName" class="col-md-3 control-label"><strong class="text-inverse">* </strong>
-						<span ng-show="!isSendType">收货人姓名</span>
-						<span ng-show="isSendType">发货人姓名</span>
+						<span ng-show="!isSendType">收货人姓名</span>
+						<span ng-show="isSendType">发货人姓名: </span>
 					</label>
 					<div class="col-md-6 ">
 	 			      	<input required ng-model="address.name" type="text" class="form-control" id="userName" name="userName"
@@ -158,7 +158,7 @@
 						</div>
 				</div>
 				<div class="form-group" style="margin-bottom: 0;">
-					<div class="col-md-4" style="margin-left: 104px;">
+					<div class="col-md-4" style="margin-left: 120px;">
 						<div class="checkbox">
 							<label class="check-active">
 								<input ng-model="isSetTop" type="checkbox" id="check-act">

+ 157 - 8
src/main/webapp/resources/view/sso/ssoAddress.html

@@ -242,8 +242,8 @@
     <div class="rt_menu"><span>收货地址</span></div>
     <div class="logistic-content">
         <div class="menu-title row">现有收货地址<span>&nbsp;已保存<em>{{total}}</em>条,还能新增<em>{{canAddTotal-total}}</em>条地址</span></div>
-        <div class="add-log row" ng-if="total < canAddTotal"><button ng-click="modifyAddress()"><i class="fa fa-plus-square"></i>新增收货地址</button></div>
-        <div class="log-tab">
+        <div class="add-log row" ng-if="total < canAddTotal || (addressList.length <= 0 || !addressList)"><button ng-click="modifyAddress()"><i class="fa fa-plus-square"></i>新增收货地址</button></div>
+        <div class="log-tab" ng-if="addressList && addressList.length > 0">
             <table class="table" style="table-layout: auto">
                 <thead>
                 <tr>
@@ -270,17 +270,166 @@
                 </tr>
                 </tbody>
             </table>
-            <div class="empty" ng-if="addressList.length <= 0 || !addressList">
-                <p class="empty-img">
-                    <img src="static/img/all/empty-cart.png">
-                </p>
-                <div class="empty-info">
-                    <p class="grey">暂无收货地址,赶快去新增吧</p>
+        </div>
+        <div class="new-address" ng-if="addressList.length <= 0 || !addressList">
+            <div class="edit-rec-addr">
+                <div class="row">
+                    <div class="col-sm-12">
+                        <form name="myForm" class="form-horizontal" role="form" ng-submit="save(newAddr)">
+                            <div class="form-group">
+                                <label for="userName" class="col-sm-3 control-label"><strong class="text-inverse">* </strong>
+                                    <span>收货人姓名:</span>
+                                </label>
+                                <div class="col-sm-5">
+                                    <input required ng-model="newAddr.name" type="text" class="form-control" id="userName" name="userName"
+                                           placeholder="请输入你的姓名" autocomplete="off" ng-change="checkForm(1)">
+                                </div>
+                                <div class="col-sm-4">
+                                    <span class="text-inverse error" ng-show="newAddr.name && userError">请勿超过10个字</span>
+                                    <span class="text-inverse heigth30" ng-show="myForm.userName.$touched && myForm.userName.$invalid">请输入收件人姓名</span>
+                                    <span ng-show="!myForm.userName.$invalid && !userError" class="text-success heigth30">填写正确</span>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="tel" class="col-sm-3 control-label"><strong class="text-inverse">* </strong>联系电话:</label>
+                                <div class="col-sm-5">
+                                    <input required ng-model="newAddr.tel" type="text" autocomplete="off" class="form-control" ng-change="checkForm(2)" id="tel" name="tel"
+                                           placeholder="请输入您的联系电话">
+                                </div>
+                                <div class="col-sm-4" >
+                                    <span class="text-inverse error" ng-show="newAddr.tel && (telError || telPatternError)">请输入正确的号码</span>
+                                    <span class="text-inverse heigth30" ng-show="myForm.tel.$touched && myForm.tel.$invalid">请输入联系电话</span>
+                                    <span ng-show="!myForm.tel.$invalid && !telError && !telPatternError" class="text-success heigth30">填写正确</span>
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label for="email" class="col-sm-3 control-label">邮箱:</label>
+                                <div class="col-sm-5">
+                                    <input name="email" ng-model="newAddr.email" type="text" class="form-control" id="email"
+                                           placeholder="请填写正确的邮箱,可用于接收订单提醒" maxlength="50" ng-change="checkForm(4)">
+                                </div>
+                                <div class="col-sm-4">
+                                    <span ng-show="newAddr.email && emailPatternError" class="text-inverse heigth30">请输入正确的邮箱</span>
+                                </div>
+                            </div>
+                            <div class="form-group ">
+                                <label class="col-sm-3 control-label"><strong
+                                        class="text-inverse">* </strong>所在地区:</label>
+                                <div class="mar-rt0 row checkbox">
+                                    <div class="col-sm-3">
+                                        <select required="" class="select-adder form-control"
+                                                ng-model="newAddr.province"
+                                                ng-options="key as key for (key,value) in division"
+                                                ng-change="newAddr.city='';newAddr.district='';"
+                                                style="opacity: 1;">
+                                            <option value="">省级行政区</option>
+                                        </select>
+                                    </div>
+                                    <div class="col-sm-3 ">
+                                        <select class="select-adder form-control" ng-model="newAddr.city"
+                                                ng-options="key as key for (key,value) in division[newAddr.province]"
+                                                ng-change="newAddr.district='';"
+                                                style="opacity: 1;">
+                                            <option value="">市</option>
+                                        </select>
+                                    </div>
+                                    <div class="col-sm-3">
+                                        <select class="select-adder form-control" ng-model="newAddr.district" style="opacity: 1;"
+                                                ng-options="value as value for value in division[newAddr.province][newAddr.city]" required>
+                                            <option value="">区</option>
+                                        </select>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="form-group" style="margin-bottom: 0;">
+                                <label class="col-sm-3 control-label"><strong class="text-inverse">* </strong>详细地址:</label>
+                                <div class="col-sm-8" style="width: 530px; padding-right: 0;">
+                                    <input required ng-model="newAddr.detailAddress" type="text" class="form-control" name="addr" id="addr"
+                                           placeholder="建议你填写详细地址,例如街道名、门牌号,楼层和房间号等信息" autocomplete="off" ng-change="checkForm(3)">
+                                </div>
+                                <div class="col-sm-2" style="padding: 0; width: 100px; padding-left: 10px;line-height: 34px;">
+                                    <span class="text-inverse error" ng-show="newAddr.detailAddress && addrError">请勿超过30个字</span>
+                                    <span ng-show="!myForm.addr.$invalid && !addrError" class="text-success heigth30">填写正确</span>
+                                    <span class="text-inverse error" ng-show="myForm.addr.$touched && myForm.addr.$invalid">请输入详细地址</span>
+                                </div>
+                            </div>
+                            <div class="form-group" style="margin-bottom:20px;margin-top:10px;">
+                                <div class="col-sm-4" style="margin-left: 120px;">
+                                    <div class="checkbox">
+                                        <label class="check-active">
+                                            <input ng-model="isSetTop" type="checkbox" id="check-act">
+                                            <label for="check-act"></label>
+                                            <span>设置为默认收货地址</span>
+                                        </label>
+                                    </div>
+                                </div>
+                            </div>
+                        </form>
+                    </div>
                 </div>
             </div>
+            <div class="edit-btn">
+                <button class="btn btn-default" ng-click="reset(myForm)" type="button">取消</button>
+                <button class="btn btn-success" ng-click="save()" type="button">保存</button>
+            </div>
         </div>
     </div>
 </div>
+<style type="text/css">
+    .new-address label{
+        margin-right: -15px;
+        font-size: 14px;
+        font-weight: inherit;
+        line-height: 34px;
+    }
+    .heigth30 {
+        height: 30px;
+        line-height: 30px;
+    }
+    .edit-rec-addr .form-control {
+        color: black;
+    }
+    .edit-rec-addr strong {
+        color: red;
+    }
+    .edit-rec-addr .format-correct {
+        color: #008000;
+        height: 30px;
+        line-height: 30px;
+    }
+    .edit-rec-addr .format-error {
+        color: red;
+        height: 30px;
+        line-height: 30px;
+    }
+    .select-adder{
+        background:url("static/img/user/images/xiala.png") right no-repeat ;
+        background-position-x: 180px;
+    }
+    .form-control{
+        border-radius: 3px;
+    }
+    .new-address .edit-btn{
+        text-align: center;
+    }
+    .new-address.edit-btn button{
+        width: 70px;
+        height: 32px;
+        border-radius: 0;
+    }
+    .new-address.edit-btn button.btn-default{
+        background: #c8c6c6 !important;
+        color: #fff !important;
+        border: none !important;
+    }
+    .form-horizontal .control-label{
+        width: 120px;
+        padding-right: 5px;
+    }
+    .checkbox .col-sm-3{
+        width: 177px;
+    }
+</style>
 <style>
     .com-del-box{
         position: fixed;

+ 8 - 8
src/main/webapp/resources/view/sso/staffManagement.html

@@ -937,7 +937,7 @@
                 </div>
                 <div class="searchUser-group">
                     <span ng-click="onSearch(keyword, filterRole)">搜索</span>
-                    <input type="text" ng-keyup="onKeyUpSearch(keyword, filterRole, $event)" ng-model="keyword" placeholder="输入人员姓名、电话号码、邮箱或UU号进行搜索"/>
+                    <input type="text" ng-keyup="onKeyUpSearch(keyword, filterRole, $event)" ng-model="keyword" placeholder="输入人员姓名、电话号码、邮箱进行搜索"/>
                     <div>
                         <select ng-model="filterRole" ng-change="onSearch(keyword,filterRole)">
                             <option value="all" selected="selected">全部角色</option>
@@ -958,12 +958,12 @@
                                  <label for="checkAll"></label>
                              </lable>
                              全选</th>-->
-                        <th width="143">UU账号</th>
+                        <!--<th width="143">UU账号</th>-->
                         <th width="101">姓名</th>
                         <th width="67">性别</th>
                         <th width="133">手机号</th>
                         <th width="207">邮箱</th>
-                        <th width="233">角色</th>
+                        <th width="376">角色</th>
                         <th width="107">操作</th>
                     </tr>
                     </thead>
@@ -975,7 +975,7 @@
                                 <label for="check0"></label>
                             </lable>
                         </td>-->
-                        <td>系统生成</td>
+                        <!--<td>系统生成</td>-->
                         <td>
                             <input type="text" ng-model="newUser.userName" required placeholder="用户名">
                         </td>
@@ -1011,7 +1011,7 @@
                                  <label for="{{'check1'+$index+1}}"></label>
                              </lable>
                          </td>-->
-                        <td>{{user.userUU}}</td>
+                        <!--<td>{{user.userUU}}</td>-->
                         <td>{{user.userName}}</td>
                         <td>{{user.userSex != null ? (user.userSex == 'M' || user.userSex == '男' ? '男' : '女') : '-'}}</td>
                         <td>{{user.userTel}}</td>
@@ -1058,13 +1058,13 @@
         <!-- 申请绑定 -->
         <div class="clearfix bind-en" ng-if="tab=='bind'">
             <div class="rt_menu">
-                <span class="pull-right"><input type="text" ng-model="searchParams.keyword" ng-keyup="keyUpApply()" class="form-control" placeholder="用户名/UU账号/手机号"/><button class="btn" ng-click="searchApply()">搜索</button> </span></span>
+                <span class="pull-right"><input type="text" ng-model="searchParams.keyword" ng-keyup="keyUpApply()" class="form-control" placeholder="用户名/手机号"/><button class="btn" ng-click="searchApply()">搜索</button> </span></span>
             </div>
             <table class="bind-enter-tab" ng-table="applyToEnterpriseTableParams">
                 <thead>
                 <tr>
                     <th>用户名</th>
-                    <th>UU账号</th>
+                    <!--<th>UU账号</th>-->
                     <th>手机号</th>
                     <th>邮箱</th>
                     <th>操作</th>
@@ -1073,7 +1073,7 @@
                 <tbody>
                 <tr class="default-row" ng-repeat="item in content">
                     <td class="user-name" ng-bind="item.user.vipName || '-'"></td>
-                    <td ng-bind="item.user.userUU || '-'"></td>
+                    <!--<td ng-bind="item.user.userUU || '-'"></td>-->
                     <td ng-bind="item.user.mobile || '-'"></td>
                     <td ng-bind="item.user.email || '-'"></td>
                     <td>

+ 1 - 1
src/main/webapp/resources/view/vendor/forstore/addExistUser.html

@@ -104,7 +104,7 @@
 				<input
 						type="text" class="form-control"
 						ng-keydown="onKeyDown($event, keyWord)"
-						ng-model="keyWord" placeholder="请输入UU号、手机号或邮箱" required/>
+						ng-model="keyWord" placeholder="请输入手机号或邮箱" required/>
 				<a class="default-btn" ng-click="searchUser(keyWord)" ng-disabled="searchForm.$invalid">搜索</a>
 			</div>
 		</form>