Browse Source

管理信息保存以及个栏目配置

caipin 4 years ago
parent
commit
10cbef9db0

+ 2 - 1
conf/project.go

@@ -15,7 +15,8 @@ const SysTimeformShort = "2006-01-02"
 var SysTimeLocation, _ = time.LoadLocation("Asia/Chongqing")
 
 // ObjSalesign 签名密钥
-var SignSecret = []byte("cpcm005687gokaif")
+// var SignSecret = []byte("cpcm005687gokaif")
+var SignSecret = "cpcm005687gokaif"
 
 // cookie中的加密验证密钥
 var CookieSecret = "cm_login_account"

+ 6 - 0
dao/project_account_dao.go

@@ -48,3 +48,9 @@ func (d *ProjectAccountDao) Get(id int) *models.CmProjectAccount {
 		return data
 	}
 }
+
+//更新
+func (d *ProjectAccountDao) Update(data *models.CmProjectAccount, columns []string) error {
+	_, err := d.engine.Id(data.Id).MustCols(columns...).Update(data)
+	return err
+}

+ 53 - 20
services/project_account_service.go

@@ -7,9 +7,14 @@
 package services
 
 import (
-	"errors"
+	"log"
+	"strconv"
 
+	"github.com/kataras/iris/v12"
+	"go.mod/comm"
+	"go.mod/conf"
 	"go.mod/models"
+	"go.mod/web/viewmodels"
 
 	"go.mod/dao"
 	"go.mod/datasource"
@@ -17,7 +22,9 @@ import (
 
 //定义项目用户Service接口
 type ProjectAccountService interface {
-	ValidManager(code string, account string, password string) error
+	ValidRule(ctx iris.Context) (viewmodels.ProjectAccount, error)
+	Save(viewAccount viewmodels.ProjectAccount, in int) error
+	Get(id int) *viewmodels.ProjectAccount
 }
 
 //返回service操作类
@@ -32,28 +39,54 @@ func NewProjectAccountService() ProjectAccountService {
 	}
 }
 
-//实现getall接口
-func (s *projectAccountService) ValidManager(code string, account string, password string) error {
-
-	//先拿到项目信息
-
-	//获得项目用户
-
-	// 验证密码
-
-	// 生成数字证书
+// 获得一个项目用户
+func (s *projectAccountService) Get(id int) *viewmodels.ProjectAccount {
+	modelsAccount := s.dao.Get(id)
+	viewAccountData := viewmodels.ProjectAccount{}
+	if modelsAccount.Id == 0 {
+		viewAccountData.Id = "0"
+		return &viewAccountData
+	}
+	aesId := comm.AesEncrypt(strconv.Itoa(modelsAccount.Id), conf.SignSecret)
+	viewAccountData.Id = aesId
+	viewAccountData.Account = modelsAccount.Account
+	viewAccountData.Name = modelsAccount.Name
+	viewAccountData.Company = modelsAccount.Company
+	viewAccountData.Role = modelsAccount.Role
+	viewAccountData.Mobile = modelsAccount.Mobile
+	viewAccountData.Telephone = modelsAccount.Telephone
+	return &viewAccountData
+}
 
-	// 加密用户标识
+// 用户规则验证
+func (s *projectAccountService) ValidRule(ctx iris.Context) (viewmodels.ProjectAccount, error) {
+	accountVaild := viewmodels.ProjectAccount{}
+	err := ctx.ReadForm(&accountVaild)
+	if err != nil {
+		log.Println("account-ValidRule-ReadForm转换异常, error=", err)
+		return accountVaild, err
+	}
 
-	// 设置cookie
+	err = accountVaild.Validate()
+	if err != nil {
+		log.Println("用户验证, error=", err)
+		return accountVaild, err
+	}
 
-	// TODO--分布式会话--后续需要在加入
+	return accountVaild, nil
+}
 
-	projectAccountInfo := models.CmProjectAccount{}
-	//projectAccountInfo.ProjectId = data.Id
-	projectAccountInfo.Account = account
+// 保存用户信息
+func (s *projectAccountService) Save(viewAccount viewmodels.ProjectAccount, id int) error {
 
-	s.dao.GetOne(&projectAccountInfo)
+	account := models.CmProjectAccount{}
+	account.Id = id
+	account.Name = viewAccount.Name
+	account.Company = viewAccount.Company
+	account.Role = viewAccount.Role
+	account.Mobile = viewAccount.Mobile
+	account.Telephone = viewAccount.Telephone
+	err := s.dao.Update(&account, []string{"Name", "Company", "Role", "Mobile", "Telephone"})
 
-	return errors.New("test custom err")
+	return err
 }

+ 79 - 0
web/controllers/account.go

@@ -0,0 +1,79 @@
+/*
+ * @description:用户相关
+ * @Author: CP
+ * @Date: 2020-08-27 17:03:34
+ * @FilePath: \construction_management\web\controllers\account.go
+ */
+package controllers
+
+import (
+	"github.com/kataras/iris/v12"
+	"github.com/kataras/iris/v12/mvc"
+	"go.mod/comm"
+	"go.mod/services"
+	"go.mod/web/utils"
+)
+
+type AccountController struct {
+	//框架-web应用上下文环境
+	Ctx iris.Context
+	// 需要用的service
+	ServiceProjectAccount services.ProjectAccountService
+}
+
+// 用户首页
+func (c *AccountController) Get() mvc.Result {
+	ErrMsg := c.Ctx.URLParam("errMsg")
+	Success := c.Ctx.URLParam("success")
+
+	return mvc.View{
+		Name: "account/index.html",
+		Data: iris.Map{
+			"Title":   "账号资料",
+			"Channel": "account",
+			"Action":  "/account/save",
+			"Menu":    "account",
+			"ErrMsg":  ErrMsg,
+			"Success": Success,
+		},
+		Layout: "account/layout.html",
+	}
+}
+
+// 保存项目管理员信息
+func (c *AccountController) PostSave() {
+	ErrMsg := ""
+	// 验证内容
+	AccountData, err := c.ServiceProjectAccount.ValidRule(c.Ctx)
+	if err != nil {
+		ErrMsg = utils.FormValidError(err)
+		comm.Redirect(c.Ctx.ResponseWriter(), "/account?errMsg="+ErrMsg)
+	} else {
+		// 获得更新用户ID
+		id, err := c.Ctx.Values().GetInt("accountId")
+		if err != nil {
+			comm.Redirect(c.Ctx.ResponseWriter(), "/account?errMsg="+ErrMsg)
+		}
+		// 保存信息
+		err = c.ServiceProjectAccount.Save(AccountData, id)
+		if err != nil {
+			comm.Redirect(c.Ctx.ResponseWriter(), "/account?errMsg="+ErrMsg)
+		}
+		comm.Redirect(c.Ctx.ResponseWriter(), "/account?success=修改成功")
+	}
+}
+
+// 账号安全
+func (c *AccountController) GetSafe() mvc.Result {
+
+	return mvc.View{
+		Name: "account/safe.html",
+		Data: iris.Map{
+			"Title":   "账号安全",
+			"Channel": "account",
+			"Action":  "/account",
+			"Menu":    "accountSafe",
+		},
+		Layout: "account/layout.html",
+	}
+}

+ 0 - 27
web/controllers/account_login.go

@@ -1,27 +0,0 @@
-/*
- * @description:登录相关
- * @Author: CP
- * @Date: 2020-08-27 17:03:34
- * @FilePath: \construction_management\web\controllers\account_login.go
- */
-package controllers
-
-// import (
-// 	"github.com/kataras/iris/v12"
-// 	"github.com/kataras/iris/v12/mvc"
-// )
-
-// // 登陆
-// func (c *AccountController) GetLogin() mvc.Result {
-
-// 	return mvc.View{
-// 		Name: "login/login.html",
-// 		Data: iris.Map{
-// 			"Title":   "用户登录",
-// 			"Channel": "login",
-// 			// "Datalist": datalist,
-// 			// "Total":    total,
-// 		},
-// 		Layout: "login/layout.html",
-// 	}
-// }

+ 32 - 0
web/controllers/bidsection.go

@@ -0,0 +1,32 @@
+/*
+ * @description:标段相关
+ * @Author: CP
+ * @Date: 2020-09-07 17:28:36
+ * @FilePath: \construction_management\web\controllers\bidsection.go
+ */
+package controllers
+
+import (
+	"github.com/kataras/iris/v12"
+	"github.com/kataras/iris/v12/mvc"
+)
+
+type BidsectionController struct {
+	//框架-web应用上下文环境
+	Ctx iris.Context
+	// 需要用的service
+	//ServiceProject services.ProjectService
+}
+
+// 标段首页
+func (c *BidsectionController) Get() mvc.Result {
+	return mvc.View{
+		Name: "bidsection/index.html",
+		Data: iris.Map{
+			"Title":   "标段",
+			"Channel": "bidsection",
+			"Action":  "bidsection",
+		},
+		Layout: "bidsection/layout.html",
+	}
+}

+ 25 - 0
web/controllers/bidsection_manage.go

@@ -0,0 +1,25 @@
+/*
+ * @description:项目-标段管理相关
+ * @Author: CP
+ * @Date: 2020-09-04 17:21:29
+ * @FilePath: \construction_management\web\controllers\bidsection_manage.go
+ */
+package controllers
+
+import (
+	"github.com/kataras/iris/v12"
+	"github.com/kataras/iris/v12/mvc"
+)
+
+// 标段管理
+func (c *BidsectionController) GetManage() mvc.Result {
+	return mvc.View{
+		Name: "bidsection/manage/index.html",
+		Data: iris.Map{
+			"Title":   "标段管理",
+			"Channel": "project",
+			"Action":  "bidsection/manage",
+		},
+		Layout: "bidsection/layout.html",
+	}
+}

+ 1 - 1
web/controllers/login.go

@@ -60,7 +60,7 @@ func (c *LoginController) PostLogin() mvc.Result {
 			ErrMsg = fmt.Sprintf("%s", err)
 		} else {
 			//验证通关
-			comm.Redirect(c.Ctx.ResponseWriter(), "/project")
+			comm.Redirect(c.Ctx.ResponseWriter(), "/bidsection")
 		}
 	}
 	return mvc.View{

+ 4 - 3
web/controllers/project.go

@@ -13,14 +13,15 @@ type ProjectController struct {
 	ServiceProject services.ProjectService
 }
 
-// 默认首页
+// 项目信息设置
 func (c *ProjectController) Get() mvc.Result {
 	return mvc.View{
-		Name: "project/dashboard.html",
+		Name: "project/index.html",
 		Data: iris.Map{
-			"Title":   "待办事项",
+			"Title":   "项目信息",
 			"Channel": "project",
 			"Action":  "project",
+			"Menu":    "projectInfo",
 		},
 		Layout: "project/layout.html",
 	}

+ 20 - 0
web/controllers/project_account.go

@@ -0,0 +1,20 @@
+package controllers
+
+import (
+	"github.com/kataras/iris/v12"
+	"github.com/kataras/iris/v12/mvc"
+)
+
+// 项目-账号设置
+func (c *ProjectController) GetAccountSetting() mvc.Result {
+	return mvc.View{
+		Name: "project/account/setting.html",
+		Data: iris.Map{
+			"Title":   "账号设置",
+			"Channel": "project",
+			"Action":  "project",
+			"Menu":    "accountSetting",
+		},
+		Layout: "project/layout.html",
+	}
+}

+ 6 - 10
web/controllers/project_bidsection.go

@@ -1,9 +1,3 @@
-/*
- * @description:项目-标段管理相关
- * @Author: CP
- * @Date: 2020-09-04 17:21:29
- * @FilePath: \construction_management\web\controllers\project_bidsection.go
- */
 package controllers
 
 import (
@@ -11,13 +5,15 @@ import (
 	"github.com/kataras/iris/v12/mvc"
 )
 
-func (c *ProjectController) GetBidsection() mvc.Result {
+// 项目-标段管理
+func (c *ProjectController) GetBidsectionManage() mvc.Result {
 	return mvc.View{
-		Name: "project/bidsection.html",
+		Name: "project/bidsection/manage.html",
 		Data: iris.Map{
 			"Title":   "标段管理",
-			"Channel": "bidsection",
-			"Action":  "project/bidsection",
+			"Channel": "project",
+			"Action":  "project",
+			"Menu":    "bidsectionManage",
 		},
 		Layout: "project/layout.html",
 	}

+ 30 - 0
web/controllers/todo.go

@@ -0,0 +1,30 @@
+/*
+ * @description:代办事项控制器
+ * @Author: CP
+ * @Date: 2020-09-08 15:18:22
+ * @FilePath: \construction_management\web\controllers\todo.go
+ */
+package controllers
+
+import (
+	"github.com/kataras/iris/v12"
+	"github.com/kataras/iris/v12/mvc"
+)
+
+type TodoController struct {
+	//框架-web应用上下文环境
+	Ctx iris.Context
+}
+
+// 代办首页
+func (c *TodoController) Get() mvc.Result {
+	return mvc.View{
+		Name: "todo/index.html",
+		Data: iris.Map{
+			"Title":   "标段",
+			"Channel": "todo",
+			"Action":  "todolist",
+		},
+		Layout: "todo/layout.html",
+	}
+}

+ 1 - 1
web/middleware/identity/identity.go

@@ -27,7 +27,7 @@ func New(b *bootstrap.Bootstrapper) iris.Handler {
 		// view data if ctx.View or c.Tmpl = "$page.html" will be called next.
 		ctx.ViewData("AppName", b.AppName)
 		ctx.ViewData("AppOwner", b.AppOwner)
-		ctx.Values().Set("csrf.Form", "csrfToken")
+		// ctx.Values().Set("csrf.Form", "csrfToken")
 		//ctx.ViewData("csrf.Form", "csrfToken")
 
 		ctx.Next()

+ 27 - 6
web/middleware/sessions.go

@@ -13,8 +13,7 @@ import (
 	"github.com/kataras/iris/v12"
 	"go.mod/comm"
 	"go.mod/conf"
-	"go.mod/dao"
-	"go.mod/datasource"
+	"go.mod/services"
 )
 
 func SessionsAuth(ctx iris.Context) {
@@ -34,16 +33,38 @@ func SessionsAuth(ctx iris.Context) {
 	digitalToken := comm.CreateSign(conf.CookieSecret + identity)
 
 	// 获得用户信息--TODO 存放redis
-	npaDao := dao.NewProjectAccountDao(datasource.InstanceDbMaster())
+	npaSer := services.NewProjectAccountService()
 	identityId, err := strconv.Atoi(identity)
 	if err != nil {
 		comm.Redirect(ctx.ResponseWriter(), "/login")
 	}
-	accountInfo := npaDao.Get(identityId)
-	if accountInfo.Id == 0 {
+	accountInfo := npaSer.Get(identityId)
+	if accountInfo.Id == "0" {
 		comm.Redirect(ctx.ResponseWriter(), "/login")
 	}
-	ctx.Values().Set("account", accountInfo)
+	ctx.Values().Set("accountId", identity)
+	// 设置viewData
+	ctx.ViewData("Account", accountInfo)
+	// npaDao := dao.NewProjectAccountDao(datasource.InstanceDbMaster())
+	// identityId, err := strconv.Atoi(identity)
+	// if err != nil {
+	// 	comm.Redirect(ctx.ResponseWriter(), "/login")
+	// }
+	// accountInfo := npaDao.Get(identityId)
+	// if accountInfo.Id == 0 {
+	// 	comm.Redirect(ctx.ResponseWriter(), "/login")
+	// }
+	// ctx.Values().Set("accountId", identity)
+
+	// 设置viewData
+	// accountView := viewmodels.ProjectAccount{}
+	// accountView.Account = accountInfo.Account
+	// accountView.Name = accountInfo.Name
+	// accountView.Company = accountInfo.Company
+	// accountView.Role = accountInfo.Role
+	// accountView.Mobile = accountInfo.Mobile
+	// accountView.Telephone = accountInfo.Telephone
+	// ctx.ViewData("Account", accountView)
 
 	// 比对数字证书
 	if digitalToken != params.Get("digitalToken") {

+ 18 - 13
web/routes/routes.go

@@ -14,12 +14,6 @@ import (
 	"go.mod/web/middleware"
 )
 
-// func NewCsrf() iris.Handler {
-// 	protect1 := csrf.Protect([]byte("9AB0F421E53A477C084477AEA06096F5"))
-// 	csrf.Secure(false)
-// 	return protect1
-// }
-
 func Configure(b *bootstrap.Bootstrapper) {
 	//service加载
 	ProjectAccountService := services.NewProjectAccountService()
@@ -38,15 +32,26 @@ func Configure(b *bootstrap.Bootstrapper) {
 	login.Register(LoginService)
 	login.Handle(new(controllers.LoginController))
 
-	//项目相关
+	// todolist相关
+	todo := mvc.New(b.Party("/todolist"))
+	todo.Router.Use(middleware.SessionsAuth)
+	todo.Handle(new(controllers.TodoController))
+
+	//标段相关
+	bidsection := mvc.New(b.Party("/bidsection"))
+	bidsection.Register(ProjectService)
+	bidsection.Router.Use(middleware.SessionsAuth)
+	bidsection.Handle(new(controllers.BidsectionController))
+
+	//用户相关
+	account := mvc.New(b.Party("/account"))
+	account.Register(ProjectAccountService)
+	account.Router.Use(middleware.SessionsAuth)
+	account.Handle(new(controllers.AccountController))
+
+	// 项目相关
 	project := mvc.New(b.Party("/project"))
-	project.Register(ProjectService)
 	project.Router.Use(middleware.SessionsAuth)
 	project.Handle(new(controllers.ProjectController))
-	//项目用户相关
-	//account := mvc.New(b.Party("/account"))
-	//account.Router.Use(middleware.BasicAuth)
-	// account.Register(ManagerService)
-	// account.Handle(new(controllers.AccountController))
 
 }

+ 1 - 1
web/viewmodels/login.go

@@ -1,5 +1,5 @@
 /*
- * @description:视图层models
+ * @description:视图层login models
  * @Author: CP
  * @Date: 2020-09-01 17:43:05
  * @FilePath: \construction_management\web\viewmodels\login.go

+ 45 - 0
web/viewmodels/project_account.go

@@ -0,0 +1,45 @@
+/*
+ * @description: 视图层 用户
+ * @Author: CP
+ * @Date: 2020-09-08 16:27:54
+ * @FilePath: \construction_management\web\viewmodels\project_account.go
+ */
+package viewmodels
+
+import validation "github.com/go-ozzo/ozzo-validation/v3"
+
+type ProjectAccount struct {
+	Id        string `form:"id"`
+	ProjectId int    `form:"projectid"`
+	Account   string `form:"account"`
+	Name      string `form:"name"`
+	Company   string `form:"company"`
+	Role      string `form:"role"`
+	Mobile    string `form:"mobile"`
+	Telephone string `form:"telephone"`
+	// LastLogin    int       `xorm:"comment('最后登录时间') INT(11)"`
+	// AccountGroup     int       `xorm:"comment('所属账号组') TINYINT(4)"`
+	// EnterpriseId     int       `xorm:"comment('企业id') INT(11)"`
+	// CreateTime   int       `xorm:"comment('创建时间') INT(11)"`
+	// IsAdmin      int       `xorm:"comment('是否为管理员 1为管理员') TINYINT(1)"`
+	// Enable       int       `xorm:"comment('是否启用 1为启用') TINYINT(1)"`
+	// AuthMobile   string    `xorm:"comment('认证手机') VARCHAR(32)"`
+	// Permission   string    `xorm:"comment('权限') TEXT"`
+	// Cooperation  int       `xorm:"comment('协作') TINYINT(4)"`
+	// LastNotice   time.Time `xorm:"comment('待办事项,通知') DATETIME"`
+	// SignPath     string    `xorm:"comment('电子签名图片地址') VARCHAR(512)"`
+	// SessionToken string    `xorm:"comment('token信息验证') VARCHAR(128)"`
+	// SmsType      string    `xorm:"comment('短信通知类型') TEXT"`
+	// WxType       string    `xorm:"comment('微信通知类型') TEXT"`
+	// Bind         int       `xorm:"comment('是否已绑定定制项目') TINYINT(1)"`
+	// WxOpenid     string    `xorm:"comment('微信绑定openid') VARCHAR(64)"`
+	// WxName       string    `xorm:"comment('微信昵称') VARCHAR(255)"`
+	Csrf string `form:"csrf"`
+}
+
+func (l ProjectAccount) Validate() error {
+	return validation.ValidateStruct(&l,
+		validation.Field(&l.Name, validation.Required.Error("姓名不能为空")),
+		validation.Field(&l.Company, validation.Required.Error("单位不能为空")),
+	)
+}

+ 67 - 0
web/views/account/index.html

@@ -0,0 +1,67 @@
+
+<div class="main-panel">
+  <div class="panel-sidebar">
+    
+        {{ render "account/menu.html" }}
+      
+  </div>
+  <div class="panel-content">
+    <div class="panel-title">
+      <div class="title-main">
+        <h2>账号资料</h2>
+      </div>
+    </div>
+    <div class="content-wrap">
+      <div class="c-body">
+        <div class="sjs-height-0">
+          <div class="row m-0">
+            <div class="col-5 my-3">
+              <!--账号资料-->
+              <form action="{{ .Action }}" method="post" >
+                {{.csrfField}}
+                <div class="form-group">
+                  <label>账号</label>
+                  <input class="form-control form-control-sm" value="{{.Account.Account}}" type="text" readonly>
+                </div>
+                <div class="form-group">
+                  <label>姓名</label>
+                  <input name="name" value="{{.Account.Name}}" class="form-control form-control-sm" placeholder="请输入姓名"  type="text">
+                </div>
+                <div class="form-group">
+                  <label>单位</label>
+                  <input name="company" value="{{.Account.Company}}" class="form-control form-control-sm" placeholder=""  type="text">
+                </div>
+                <div class="form-group">
+                  <label>角色/职称</label>
+                  <input name="role" value="{{.Account.Role}}" class="form-control form-control-sm" placeholder=""  type="text">
+                </div>
+                <div class="form-group">
+                  <label>手机</label>
+                  <input name="mobile" value="{{.Account.Mobile}}" class="form-control form-control-sm"  type="text">
+                </div>
+                <!--绑定了接口不能修改-->
+                <!-- <div class="form-group">
+                  <label>手机</label>
+                  <input class="form-control form-control-sm" value="12345678901" type="text" disabled="">
+                  <small class="form-text text-danger">已绑定云计量,无法修改</small>
+                </div> -->
+                <div class="form-group">
+                  <label>电话</label>
+                  <input name="Telephone" value="{{.Account.Telephone}}" class="form-control form-control-sm"  type="text">
+                </div>
+                <div class="form-group">
+                  {{if ne .Success ""}}
+                    {{.Success}}
+                  {{else if ne .ErrMsg ""}}
+                    {{.ErrMsg}}
+                  {{end}}
+                </div>
+                <button type="submit" class="btn btn-sm btn-primary">确认修改</button>
+              </form>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>

+ 17 - 0
web/views/account/layout.html

@@ -0,0 +1,17 @@
+
+{{ render "head/comm_head.html" }}
+<body>
+	<div class="main">
+    
+    {{ render "head/comm_nav.html" }}
+
+    {{ yield }}
+		
+  </div>
+  {{ part "body" }}
+ 
+  {{ render "head/comm_foot_js.html" }}
+
+</body>
+
+</html>

+ 12 - 0
web/views/account/menu.html

@@ -0,0 +1,12 @@
+
+<div class="sidebar-title">{{.Account.Account}}</div>
+<div class="scrollbar-auto">
+  <div class="nav-box">
+    <ul class="nav-list list-unstyled">
+      <li {{if eq .Menu "account"}} class="active" {{end}}><a href="/account"><span>账号资料</span></a></li>
+      <li {{if eq .Menu "accountSafe"}} class="active" {{end}}><a href="/account/safe"><span>账号安全</span></a></li>
+      <li><a href="javascript:void(0)"><span>帮助中心</span></a></li>
+    </ul>
+  </div>
+</div>
+

+ 77 - 0
web/views/account/safe.html

@@ -0,0 +1,77 @@
+
+<div class="main-panel">
+    <div class="panel-sidebar">
+        {{ render "account/menu.html" }}
+    </div>
+    <div class="panel-content">
+        <div class="panel-title">
+            <div class="title-main">
+                <h2>账号安全</h2>
+            </div>
+        </div>
+        <div class="content-wrap">
+            <div class="c-body">
+                <div class="row m-0">
+                    <div class="col-5 my-3">
+                        <!--账号安全-->
+                        <form>
+                            <div class="form-group">
+                                <label>旧密码</label>
+                                <input class="form-control form-control-sm is-invalid" type="password">
+                                <div class="invalid-feedback">
+                                    密码错误
+                                </div>
+                            </div>
+                            <div class="form-group">
+                                <label>新密码</label>
+                                <input class="form-control form-control-sm" type="password">
+                            </div>
+                            <div class="form-group">
+                                <label>确认新密码</label>
+                                <input class="form-control form-control-sm" type="password">
+                            </div>
+                            <button type="submit" class="btn btn-sm btn-primary">确认修改</button>
+                        </form>
+                    </div>
+                    <div class="col-12 mt-5">
+                        <h4>访问日志</h4>
+                        <table class="table table-hover">
+                            <thead>
+                                <tr>
+                                    <th></th>
+                                    <th>系统</th>
+                                    <th>浏览器</th>
+                                    <th>登录时间</th>
+                                    <th>登录地址</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>1</td>
+                                    <td>Windows NT 10.0 64-bit</td>
+                                    <td>Chrome 55.0.2883.87 m (64-bit)</td>
+                                    <td>2017-01-12 09:09</td>
+                                    <td>广东省珠海市 电信(116.19.86.133)</td>
+                                </tr>
+                                <tr>
+                                    <td>2</td>
+                                    <td>Windows NT 10.0 64-bit</td>
+                                    <td>Chrome 55.0.2883.87 m (64-bit)</td>
+                                    <td>2017-01-12 09:09</td>
+                                    <td>广东省珠海市 电信(116.19.86.133)</td>
+                                </tr>
+                                <tr>
+                                    <td>3</td>
+                                    <td>Windows NT 10.0 64-bit</td>
+                                    <td>Chrome 55.0.2883.87 m (64-bit)</td>
+                                    <td>2017-01-12 09:09</td>
+                                    <td>广东省珠海市 电信(116.19.86.133)</td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 1 - 1
web/views/project/bidsection.html

@@ -15,7 +15,7 @@
             </div>
           </div>
           <div>
-            <a href="settings-data.html" class="btn btn-sm btn-light text-primary"><i class="fas fa-cog"></i> 标段管理</a>
+            <a href="/bidsection/manage" class="btn btn-sm btn-light text-primary"><i class="fas fa-cog"></i> 标段管理</a>
           </div>
         </div>
       </div>

+ 17 - 0
web/views/bidsection/layout.html

@@ -0,0 +1,17 @@
+
+{{ render "head/comm_head.html" }}
+<body>
+	<div class="main">
+    
+    {{ render "head/comm_nav.html" }}
+
+    {{ yield }}
+		
+  </div>
+  {{ part "body" }}
+ 
+  {{ render "head/comm_foot_js.html" }}
+
+</body>
+
+</html>

+ 270 - 0
web/views/bidsection/manage/index.html

@@ -0,0 +1,270 @@
+<div class="main-panel">
+    <div class="panel-sidebar">
+        <div class="sidebar-title">项目设置</div>
+        <div class="scrollbar-auto">
+            <div class="nav-box">
+                <ul class="nav-list list-unstyled">
+      <li><a href="settings-poj.html"><span>项目信息</span></a></li>
+                    <li><a href="settings-user.html"><span>账号设置</span></a></li>
+      <li class="active"><a href="settings-data.html"><span>标段管理</span></a></li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <div class="panel-content">
+        <div class="panel-title">
+            <div class="title-main  d-flex justify-content-between">
+    <div>
+      项目信息
+    </div>
+    <div>
+        <a href="#add-folder" data-toggle="modal" data-target="#add-folder" class="btn btn-sm btn-primary pull-right"><i class="fas fa-folder"></i> 新建文件夹</a>
+        <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-sm btn-primary pull-right">新建标段</a>
+    </div>
+            </div>
+        </div>
+        <div class="content-wrap">
+            <div class="c-body">
+    <div class="sjs-height-0">
+      <!--没有标段数据-->
+      <div class="jumbotron m-3">
+        <h3 class="display-6">没有标段数据</h3>
+      </div>
+      <div class="m-3">
+      <!--管理标段-->
+      <table class="table table-hover table-bordered">
+        <thead class="text-center">
+          <th>名称</th>
+          <th width="200">成员</th>
+          <th width="200">操作</th>
+        </thead>
+        <tr>
+          <td class="in-1"><span class="fold-switch mr-1" title="展开"><i class="fal fa-plus-square"></i></span><i class="fal fa-folder"></i>&nbsp;文件夹1</td>
+          <td></td>
+          <td></td>
+        </tr>
+        <tr>
+          <td class="in-1"><span class="fold-switch mr-1" title="收起"><i class="fal fa-minus-square"></i></span><i class="fal fa-folder-open"></i>&nbsp;文件夹2</td>
+          <td></td>
+          <td></td>
+        </tr>
+        <tr>
+          <td class="in-2"><span class="fold-switch mr-1" title="收起"><i class="fal fa-minus-square"></i></span><i class="fal fa-folder-open"></i>&nbsp;文件夹2.1</td>
+          <td></td>
+          <td><a href="#move-folder" data-toggle="modal" data-target="#move-folder" class="btn btn-outline-primary btn-sm"><i class="fas fa-exchange-alt fa-rotate-90"></i> 移动</a></td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">├</span><a href="biaoduan-panel.html">WWUJ-1</a></td>
+            <td>3 成员 <a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <button class="btn btn-outline-secondary btn-sm ml-1 disabled" data-toggle="tooltip" data-placement="top" title="请先移除所有数据">删除</button>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">└</span><a href="biaoduan-panel.html">WWUJ-4</a></td>
+            <td>3 成员 <a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <button class="btn btn-outline-secondary btn-sm ml-1 disabled" data-toggle="tooltip" data-placement="top" title="请先移除所有数据">删除</button>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-2"><span class="fold-switch mr-1" title="收起"><i class="fal fa-minus-square"></i></span><i class="fal fa-folder-open"></i>&nbsp;文件夹2.2</td>
+          <td></td>
+          <td><a href="#move-folder" data-toggle="modal" data-target="#move-folder" class="btn btn-outline-primary btn-sm"><i class="fas fa-exchange-alt fa-rotate-90"></i> 移动</a></td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">├</span><a href="#">WWUJ-2</a></td>
+            <td>1 成员 <a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <button class="btn btn-outline-secondary btn-sm ml-1 disabled" data-toggle="tooltip" data-placement="top" title="请先移除所有数据">删除</button>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">└</span><a href="biaoduan-panel.html">WWUJ-3</a></td>
+            <td><a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <a href="#del-bd" data-toggle="modal" data-target="#del-bd" class="btn btn-outline-danger btn-sm ml-1">删除</a>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">└</span><a href="biaoduan-panel.html">WWUJ-5</a></td>
+            <td><a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <a href="#del-bd2" data-toggle="modal" data-target="#del-bd2" class="btn btn-outline-danger btn-sm ml-1">删除</a>
+            </td>
+        </tr>
+      </table>
+      </div>
+    </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+{{ define "bidsection/manage/index-body"}}
+<!--弹出添加标段-->
+<div class="modal fade" id="add-folder" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">新建文件夹</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹父级</label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹父级" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+              <div class="form-group">
+                <label>文件夹名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="输入文件夹名称" type="text">
+              </div>
+              <div class="form-group">
+                <label>文件夹名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm is-invalid"  placeholder="输入文件夹名称" type="text" value="名称超过100个字">
+                <div class="invalid-feedback">
+                  名称超过30个字,请缩减名称。
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-sm btn-primary">确定添加</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--弹出添加标段-->
+<div class="modal fade" id="add-bd" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">添加新标段</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹目录" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="输入标段名称" type="text">
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm is-invalid"  placeholder="输入标段名称" type="text" value="名称超过100个字">
+                <div class="invalid-feedback">
+                  名称超过100个字,请缩减名称。
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-sm btn-primary">确定添加</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--弹出编辑标段-->
+<div class="modal fade" id="add-bd" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">编辑标段</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹父级<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹父级录" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="输入标段名称" type="text">
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm is-invalid"  placeholder="输入标段名称" type="text" value="名称超过100个字">
+                <div class="invalid-feedback">
+                  名称超过100个字,请缩减名称。
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-primary">确定修改</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--删除标段-->
+<div class="modal fade" id="del-bd" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">删除标段</h5>
+            </div>
+            <div class="modal-body">
+              <h6>确认删除「WWUJ-3」?</h6>
+              <h6>删除后,数据无法恢复,请谨慎操作。</h6>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-sm btn-danger">确定删除</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--弹出移动文件夹-->
+<div class="modal fade" id="move-folder" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">移动文件夹</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹父级<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹父级录" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-primary">确定修改</button>
+            </div>
+        </div>
+    </div>
+</div>
+{{ end }}

+ 11 - 9
web/views/head/comm_nav.html

@@ -3,30 +3,32 @@
   <div class="nav-top">
     <ul class="nav nav-pills nav-stacked bg-nav">
       <!--系统维护信息-->
-      <li class="bg-danger"><a class="text-white maintain-icon"><i class="fa fa-wrench "></i><span
+      <li class="bg-danger" style="display: none;"><a class="text-white maintain-icon"><i class="fa fa-wrench "></i><span
             class="bg-danger maintain-info">系统将于 2019年3月10日 14:09 开始停机维护,持续30分钟。</span></a></li>
       <!--系统维护信息 end-->
-      <li class="active">
-        <a href="/project" data-toggle="tooltip" data-placement="right" title="" data-original-title="代办事项"><i
+      <li {{if eq .Channel "todo"}}class="active"{{end}} >
+        <a href="/todolist" data-toggle="tooltip" data-placement="right" title="" data-original-title="待办事项"><i
             class="fas fa-chalkboard"></i><span>待办</span></a>
       </li>
-      <li>
-        <a href="/project/bidsection" data-toggle="tooltip" data-placement="right" title="" data-original-title="标段管理"><i
+      <li {{if eq .Channel "bidsection"}}class="active"{{end}}>
+        <a href="/bidsection" data-toggle="tooltip" data-placement="right" title="" data-original-title="标段"><i
             class="fas fa-list-ul"></i><span>项目</span></a>
       </li>
     </ul>
   </div>
   <div class="nav-bottom mt-auto">
     <ul class="nav nav-pills nav-stacked bg-nav">
-      <li><a href="settings-poj.html" data-toggle="tooltip" data-placement="right" title=""
-          data-original-title="项目设置"><i class="fa fa-cogs"></i><span>项目设置</span></a></li>
+      <li {{if eq .Channel "project"}}class="active"{{end}}>
+        <a href="/project" data-toggle="tooltip" data-placement="right" title=""
+          data-original-title="项目设置"><i class="fa fa-cogs"></i><span>项目设置</span></a>
+        </li>
     </ul>
     <div class="dropright my-1 ml-1">
       <a href="" class="btn btn-sm btn-light" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false">
-        张三
+        {{.Account.Account}}
       </a>
       <div class="dropdown-menu">
-        <a href="account-info.html" class="dropdown-item">账号资料</a>
+        <a href="/account" class="dropdown-item">账号资料</a>
         <a href="#" class="dropdown-item">账号安全</a>
         <div class="dropdown-divider"></div>
         <a href="http://doc.zhzdwd.com/docs/measure" target="_blank" class="dropdown-item">用户手册</a>

+ 104 - 0
web/views/project/account/setting.html

@@ -0,0 +1,104 @@
+<div class="main-panel">
+    <div class="panel-sidebar">
+      <div class="sidebar-title">项目设置</div>
+      <div class="scrollbar-auto">
+        <div class="nav-box">
+            {{ render "project/menu.html" }}
+        </div>
+      </div>
+    </div>
+    <div class="panel-content">
+      <div class="panel-title">
+        <div class="title-main  d-flex justify-content-between">
+          <div>
+            <div class="d-inline-block mr-2">
+              <div class="input-group input-group-sm ml-2">
+                <input type="text" class="form-control m-0" placeholder="账号/姓名/单位/手机 搜索" aria-label="账号/姓名/单位/手机 搜索"
+                  aria-describedby="button-addon2">
+                <div class="input-group-append">
+                  <button class="btn btn-outline-primary" type="button" id="button-addon2"><i
+                      class="fa fa-search"></i></button>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div>
+            <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm">添加账号</a>
+          </div>
+        </div>
+      </div>
+      <div class="content-wrap">
+        <div class="c-body">
+          <div class="sjs-height-0">
+            <p class="text-center text-danger h5">搜索“张三”结果 0</p>
+            <table class="table table-hover table-bordered table-sm">
+              <thead>
+                <tr>
+                  <th>账号</th>
+                  <th>姓名</th>
+                  <th>单位</th>
+                  <th>职位</th>
+                  <th width="300">手机</th>
+                  <th>电话</th>
+                  <th class="text-center">操作</th>
+                </tr>
+              </thead>
+              <tbody>
+                <!--管理员-->
+                <tr>
+                  <td>chente <span data-toggle="tooltip" data-placement="bottom" title="" data-original-title="管理员"><i
+                        class="fa fa-user-circle-o"></i></span></td>
+                  <td>陈特</td>
+                  <td>珠海纵横创新软件有限公司</td>
+                  <td>产品经理</td>
+                  <td>15810000007(已绑定计量支付)</td>
+                  <td>0765-3850891</td>
+                  <td class="text-center"><a href="#edit-user" data-toggle="modal" data-target="#edit-user"
+                      class="btn btn-sm btn-outline-primary">编辑</a>
+                    <a href="#edit-user" data-toggle="modal" data-target="#stop-user"
+                      class="btn btn-sm btn-outline-danger">停用</a></td>
+                </tr>
+                <!--管理员-->
+                <tr class="text-danger" title="账号被停用">
+                  <td>chente2</td>
+                  <td>陈特2</td>
+                  <td>珠海纵横创新软件有限公司</td>
+                  <td>产品经理</td>
+                  <td>15810000007</td>
+                  <td>0765-3850891</td>
+                  <td class="text-center"><a href="#edit-user" data-toggle="modal" data-target="#edit-user"
+                      class="btn btn-sm btn-outline-primary">编辑</a>
+                    <a href="#edit-user" data-toggle="modal" data-target="#open-user"
+                      class="btn btn-sm btn-outline-success">启用</a></td>
+                </tr>
+                <tr>
+                  <td>chente3</td>
+                  <td>陈特3</td>
+                  <td>珠海纵横创新软件有限公司</td>
+                  <td>产品经理</td>
+                  <td>15810000007</td>
+                  <td>0765-3850891</td>
+                  <td class="text-center"><a href="#edit-user" data-toggle="modal" data-target="#edit-user"
+                      class="btn btn-sm btn-outline-primary">编辑</a>
+                    <a href="#edit-user" data-toggle="modal" data-target="#edit-user"
+                      class="btn btn-sm btn-outline-danger">停用</a></td>
+                </tr>
+                <tr>
+                  <td>chente4</td>
+                  <td>陈特4</td>
+                  <td>珠海纵横创新软件有限公司</td>
+                  <td>产品经理</td>
+                  <td>15810000007</td>
+                  <td>0765-3850891</td>
+                  <td class="text-center"><a href="#edit-user" data-toggle="modal" data-target="#edit-user"
+                      class="btn btn-sm btn-outline-primary">编辑</a>
+                    <a href="#edit-user" data-toggle="modal" data-target="#stop-user"
+                      class="btn btn-sm btn-outline-danger">停用</a></td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>

+ 266 - 0
web/views/project/bidsection/manage.html

@@ -0,0 +1,266 @@
+<div class="main-panel">
+    <div class="panel-sidebar">
+        <div class="sidebar-title">项目设置</div>
+        <div class="scrollbar-auto">
+            <div class="nav-box">
+              {{ render "project/menu.html" }}
+            </div>
+        </div>
+    </div>
+    <div class="panel-content">
+        <div class="panel-title">
+            <div class="title-main  d-flex justify-content-between">
+    <div>
+      项目信息
+    </div>
+    <div>
+        <a href="#add-folder" data-toggle="modal" data-target="#add-folder" class="btn btn-sm btn-primary pull-right"><i class="fas fa-folder"></i> 新建文件夹</a>
+        <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-sm btn-primary pull-right">新建标段</a>
+    </div>
+            </div>
+        </div>
+        <div class="content-wrap">
+            <div class="c-body">
+    <div class="sjs-height-0">
+      <!--没有标段数据-->
+      <div class="jumbotron m-3">
+        <h3 class="display-6">没有标段数据</h3>
+      </div>
+      <div class="m-3">
+      <!--管理标段-->
+      <table class="table table-hover table-bordered">
+        <thead class="text-center">
+          <th>名称</th>
+          <th width="200">成员</th>
+          <th width="200">操作</th>
+        </thead>
+        <tr>
+          <td class="in-1"><span class="fold-switch mr-1" title="展开"><i class="fal fa-plus-square"></i></span><i class="fal fa-folder"></i>&nbsp;文件夹1</td>
+          <td></td>
+          <td></td>
+        </tr>
+        <tr>
+          <td class="in-1"><span class="fold-switch mr-1" title="收起"><i class="fal fa-minus-square"></i></span><i class="fal fa-folder-open"></i>&nbsp;文件夹2</td>
+          <td></td>
+          <td></td>
+        </tr>
+        <tr>
+          <td class="in-2"><span class="fold-switch mr-1" title="收起"><i class="fal fa-minus-square"></i></span><i class="fal fa-folder-open"></i>&nbsp;文件夹2.1</td>
+          <td></td>
+          <td><a href="#move-folder" data-toggle="modal" data-target="#move-folder" class="btn btn-outline-primary btn-sm"><i class="fas fa-exchange-alt fa-rotate-90"></i> 移动</a></td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">├</span><a href="biaoduan-panel.html">WWUJ-1</a></td>
+            <td>3 成员 <a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <button class="btn btn-outline-secondary btn-sm ml-1 disabled" data-toggle="tooltip" data-placement="top" title="请先移除所有数据">删除</button>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">└</span><a href="biaoduan-panel.html">WWUJ-4</a></td>
+            <td>3 成员 <a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <button class="btn btn-outline-secondary btn-sm ml-1 disabled" data-toggle="tooltip" data-placement="top" title="请先移除所有数据">删除</button>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-2"><span class="fold-switch mr-1" title="收起"><i class="fal fa-minus-square"></i></span><i class="fal fa-folder-open"></i>&nbsp;文件夹2.2</td>
+          <td></td>
+          <td><a href="#move-folder" data-toggle="modal" data-target="#move-folder" class="btn btn-outline-primary btn-sm"><i class="fas fa-exchange-alt fa-rotate-90"></i> 移动</a></td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">├</span><a href="#">WWUJ-2</a></td>
+            <td>1 成员 <a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <button class="btn btn-outline-secondary btn-sm ml-1 disabled" data-toggle="tooltip" data-placement="top" title="请先移除所有数据">删除</button>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">└</span><a href="biaoduan-panel.html">WWUJ-3</a></td>
+            <td><a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <a href="#del-bd" data-toggle="modal" data-target="#del-bd" class="btn btn-outline-danger btn-sm ml-1">删除</a>
+            </td>
+        </tr>
+        <tr>
+          <td class="in-3"><span class="text-muted mr-2">└</span><a href="biaoduan-panel.html">WWUJ-5</a></td>
+            <td><a href="settings-data-member.html" class="btn btn-outline-primary btn-sm">成员管理</a></td>
+            <td>
+              <a href="#add-bd" data-toggle="modal" data-target="#add-bd" class="btn btn-outline-primary btn-sm">编辑</a>
+              <a href="#del-bd2" data-toggle="modal" data-target="#del-bd2" class="btn btn-outline-danger btn-sm ml-1">删除</a>
+            </td>
+        </tr>
+      </table>
+      </div>
+    </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+{{ define "bidsection/manage/index-body"}}
+<!--弹出添加标段-->
+<div class="modal fade" id="add-folder" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">新建文件夹</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹父级</label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹父级" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+              <div class="form-group">
+                <label>文件夹名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="输入文件夹名称" type="text">
+              </div>
+              <div class="form-group">
+                <label>文件夹名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm is-invalid"  placeholder="输入文件夹名称" type="text" value="名称超过100个字">
+                <div class="invalid-feedback">
+                  名称超过30个字,请缩减名称。
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-sm btn-primary">确定添加</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--弹出添加标段-->
+<div class="modal fade" id="add-bd" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">添加新标段</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹目录" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="输入标段名称" type="text">
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm is-invalid"  placeholder="输入标段名称" type="text" value="名称超过100个字">
+                <div class="invalid-feedback">
+                  名称超过100个字,请缩减名称。
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-sm btn-primary">确定添加</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--弹出编辑标段-->
+<div class="modal fade" id="add-bd" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">编辑标段</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹父级<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹父级录" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="输入标段名称" type="text">
+              </div>
+              <div class="form-group">
+                <label>标段名称<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm is-invalid"  placeholder="输入标段名称" type="text" value="名称超过100个字">
+                <div class="invalid-feedback">
+                  名称超过100个字,请缩减名称。
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-primary">确定修改</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--删除标段-->
+<div class="modal fade" id="del-bd" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">删除标段</h5>
+            </div>
+            <div class="modal-body">
+              <h6>确认删除「WWUJ-3」?</h6>
+              <h6>删除后,数据无法恢复,请谨慎操作。</h6>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-sm btn-danger">确定删除</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--弹出移动文件夹-->
+<div class="modal fade" id="move-folder" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">移动文件夹</h5>
+            </div>
+            <div class="modal-body">
+              <div class="form-group">
+                <label>文件夹父级<b class="text-danger">*</b></label>
+                <input class="form-control form-control-sm"  placeholder="选择文件夹父级录" type="text"  data-toggle="dropdown" >
+                <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <div class="modal-height-300">
+                  <form class="p-2">
+                       <ul id="treeDemo3" class="ztree"></ul>
+                  </form>
+                    </div>
+                </div>
+              </div>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
+              <button type="button" class="btn btn-primary">确定修改</button>
+            </div>
+        </div>
+    </div>
+</div>
+{{ end }}

+ 47 - 0
web/views/project/index.html

@@ -0,0 +1,47 @@
+<div class="main-panel">
+    <div class="panel-sidebar">
+      <div class="sidebar-title">项目设置</div>
+      <div class="scrollbar-auto">
+        <div class="nav-box">
+            {{ render "project/menu.html" }}
+        </div>
+      </div>
+    </div>
+    <div class="panel-content">
+      <div class="panel-title">
+        <div class="title-main">
+          <h2 class="d-flex">项目信息
+            <div class="ml-auto"><a href="#" class="btn btn-primary btn-sm">保存修改</a></div>
+          </h2>
+        </div>
+      </div>
+      <div class="content-wrap">
+        <div class="c-body">
+          <div class="sjs-height-0">
+            <div class="row m-0 mt-3">
+              <div class="col-5">
+                <form>
+                  <div class="form-group">
+                    <label>项目编号</label>
+                    <input class="form-control form-control-sm" value="170002" type="text" readonly>
+                  </div>
+                  <div class="form-group">
+                    <label>项目名称</label>
+                    <input class="form-control form-control-sm" placeholder="请输入项目名称" value="项目A" type="text">
+                  </div>
+                  <div class="form-group">
+                    <label>管理员</label>
+                    <input class="form-control form-control-sm" value="158****4017(陈特)" type="text" readonly>
+                  </div>
+                  <div class="form-group">
+                    <label>创建时间</label>
+                    <input class="form-control form-control-sm" value="2017-06-05" type="text" readonly>
+                  </div>
+                </form>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>

+ 6 - 0
web/views/project/menu.html

@@ -0,0 +1,6 @@
+
+<ul class="nav-list list-unstyled">
+    <li {{if eq .Menu "projectInfo"}} class="active" {{end}}><a href="/project"><span>项目信息</span></a></li>
+    <li {{if eq .Menu "accountSetting"}} class="active" {{end}}><a href="/project/account/setting"><span>账号设置</span></a></li>
+    <li {{if eq .Menu "bidsectionManage"}} class="active" {{end}}><a href="/project/bidsection/manage"><span>标段管理</span></a></li>
+  </ul>

+ 1 - 92
web/views/project/dashboard.html

@@ -1,4 +1,3 @@
-
 <div class="main-panel">
   <div class="panel-content">
     <div class="panel-title fluid">
@@ -125,94 +124,4 @@
       </div>
     </div>
   </div>
-</div>
-
-{{ define "project/dashboard-body"}}
-<!--弹出所有项目通知-->
-<div class="modal fade" id="view-msg" data-backdrop="static">
-  <div class="modal-dialog modal-lg" 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">
-            <div class="row">
-              <div class="col-12">
-                <div class="modal-height-500 scroll-y">
-                   <h4 class="text-center">通知标题</h4>
-                   <p class="text-center text-muted">
-                     张三 发布于 2019-02-02 
-                   <!--有编辑权用户-->
-                     <a href="" class="btn btn-sm btn-outline-primary">编辑</a> <a href="" class="btn btn-sm btn-outline-danger">删除</a>
-                   </p>
-                   <!--内容开始-->
-                   <div class="msg-content border-top-1 pt-3">
-                     <!--内容-->
-                      <p>内容</p>
-                      <p style="height:500px">内容</p>
-                      <p>内容</p>
-                     <!--内容-->
-                   </div>
-                </div>
-              </div>
-            </div>
-          </div>
-      </div>
-  </div>
-</div>
-<!--版本-->
-<div class="modal fade" id="version" data-backdrop="static">
-<div class="modal-dialog" role="document">
-  <div class="modal-content">
-      <div class="modal-header">
-          <h5 class="modal-title">升级说明</h5>
-      </div>
-      <div class="modal-body">
-        <div class="modal-height-500" style="overflow-y:auto">
-          <div class="card">
-            <div class="card-body">
-              <h4>v1.2.0</h4>
-              <p class="card-text">2020-01-02</p>
-              <p class="card-text">版本内容</p>
-            </div>
-          </div>
-          <div class="card mt-2">
-            <div class="card-body">
-              <h4>v1.1.0</h4>
-              <p class="card-text">2020-01-02</p>
-              <p class="card-text">版本内容</p>
-            </div>
-          </div>
-          <div class="card mt-2">
-            <div class="card-body">
-              <h4>v1.0.0</h4>
-              <p class="card-text">2020-01-02</p>
-              <p class="card-text">版本内容</p>
-            </div>
-          </div>
-          <div class="card mt-2">
-            <div class="card-body">
-              <h4>v0.9.0</h4>
-              <p class="card-text">2020-01-02</p>
-              <p class="card-text">版本内容</p>
-            </div>
-          </div>
-          <div class="card mt-2">
-            <div class="card-body">
-              <h4>v0.8.0</h4>
-              <p class="card-text">2020-01-02</p>
-              <p class="card-text">版本内容</p>
-            </div>
-          </div>
-        </div>
-      </div>
-    <div class="modal-footer">
-      <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
-    </div>
-  </div>
-</div>
-</div>
-{{ end }}
+</div>

+ 17 - 0
web/views/todo/layout.html

@@ -0,0 +1,17 @@
+
+{{ render "head/comm_head.html" }}
+<body>
+	<div class="main">
+    
+    {{ render "head/comm_nav.html" }}
+
+    {{ yield }}
+		
+  </div>
+  {{ part "body" }}
+ 
+  {{ render "head/comm_foot_js.html" }}
+
+</body>
+
+</html>