Browse Source

通行证验证登录、注销、进入项目管理、Session维持登录状态等。

Chenshilong 8 years ago
parent
commit
544fa08e45

+ 85 - 0
modules/users/controllers/users_controller.js

@@ -0,0 +1,85 @@
+var ut = require('../models/users_data');
+var rq = require('request');
+var online = true;
+
+module.exports = {
+    userLogin: function (req, res) {
+        var account = req.body.account;
+        var pw = req.body.pw;
+
+        if (online) {
+            rq.post(
+                {
+                    url: 'http://sso.smartcost.com.cn/api/jzlogin',
+                    form: {username: account, userpasswd: pw},
+                    encoding: 'utf8'
+                },
+                function (err, response, userData) {
+                    if (response.statusCode !== 200) {
+                        res.json({state: false, error: '通行证验证失败!出错代号:' + response.statusCode});
+                    } else {
+                        switch (userData) {
+                            case '-2':
+                                res.json({state: false, error: '密码错误!'});
+                                break;
+                            case '-22':
+                                res.json({state: false, error: '输入的邮箱/手机无效!'});
+                                break;
+                            default:
+                                userData = JSON.parse(userData);
+                                req.session.userID = userData[0].id;
+                                req.session.userAccount = userData[0].username;
+                                req.session.userEmail = userData[0].useremail;
+                                req.session.userMobile = userData[0].mobile;
+                                res.json({state: true, data: userData});
+                        }
+
+                    }
+                }
+            );
+        }
+        else {
+            ut.findUser(account, pw, function (err, userData) {
+                if (err) {
+                    res.json({state: false, error: err});
+                }
+                else {
+                    req.session.userID = userData[0].profile.id;
+                    req.session.userName = userData[0].profile.userName;
+                    req.session.userAccount = userData[0].profile.userAccount;
+                    req.session.userEmail = userData[0].profile.useRemail;
+                    req.session.userMobile = userData[0].profile.Mobile;
+                    res.json({state: true, data: userData});
+                }
+                ;
+            })
+        }
+    },
+
+    userReg: function (req, res) {
+        var account = req.body.account;
+        var pw = req.body.pw;
+        var name = req.body.name;
+
+        ut.checkAccount(account, function (userData) {
+            if (!userData) {  // 找不到用户,则注册
+                ut.addUser(account, pw, name, function (err) {
+                    if (err) {
+                        res.json({state: false, error: '“注册失败,原因:' + err});
+                    }
+                    else {
+                        res.json({state: true});
+                    }
+                });
+            }
+            else {  // 找到用户,则提示
+                res.json({state: false, error: '“' + account + '”已存在!'});
+            }
+            ;
+        })
+    }
+
+}
+
+
+

+ 9 - 0
modules/users/models/umDB.js

@@ -0,0 +1,9 @@
+var mg = require('mongoose');
+mg.connect('mongodb://localhost/usersManages');
+
+mg.connection.on('connected', function(){console.log('Mongoose connected to usersManages.')});
+mg.connection.on('disconnected', function(){console.log('Mongoose disconnected.')});
+mg.connection.on('error', function(err){console.log('Mongoose connect error:' + err)});
+
+exports.mongoose = mg;
+

+ 41 - 0
modules/users/models/users_data.js

@@ -0,0 +1,41 @@
+var umDB = require('./umDB');
+
+var usersSchema = new umDB.mongoose.Schema({ account: String, pw: String, name: String });
+var usersModel = umDB.mongoose.model('users', usersSchema);
+
+var usersData = function(){};
+
+usersData.prototype.findUser = function(account, pw, controllerFun){
+    usersModel.find({"account": account, "pw": pw}, function(err, data){
+        if(data.length){
+            controllerFun(0, data[0]);
+        }
+        else{
+            controllerFun('用户名或密码错误!', 0);
+        }
+    })
+};
+
+usersData.prototype.checkAccount = function(account, controllerFun){
+    usersModel.find({"account": account}, function(err, data){
+        if(data.length){
+            controllerFun(data[0]);
+        }
+        else{
+            controllerFun(0);
+        }
+    })
+};
+
+usersData.prototype.addUser = function(account, pw, name, controllerFun){
+    var user = new usersModel({account: account, pw: pw, name: name});
+    user.save(function (err) {
+        if (err) {
+            controllerFun(err);
+        } else {
+            controllerFun(0);
+        }
+    });
+};
+
+module.exports = new usersData();

+ 40 - 0
modules/users/routes/users_route.js

