|
@@ -0,0 +1,340 @@
|
|
|
|
|
+<style>
|
|
|
|
|
+.base-info .title {
|
|
|
|
|
+ width: 56px;
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.base-info .content {
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]
|
|
|
|
|
+ {
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.password label {
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.password .col {
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.password .line {
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2 {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2>.operator-menu2 {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ width: 140px;
|
|
|
|
|
+ height: 60;
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+ top: 30;
|
|
|
|
|
+ background-color: #333;
|
|
|
|
|
+ border-radius: 0 3px 3px 0;
|
|
|
|
|
+ opacity: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2>.operator-menu2 a {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2>.operator-menu2 a:hover {
|
|
|
|
|
+ color: #56a022;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2:hover>.operator-menu2 {
|
|
|
|
|
+ z-index:100;
|
|
|
|
|
+ height: 60px;
|
|
|
|
|
+ opacity: .75;
|
|
|
|
|
+ -webkit-transition: all 0s ease-in-out;
|
|
|
|
|
+ -moz-transition: all 0s ease-in-out;
|
|
|
|
|
+ transition: all 0s ease-in-out;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2>.operator-menu3 {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ width: 125px;
|
|
|
|
|
+ height: 60;
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+ top: 30;
|
|
|
|
|
+ background-color: #333;
|
|
|
|
|
+ border-radius: 0 3px 3px 0;
|
|
|
|
|
+ opacity: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2>.operator-menu3 a {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2>.operator-menu3 a:hover {
|
|
|
|
|
+ color: #56a022;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-operator2:hover>.operator-menu3 {
|
|
|
|
|
+ z-index:100;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ opacity: .75;
|
|
|
|
|
+ -webkit-transition: all 0s ease-in-out;
|
|
|
|
|
+ -moz-transition: all 0s ease-in-out;
|
|
|
|
|
+ transition: all 0s ease-in-out;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|
|
|
|
|
+<div class="loading in" ng-class="{'in': loading}">
|
|
|
|
|
+ <i></i>
|
|
|
|
|
+</div>
|
|
|
|
|
+<div class="pane base-info">
|
|
|
|
|
+ <div class="pane-header">
|
|
|
|
|
+ 我的个人资料
|
|
|
|
|
+ <div class="pull-right">
|
|
|
|
|
+ <a ng-disabled="userForm.$invalid" class="text-simple text-success"
|
|
|
|
|
+ ng-show="editing" ng-click="saveUser()"><i
|
|
|
|
|
+ class="fa fa-save fa-fw"></i>保存修改</a> <a class="text-simple"
|
|
|
|
|
+ ng-show="editing" ng-click="editing=false"><i
|
|
|
|
|
+ class="fa fa-reply-all fa-fw"></i>取消编辑</a> <a class="text-simple"
|
|
|
|
|
+ ng-show="!editing" ng-click="editing=true"><i
|
|
|
|
|
+ class="fa fa-pencil fa-fw"></i>编辑</a> <a class="text-simple text-danger"
|
|
|
|
|
+ ng-click="updatePassword()"><i class="fa fa-lock fa-fw"></i>修改密码</a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="pane-body">
|
|
|
|
|
+ <form ng="userForm" class="form-inline">
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">姓名</span>
|
|
|
|
|
+ <div class="content" ng-show="!editing" ng-bind="user.userName"></div>
|
|
|
|
|
+ <div class="content" ng-show="editing">
|
|
|
|
|
+ <input reqired ng-model="user.userName"
|
|
|
|
|
+ class="form-control input-sm" type="text" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">性别</span>
|
|
|
|
|
+ <div class="content" ng-show="!editing"
|
|
|
|
|
+ ng-bind="user.userSex == 'F' ? '女' : '男'"></div>
|
|
|
|
|
+ <div class="content" ng-show="editing">
|
|
|
|
|
+ <label class="radio-inline"><input ng-model="user.userSex"
|
|
|
|
|
+ value="F" type="radio" /> 女 </label> <label class="radio-inline"><input
|
|
|
|
|
+ ng-model="user.userSex" value="M" type="radio" /> 男 </label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
|
+ <span class="title">身份证号</span>
|
|
|
|
|
+ <div class="content" ng-show="!editing" ng-bind="user.userIdcode"></div>
|
|
|
|
|
+ <div class="content" ng-show="editing">
|
|
|
|
|
+ <input ng-model="user.userIdcode" class="form-control input-sm"
|
|
|
|
|
+ type="text" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">UU</span>
|
|
|
|
|
+ <div class="content" ng-bind="::user.userUU"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">电话</span>
|
|
|
|
|
+ <div class="content" ng-show="!editing" ng-bind="user.userTel"></div>
|
|
|
|
|
+ <div class="content" ng-show="editing">
|
|
|
|
|
+ <input reqired ng-model="user.userTel"
|
|
|
|
|
+ class="form-control input-sm" type="text" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
|
+ <span class="title">邮箱</span>
|
|
|
|
|
+ <div class="content" ng-show="!editing" ng-bind="user.userEmail"></div>
|
|
|
|
|
+ <div class="content" ng-show="editing">
|
|
|
|
|
+ <input reqired ng-model="user.userEmail"
|
|
|
|
|
+ class="form-control input-sm" type="text" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</div>
|
|
|
|
|
+<div class="pane base-info">
|
|
|
|
|
+ <div class="pane-header">
|
|
|
|
|
+ 我的客户
|
|
|
|
|
+ <div class="pull-right">
|
|
|
|
|
+ 共 {{distributes.length}} 客户
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="pane-body">
|
|
|
|
|
+ <table class="block table table-default table-striped">
|
|
|
|
|
+ <tr class="header">
|
|
|
|
|
+ <th width="90">UU</th>
|
|
|
|
|
+ <th width="120">企业名称</th>
|
|
|
|
|
+ <th width="80">简称</th>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr ng-repeat="distribute in distributes">
|
|
|
|
|
+ <td ng-bind="distribute.myEnterprise.uu" class="text-center"></td>
|
|
|
|
|
+ <td ng-bind="distribute.myEnterprise.enName" class="text-center"></td>
|
|
|
|
|
+ <td ng-bind="distribute.myEnterprise.enShortname" class="text-center"></td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</div>
|
|
|
|
|
+
|
|
|
|
|
+<script type="text/ng-template" id="updatePassword.html">
|
|
|
|
|
+ <div class="modal-header">
|
|
|
|
|
+ <h3 class="modal-title"><i class="fa fa-lock fa-fw"></i>修改密码</h3>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <form class="password" name="sampleSendForm" ng-submit="ok()">
|
|
|
|
|
+ <div class="modal-body">
|
|
|
|
|
+ <div class="row">
|
|
|
|
|
+ <label class="col-md-4 col-sm-4 col text-right">用户:</label>
|
|
|
|
|
+ <div class="col-md-4 col-sm-4 col">{{::user.userUU}} - {{::user.userName}} </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row line form-group" ng-class="{'has-success': checkSuccess, 'has-error': checkFailed}">
|
|
|
|
|
+ <label class="col-md-4 col-sm-4 col text-right">原密码:</label>
|
|
|
|
|
+ <div class="col-md-4 col-sm-4 col"><input ng-model="user.password" class="form-control input-sm" type="password" ng-blur="checkPassword(user.password)" required placeholder="当前密码"></div>
|
|
|
|
|
+ <div class="col-md-4 col-sm-4 col">
|
|
|
|
|
+ <span ng-show="checking">验证密码...</span>
|
|
|
|
|
+ <i ng-show="checkSuccess" class="fa fa-check" style="color:#339933"></i>
|
|
|
|
|
+ <i ng-show="checkFailed" class="fa fa-close" style="color:#CC3333;"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row">
|
|
|
|
|
+ <label class="col-md-4 col-sm-4 col text-right">新密码:</label>
|
|
|
|
|
+ <div class="col-md-4 col-sm-4 col">
|
|
|
|
|
+ <input ng-model="user.newPassword" ng-pattern="/^([\w~!@#$%^&\*\(\)-_\+=,.;\[\]{}\<\>]){6,20}$/" class="form-control input-sm" type="password" required placeholder="6~20位字母、数字、符号">
|
|
|
|
|
+ <!-- <div>密码复杂度</div> -->
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-md-4 col-sm-4 col">
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row line form-group" ng-class="{'has-success': user.newPassword1 && (user.newPassword1==user.newPassword)}">
|
|
|
|
|
+ <label ng-model="user.newPassword1" class="col-md-4 col-sm-4 col text-right">重复新密码:</label>
|
|
|
|
|
+ <div class="col-md-4 col-sm-4 col">
|
|
|
|
|
+ <input ng-pattern="/^[\S]{6,}$/" ng-model="user.newPassword1" class="form-control input-sm" type="password" required placeholder="重复新密码">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="modal-footer">
|
|
|
|
|
+ <button class="btn btn-primary" ng-disabled="!checkSuccess" type="submit">确认修改</button>
|
|
|
|
|
+ <button class="btn btn-warning" ng-click="cancel()" type="button">取消</button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ </script>
|
|
|
|
|
+<div class="pane base-info">
|
|
|
|
|
+ <div class="pane-header">
|
|
|
|
|
+ 全部用户
|
|
|
|
|
+ <div class="pull-right" ng-show="user.sys">
|
|
|
|
|
+ <a title="新增用户默认密码为111111" ng-show="adding == true" class="btn btn-success btn-sm" ng-disabled="newUserForm.$invalid" ng-click="addUser(newUser)" class="text-simple">
|
|
|
|
|
+ <i class="fa fa-user-plus fa-fw"></i>
|
|
|
|
|
+ 确定添加
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <a ng-click="adding = false" ng-show="adding == true" class="text-simple">
|
|
|
|
|
+ <i class="fa fa-user-plus fa-fw"></i>
|
|
|
|
|
+ 取消
|
|
|
|
|
+ </a>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 添加用户 start -->
|
|
|
|
|
+ <div class="row-operator2">
|
|
|
|
|
+ <a ng-show="adding != true" class="text-simple operator-trigger" href="javascript:void(0);">
|
|
|
|
|
+ <i class="fa fa-user-plus fa-fw"></i>
|
|
|
|
|
+ 添加用户
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <ul ng-show="adding != true" class="list-unstyle list-inline operator-menu2">
|
|
|
|
|
+ <li><a ng-click="adding = true">添加未注册用户</a></li>
|
|
|
|
|
+ <li><a ng-click="addExistUser()">添加已注册用户</a></li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 添加用户 end -->
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="pane-body">
|
|
|
|
|
+ <form name="newUserForm">
|
|
|
|
|
+ <table class="block table table-default table-striped"
|
|
|
|
|
+ ng-table="tableParams">
|
|
|
|
|
+ <thead>
|
|
|
|
|
+ <tr class="header">
|
|
|
|
|
+ <th width="90">UU</th>
|
|
|
|
|
+ <th width="120">姓名</th>
|
|
|
|
|
+ <th width="80">性别</th>
|
|
|
|
|
+ <th width="170">身份证号</th>
|
|
|
|
|
+ <th width="170">电话</th>
|
|
|
|
|
+ <th width="200">邮箱</th>
|
|
|
|
|
+ <th width="70">客户分配</th>
|
|
|
|
|
+ <th colspan="2">角色</th>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </thead>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr ng-show="adding">
|
|
|
|
|
+ <td class="text-center">
|
|
|
|
|
+ <div style="line-height: 30px;">系统生成</div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center"><input ng-model="newUser.userName"
|
|
|
|
|
+ class="form-control input-sm" required type="text"
|
|
|
|
|
+ placeholder="用户名"></td>
|
|
|
|
|
+ <td class="text-center"><select ng-model="newUser.userSex"
|
|
|
|
|
+ class="form-control input-sm" ng-init="newUser.userSex='M'">
|
|
|
|
|
+ <option value="F">女</option>
|
|
|
|
|
+ <option value="M">男</option>
|
|
|
|
|
+ </select></td>
|
|
|
|
|
+ <td class="text-center"><input ng-model="newUser.userIdcode"
|
|
|
|
|
+ class="form-control input-sm" type="text" placeholder="身份证号">
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center"
|
|
|
|
|
+ ng-class="{'has-error': userTelError, 'has-success': userTelSuccess}">
|
|
|
|
|
+ <input ng-model="newUser.userTel"
|
|
|
|
|
+ ng-blur="telValid(newUser.userTel)" required name="newUserTel"
|
|
|
|
|
+ class="form-control input-sm" ng-pattern="/^1[3|4|5|7|8]\d{9}$/" type="text" placeholder="手机号">
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center"
|
|
|
|
|
+ ng-class="{'has-error': userEmailError, 'has-success': userEmailSuccess}">
|
|
|
|
|
+ <input ng-model="newUser.userEmail" ng-pattern="/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/"
|
|
|
|
|
+ ng-blur="emailValid(newUser.userEmail)" required
|
|
|
|
|
+ name="newUserEmail" class="form-control input-sm" type="text"
|
|
|
|
|
+ placeholder="邮箱">
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td colspan="2"></td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr ng-repeat="u in $data">
|
|
|
|
|
+ <td class="text-center" ng-bind="::u.userUU"></td>
|
|
|
|
|
+ <td class="text-center" ng-bind="::u.userName"></td>
|
|
|
|
|
+ <td class="text-center" ng-bind="::u.userSex == 'F' ? '女' : '男'"></td>
|
|
|
|
|
+ <td class="text-center" ng-bind="::u.userIdcode"></td>
|
|
|
|
|
+ <td class="text-center" ng-bind="::u.userTel"></td>
|
|
|
|
|
+ <td class="text-center" ng-bind="::u.userEmail"></td>
|
|
|
|
|
+ <td class="text-center row-operator2">
|
|
|
|
|
+ <a class="operator-trigger" href="javascript:void(0);" ng-click="addVendor(u,user.sys)" style="color: green;"><i class="fa fa-plus-circle fa-lg"></i></a>
|
|
|
|
|
+ <!-- <ul class="list-unstyle list-inline operator-menu3" ng-show="user.sys">
|
|
|
|
|
+ <li><a ng-click="addVendor(u,true)"><i class="fa fa-fw fa-pencil-square-o"></i>添加</a></li>
|
|
|
|
|
+ <li><a ng-click="removeVendor(u)" ng-if="u.userUU != user.userUU"><i class="fa fa-fw fa-trash-o"></i>删除</a></li>
|
|
|
|
|
+ </ul>-->
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="user-role">
|
|
|
|
|
+ <div class="role-item" ng-repeat="role in u.roles"
|
|
|
|
|
+ title="{{role.desc}}">
|
|
|
|
|
+ <span class="icon"
|
|
|
|
|
+ ng-class="{'info':role.issys == 1,'danger':role.isdefault == 0}"
|
|
|
|
|
+ ng-bind="::role.desc | firstchar"></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <!-- 系统管理员无法被编辑限制,因为用户反馈注册用户都是业务员,需要权限来保护隐私,所以拿掉这个限制 -->
|
|
|
|
|
+ <!-- ng-show="user.sys && enterprise.enAdminuu != u.userUU" -->
|
|
|
|
|
+ <td class="row-operator">
|
|
|
|
|
+ <a class="operator-trigger" href="javascript:void(0);"><i class="fa fa-pencil fa-lg"></i></a>
|
|
|
|
|
+ <ul class="list-unstyle list-inline operator-menu">
|
|
|
|
|
+ <li><a ng-click="editUserRole(u)"><i class="fa fa-fw fa-pencil-square-o"></i>编辑</a></li>
|
|
|
|
|
+ <li><a ng-click="removeUser(u)" ng-if="u.userUU != user.userUU"><i class="fa fa-fw fa-trash-o"></i>删除</a></li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</div>
|