@@ -0,0 +1,40 @@
+var express = require('express');
+var path = require('path');
+var router = express.Router();
+var uc = require('../controllers/users_controller');
+
+var htmlPath = path.join(__dirname,'../../../','web/users/');
+
+router.get('/', function(req, res) {
+
+    if(!req.session.userAccount){
+        res.sendFile(htmlPath + 'login.html');
+    }
+    else{
+        res.render(htmlPath + 'project-management.html',
+            {userAccount: req.session.userAccount,
+             userID: req.session.userID});
+    }
+});
+
+router.get('/login', function(req, res) {
+  res.render('login', {});
+});
+
+router.post('/login', uc.userLogin);
+
+router.get('/reg', function(req, res, next) {
+  res.render('reg',{});
+});
+
+router.post('/reg', uc.userReg);
+
+router.get("/logout",function(req,res){
+    delete req.session.userID;
+    delete req.session.userAccount;
+    delete req.session.userEmail;
+    delete req.session.userMobile;
+    res.redirect("/");
+});
+
+module.exports = router;

+ 7 - 1
package.json

@@ -6,6 +6,12 @@
     "body-parser": "^1.13.2",
     "express": "^4.13.1",
     "mongoose": "^4.8.5",
-    "async": "^2.1.5"
+    "async": "^2.1.5",
+    "connect-mongo": "^1.3.2",
+    "cookie-parser": "~1.4.3",
+    "debug": "~2.6.0",
+    "ejs": "~2.5.5",
+    "express-session": "^1.15.1",
+    "request": "^2.79.0"
   }
 }

+ 28 - 7
server.js

@@ -1,19 +1,40 @@
 var express = require('express');
-var app = express();
 
-var _rootDir = __dirname;
+// chenshilong add this, 2017.03.07 --------------------------------begin
+var path = require('path');
+var session = require('express-session');
+var DBStore = require('connect-mongo')(session);
+// -----------------------------------------------------------------end
 
+var app = express();
+var _rootDir = __dirname;
 app.use(express.static(_rootDir));
 
+// chenshilong add this, 2017.03.07 --------------------------------begin
+app.set('views', path.join(__dirname, 'web'));
+app.engine('.html', require('ejs').__express);
+app.set('view engine', 'html');
+// -----------------------------------------------------------------end
+
 var bodyParser = require('body-parser');
 app.use(bodyParser.urlencoded({extended: false}));
 app.use(bodyParser.json());
 
-//注册路由
-app.get('/', function(req, res){
-	//res.sendFile(_rootDir+'/web/.../project-management.html');
-});
-
+// chenshilong add this, 2017.03.07 --------------------------------begin
+app.use(session({
+    name: 'usersSession',
+    secret: 'session users secret',
+    cookie: {maxAge: 1000*60*5},
+    resave: false,
+    saveUninitialized: true,
+    store: new DBStore({
+        url: 'mongodb://localhost:27017/usersManages'
+    })
+}));
+
+var users = require('./modules/users/routes/users_route');
+app.use('/', users);
+// -----------------------------------------------------------------end
 
 var apiRouter = express.Router();
 

+ 88 - 0
web/users/login-infoinput.html

@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>用户信息填写-Smartcost</title>
+    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="css/bootstrap/themes.css">
+    <link rel="stylesheet" href="css/main.css">
+    <link rel="stylesheet" href="css/font-awesome/font-awesome.min.css">
+</head>
+
+<body>
+    <div class="header">
+        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
+            <span class="header-logo px-2">Smartcost</span>
+            <div class="float-lg-right navbar-text pt-0">
+                <div class=" d-inline-block">
+                    <button class="btn btn-link btn-sm " type="button">15812644017</button>
+                </div>
+                <span class="btn btn-link btn-sm new-msg">
+                  <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
+                </span>
+                <button class="btn btn-link btn-sm">注销</button>
+            </div>
+        </nav>
+    </div>
+    <div class="container mt-3">
+        <div class="row">
+            <div class="col-lg-8 offset-lg-2">
+                <div class="card newuser-input">
+                    <div class="card-block">
+                        <h4 class="card-title">在开始使用前,请填写以下信息。</h4>
+                        <h6 class="card-subtitle text-muted">详细填写这些信息,可以让我们更好的服务您。</h6>
+                    </div>
+                    <div class="card-block">
+                            <div class="form-group">
+                                <input class="form-control" placeholder="你的姓名" required="" autofocus="">
+                            </div>
+                            <div class="form-group">
+                                <input class="form-control" placeholder="企业名称" required="" autofocus="">
+                            </div>
+                            <div class="form-group">
+                                <select class="form-control">
+                                  <option>请选择企业所在地区</option>
+                                  <option>广东省</option>
+                                  <option>北京市</option>
+                                </select>
+                            </div>
+                        <div class="form-group">
+                            <a class="btn btn-link" data-toggle="collapse" href="#moreinfo" aria-expanded="false" aria-controls="moreinfo">更多选项</a>
+                        </div>
+                        <div class="collapse" id="moreinfo">
+                                <div class="form-group">
+                                    <select class="form-control">
+                                     <option>请选择企业类型</option>
+                                     <option>设计</option>
+                                     <option>施工</option>
+                                   </select>
+                                </div>
+                                <div class="form-group">
+                                    <select class="form-control">
+                                     <option>请选择企业规模</option>
+                                     <option>1-20</option>
+                                     <option>20-50</option>
+                                     <option>50-100</option>
+                                     <option>100+</option>
+                                   </select>
+                                </div>
+                        </div>
+                        <div class="form-group">
+                            <a class="btn btn-primary btn-block" href="login-welcome.html">下一步</a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- JS. -->
+    <script src="js/jquery/jquery.min.js"></script>
+    <script src="js/tether/tether.min.js"></script>
+    <script src="js/bootstrap/bootstrap.min.js"></script>
+    <script src="js/global.js"></script>
+</body>
+
+</html>

+ 296 - 0
web/users/login-welcome.html

@@ -0,0 +1,296 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>项目管理-Smartcost</title>
+    <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="css/bootstrap/themes.css">
+    <link rel="stylesheet" href="css/main.css">
+    <link rel="stylesheet" href="css/font-awesome/font-awesome.min.css">
+</head>
+
+<body>
+    <div class="header">
+      <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
+      <span class="header-logo px-2">Smartcost</span>
+      <div class="navbar-text pt-0">
+          <div class="dropdown d-inline-block">
+              <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown">陈特</button>
+              <div class="dropdown-menu dropdown-menu-right">
+                  <a class="dropdown-item" href="user-info.html" target="_blank">账号资料</a>
+                  <a class="dropdown-item" href="user-buy.html" target="_blank">产品购买</a>
+                  <a class="dropdown-item" href="user-set.html" target="_blank">偏好设置</a>
+              </div>
+          </div>
+          <span class="btn btn-link btn-sm new-msg">
+            <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
+          </span>
+          <button class="btn btn-link btn-sm">注销</button>
+      </div>
+    </nav>
+      <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
+        <ul class="nav navbar-nav px-1">
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="http://example.com" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">文件</a>
+                <div class="dropdown-menu" aria-labelledby="supportedContentDropdown">
+                    <a class="dropdown-item" href="#">Action</a>
+                    <a class="dropdown-item" href="#">Another action</a>
+                    <a class="dropdown-item" href="#">Something else here</a>
+                </div>
+            </li>
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">编辑</a>
+                <div class="dropdown-menu">
+                    <a class="dropdown-item" href="#">Action</a>
+                    <a class="dropdown-item" href="#">Another action</a>
+                    <a class="dropdown-item" href="#">Something else here</a>
+                </div>
+            </li>
+            <li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">工具</a>
+                <div class="dropdown-menu">
+                    <a class="dropdown-item" href="#">Action</a>
+                    <a class="dropdown-item" href="#">Another action</a>
+                    <a class="dropdown-item" href="#">Something else here</a>
+                </div>
+            </li>
+            <li class="nav-item">
+                <a class="nav-link" href="#" aria-haspopup="true" aria-expanded="false">帮助</a>
+            </li>
+        </ul>
+        <form class="form-inline">
+            <input class="form-control form-control-sm mr-1" type="text" placeholder="告诉我你想做什么">
+        </form>
+    </nav>
+    </div>
+    <div class="main">
+        <div class="poj-manage container-fluid">
+            <div class="row">
+                <div class="col-lg-2">
+                    <div class="poj-cate">
+                        <input type="text" class="mt-1 mb-1 form-control form-control-sm" placeholder="搜索所有工程">
+                        <ul class="nav nav-pills flex-column">
+                            <li class="nav-item">
+                                <a class="nav-link active" href="#">全部</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">最近使用</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">共享</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">协同工作</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">归档</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">回收站</a>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="col-lg-10">
+                    <div class="toolsbar">
+                        <div class="tools-btn btn-group align-top">
+                            <a href="" class="btn btn-sm">新建工程</a>
+                            <a href="" class="btn btn-sm"><i class="fa fa-folder-o"></i>&nbsp;新建文件夹</a>
+                            <a href="" class="btn btn-sm">重命名</a>
+                            <a href="" class="btn btn-sm">删除</a>
+                            <a href="" class="btn btn-sm">移动到...</a>
+                            <a href="" class="btn btn-sm">复制到...</a>
+                            <a href="" class="btn btn-sm">共享</a>
+                            <a href="" class="btn btn-sm">协同</a>
+                        </div>
+                    </div>
+                    <div class="poj-list">
+                        <legend>全部</legend>
+                        <table class="table table-hover table-sm">
+                            <thead>
+                                <tr>
+                                    <th width="40"></th>
+                                    <th width="38%"></th>
+                                    <th width="40%">工程名称</th>
+                                    <th width="10%">最近使用</th>
+                                    <th width="10%">创建日期</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td></td>
+                                    <td><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;XX项目文件夹</td>
+                                    <td></td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="pl-1"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;XX项目文件夹</td>
+                                    <td></td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="pl-2"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;<a href="#">某某某某工厂工厂某某工厂建设某某工厂建设</a></td>
+                                    <td></td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="pl-3"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;<a href="#" class="open-sidebar">1号生产车间(click)</a></td>
+                                    <td></td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td><i class="fa fa-sort" data-toggle="tooltip" data-placement="top" title="长安拖动"></i></td>
+                                    <td></td>
+                                    <td><a href="zaojiashu.html">建筑工程(click)</a></td>
+                                    <td>2016-01-01</td>
+                                    <td>2016-01-01</td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td></td>
+                                    <td><a href="#">机械设备安装工程</a></td>
+                                    <td>2016-01-01</td>
+                                    <td>2016-01-01</td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="pl-2"><a href="#" class="tree-close" title="展开"><i class="fa fa-plus-square-o  mr-1"></i></a><i class="fa fa-folder-o"></i>&nbsp;<a href="#">2号生产车间</a></td>
+                                    <td>......</td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="slide-sidebar">
+            <div class="side-content">
+                <div class="p-1">
+                    <legend>1号生产车间 汇总</legend>
+                    <table class="table table-bordered table-hover table-sm">
+                        <thead>
+                            <tr>
+                                <th rowspan="2"></th>
+                                <th rowspan="2">序号</th>
+                                <th rowspan="2">名称</th>
+                                <th rowspan="2">金额</th>
+                                <th colspan="6">其中</th>
+                                <th rowspan="2">占造价比例(%)</th>
+                                <th rowspan="2">建筑面积</th>
+                                <th rowspan="2">单方造价</th>
+                            </tr>
+                            <tr>
+                                <th>分部分项合计</th>
+                                <th>措施项目合计</th>
+                                <th>其他项目合计</th>
+                                <th>安全文明施工费</th>
+                                <th>规费</th>
+                                <th>税金</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <tr>
+                                <td>1</td>
+                                <td>一</td>
+                                <td>建筑工程</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                            </tr>
+                            <tr>
+                                <td>2</td>
+                                <td>二</td>
+                                <td>建筑工程</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                            </tr>
+                            <tr>
+                                <td>3</td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                            </tr>
+                            <tr>
+                                <td>4</td>
+                                <td>一</td>
+                                <td>合计</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出信息-->
+    <div class="modal fade" id="myModal" data-backdrop="static">
+        <div class="modal-dialog modal-lg" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">欢迎使用Smartcost</h5>
+                </div>
+                <div class="modal-body">
+                    <p>推送内容在这</p>
+                </div>
+                <div class="modal-footer text-xs-center">
+                    <a href="project-management.html" class="btn btn-primary btn-lg">开始使用Smartcost</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- JS. -->
+    <script src="js/jquery/jquery.min.js"></script>
+    <script src="js/tether/tether.min.js"></script>
+    <script src="js/bootstrap/bootstrap.min.js"></script>
+    <script src="js/global.js"></script>
+</body>
+<script type="text/javascript">
+    $('#myModal').modal('show')
+</script>
+
+</html>

+ 125 - 0
web/users/login.html

@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>用户登录-Smartcost</title>
+    <link rel="stylesheet" href="/web/css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="/web/css/main.css">
+    <link rel="stylesheet" href="/web/css/font-awesome/font-awesome.min.css">
+    <script src="/lib/jquery/jquery.min.js"></script>
+</head>
+<body>
+    <div class="container">
+        <form class="form-signin" method="post" onsubmit="return false">
+            <h1 class="d-flex justify-content-center">Smartcost</h1>
+            <h4 class="d-flex justify-content-center mb-2">用户登录</h4>
+            <div class="form-group">
+                <input id="inputEmail" class="form-control " placeholder="通行账号 邮箱/手机" required="" autofocus="" value="laiku123@qq.com">
+            </div>
+            <div class="form-group">
+                <input id="inputPassword" class="form-control " placeholder="输入密码" required="" type="password" value="19930523">
+            </div>
+            <div class="form-group has-danger">
+                <div id="hint" class="form-control-feedback">&nbsp;</div>
+            </div>
+            <div class="form-group">
+                <!--<button id="login" class="btn btn-primary btn-block" data-toggle="modal" data-target="#ver">登录</button>-->
+                <button id="login" class="btn btn-primary btn-block">登录</button>
+            </div>
+            <div class="pt-1 d-flex justify-content-center">
+                <a href="http://sso.smartcost.com.cn/getpasswd" target="_blank" class="mr-3">忘记密码</a>
+                <a href="http://sso.smartcost.com.cn/reg" target="_blank">免费注册</a>
+            </div>
+        </form>
+
+        <script>
+            $(document).ready(function () {
+                $("#login").click(function () {
+                    var account = $("#inputEmail").val();
+                    var pw = $("#inputPassword").val();
+
+                    $.ajax({
+                        url: '/login',
+                        type: 'post',
+                        data: {"account": account, "pw": pw},
+                        success: function (result) {
+                            if (result.data) {
+//                                $('#ver').modal('show');
+                                location.href = '/';
+                            }
+                            else {
+                                $('#hint').html(result.error);
+                            }
+                        },
+                        error: function (result) {
+                            $('#hint').html('内部程序错误!');
+                        }
+                    });
+                });
+
+                $(".form-control").on('input', function () {
+                    $('#hint').html('&nbsp;');
+                });
+            });
+        </script>
+
+        <!--登录错误-->
+        <!--<form class="form-signin login-error">
+            <h1 class="d-flex justify-content-center">Smartcost</h1>
+            <h4 class="d-flex justify-content-center mb-2">用户登录</h4>
+            <div class="form-group has-danger">
+                <input class="form-control form-control-danger" value="1212@qq.com" placeholder="通行账号 邮箱/手机" required="" autofocus="">
+                <div class="form-control-feedback">输入的邮箱/手机无效</div>
+            </div>
+            <div class="form-group has-danger">
+                <input class="form-control gform-control-danger" value="12313" placeholder="输入密码" required="" type="password">
+                <div class="form-control-feedback">密码错误</div>
+            </div>
+            <div class="form-group">
+                <button class="btn btn-primary btn-block">登录</button>
+            </div>
+            <div class="pt-1 d-flex justify-content-center">
+                <a href="http://sso.smartcost.com.cn/getpasswd" target="_blank" class="mr-3">忘记密码</a>
+                <a href="http://sso.smartcost.com.cn/reg" target="_blank">免费注册</a>
+            </div>
+        </form>-->
+    </div>
+    <!--弹出信息-->
+    <div class="modal fade" id="ver" data-backdrop="static">
+        <div class="modal-dialog modal-lg" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h4 class="modal-title">选择登录版本</h4>
+                    <p class="m-0 text-warning"><i class="fa fa-exclamation-triangle"></i> <b>偏好设置</b> 中可以修改您的登录习惯。</p>
+                </div>
+                <div class="modal-body">
+                    <div class="row">
+                        <div class="col-sm-6">
+                            <div class="card card-block">
+                                <h3 class="card-title">重庆版免费版</h3>
+                                <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
+                                <a class="btn btn-primary" href="login-infoinput.html">开始使用</a>
+                            </div>
+                        </div>
+                        <div class="col-sm-6">
+                            <div class="card card-block">
+                                <h3 class="card-title">广东版免费版</h3>
+                                <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
+                                <a class="btn btn-primary" href="login-infoinput.html">开始使用</a>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- JS. -->
+
+    <script src="/lib/tether/tether.min.js"></script>
+    <script src="/lib/bootstrap/bootstrap.min.js"></script>
+    <script src="/lib/global.js"></script>
+</body>
+
+</html>

+ 589 - 0
web/users/project-management.html

@@ -0,0 +1,589 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>项目管理-Smartcost</title>
+    <link rel="stylesheet" href="/web/css/bootstrap/bootstrap.min.css">
+    <!--<link rel="stylesheet" href="/web/css/bootstrap/themes.css">-->
+    <link rel="stylesheet" href="/web/css/main.css">
+    <link rel="stylesheet" href="/web/css/font-awesome/font-awesome.min.css">
+    <!--zTree-->
+  	<link rel="stylesheet" href="/web/css/ztree/zTreeStyle.css" type="text/css">
+
+    <script>
+        // 这里的变量供页面调用
+        var userAccount = '<%- userAccount %>';
+        var userID = '<%- userID %>';
+    </script>
+</head>
+
+<body>
+    <div class="header">
+<!--        <div class="top-msg clearfix">
+            <div class="alert alert-warning mb-0 py-0" role="alert">
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                  <span aria-hidden="true">&times;</span>
+                </button>
+                <strong>注意!</strong> 这是一条消息通知 <a href="#">链接</a>
+            </div>
+        </div>-->
+        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
+          <span class="header-logo px-2">Smartcost</span>
+          <div class="navbar-text pt-0">
+              <div class="dropdown d-inline-block">
+                  <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%- userAccount %></button>
+                  <div class="dropdown-menu dropdown-menu-right">
+                      <a class="dropdown-item" href="user-info.html" target="_blank">账号资料</a>
+                      <a class="dropdown-item" href="user-buy.html" target="_blank">产品购买</a>
+                      <a class="dropdown-item" href="user-set.html" target="_blank">偏好设置</a>
+                  </div>
+              </div>
+              <span class="btn btn-link btn-sm new-msg">
+                <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
+              </span>
+              <button id="logout" class="btn btn-link btn-sm">注销</button>
+          </div>
+        </nav>
+        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
+            <ul class="nav navbar-nav px-1">
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="http://example.com" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">文件</a>
+                    <div class="dropdown-menu" aria-labelledby="supportedContentDropdown">
+                        <a class="dropdown-item" href="#">Action</a>
+                        <a class="dropdown-item" href="#">Another action</a>
+                        <a class="dropdown-item" href="#">Something else here</a>
+                    </div>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">编辑</a>
+                    <div class="dropdown-menu">
+                        <a class="dropdown-item" href="#">Action</a>
+                        <a class="dropdown-item" href="#">Another action</a>
+                        <a class="dropdown-item" href="#">Something else here</a>
+                    </div>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">工具</a>
+                    <div class="dropdown-menu">
+                        <a class="dropdown-item" href="#">Action</a>
+                        <a class="dropdown-item" href="#">Another action</a>
+                        <a class="dropdown-item" href="#">Something else here</a>
+                    </div>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="#" aria-haspopup="true" aria-expanded="false">帮助</a>
+                </li>
+            </ul>
+            <form class="form-inline">
+                <input class="form-control form-control-sm mr-1" type="text" placeholder="告诉我你想做什么">
+            </form>
+        </nav>
+    </div>
+    <div class="main">
+        <div class="poj-manage container-fluid">
+            <div class="row">
+                <div class="col-lg-2">
+                    <div class="poj-cate">
+                        <input type="text" class="my-2 form-control form-control-sm" placeholder="搜索所有工程">
+                        <ul class="nav nav-pills flex-column">
+                            <li class="nav-item">
+                                <a class="nav-link active" href="#">全部</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">最近使用</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">共享</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">协同工作</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">归档</a>
+                            </li>
+                            <li class="nav-item">
+                                <a class="nav-link" href="#">回收站</a>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="col-lg-10">
+                    <div class="toolsbar">
+                        <div class="tools-btn btn-group align-top">
+                            <a href="javacript:void(0);" data-toggle="modal" data-target="#addPoj" class="btn btn-sm">新建工程</a>
+                            <a href="javacript:void(0);" data-toggle="modal" data-target="#addFolder" class="btn btn-sm"><i class="fa fa-folder-o"></i>&nbsp;新建文件夹</a>
+                            <a href="javacript:void(0);" data-toggle="modal" data-target="#rename" class="btn btn-sm">重命名</a>
+                            <a href="javacript:void(0);" data-toggle="modal" data-target="#del" class="btn btn-sm">删除</a>
+                            <a href="javacript:void(0);" data-toggle="modal" data-target="#moveto" class="btn btn-sm">移动到...</a>
+                            <a href="javacript:void(0);" data-toggle="modal" data-target="#copyto" class="btn btn-sm">复制到...</a>
+                            <a href="" class="btn btn-sm">共享</a>
+                            <a href="" class="btn btn-sm">协同</a>
+                        </div>
+                    </div>
+                    <div class="poj-list">
+                        <legend>全部</legend>
+                        <table class="table table-hover table-sm">
+                            <thead>
+                                <tr>
+                                    <th width="40"></th>
+                                    <th width="78%">工程列表</th>
+                                    <th width="10%">最近使用</th>
+                                    <th width="10%">创建日期</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td></td>
+                                    <td class="in-1"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;XX项目文件夹</td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                  <tr>
+                                      <td></td>
+                                      <td class="in-2"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;XX项目文件夹</td>
+                                      <td></td>
+                                      <td></td>
+                                  </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="in-3"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;XX项目文件夹</td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="in-4"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;<a href="#">某某某某工厂工厂某某工厂建设某某工厂建设</a></td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="in-5"><a href="#" class="tree-open" title="收起"><i class="fa fa-minus-square-o mr-1"></i></a><i class="fa fa-folder-open-o"></i>&nbsp;<a href="#" class="open-sidebar">左1号生产车间(click)</a></td>
+                                    <td></td>
+                                    <td></td>
+                                </tr>
+                                <tr>
+                                    <td><i class="fa fa-sort" data-toggle="tooltip" data-placement="top" title="长安拖动"></i></td>
+                                    <td class="in-6"><span class="in-3 poj-icon">└</span><a href="zaojiashu.html">建筑工程(click)</a></td>
+                                    <td>2016-01-01</td>
+                                    <td>2016-01-01</td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="in-6"><span class="in-3 poj-icon">└</span><a href="#">机械设备安装工程</a></td>
+                                    <td>2016-01-01</td>
+                                    <td>2016-01-01</td>
+                                </tr>
+                                <tr>
+                                    <td></td>
+                                    <td class="in-5"><a href="#" class="tree-close" title="展开"><i class="fa fa-plus-square-o  mr-1"></i></a><i class="fa fa-folder-o"></i>&nbsp;<a href="#">2号生产车间</a></td>
+                                    <td>......</td>
+                                    <td>......</td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="slide-sidebar">
+            <div class="side-content">
+                <div class="p-3">
+                    <legend>1号生产车间 汇总</legend>
+                    <table class="table table-bordered table-hover table-sm">
+                        <thead>
+                            <tr>
+                                <th rowspan="2"></th>
+                                <th rowspan="2">序号</th>
+                                <th rowspan="2">名称</th>
+                                <th rowspan="2">金额</th>
+                                <th colspan="6">其中</th>
+                                <th rowspan="2">占造价比例(%)</th>
+                                <th rowspan="2">建筑面积</th>
+                                <th rowspan="2">单方造价</th>
+                            </tr>
+                            <tr>
+                                <th>分部分项合计</th>
+                                <th>措施项目合计</th>
+                                <th>其他项目合计</th>
+                                <th>安全文明施工费</th>
+                                <th>规费</th>
+                                <th>税金</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <tr>
+                                <td>1</td>
+                                <td>一</td>
+                                <td>建筑工程</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                            </tr>
+                            <tr>
+                                <td>2</td>
+                                <td>二</td>
+                                <td>建筑工程</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                            </tr>
+                            <tr>
+                                <td>3</td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                            </tr>
+                            <tr>
+                                <td>4</td>
+                                <td>一</td>
+                                <td>合计</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td>0</td>
+                                <td> </td>
+                                <td> </td>
+                                <td> </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出新建工程-->
+    <div class="modal fade" id="addPoj" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title">新建工程</h5>
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                      <span aria-hidden="true">&times;</span>
+                    </button>
+                </div>
+                <div class="modal-body">
+                    <form>
+                    <div class="collapse" id="moreinfo">
+                        <div class="form-group">
+                            <label>建设项目</label>
+                            <input type="text" class="form-control" placeholder="输入建设项目名称">
+                        </div>
+                        <div class="form-group">
+                            <label>单项工程</label>
+                            <input type="text" class="form-control" placeholder="输入单项工程名称">
+                        </div>
+                      </div>
+                        <div class="form-group">
+                            <label>单位工程</label>
+                            <input type="text" class="form-control" placeholder="输入单位工程名称">
+                        </div>
+                        <div class="form-group" >
+                            <label class="custom-control custom-checkbox">
+                              <input type="checkbox" class="custom-control-input" href="#moreinfo" data-toggle="collapse" data-parent="#moreinfo" aria-expanded="false" aria-controls="moreinfo">
+                              <span class="custom-control-indicator" ></span>
+                              <span class="custom-control-description">建立 <b>建设项目</b> 和 <b>单项工程</b> 文件夹</span>
+                            </label>
+                        </div>
+                        <div class="form-group">
+                            <label>计价方式</label>
+                            <div>
+                                <label class="custom-control custom-radio">
+                                  <input id="radio1" name="radio" type="radio" class="custom-control-input">
+                                  <span class="custom-control-indicator"></span>
+                                  <span class="custom-control-description">清单计价</span>
+                                </label>
+                                <label class="custom-control custom-radio">
+                                  <input id="radio2" name="radio" type="radio" class="custom-control-input">
+                                  <span class="custom-control-indicator"></span>
+                                  <span class="custom-control-description">定额计价</span>
+                                </label>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="project-management.html" class="btn btn-primary">确定</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出新建文件夹-->
+    <div class="modal fade" id="addFolder" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title">新建文件夹</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body">
+                    <form>
+                        <div class="form-group">
+                            <label>文件夹</label>
+                            <input type="text" class="form-control" placeholder="输入文件夹名称">
+                            <span class="form-text text-muted">Smartcost为你提供了灵活的工程管理功能,如:</span>
+                            <span class="form-text text-muted">当你想汇总多个 <b>单位工程</b> 时,只需把它们都放在一个文件夹即可。</span>
+                        </div>
+                    </form>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="project-management.html" class="btn btn-primary">确定</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出重命名-->
+    <div class="modal fade" id="rename" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title">重命名</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body">
+                    <form>
+                        <div class="form-group">
+                            <input type="text" class="form-control" placeholder="输入名称">
+                        </div>
+                    </form>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="project-management.html" class="btn btn-primary">确定</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出删除-->
+    <div class="modal fade" id="del" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title">删除确认</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body">
+                    <h5 class="text-danger">删除 "建筑工程" ?</h5>
+                    <h5 class="text-danger">删除 "XX项目文件夹" 以及它包含的子项?</h5>
+                    <p class="">删除后,你可以在回收站找到它。</p>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="" class="btn btn-danger">删除</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出移动到-->
+    <div class="modal fade" id="moveto" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title">移动到...</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body">
+                  <ul id="treeDemo" class="ztree"></ul>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="" class="btn btn-primary">确定</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--弹出复制到-->
+    <div class="modal fade" id="copyto" data-backdrop="static">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                  <h5 class="modal-title">复制到...</h5>
+                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                  </button>
+                </div>
+                <div class="modal-body">
+                  <ul id="treeDemo2" class="ztree"></ul>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+                    <a href="" class="btn btn-primary">确定</a>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- JS. -->
+    <script src="/lib/jquery/jquery.min.js"></script>
+    <script src="/lib/tether/tether.min.js"></script>
+    <script src="/lib/bootstrap/bootstrap.min.js"></script>
+    <script src="/lib/global.js"></script>
+    <!-- zTree -->
+  	<script type="text/javascript" src="/lib/ztree/jquery.ztree.core.js"></script>
+  	<script type="text/javascript" src="/lib/ztree/jquery.ztree.excheck.js"></script>
+    <SCRIPT type="text/javascript">
+  		<!--
+  		var setting = {	};
+
+  		var zNodes =[
+  			{ name:"父节点1 - 展开", open:true,
+  				children: [
+  					{ name:"父节点11 - 折叠",
+  						children: [
+  							{ name:"叶子节点111"},
+  							{ name:"叶子节点112"},
+  							{ name:"叶子节点113"},
+  							{ name:"叶子节点114"}
+  						]},
+  					{ name:"父节点12 - 折叠",
+  						children: [
+  							{ name:"叶子节点121"},
+  							{ name:"叶子节点122"},
+  							{ name:"叶子节点123"},
+  							{ name:"叶子节点124"}
+  						]},
+  					{ name:"父节点13 - 没有子节点", isParent:true}
+  				]},
+  			{ name:"父节点2 - 折叠",
+  				children: [
+  					{ name:"父节点21 - 展开", open:true,
+  						children: [
+  							{ name:"叶子节点211"},
+  							{ name:"叶子节点212"},
+  							{ name:"叶子节点213"},
+  							{ name:"叶子节点214"}
+  						]},
+  					{ name:"父节点22 - 折叠",
+  						children: [
+  							{ name:"叶子节点221"},
+  							{ name:"叶子节点222"},
+  							{ name:"叶子节点223"},
+  							{ name:"叶子节点224"}
+  						]},
+  					{ name:"父节点23 - 折叠",
+  						children: [
+  							{ name:"叶子节点231"},
+  							{ name:"叶子节点232"},
+  							{ name:"叶子节点233"},
+  							{ name:"叶子节点234"}
+  						]}
+  				]},
+  			{ name:"父节点3 - 没有子节点", isParent:true}
+
+  		];
+
+  		$(document).ready(function(){
+  			$.fn.zTree.init($("#treeDemo"), setting, zNodes);
+  		});
+  		//-->
+  	</SCRIPT>
+    <SCRIPT type="text/javascript">
+  		<!--
+  		var setting = {	};
+
+  		var zNodes =[
+  			{ name:"父节点1 - 展开", open:true,
+  				children: [
+  					{ name:"父节点11 - 折叠",
+  						children: [
+  							{ name:"叶子节点111"},
+  							{ name:"叶子节点112"},
+  							{ name:"叶子节点113"},
+  							{ name:"叶子节点114"}
+  						]},
+  					{ name:"父节点12 - 折叠",
+  						children: [
+  							{ name:"叶子节点121"},
+  							{ name:"叶子节点122"},
+  							{ name:"叶子节点123"},
+  							{ name:"叶子节点124"}
+  						]},
+  					{ name:"父节点13 - 没有子节点", isParent:true}
+  				]},
+  			{ name:"父节点2 - 折叠",
+  				children: [
+  					{ name:"父节点21 - 展开", open:true,
+  						children: [
+  							{ name:"叶子节点211"},
+  							{ name:"叶子节点212"},
+  							{ name:"叶子节点213"},
+  							{ name:"叶子节点214"}
+  						]},
+  					{ name:"父节点22 - 折叠",
+  						children: [
+  							{ name:"叶子节点221"},
+  							{ name:"叶子节点222"},
+  							{ name:"叶子节点223"},
+  							{ name:"叶子节点224"}
+  						]},
+  					{ name:"父节点23 - 折叠",
+  						children: [
+  							{ name:"叶子节点231"},
+  							{ name:"叶子节点232"},
+  							{ name:"叶子节点233"},
+  							{ name:"叶子节点234"}
+  						]}
+  				]},
+  			{ name:"父节点3 - 没有子节点", isParent:true}
+
+  		];
+
+  		$(document).ready(function(){
+  			$.fn.zTree.init($("#treeDemo2"), setting, zNodes);
+  		});
+  		//-->
+  	</SCRIPT>
+</body>
+<script type="text/javascript">
+    autoFlashHeight();
+</script>
+
+<script>
+    $(document).ready(function () {
+        $("#logout").click(function () {
+            location.href = '/logout';
+        });
+    });
+</script>
+
+
+
+</html>