ソースを参照

Merge remote-tracking branch 'origin/master' into master

zangkai 5 年 前
コミット
a3afb49d41
32 ファイル変更656 行追加776 行削除
  1. 43 30
      backend/src/dashoo.cn/modi_webapi/app/api/class/class.go
  2. 4 1
      backend/src/dashoo.cn/modi_webapi/app/api/course/detail/detail.go
  3. 90 1
      backend/src/dashoo.cn/modi_webapi/app/api/duty/detail.go
  4. 14 8
      backend/src/dashoo.cn/modi_webapi/app/api/information/information.go
  5. 21 22
      backend/src/dashoo.cn/modi_webapi/app/api/instrument/instrument.go
  6. 5 3
      backend/src/dashoo.cn/modi_webapi/app/api/personnel/personnel.go
  7. 7 1
      backend/src/dashoo.cn/modi_webapi/app/api/system/item/item.go
  8. 9 2
      backend/src/dashoo.cn/modi_webapi/app/api/system/itemdetail/itemdetail.go
  9. 3 3
      backend/src/dashoo.cn/modi_webapi/app/api/system/menu/menu.go
  10. 21 19
      backend/src/dashoo.cn/modi_webapi/app/model/duty/detail/detail_entity.go
  11. 1 1
      backend/src/dashoo.cn/modi_webapi/app/service/course/detail/detail.go
  12. 39 0
      backend/src/dashoo.cn/modi_webapi/app/service/duty/detail.go
  13. 8 0
      backend/src/dashoo.cn/modi_webapi/app/service/personnel/personnel.go
  14. 11 11
      frontend_web/src/api/class.js
  15. 1 1
      frontend_web/src/api/course.js
  16. 32 32
      frontend_web/src/api/course/detail.js
  17. 12 4
      frontend_web/src/api/duty.js
  18. 12 12
      frontend_web/src/api/information.js
  19. 19 20
      frontend_web/src/api/instrument.js
  20. 1 1
      frontend_web/src/router/index.js
  21. 1 1
      frontend_web/src/store/modules/d2admin/modules/account.js
  22. 5 30
      frontend_web/src/views/class/components/classadd.vue
  23. 18 13
      frontend_web/src/views/class/components/classedit.vue
  24. 10 3
      frontend_web/src/views/course/index.vue
  25. 1 1
      frontend_web/src/views/demo/page1/index.vue
  26. 160 95
      frontend_web/src/views/duty/detail/index.vue
  27. 20 10
      frontend_web/src/views/duty/index.vue
  28. 1 6
      frontend_web/src/views/instrument/instrumenrunrecord/index.vue
  29. 37 214
      frontend_web/src/views/personnel/components/personneladd.vue
  30. 15 83
      frontend_web/src/views/personnel/components/personneledit.vue
  31. 3 135
      frontend_web/src/views/personnel/index.vue
  32. 32 13
      frontend_web/src/views/setuser/passwordset.vue

+ 43 - 30
backend/src/dashoo.cn/modi_webapi/app/api/class/class.go

@@ -1,9 +1,9 @@
 package class
 
 import (
+	"dashoo.cn/micro_libary/response"
 	"dashoo.cn/modi_webapi/app/service/class"
 	"dashoo.cn/modi_webapi/library/request"
-	"dashoo.cn/modi_webapi/library/response"
 	"fmt"
 	"github.com/gogf/gf/net/ghttp"
 	"github.com/gogf/gf/os/gtime"
@@ -12,21 +12,22 @@ import (
 
 type Controller struct {
 }
+
 //  获取班级管理列表
-func (c *Controller) GetAllClass(r *ghttp.Request){
+func (c *Controller) GetAllClass(r *ghttp.Request) {
 	page := request.GetPageInfo(r)
 	where := ""
 
 	if year := r.GetInt("Year"); year != 0 {
-		if where == ""{
+		if where == "" {
 			where = fmt.Sprintf(" Year = %v", year)
 		} else {
 			where += fmt.Sprintf(" AND Year = %v", year)
 		}
 	}
 
-	if name := r.GetString("Name"); name != ""{
-		if where == ""{
+	if name := r.GetString("Name"); name != "" {
+		if where == "" {
 			where = fmt.Sprintf(" Name LIKE '%%%v%%'", name)
 		} else {
 			where += fmt.Sprintf(" AND Name LIKE '%%%v%%'", name)
@@ -34,13 +35,13 @@ func (c *Controller) GetAllClass(r *ghttp.Request){
 	}
 
 	var result []class.Entity
-	if err := class.GetAllClass(page, where, &result); err != nil{
-		if err.Error() == "sql: no rows in result set"{
+	if err := class.GetAllClass(page, where, &result); err != nil {
+		if err.Error() == "sql: no rows in result set" {
 			response.Json(r, 0, "")
 			return
 		}
 		response.Json(r, -1, err.Error())
-	}else {
+	} else {
 		count, err1 := class.FindClassCount(where)
 		if err1 != nil {
 			response.Json(r, -1, err1.Error())
@@ -50,22 +51,22 @@ func (c *Controller) GetAllClass(r *ghttp.Request){
 			records.Current = page.Current
 			records.Total = count
 			records.Records = result
-			response.Json(r, 0, "", records)
+			response.Json(r, 0, "ok", records)
 		}
 	}
 }
 
 //  添加一条班级信息
-func (c *Controller) AddClass(r *ghttp.Request){
+func (c *Controller) AddClass(r *ghttp.Request) {
 	Class := new(class.Entity)
 	if err := r.Parse(Class); err != nil {
 		// 数据验证错误
 		if v, ok := err.(*gvalid.Error); ok {
-			response.Json(r, 1, v.FirstString())
+			response.Json(r, -1, v.FirstString())
 			r.ExitAll()
 		}
 		// 其他错误
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 		r.ExitAll()
 	}
 	realName := r.GetParamVar("realname").String()
@@ -75,43 +76,51 @@ func (c *Controller) AddClass(r *ghttp.Request){
 	Class.UpdatedTime = currentTime
 	Class.UpdatedBy = realName
 
-	if result,err := class.Insert(Class); err != nil {
-		response.Json(r, 1, err.Error())
+	if result, err := class.Insert(Class); err != nil {
+		response.Json(r, -1, err.Error())
 	} else {
 		var records response.PagedRecords
 		id, _ := result.LastInsertId()
 		Class.Id = int(id)
 		records.Records = Class
-		response.Json(r, 0, "", records)
+		response.Json(r, 0, "ok", records)
 	}
 }
+
 //  获取一条班级信息
-func (c *Controller) GetOneClass(r *ghttp.Request){
+func (c *Controller) GetOneClass(r *ghttp.Request) {
 	id := r.GetInt("id")
+	if id == 0 {
+		response.Json(r, -1, "id不能为空")
+	}
 	if result, err := class.FindOne(id); err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 		r.ExitAll()
-	}else {
+	} else {
 		var records response.PagedRecords
 		records.Records = result
-		response.Json(r, 0, "", records)
+		response.Json(r, 0, "ok", records)
 	}
 
 }
 
 // 修改一条班级信息
-func (c *Controller) UpdateClass(r *ghttp.Request){
+func (c *Controller) UpdateClass(r *ghttp.Request) {
 	Class := new(class.Entity)
+
 	if err := r.Parse(Class); err != nil {
 		// 数据验证错误
 		if v, ok := err.(*gvalid.Error); ok {
-			response.Json(r, 1, v.FirstString())
+			response.Json(r, -1, v.FirstString())
 			r.ExitAll()
 		}
 		// 其他错误
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 		r.ExitAll()
 	}
+	if Class.Id == 0 {
+		response.Json(r, -1, "Id不能为空")
+	}
 
 	realName := r.GetParamVar("realname").String()
 	currentTime := gtime.Now()
@@ -119,21 +128,25 @@ func (c *Controller) UpdateClass(r *ghttp.Request){
 	Class.UpdatedTime = currentTime
 	Class.UpdatedBy = realName
 
-	if _,err := class.Replace(Class); err != nil {
-		response.Json(r, 1, err.Error())
+	if _, err := class.Replace(Class); err != nil {
+		response.Json(r, -1, err.Error())
 	} else {
 		var records response.PagedRecords
 		records.Records = Class
-		response.Json(r, 0, "", records)
+		response.Json(r, 0, "ok", records)
 	}
 }
- //   删除一条班级信息
-func (c *Controller) DeleteClass(r *ghttp.Request){
+
+//   删除一条班级信息
+func (c *Controller) DeleteClass(r *ghttp.Request) {
 	id := r.GetInt("id")
-	if _,err := class.Delete(fmt.Sprintf("Id=%v", id)); err != nil{
-		response.Json(r, 1, err.Error())
+	if id == 0 {
+		response.Json(r, -1, "id不能为空")
+	}
+	if _, err := class.Delete(fmt.Sprintf("Id=%v", id)); err != nil {
+		response.Json(r, -1, err.Error())
 		r.ExitAll()
 	} else {
-		response.Json(r, 0, "该记录已删除!")
+		response.Json(r, 0, "记录已删除!")
 	}
 }

+ 4 - 1
backend/src/dashoo.cn/modi_webapi/app/api/course/detail/detail.go

@@ -67,7 +67,10 @@ func (c CourseDetailController) Save(r *ghttp.Request) {
 	if err := r.Parse(&entity); err != nil {
 		response.Json(r, -1, err.Error())
 	}
-
+	courseId := entity.CourseId
+	if courseId == 0 {
+		response.Json(r, -1, "课程id不能为空")
+	}
 	// 初始化课程详情service
 	service, err := detailService.NewCourseDetailService(tenant)
 	if err != nil {

+ 90 - 1
backend/src/dashoo.cn/modi_webapi/app/api/duty/detail.go

@@ -1,12 +1,13 @@
 package duty
 
 import (
+	"dashoo.cn/micro_libary/response"
 	"dashoo.cn/modi_webapi/app/common"
 	"dashoo.cn/modi_webapi/app/model/duty/detail"
 	detailService "dashoo.cn/modi_webapi/app/service/duty"
 	"dashoo.cn/modi_webapi/library/request"
-	"dashoo.cn/modi_webapi/library/response"
 	"github.com/gogf/gf/net/ghttp"
+	"github.com/gogf/gf/util/gvalid"
 )
 
 // 值周详情控制器
@@ -154,3 +155,91 @@ func (c *DetailController) DeleteDetail(r *ghttp.Request) {
 	}
 
 }
+
+// 根据父级id查询
+func (c *DetailController) GetDetailByDutyId(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 初始化service
+	service, err := detailService.NewDetailService(tenant)
+	if err != nil {
+		response.Json(r, -1, err.Error())
+	}
+	DutyId := r.GetInt("DutyId")
+	if result, err := service.GetDetailByDutyId(DutyId); err != nil {
+		response.Json(r, 1, err.Error())
+	} else {
+		response.Json(r, 0, "ok", result)
+	}
+}
+
+// 批量添加
+func (c *DetailController) BatchAdd(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 获取操作人
+	realName := r.GetParamVar("realname").String()
+	// 初始化service
+	service, err := detailService.NewDetailService(tenant)
+	if err != nil {
+		response.Json(r, -1, err.Error())
+	}
+
+	detail := new(detail.ListEntity)
+	if err := r.Parse(detail); err != nil {
+		// 数据验证错误
+		if v, ok := err.(*gvalid.Error); ok {
+			response.Json(r, 1, v.FirstString())
+			r.ExitAll()
+		}
+		// 其他错误
+		response.Json(r, 1, err.Error())
+		r.ExitAll()
+	}
+	if id, err := service.Adds(detail, realName); err != nil {
+		response.Json(r, -1, err.Error())
+	} else {
+		response.Json(r, 0, "ok", id)
+	}
+}
+
+// 批量保存 先删除再新增
+func (c *DetailController) Saves(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 初始化service
+	service, err := detailService.NewDetailService(tenant)
+	if err != nil {
+		response.Json(r, -1, err.Error())
+	}
+	delUpdReq := new(common.DeleteUpdReq)
+	// 获取操作人
+	realName := r.GetParamVar("realname").String()
+	delUpdReq.UpdatedBy = realName
+	DutyId := r.GetInt("DutyId")
+	if DutyId == 0 {
+		response.Json(r, 1, "父级id不能为空")
+	}
+	// 先删除
+	if err := service.DeleteByDutyId(DutyId, delUpdReq); err != nil {
+		response.Json(r, 1, err.Error())
+	}
+
+	// 新增
+	detail := new(detail.ListEntity)
+	if err := r.Parse(detail); err != nil {
+		// 数据验证错误
+		if v, ok := err.(*gvalid.Error); ok {
+			response.Json(r, 1, v.FirstString())
+			r.ExitAll()
+		}
+		// 其他错误
+		response.Json(r, 1, err.Error())
+		r.ExitAll()
+	}
+	if id, err := service.Adds(detail, realName); err != nil {
+		response.Json(r, -1, err.Error())
+	} else {
+		response.Json(r, 0, "ok", id)
+	}
+}

+ 14 - 8
backend/src/dashoo.cn/modi_webapi/app/api/information/information.go

@@ -25,20 +25,20 @@ func (c *Controller) Save(r *ghttp.Request) {
 	// 初始化学生service
 	servcie, err := service.NewInformationService(tenant)
 	if err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 	}
 
 	// 判断是新增还是删除,获取的id为空新增,不为空则更新
 	if addOrUpdateReq.Id > 0 {
 		if newStudent, err := servcie.Update(addOrUpdateReq); err != nil {
-			response.Json(r, 1, err.Error())
+			response.Json(r, -1, err.Error())
 		} else {
 			response.Json(r, 0, "更新成功", newStudent)
 		}
 	} else {
 		addOrUpdateReq.Id = 0
 		if newId, err := servcie.Add(addOrUpdateReq); err != nil {
-			response.Json(r, 1, err.Error())
+			response.Json(r, -1, err.Error())
 		} else {
 			response.Json(r, 0, "新建成功", newId)
 		}
@@ -52,15 +52,18 @@ func (c *Controller) DeleteById(r *ghttp.Request) {
 	tenant := r.Header.Get("Tenant")
 	id := r.GetInt("id")
 	glog.Info(id)
+	if id == 0 {
+		response.Json(r, -1, "id不能为空")
+	}
 
 	// 初始化学生service
 	servcie, err := service.NewInformationService(tenant)
 	if err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 	}
 
 	if err := servcie.Delete(id); err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 	} else {
 		response.Json(r, 0, "删除成功")
 	}
@@ -73,14 +76,17 @@ func (c *Controller) GetDetailById(r *ghttp.Request) {
 	// 学生id
 	id := r.GetInt("id")
 	glog.Info(id)
+	if id == 0 {
+		response.Json(r, -1, "id不能为空")
+	}
 	// 初始化学生service
 	servcie, err := service.NewInformationService(tenant)
 	if err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 	}
 	// 调用service方法
 	if information, err := servcie.GetByID(id); err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 	} else {
 		response.Json(r, 0, "ok", information)
 	}
@@ -94,7 +100,7 @@ func (c *Controller) GetPageList(r *ghttp.Request) {
 	// 初始化学生service
 	servcie, err := service.NewInformationService(tenant)
 	if err != nil {
-		response.Json(r, 1, err.Error())
+		response.Json(r, -1, err.Error())
 	}
 	// 分页查询信息列表
 	var selectPageReq information.SelectPageReq

+ 21 - 22
backend/src/dashoo.cn/modi_webapi/app/api/instrument/instrument.go

@@ -1,9 +1,9 @@
 package instrument
 
 import (
+	"dashoo.cn/micro_libary/response"
 	"dashoo.cn/modi_webapi/app/service/instrument"
 	"dashoo.cn/modi_webapi/library/request"
-	"dashoo.cn/modi_webapi/library/response"
 	"fmt"
 	"github.com/gogf/gf/net/ghttp"
 	"github.com/gogf/gf/os/gtime"
@@ -13,34 +13,34 @@ import (
 type Controller struct {
 }
 
-func (c *Controller) GetAllInstrument(r *ghttp.Request){
+func (c *Controller) GetAllInstrument(r *ghttp.Request) {
 	page := request.GetPageInfo(r)
 	where := ""
 
-	if productway := r.GetString("ProductWay"); productway != ""{
-		if where == ""{
+	if productway := r.GetString("ProductWay"); productway != "" {
+		if where == "" {
 			where = fmt.Sprintf(" ProductWay = %v", productway)
 		} else {
 			where += fmt.Sprintf(" AND ProductWay = %v", productway)
 		}
 	}
 
-	if name := r.GetString("ProductName"); name != ""{
-		if where == ""{
-			where = fmt.Sprintf(" ProductName LIKE '%%%v%%'", name)
+	if name := r.GetString("Name"); name != "" {
+		if where == "" {
+			where = fmt.Sprintf(" Name LIKE '%%%v%%'", name)
 		} else {
-			where += fmt.Sprintf(" AND ProductName LIKE '%%%v%%'", name)
+			where += fmt.Sprintf(" AND Name LIKE '%%%v%%'", name)
 		}
 	}
 
 	var result []instrument.Entity
-	if err := instrument.GetAllInstrument(page, where, &result); err != nil{
-		if err.Error() == "sql: no rows in result set"{
+	if err := instrument.GetAllInstrument(page, where, &result); err != nil {
+		if err.Error() == "sql: no rows in result set" {
 			response.Json(r, 0, "")
 			return
 		}
 		response.Json(r, -1, err.Error())
-	}else {
+	} else {
 		count, err1 := instrument.FindInstrumentCount(where)
 		if err1 != nil {
 			response.Json(r, -1, err1.Error())
@@ -50,18 +50,17 @@ func (c *Controller) GetAllInstrument(r *ghttp.Request){
 			records.Current = page.Current
 			records.Total = count
 			records.Records = result
-			response.Json(r, 0, "", records)
+			response.Json(r, 0, "ok", records)
 		}
 	}
 }
 
-
-func (c *Controller) GetOneInstrument(r *ghttp.Request){
+func (c *Controller) GetOneInstrument(r *ghttp.Request) {
 	id := r.GetInt("id")
 	if result, err := instrument.FindOne(id); err != nil {
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
-	}else {
+	} else {
 		var records response.PagedRecords
 		records.Records = result
 		response.Json(r, 0, "", records)
@@ -69,9 +68,9 @@ func (c *Controller) GetOneInstrument(r *ghttp.Request){
 
 }
 
-func (c *Controller) AddInstrument(r *ghttp.Request){
+func (c *Controller) AddInstrument(r *ghttp.Request) {
 	Instrument := new(instrument.Entity)
-	fmt.Println("---Instrument---",Instrument)
+	fmt.Println("---Instrument---", Instrument)
 	if err := r.Parse(Instrument); err != nil {
 		// 数据验证错误
 		if v, ok := err.(*gvalid.Error); ok {
@@ -95,7 +94,7 @@ func (c *Controller) AddInstrument(r *ghttp.Request){
 	Instrument.ModifiedBy = realName
 	Instrument.ModifiedUserId = userId
 
-	if result,err := instrument.Insert(Instrument); err != nil {
+	if result, err := instrument.Insert(Instrument); err != nil {
 		response.Json(r, 1, err.Error())
 	} else {
 		var records response.PagedRecords
@@ -106,7 +105,7 @@ func (c *Controller) AddInstrument(r *ghttp.Request){
 	}
 }
 
-func (c *Controller) UpdateInstrument(r *ghttp.Request){
+func (c *Controller) UpdateInstrument(r *ghttp.Request) {
 	Instrument := new(instrument.Entity)
 	if err := r.Parse(Instrument); err != nil {
 		// 数据验证错误
@@ -127,7 +126,7 @@ func (c *Controller) UpdateInstrument(r *ghttp.Request){
 	Instrument.ModifiedBy = realName
 	Instrument.ModifiedUserId = userId
 
-	if _,err := instrument.Replace(Instrument); err != nil {
+	if _, err := instrument.Replace(Instrument); err != nil {
 		response.Json(r, 1, err.Error())
 	} else {
 		var records response.PagedRecords
@@ -138,9 +137,9 @@ func (c *Controller) UpdateInstrument(r *ghttp.Request){
 	}
 }
 
-func (c *Controller) DeleteInstrument(r *ghttp.Request){
+func (c *Controller) DeleteInstrument(r *ghttp.Request) {
 	id := r.GetInt("id")
-	if _,err := instrument.Delete(fmt.Sprintf("Id=%v", id)); err != nil{
+	if _, err := instrument.Delete(fmt.Sprintf("Id=%v", id)); err != nil {
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
 	} else {

+ 5 - 3
backend/src/dashoo.cn/modi_webapi/app/api/personnel/personnel.go

@@ -17,8 +17,6 @@ func (c *Controller) GetAllPersonnel(r *ghttp.Request){
 	page := request.GetPageInfo(r)
 	where := ""
 
-
-
 	if name := r.GetString("Name"); name != ""{
 		if where == ""{
 			where = fmt.Sprintf(" PersonnelName LIKE '%%%v%%'", name)
@@ -76,7 +74,11 @@ func (c *Controller) AddPersonnel(r *ghttp.Request){
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
 	}
-
+	// 查询code是否存在
+	info, _ := personnel.GetPersonnelByCode(Personnel.PersonneCode)
+	if info != nil {
+		response.Json(r, 1, "人员编号已存在")
+	}
 	realName := r.GetParamVar("realname").String()
 	userId := r.GetParamVar("userid").Int()
 	currentTime := gtime.Now()

+ 7 - 1
backend/src/dashoo.cn/modi_webapi/app/api/system/item/item.go

@@ -28,6 +28,9 @@ func (c *ItemController) GetDetailById(r *ghttp.Request) {
 	// 字典分类id
 	itemId := r.GetInt64("id")
 	glog.Info(itemId)
+	if itemId == 0 {
+		response.Json(r, -1, "id不能为空")
+	}
 	rsp, err := ItemService.GetEntityById(context.TODO(), &protoItem.IdReq{
 		Tenant: tenant,
 		Id:     itemId,
@@ -38,7 +41,7 @@ func (c *ItemController) GetDetailById(r *ghttp.Request) {
 	} else {
 		commonmsg := rsp.CommonMsg
 		if commonmsg.Code == 0 {
-			response.Json(r, 0, "", rsp.Entity)
+			response.Json(r, 0, "ok", rsp.Entity)
 		} else {
 			response.Json(r, -1, commonmsg.Msg)
 		}
@@ -80,6 +83,9 @@ func (c *ItemController) UpdateItem(r *ghttp.Request) {
 	if err := r.Parse(&UpdateReq); err != nil {
 		response.Json(r, -1, err.Error())
 	}
+	if UpdateReq.Id == 0 {
+		response.Json(r, -1, "Id不能为空")
+	}
 	glog.Info(UpdateReq)
 	// 调用服务层保存字典分类接口
 	rsp, err := ItemService.UpdateById(context.TODO(), &protoItem.UpdateReq{

+ 9 - 2
backend/src/dashoo.cn/modi_webapi/app/api/system/itemdetail/itemdetail.go

@@ -28,6 +28,9 @@ func (c *ItemDetailController) GetDetailById(r *ghttp.Request) {
 	// 字典id
 	ItemDetailId := r.GetInt64("id")
 	glog.Info(ItemDetailId)
+	if ItemDetailId == 0 {
+		response.Json(r, -1, "id不能为空")
+	}
 	rsp, err := ItemDetailService.GetEntityById(context.TODO(), &protoItemDetail.IdReq{
 		Tenant: tenant,
 		Id:     ItemDetailId,
@@ -38,7 +41,7 @@ func (c *ItemDetailController) GetDetailById(r *ghttp.Request) {
 	} else {
 		commonmsg := rsp.CommonMsg
 		if commonmsg.Code == 0 {
-			response.Json(r, 0, "", rsp.Entity)
+			response.Json(r, 0, "ok", rsp.Entity)
 		} else {
 			response.Json(r, -1, commonmsg.Msg)
 		}
@@ -81,6 +84,10 @@ func (c *ItemDetailController) UpdateItemDetail(r *ghttp.Request) {
 		response.Json(r, -1, err.Error())
 	}
 	glog.Info(UpdateReq)
+	if UpdateReq.Id == 0 {
+		response.Json(r, -1, "Id不能为空")
+	}
+
 	// 调用服务层保存字典接口
 	rsp, err := ItemDetailService.UpdateById(context.TODO(), &protoItemDetail.UpdateReq{
 		Tenant: tenant,
@@ -159,7 +166,7 @@ func (c *ItemDetailController) GetPageList(r *ghttp.Request) {
 		records.Size = page.Size
 		records.Total = int(rsp.RecordCount)
 		records.Records = rsp.List
-		response.Json(r, 0, "", records)
+		response.Json(r, 0, "ok", records)
 	}
 
 }

+ 3 - 3
backend/src/dashoo.cn/modi_webapi/app/api/system/menu/menu.go

@@ -34,7 +34,7 @@ func (c *Controller) GetList(r *ghttp.Request) {
 	} else {
 		var records response.PagedRecords
 		records.Records = rsp.List
-		response.Json(r, 0, "", records)
+		response.Json(r, 0, "ok", records)
 	}
 }
 
@@ -67,7 +67,7 @@ func (c *Controller) Add(r *ghttp.Request) {
 	if err != nil {
 		response.Json(r, -1, err.Error())
 	} else {
-		response.Json(r, 0, "", rsp.Data)
+		response.Json(r, 0, "ok", rsp.Data)
 	}
 }
 
@@ -142,6 +142,6 @@ func (c *Controller) GetMenuTree(r *ghttp.Request) {
 	if err != nil {
 		response.Json(r, -1, err.Error())
 	} else {
-		response.Json(r, 0, "", rsp.List)
+		response.Json(r, 0, "ok", rsp.List)
 	}
 }

+ 21 - 19
backend/src/dashoo.cn/modi_webapi/app/model/duty/detail/detail_entity.go

@@ -12,25 +12,27 @@ import (
 
 // Entity is the golang structure for table instrument.
 type Entity struct {
-	Id          int         `xorm:"not null pk autoincr INT(10)"` // id
-	DutyId      int         `xorm:"INT(10)" v:"required"`         // 值周ID
-	Local       string      `xorm:"INT(10)"`                      // 地点
-	Time        int         `xorm:"INT(10)"`                      // 时间段
-	Status      string      `xorm:"VARCHAR(32)"`                  // 状态
-	People      string      `xorm:"VARCHAR(32)"`                  // 值班人员
-	Monday      int         `xorm:"INT(10)"`                      // 周一
-	Tuesday     int         `xorm:"INT(10)"`                      // 周二
-	Wednesday   int         `xorm:"INT(10)"`                      // 周三
-	Thursday    int         `xorm:"INT(10)"`                      // 周四
-	Friday      int         `xorm:"INT(10)"`                      // 周五
-	Saturday    int         `xorm:"INT(10)"`                      // 周六
-	Sunday      int         `xorm:"INT(10)"`                      // 周天
-	CreatedBy   string      `xorm:"VARCHAR(32)"`                  // 创建人
-	CreatedTime *gtime.Time `xorm:"DATETIME created"`             // 创建时间
-	UpdatedBy   string      `xorm:"VARCHAR(32)"`                  // 更新人
-	UpdatedTime *gtime.Time `xorm:"DATETIME updated"`             // 更新时间
-	IsDel       int         `xorm:"INT(11)"`                      // 删除标志
-
+	Id          int         `orm:"Id,primary"  json:"Id"`          // 主键
+	DutyId      int         `orm:"DutyId"      json:"DutyId"`      // 值班ID
+	Local       string      `orm:"Local"       json:"Local"`       // 地点
+	Time        int         `orm:"Time"        json:"Time"`        // 时间段
+	Status      string      `orm:"Status"      json:"Status"`      // 状态
+	People      string      `orm:"People"      json:"People"`      // 值班人员
+	Monday      int         `orm:"Monday"      json:"Monday"`      // 周一
+	Tuesday     int         `orm:"Tuesday"     json:"Tuesday"`     // 周二
+	Wednesday   int         `orm:"Wednesday"   json:"Wednesday"`   // 周三
+	Thursday    int         `orm:"Thursday"    json:"Thursday"`    // 周四
+	Friday      int         `orm:"Friday"      json:"Friday"`      // 周五
+	Saturday    int         `orm:"Saturday"    json:"Saturday"`    // 周六
+	Sunday      int         `orm:"Sunday"      json:"Sunday"`      // 周天
+	CreatedBy   string      `orm:"CreatedBy"   json:"CreatedBy"`   // 创建人
+	CreatedTime *gtime.Time `orm:"CreatedTime" json:"CreatedTime"` // 创建时间
+	UpdatedBy   string      `orm:"UpdatedBy"   json:"UpdatedBy"`   // 更新人
+	UpdatedTime *gtime.Time `orm:"UpdatedTime" json:"UpdatedTime"` // 更新时间
+	IsDel       int         `orm:"IsDel"       json:"IsDel"`       // 删除标志
+}
+type ListEntity struct {
+	DataList []Entity `json:"DataList"`
 }
 
 // OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers

+ 1 - 1
backend/src/dashoo.cn/modi_webapi/app/service/course/detail/detail.go

@@ -39,7 +39,7 @@ func (s CourseDetailService) Update(param *detail.Entity) (*detail.Entity, error
 	}
 	// 设置更新时间
 	param.UpdatedTime = gtime.Now()
-	if _, err = s.SafeModel.Where(param.Id).Update(param); err != nil {
+	if _, err = s.SafeModel.Where("Id", param.Id).Update(param); err != nil {
 		return nil, err
 	}
 	return detail, nil

+ 39 - 0
backend/src/dashoo.cn/modi_webapi/app/service/duty/detail.go

@@ -86,3 +86,42 @@ func (s DetailService) Save(Id int, param *detail.UpdDateReq) (*detail.Entity, e
 	}
 	return detail, nil
 }
+
+// 批量添加
+func (s DetailService) Adds(param *detail.ListEntity, realName string) (id int64, err error) {
+	for index, _ := range param.DataList {
+		param.DataList[index].CreatedTime = gtime.Now()
+		param.DataList[index].CreatedBy = realName
+	}
+	result, err := s.SafeModel.Save(param.DataList)
+	if err != nil {
+		return 0, err
+	} else {
+		id, _ = result.LastInsertId()
+	}
+	return id, nil
+}
+
+// 根据父级ID查询
+func (s DetailService) GetDetailByDutyId(dutyId int) (list []*detail.Entity, err error) {
+	model := s.SafeModel.Where("DutyId", dutyId).Where("isDel", 0)
+	var result []*detail.Entity
+	err = model.Structs(&result)
+	// 如果未查到列表返回空
+	if err == sql.ErrNoRows {
+		return nil, nil
+	}
+	return result, err
+}
+
+// 根据父级id删除
+func (s DetailService) DeleteByDutyId(DutyId int, param *common.DeleteUpdReq) error {
+	//设置更新时间
+	param.UpdatedTime = gtime.Now()
+	// 修改删除状态
+	param.IsDel = 1
+	if _, err := s.SafeModel.Where("DutyId", DutyId).Update(param); err != nil {
+		return err
+	}
+	return nil
+}

+ 8 - 0
backend/src/dashoo.cn/modi_webapi/app/service/personnel/personnel.go

@@ -21,3 +21,11 @@ func GetAllPersonnel(page request.PageInfo, where string, result *[]Entity)(err
 func FindPersonnelCount(where string)(int, error){
 	return recordsTable.Where(where).Count()
 }
+
+// 根据Code查询
+func GetPersonnelByCode(Code string) (res *Entity, err error){
+	model := recordsTable.Where("PersonneCode", Code)
+	var result *Entity
+	err = model.Struct(&result)
+	return result, nil
+}

+ 11 - 11
frontend_web/src/api/class.js

@@ -1,25 +1,25 @@
 import request from '@/plugin/axios'
 
 export default {
-   // 获取班级列表
-   getAllClass(params) {
+  // 获取班级列表
+  getAllClass (params) {
     return request({
       url: process.env.VUE_APP_API + 'class/getallclass',
-      method: 'get', 
+      method: 'get',
       params: params
     })
   },
 
   // 删除班级信息
-   deleteClass(params) {
+  deleteClass (params) {
     return request({
       url: process.env.VUE_APP_API + 'class/deleteclass',
       method: 'delete',
       params: params
     })
   },
-  
-   // 保存班级信息
+
+  // 保存班级信息
   addClass (data) {
     return request({
       url: process.env.VUE_APP_API + 'class/addclass',
@@ -36,12 +36,12 @@ export default {
     })
   },
   // 获取一条班级信息
-  getOneClass(params) {
+  getOneClass (params) {
     return request({
       url: process.env.VUE_APP_API + 'class/getoneclass',
-      method: 'get', 
+      method: 'get',
       params: params
     })
-  },
-  
-}
+  }
+
+}

+ 1 - 1
frontend_web/src/api/course.js

@@ -10,7 +10,7 @@ export default {
     })
   },
 
-  // 新增课程管理信息
+  // 新增、修改课程管理信息
   addCourse (data) {
     return request({
       url: process.env.VUE_APP_API + 'course/addcourse',

+ 32 - 32
frontend_web/src/api/course/detail.js

@@ -1,36 +1,36 @@
 import request from '@/plugin/axios'
 // 课程详情管理
 export default {
-    // 获取课程详情列表
-    getList (params) {
-        return request({
-            url: process.env.VUE_APP_API + 'course/detail/getpagelist',
-            method: 'get',
-            params: params
-        })
-    },
-    // 添加或保存
-    save (formData) {
-        return request({
-            url: process.env.VUE_APP_API + 'course/detail/save',
-            method: 'post',
-            data: formData
-        })
-    },
-    // 获取课程详情
-    getEntityById (params) {
-        return request({
-            url: process.env.VUE_APP_API + 'course/detail/getdetailbyid',
-            method: 'get',
-            params: params
-        })
-    },
-    // 删除课程
-    delete (params) {
-        return request({
-            url: process.env.VUE_APP_API + 'course/detail/deletedetailbyid',
-            method: 'get',
-            params: params
-        })
-    }
+  // 获取课程详情列表
+  getList (params) {
+    return request({
+      url: process.env.VUE_APP_API + 'course/detail/getpagelist',
+      method: 'get',
+      params: params
+    })
+  },
+  // 添加或保存
+  save (formData) {
+    return request({
+      url: process.env.VUE_APP_API + 'course/detail/save',
+      method: 'post',
+      data: formData
+    })
+  },
+  // 获取课程详情
+  getEntityById (params) {
+    return request({
+      url: process.env.VUE_APP_API + 'course/detail/getdetailbyid',
+      method: 'get',
+      params: params
+    })
+  },
+  // 删除课程
+  delete (params) {
+    return request({
+      url: process.env.VUE_APP_API + 'course/detail/deletedetailbyid',
+      method: 'delete',
+      params: params
+    })
+  }
 }

+ 12 - 4
frontend_web/src/api/duty.js

@@ -35,12 +35,20 @@ export default {
       params: params
     })
   },
-   // 保存值班管理子表信息
-   addDetail (data) {
+  // 保存值班管理子表信息
+  Saves (data) {
     return request({
-      url: process.env.VUE_APP_API + 'duty/detail/adddetail',
+      url: process.env.VUE_APP_API + 'duty/detail/saves',
       method: 'post',
       data: data
     })
+  },
+  // 获取一条值班子表信息
+  getDetailByDutyId (params) {
+    return request({
+      url: process.env.VUE_APP_API + 'duty/detail/getdetailbydutyid',
+      method: 'get',
+      params: params
+    })
   }
-}
+}

+ 12 - 12
frontend_web/src/api/information.js

@@ -1,39 +1,39 @@
 import request from '@/plugin/axios'
 
 export default {
-   // 产品方案 ----获取产品信息列表
-  getList(params) {
+  // 产品方案 ----获取产品信息列表
+  getList (params) {
     return request({
       url: process.env.VUE_APP_API + 'information/getpagelist',
-      method: 'get', 
+      method: 'get',
       params: params
     })
   },
 
-  getById(params) {
+  getById (params) {
     return request({
       url: process.env.VUE_APP_API + 'information/getdetailbyid',
-      method: 'get', 
+      method: 'get',
       params: params
     })
   },
 
-  //删除产品信息
-   delete(params) {
+  // 删除产品信息
+  delete (params) {
     return request({
       url: process.env.VUE_APP_API + 'information/deletebyid',
       method: 'delete',
       params: params
     })
   },
-  
-   // 保存产品方案
-  save(data) {
+
+  // 保存产品方案
+  save (data) {
     return request({
       url: process.env.VUE_APP_API + 'information/save',
       method: 'post',
       data: data
     })
   }
-  
-}
+
+}

+ 19 - 20
frontend_web/src/api/instrument.js

@@ -1,33 +1,33 @@
 import request from '@/plugin/axios'
 
 export default {
-   // 产品方案 ----获取产品信息列表
-  getAllInstrument(params) {
+  // 产品方案 ----获取产品信息列表
+  getAllInstrument (params) {
     return request({
       url: process.env.VUE_APP_API + 'instrument/getallinstrument',
-      method: 'get', 
+      method: 'get',
       params: params
     })
   },
 
-  getOneInstrument(params) {
+  getOneInstrument (params) {
     return request({
       url: process.env.VUE_APP_API + 'instrument/getoneinstrument',
-      method: 'get', 
+      method: 'get',
       params: params
     })
   },
 
-  //删除产品信息
-   deleteInstrument(params) {
+  // 删除产品信息
+  deleteInstrument (params) {
     return request({
       url: process.env.VUE_APP_API + 'instrument/deleteinstrument',
       method: 'delete',
       params: params
     })
   },
-  
-   // 保存产品方案
+
+  // 保存产品方案
   AddInstrument (data) {
     return request({
       url: process.env.VUE_APP_API + 'instrument/addinstrument',
@@ -35,7 +35,7 @@ export default {
       data: data
     })
   },
-  
+
   UpdateInstrument (data) {
     return request({
       url: process.env.VUE_APP_API + 'instrument/updateinstrument',
@@ -44,14 +44,13 @@ export default {
     })
   },
 
+  // 产品方案 ----获取产品信息列表
+  getRoomNumber (params) {
+    return request({
+      url: process.env.VUE_APP_API02 + 'instrument/getroomnumber',
+      method: 'get',
+      params: params
+    })
+  }
 
-    // 产品方案 ----获取产品信息列表
-    getRoomNumber(params) {
-      return request({
-        url: process.env.VUE_APP_API02 + 'instrument/getroomnumber',
-        method: 'get', 
-        params: params
-      })
-    },
-  
-}
+}

+ 1 - 1
frontend_web/src/router/index.js

@@ -305,7 +305,7 @@ router.beforeEach(async (to, from, next) => {
       // 没有登录的时候跳转到登录界面
       // 携带上登陆成功之后需要跳转的页面完整路径
       next({
-        name: 'login',
+        name: 'page1',
         query: {
           redirect: to.fullPath
         }

+ 1 - 1
frontend_web/src/store/modules/d2admin/modules/account.js

@@ -73,7 +73,7 @@ export default {
             // await dispatch('d2admin/user/setAuthUser', {}, { root: true })
             // 跳转路由
             router.push({
-              name: 'login'
+              name: 'page1'
             })
           })
           .catch(err => {

+ 5 - 30
frontend_web/src/views/class/components/classadd.vue

@@ -51,8 +51,6 @@
 
 <script>
 import ClassApi from '@/api/class'
-import axios from 'axios'
-import uploadajax from '@/assets/js/uploadajax.js'
 export default {
   name: 'classadd',
   data () {
@@ -69,19 +67,7 @@ export default {
       disabledbarcode: false,
       testlistform: {
         Name: '',
-        Year: '',
-        Classification: '',
-        Responsible: '',
-        State: 1,
-        Remarks: '',
-        CalibrationDeadlineType: 3,
-        CalibrationTime: new Date(),
-        CalibrationDeadline: 1,
-        HeartbeatTime: new Date(),
-        TimeNotification: 0,
-        MaintenCycle: 1,
-        CycleType: 3
-
+        Year: ''
       },
       Advancetime: 0,
       triggerlist: {},
@@ -91,14 +77,14 @@ export default {
 
       rulestestlistform: {
 
-        Code: [{
+        Year: [{
           required: true,
-          message: '请输入设备编码',
+          message: '请选择年级',
           trigger: 'blur'
         }],
         Name: [{
           required: true,
-          message: '请输入设备名称',
+          message: '请输入班级名称',
           trigger: 'blur'
         }]
       }
@@ -128,7 +114,6 @@ export default {
     savedata () {
       ClassApi.addClass(this.testlistform, {})
         .then(res => {
-          // response
           this.$emit('closeAddDialog')
           this.dialogvisible = false
           this.fileList = []
@@ -147,18 +132,8 @@ export default {
     },
     handleCloseAdd () {
       this.$refs['testlistform'].resetFields()
-      // this.$refs['uploader'].clearFiles()
-      this.testlistform.Code = ''
+      this.testlistform.Year = ''
       this.testlistform.Name = ''
-      this.testlistform.Brand = ''
-      this.testlistform.SupplierId = ''
-      this.testlistform.FactoryNum = ''
-      this.testlistform.Responsible = ''
-      this.testlistform.CalibrationDeadline = 1
-      this.testlistform.MaintenCycle = 1
-      this.testlistform.Model = ''
-      this.testlistform.Remarks = ''
-      this.testlistform.Classification = ''
       this.$emit('closeAddDialog')
     },
 

+ 18 - 13
frontend_web/src/views/class/components/classedit.vue

@@ -12,7 +12,7 @@
               class="donorsaddformcss">
         <el-col :span="8">
           <el-form-item label="年级"
-                        prop="testlistform.Year"
+                        prop="Year"
                         label-width="120px">
             <el-select ref="reftube"
                        v-model="testlistform.Year"
@@ -50,8 +50,6 @@
 </template>
 
 <script>
-import axios from 'axios'
-import uploadajax from '@/assets/js/uploadajax.js'
 import ClassApi from '@/api/class'
 
 export default {
@@ -85,25 +83,35 @@ export default {
 
       rulestestlistform: {
 
+        Year: [{
+          required: true,
+          message: '请选择年级',
+          trigger: 'blur'
+        }],
+        Name: [{
+          required: true,
+          message: '请输入班级名称',
+          trigger: 'blur'
+        }]
       }
     }
   },
   created () {
-    var myDate = new Date;
-    var year = myDate.getFullYear();
+    var myDate = new Date()
+    var year = myDate.getFullYear()
     this.initSelectYear(year)
   },
   methods: {
     init () {
-      var myDate = new Date;
-      var year = myDate.getFullYear();//获取当前年
+      var myDate = new Date()
+      var year = myDate.getFullYear()// 获取当前年
       this.initSelectYear(year)
-      this.form.recentYear = year;
+      this.form.recentYear = year
     },
     initSelectYear (year) {
-      this.years = [];
+      this.years = []
       for (let i = 0; i < 30; i++) {
-        this.years.push({ value: (year - i), label: (year - i) + "年" });
+        this.years.push({ value: (year - i), label: (year - i) + '年' })
       }
     },
     yearChange (value) {
@@ -112,7 +120,6 @@ export default {
 
     // 修改班级信息
     savedata () {
-      let _this = this
       ClassApi.updateClass(this.testlistform, {})
         .then(res => {
           this.dialogvisible = false
@@ -123,7 +130,6 @@ export default {
           // handle error
           console.error(err)
         })
-
     },
     getEntity (pid) {
       let _this = this
@@ -147,7 +153,6 @@ export default {
         })
     },
 
-
     // 计算日期
     addDate (date, days) {
       if (days === undefined || days === '') {

+ 10 - 3
frontend_web/src/views/course/index.vue

@@ -71,6 +71,13 @@
                      @click="courseEdit(scope.row.Id)"
                      icon="el-icon-edit"
                      circle></el-button>
+          <el-button size="mini"
+                     type="primary"
+                     title="发布"
+                     @click="publish(scope.row)"
+                     style="margin-left:5px;"
+                     icon="el-icon-s-promotion"
+                     circle></el-button>
           <el-button size="mini"
                      type="danger"
                      title="删除"
@@ -274,8 +281,8 @@ export default {
       this.initDatas()
     },
     publish (course) {
-      course.status = 1
-      CourseApi.save(course)
+      course.Status = 1
+      CourseApi.addCourse(course)
     },
     // 初始化列表数据
     initDatas () {
@@ -283,7 +290,7 @@ export default {
       CourseApi.getPageList(this.search)
         .then(res => {
           this.activities = res.records
-          this.search.page = res
+          this.search.page.total = res.total
         })
     },
     handleSizeChange (val) {

+ 1 - 1
frontend_web/src/views/demo/page1/index.vue

@@ -13,7 +13,7 @@
         </el-col>
         <el-col :span="4">
           <div class="login_bg5x">
-            <a href="/login"
+            <a href="/#/login"
                alt="logo">
               <img src="./image/button.png"
                    class="intelligent1-img" /> </a>

+ 160 - 95
frontend_web/src/views/duty/detail/index.vue

@@ -2,45 +2,30 @@
   <d2-container>
     <template slot="header"
               style="padding: 5px;">
-      <el-form size="mini"
-               :model="dutyDetail"
+      <el-form :model="dutyDetail"
                label-width="100px">
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="学年"
+            <el-form-item label="标题"
                           label-width="120px">
-              <el-select placeholder="请选择学年"
-                         style="width:100%"
-                         v-model="year">
-                <el-option v-for="item in years"
-                           :key="item.value"
-                           :label="item.label"
-                           :value="item.value">
-                </el-option>
-              </el-select>
+              {{dutyDetail.Title}}
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="学"
+            <el-form-item label="学年"
                           label-width="120px">
-              <el-input placeholder="请输入"
-                        style="width:100%"></el-input>
+              {{dutyDetail.Year}}年
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="地点"
-                          prop="Local"
+            <el-form-item label="学期"
                           label-width="120px">
-              <el-checkbox-group v-model="dutyDetail.Local">
-                <el-checkbox v-for="item in LocalList"
-                             :label="item.ItemValue"
-                             :key="item.ItemValue">{{item.ItemName}}</el-checkbox>
-              </el-checkbox-group>
+              {{this.termName}}
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="值班人员"
-                          prop="People"
+                          size="mini"
                           label-width="120px">
               <el-tag @click="personClick(item.ItemValue)"
                       v-for="item in PeopleList"
@@ -50,10 +35,22 @@
 
           </el-col>
           <el-col :span="8">
-            <el-form-item label="课程时间"
-                          prop="Time"
+            <el-form-item label="地点"
+                          size="mini"
                           label-width="120px">
-              <el-checkbox-group v-model="dutyDetail.Time">
+              <el-checkbox-group v-model="selectLocal">
+                <el-checkbox v-for="item in LocalList"
+                             :label="item.ItemValue"
+                             :key="item.ItemValue">{{item.ItemName}}</el-checkbox>
+              </el-checkbox-group>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="8">
+            <el-form-item label="值班时间"
+                          size="mini"
+                          label-width="120px">
+              <el-checkbox-group v-model="selectTime">
                 <el-checkbox v-for="item in TimeList"
                              :label="item.ItemValue"
                              :key="item.ItemValue">{{item.ItemName}}</el-checkbox>
@@ -61,15 +58,17 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-button size="mini"
+                   @click="addList()"
+                   type="success"
+                   style="margin-right:6px">生成表格</el-button>
         <el-button size="mini"
                    type="primary"
                    style="margin-left:10px"
                    @click="addDuytDetail()">保存</el-button>
         <el-button size="mini"
-                   style="margin-right:6px">返回</el-button>
-        <el-button size="mini"
-                   @click="addList()"
-                   style="margin-right:6px">生成表格</el-button>
+                   style="margin-right:6px"
+                   @click="closeWindow()">关闭</el-button>
       </el-form>
     </template>
     <el-table :data="list"
@@ -82,56 +81,70 @@
               @header-click="headclick"
               :cell-class-name="cellBg"
               :key="refresh">
+      <el-table-column label="操作"
+                       width="180px"
+                       align="center"
+                       fixed='right'>
+        <template slot-scope="scope">
+          <el-button size="mini"
+                     type="danger"
+                     title="删除"
+                     @click="deleteRow(scope.row.Id)"
+                     style="margin-left:5px;"
+                     icon="el-icon-delete"
+                     circle></el-button>
+        </template>
+      </el-table-column>
       <el-table-column fit
-                       prop="position"
+                       prop="Local"
                        min-width="160px"
                        label="地点"
                        align="center"
                        show-overflow-tooltip
                        :formatter="formatLocal"></el-table-column>
-      <el-table-column prop="time"
+      <el-table-column prop="Time"
                        label="时间段"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatTime"></el-table-column>
-      <el-table-column prop="mo"
+      <el-table-column prop="Monday"
                        label="周一"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatPerson"></el-table-column>
-      <el-table-column prop="tu"
+      <el-table-column prop="Tuesday"
                        label="周二"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatPerson"></el-table-column>
-      <el-table-column prop="we"
+      <el-table-column prop="Wednesday"
                        label="周三"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatPerson"></el-table-column>
-      <el-table-column prop="th"
+      <el-table-column prop="Thursday"
                        label="周四"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatPerson"></el-table-column>
-      <el-table-column prop="fr"
+      <el-table-column prop="Friday"
                        label="周五"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatPerson"></el-table-column>
-      <el-table-column prop="sa"
+      <el-table-column prop="Saturday"
                        label="周六"
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip
                        :formatter="formatPerson"></el-table-column>
-      <el-table-column prop="su"
+      <el-table-column prop="Sunday"
                        label="周日"
                        align="center"
                        min-width="120px"
@@ -147,15 +160,15 @@ const columnNum = 9
 const fixRowHeadNum = 2
 // todo 欠优化 列属性对应
 const columnProperty = [
-  'position',
-  'time',
-  'mo',
-  'tu',
-  'we',
-  'th',
-  'fr',
-  'sa',
-  'su'
+  'Local',
+  'Time',
+  'Monday',
+  'Tuesday',
+  'Wednesday',
+  'Thursday',
+  'Friday',
+  'Saturday',
+  'Sunday'
 ]
 import DutyApi from '@/api/duty'
 import itemDetailApi from '@/api/sysadmin/itemdetail'
@@ -167,24 +180,16 @@ export default {
       LocalList: [],
       PeopleList: [],
       TimeList: [],
+      termList: [],
+      termName: '',
+      selectLocal: [],
+      selectTime: [],
       dutyDetail: {
-        Id: '',
-        DutyId: '',
-        Local: [],
-        Time: [],
-        Status: '',
-        People: [],
-        Monday: '',
-        Tuesday: '',
-        Wednesday: '',
-        Thursday: '',
-        Friday: '',
-        Saturday: '',
-        Sunday: ''
+        Id: -1,
+        Year: -1,
+        Term: -1,
       },
       year: '',
-      edit: { year: 1 },
-      persons: [],
       years: [],
       dialogvisible: false,
       // 刷新标志 刷新表格样式
@@ -202,36 +207,57 @@ export default {
     this.getLocal()
     this.getPeople()
     this.getDutyTime()
+    let _this = this
+    _this.dutyDetail = _this.$route.query.duty
+    _this.termList = _this.$route.query.term
+    this.getTerm()
+    this.getDetailData()
   },
   methods: {
+    // 获取值班子表表格
+    getDetailData () {
+      let _this = this
+      DutyApi.getDetailByDutyId({
+        DutyId: _this.dutyDetail.Id
+      }).then(res => {
+        if (res.length > 0) {
+          _this.list = res
+        }
+
+      })
+    },
     // 新增表格
     addList () {
-      if (this.dutyDetail.Local.length > 0 && this.dutyDetail.Local.Time) {
+      if (this.selectLocal == 0 && this.selectTime.length == 0) {
         return
       }
       this.list = []
+      this.selectcell = new Map()
       let _this = this
-      this.dutyDetail.Local.forEach(function (value, key) {
-        _this.dutyDetail.Time.forEach(function (valuee, keyy) {
+      this.selectLocal.forEach(function (value, key) {
+        _this.selectTime.forEach(function (valuee, keyy) {
           _this.list.push({
-            position: value,
-            time: valuee,
-            mo: 0,
-            tu: 0,
-            we: 0,
-            th: 0,
-            fr: 0,
-            sa: 0,
-            su: 0
+            DutyId: _this.dutyDetail.Id,
+            Local: value,
+            Time: valuee,
+            Monday: 0,
+            Tuesday: 0,
+            Wednesday: 0,
+            Thursday: 0,
+            Friday: 0,
+            Saturday: 0,
+            Sunday: 0
           })
         })
       })
     },
     // 保存值班子表信息
     addDuytDetail () {
-      if (valid) {
-        DutyApi.addDetail(this.dutyDetail, {})
+      let _this = this
+      if (this.dutyDetail.Id) {
+        DutyApi.Saves({ DataList: this.list, DutyId: this.dutyDetail.Id })
           .then(res => {
+
           })
           .catch(err => {
             // handle error
@@ -242,12 +268,26 @@ export default {
         return false
       }
     },
+    // 删除一行
+    deleteRow () {
+      let val = this.selectcell
+      if (val) {
+        val.forEach((val, index) => {
+          this.list.forEach((v, i) => {
+            if (val.index === v.index) {
+              this.list.splice(i, 1)
+            }
+          })
+        })
+      }
+
+    },
     // 获取字典表地点
     getLocal () {
+      let _this = this
       itemDetailApi.getItemDetailByItemCode({ ItemCode: 'Local' })
         .then(res => {
-          this.LocalList = res
-
+          _this.LocalList = res
         })
         .catch(err => {
           console.error(err)
@@ -255,9 +295,10 @@ export default {
     },
     // 获取字典表值班人员
     getPeople () {
+      let _this = this
       itemDetailApi.getItemDetailByItemCode({ ItemCode: 'People' })
         .then(res => {
-          this.PeopleList = res
+          _this.PeopleList = res
         })
         .catch(err => {
           console.error(err)
@@ -265,9 +306,10 @@ export default {
     },
     // 获取字典表课程时间段
     getDutyTime () {
+      let _this = this
       itemDetailApi.getItemDetailByItemCode({ ItemCode: 'DutyTime' })
         .then(res => {
-          this.TimeList = res
+          _this.TimeList = res
         })
         .catch(err => {
           console.error(err)
@@ -291,10 +333,10 @@ export default {
       // 第3列开始可以选中
       // 单击单元格选中
       if (cell.cellIndex >= fixRowHeadNum) {
-        if (this.selectcell.get(row.index + '_' + column.property)) {
-          this.selectcell.set(row.index + '_' + column.property, false)
+        if (this.selectcell.get(row.Local + '_' + row.Time + '_' + column.property)) {
+          this.selectcell.set(row.Local + '_' + row.Time + '_' + column.property, false)
         } else {
-          this.selectcell.set(row.index + '_' + column.property, this.list[row.index])
+          this.selectcell.set(row.Local + '_' + row.Time + '_' + column.property, this.list[row.index])
         }
       }
       // 第三列之前选中整行
@@ -306,10 +348,10 @@ export default {
           var nextSibling = cell.nextSibling
           cell = nextSibling
           if (i >= fixRowHeadNum - 1) {
-            if (this.selectcell.get(row.index + '_' + columnProperty[currentcolumnindex])) {
-              this.selectcell.set(row.index + '_' + columnProperty[currentcolumnindex], false)
+            if (this.selectcell.get(row.Local + '_' + row.Time + '_' + columnProperty[currentcolumnindex])) {
+              this.selectcell.set(row.Local + '_' + row.Time + '_' + columnProperty[currentcolumnindex], false)
             } else {
-              this.selectcell.set(row.index + '_' + columnProperty[currentcolumnindex], this.list[row.index])
+              this.selectcell.set(row.Local + '_' + row.Time + '_' + columnProperty[currentcolumnindex], this.list[row.index])
             }
           }
         }
@@ -321,10 +363,10 @@ export default {
       // 判断是否为可选列
       if (column.index > fixRowHeadNum - 1) {
         for (var i = 0; i < this.list.length; i++) {
-          if (this.selectcell.get(i + '_' + column.property)) {
-            this.selectcell.set(i + '_' + column.property, false)
+          if (this.selectcell.get(this.list[i].Local + '_' + this.list[i].Time + '_' + column.property)) {
+            this.selectcell.set(this.list[i].Local + '_' + this.list[i].Time + '_' + column.property, false)
           } else {
-            this.selectcell.set(i + '_' + column.property, this.list[i])
+            this.selectcell.set(this.list[i].Local + '_' + this.list[i].Time + '_' + column.property, this.list[i])
           }
         }
       }
@@ -335,7 +377,7 @@ export default {
       this.selectcell.forEach(function (value, key) {
         if (value) {
           var property = key.split('_')
-          value[property[1]] = person
+          value[property[2]] = person
         }
       })
       this.selectcell = new Map()
@@ -348,14 +390,33 @@ export default {
       // 注意这里是解构
       // 利用单元格的 className 的回调方法,给行列索引赋值
 
-      if (_this.selectcell.get(row.index + '_' + column.property)) {
+      if (_this.selectcell.get(row.Local + '_' + row.Time + '_' + column.property)) {
         return 'selectedCell'
       }
     },
+    // 匹配学期
+    formatTerm (row, column) {
+      for (var i = 0; i < this.termList.length; i++) {
+        if (parseInt(this.termList[i].ItemValue) === parseInt(row.Term)) {
+          return this.termList[i].ItemName
+        }
+      }
+    },
+    // 获取学期名称
+    getTerm () {
+      let termName = ''
+      let _this = this
+      _this.termList.forEach(function (value, key) {
+        if (_this.dutyDetail.Term == value.ItemValue) {
+          _this.termName = value.ItemName
+
+        }
+      })
+    },
     formatPerson (row, column, cellValue, index) {
       let label = '休息'
       for (var i = 0; i < this.PeopleList.length; i++) {
-        if (this.PeopleList[i].ItemValue === cellValue) {
+        if (this.PeopleList[i].ItemValue == cellValue) {
           return this.PeopleList[i].ItemName
         }
       }
@@ -363,16 +424,20 @@ export default {
 
     }, formatLocal (row, column, cellValue, index) {
       for (var i = 0; i < this.LocalList.length; i++) {
-        if (this.LocalList[i].ItemValue === cellValue) {
+        if (this.LocalList[i].ItemValue == cellValue) {
           return this.LocalList[i].ItemName
         }
       }
     }, formatTime (row, column, cellValue, index) {
       for (var i = 0; i < this.TimeList.length; i++) {
-        if (this.TimeList[i].ItemValue === cellValue) {
+        if (this.TimeList[i].ItemValue == cellValue) {
           return this.TimeList[i].ItemName
         }
       }
+    },
+    // 关闭当前页
+    closeWindow () {
+      window.location.href = "./#/duty";
     }
   }
 }

+ 20 - 10
frontend_web/src/views/duty/index.vue

@@ -48,7 +48,7 @@
               @sort-change="orderby"
               height="100%">
       <el-table-column label="操作"
-                       width="120px"
+                       width="180px"
                        align="center"
                        fixed='right'>
         <template slot-scope="scope">
@@ -58,6 +58,13 @@
                      @click="edit(scope.row.Id)"
                      icon="el-icon-edit"
                      circle></el-button>
+          <el-button size="mini"
+                     type="primary"
+                     title="发布"
+                     @click="publish(scope.row)"
+                     style="margin-left:5px;"
+                     icon="el-icon-s-promotion"
+                     circle></el-button>
           <el-button size="mini"
                      type="danger"
                      title="删除"
@@ -75,17 +82,16 @@
       </el-table-column>
       <el-table-column prop="Year"
                        fit
-                       min-width="160px"
+                       min-width="80px"
                        label="学年"
                        align="center"
                        show-overflow-tooltip></el-table-column>
       <el-table-column prop="Term"
                        label="学期"
                        align="center"
-                       min-width="120px"
+                       min-width="80px"
                        show-overflow-tooltip
-                       :formatter="formatTerm"
-      ></el-table-column>
+                       :formatter="formatTerm"></el-table-column>
       <el-table-column prop="Title"
                        label="标题"
                        align="center"
@@ -94,10 +100,9 @@
       <el-table-column prop="Status"
                        label="状态"
                        align="center"
-                       min-width="120px"
+                       min-width="80px"
                        show-overflow-tooltip
-                       :formatter="formatStatus"
-      ></el-table-column>
+                       :formatter="formatStatus"></el-table-column>
       <el-table-column prop="CreatedTime"
                        label="创建日期"
                        align="center"
@@ -146,6 +151,7 @@ export default {
       currpage: 1,
       size: 10,
       term: [],
+      activities: [],
       Year: '',
       Title: '',
       Time: '',
@@ -219,10 +225,13 @@ export default {
       this.dutyId = dutyId
       this.$refs.editDialog.dialogvisible = true
     },
+    publish (duty) {
+      duty.Status = 1
+      DutyApi.saveDuty(duty)
+    },
     // 打开二级页面
     handleDetail (duty) {
-      let Id = parseInt(duty.Id)
-      this.$router.push({ path: '/duty/detail', query: { duty: duty } })
+      this.$router.push({ path: '/duty/detail', query: { duty: duty, term: this.term } })
     },
     // 添加 返回页面
     handleCloseAdd () {
@@ -252,6 +261,7 @@ export default {
       DutyApi.getPageList(params)
         .then(res => {
           _this.activities = res.records
+          _this.search.page.total = res.total
         })
     },
     handleSizeChange (val) {

+ 1 - 6
frontend_web/src/views/instrument/instrumenrunrecord/index.vue

@@ -78,11 +78,6 @@
                        label="运行说明"
                        show-overflow-tooltip
                        width="270"></el-table-column>
-      <el-table-column prop="ContractNo"
-                       align="center"
-                       min-width="120px"
-                       label="项目编号"
-                       show-overflow-tooltip></el-table-column>
     </el-table>
     <!-- </el-card> -->
     <template slot="footer">
@@ -152,7 +147,7 @@ export default {
           CreateOnstart: this.CreateOn[0] / 1000,
           CreateOnend: this.CreateOn[1] / 1000
         }
-        params = Object.assign(params2)
+        params = Object.assign(params, params2)
       }
       searchdatayx(params)
         .then(function (response) {

+ 37 - 214
frontend_web/src/views/personnel/components/personneladd.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-dialog title="添加设备管理"
+  <el-dialog title="添加人员管理"
              :visible.sync="dialogvisible"
              width="65%"
              :before-close="handleCloseAdd">
@@ -68,18 +68,6 @@
                       placeholder="请输入联系地址"></el-input>
           </el-form-item>
         </el-col>
-
-        <el-col :span="24">
-          <el-form-item label="备注信息"
-                        label-width="120px">
-            <el-input v-model="testlistform.Remarks"
-                      type="textarea"
-                      :rows=3
-                      placeholder="请输入备注信息"
-                      style="width:100%"></el-input>
-          </el-form-item>
-        </el-col>
-
       </el-row>
     </el-form>
     <span slot="footer">
@@ -93,18 +81,9 @@
 </template>
 
 <script>
-// import {
-//   classificationlist,
-//   personnelGetCode,
-//   getSavepersonnel,
-//   getsupplierlist
-// } from '@/api/personnel'
 import PersonnelApi from '@/api/personnel'
 import axios from 'axios'
 import uploadajax from '@/assets/js/uploadajax.js'
-// import { addTrigger,
-//   gettriggerlist
-// } from '@/api/trigger'
 export default {
   name: 'personneladd',
   data () {
@@ -141,212 +120,69 @@ export default {
       TimeNotification: false, // 有效期提醒
       classificationlist: [],
       getsupplierlist: [],
-      statelist: [{
-        stateName: '正常',
-        Id: 1
-      }, {
-        stateName: '维修',
-        Id: 2
-      }, {
-        stateName: '停用',
-        Id: 3
-      }],
-      timeType: [{
-        stateName: '天',
-        Id: 1
-      }, {
-        stateName: '周',
-        Id: 2
-      }, {
-        stateName: '月',
-        Id: 3
-      }, {
-        stateName: '年',
-        Id: 4
-      }],
       rulestestlistform: {
-
-        // Code: [{
-        //   required: true,
-        //   message: '请输入设备编码',
-        //   trigger: 'blur'
-        // }],
-        // Name: [{
-        //   required: true,
-        //   message: '请输入设备姓名',
-        //   trigger: 'blur'
-        // }]
-        // SupplierId: [{
-        //   required: true,
-        //   message: '请选择供应商',
-        //   trigger: 'blur'
-        // }],
-        // Model: [{
-        //   required: true,
-        //   message: '请输入型号',
-        //   trigger: 'blur'
-        // }],
-        // Spec: [{
-        //   required: true,
-        //   message: '请输入规格',
-        //   trigger: 'blur'
-        // }],
-        // Brand: [{
-        //   required: true,
-        //   message: '请输入品牌姓名',
-        //   trigger: 'blur'
-        // }],
-        // Classification: [{
-        //   required: true,
-        //   message: '请输入设备大类',
-        //   trigger: 'blur'
-        // }],
-        // State: [{
-        //   required: true,
-        //   message: '请输入设备状态',
-        //   trigger: 'blur'
-        // }]
+        PersonnelName: [{
+          required: true,
+          message: '请输入人员姓名',
+          trigger: 'blur'
+        }],
+        PersonneCode: [{
+          required: true,
+          message: '请输入人员编号',
+          trigger: 'blur'
+        }],
+        Telephone: [{
+          required: true,
+          message: '请输入电话',
+          trigger: 'blur'
+        }],
+        Mailbox: [{
+          required: true,
+          message: '请输入邮箱',
+          trigger: 'blur'
+        }],
+        CardId: [{
+          required: true,
+          message: '请输入身份证号',
+          trigger: 'blur'
+        }],
+        Address: [{
+          required: true,
+          message: '请输入联系地址',
+          trigger: 'blur'
+        }]
       }
     }
   },
   created () {
-    // let _this = this
-    // this.getclassificationlist()
-    // this.getSupplier()
   },
   methods: {
-    // 操作规程文件上传
-    uploadrequest (option) {
-      let _this = this
-      axios.post(this.$uploadFile, {})
-        .then(function (res) {
-          if (res.data && res.data.fid && res.data.fid !== '') {
-            option.action = `http://${res.data.url}/${res.data.fid}`
-            _this.uploadFile = {
-              uid: option.file.uid,
-              url: res.data.publicUrl,
-              fid: res.data.fid
-            }
-            uploadajax(option)
-          } else {
-            _this.$message({
-              type: 'warning',
-              message: '未上传成功!请刷新界面重新上传!'
-            })
-          }
-        })
-        .catch(function (error) {
-          console.log(error)
-          _this.$message({
-            type: 'warning',
-            message: '未上传成功!请重新上传!'
-          })
-        })
-    },
-    handleRemove (file, fileList) {
-      this.testlistform.FileUrl = ''
-      this.testlistform.FileName = ''
-      this.FileUrl = {}
-    },
-    handleUploadSuccess (res, file) {
-      this.testlistform.FileUrl = `${this.uploadFile.url}/${this.uploadFile.fid}`
-      this.testlistform.FileName = file.name
-      this.FileUrl = URL.createObjectURL(file.raw)
-    },
     savedata () {
       PersonnelApi.AddPersonnel(this.testlistform, {})
         .then(res => {
-          // response
-          console.log('--------', res)
-          // if (res.info.code === 0) {
-          //   _this.$message({
-          //     type: 'success',
-          //     message: res.info.message
-
-          //   })
-          //   // window.history.go(-1)
-          // } else {
-          //   _this.$message({
-          //     type: 'warning',
-          //     message: res.info.message
-          //   })
-          // }
-          // this.handleCloseAdd()
           this.$emit('closeAddDialog')
           this.dialogvisible = false
           this.fileList = []
           // 刷新
         })
         .catch(err => {
-          // handle error
           console.error(err)
         })
     },
-    // // 保存
-    // getCode (formName) {
-    //   let _this = this
-    //   this.$refs[formName].validate((valid) => {
-    //     personnelGetCode(_this.testlistform.Code)
-    //       .then(function (response) {
-    //         _this.total = response.info.items
-    //         if (_this.total === 0) {
-    //           _this.savedata()
-    //         } else {
-    //           _this.$message({
-    //             type: 'warning',
-    //             message: '设备编号已存在'
-    //           })
-    //         }
-    //         _this.refreshData()
-    //       })
-    //       .catch(function (error) {
-    //         console.log(error)
-    //       })
-    //   })
-    // },
     refreshData () {
       this.$emit('refreshData')
     },
-    // // 获取设备大类
-    // getclassificationlist () {
-    //   let _this = this
-    //   let params = {
-
-    //     code: 'PersonnelItem'
-    //   }
-    //   classificationlist(params)
-    //     .then(res => {
-    //       _this.classificationlist = res.info
-    //     })
-    // },
-    // 获取供应商
-    // getSupplier () {
-    //   let _this = this
-    //   let params = {
-    //     customerName: 'Supplier'
-    //   }
-    //   getsupplierlist(params)
-    //     .then(res => {
-    //       _this.getsupplierlist = res.info
-    //     })
-    // },
     closedialog () {
       this.dialogvisible = false
     },
     handleCloseAdd () {
       this.$refs['testlistform'].resetFields()
-      // this.$refs['uploader'].clearFiles()
-      this.testlistform.Code = ''
-      this.testlistform.Name = ''
-      this.testlistform.Brand = ''
-      this.testlistform.SupplierId = ''
-      this.testlistform.FactoryNum = ''
-      this.testlistform.Responsible = ''
-      this.testlistform.CalibrationDeadline = 1
-      this.testlistform.MaintenCycle = 1
-      this.testlistform.Model = ''
-      this.testlistform.Remarks = ''
-      this.testlistform.Classification = ''
+      this.testlistform.PersonnelName = ''
+      this.testlistform.PersonneCode = ''
+      this.testlistform.Telephone = ''
+      this.testlistform.Mailbox = ''
+      this.testlistform.CardId = ''
+      this.testlistform.Address = ''
       this.$emit('closeAddDialog')
     },
 
@@ -373,19 +209,6 @@ export default {
       var time = dates.getFullYear() + '-' + month + '-' + day
       return time
     }
-    // // 查询action
-    // getttriggernow (id, instumentid) {
-    //   gettriggerlist({}, id)
-    //     .then(res => {
-    //       let _this = this
-    //       _this.Advancetime = res.items.Advancetime
-    //       // 查询子表 有效期
-    //       _this.addTriggerl(instumentid, _this.testlistform.Code, _this.testlistform.TimeNotification, _this.testlistform.Name, _this.Advancetime, _this.testlistform.CalibrationTime, _this.testlistform.CalibrationDeadline, _this.testlistform.CalibrationDeadlineType)
-    //     })
-    //     .catch(err => {
-    //       console.error(err)
-    //     })
-    // }
 
   }
 }

+ 15 - 83
frontend_web/src/views/personnel/components/personneledit.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-dialog title="编辑设备信息"
+  <el-dialog title="编辑人员信息"
              :visible.sync="dialogvisible"
              width="75%"
              :before-close="handleCloseEdit">
@@ -68,18 +68,6 @@
                       placeholder="请输入联系地址"></el-input>
           </el-form-item>
         </el-col>
-
-        <el-col :span="24">
-          <el-form-item label="备注信息"
-                        label-width="120px">
-            <el-input v-model="testlistform.Remarks"
-                      type="textarea"
-                      :rows=3
-                      placeholder="请输入备注信息"
-                      style="width:100%"></el-input>
-          </el-form-item>
-        </el-col>
-
       </el-row>
     </el-form>
     <span slot="footer">
@@ -96,18 +84,9 @@
 import axios from 'axios'
 import uploadajax from '@/assets/js/uploadajax.js'
 import PersonnelApi from '@/api/personnel'
-// import {
-//   initData,
-//   classificationlist,
-//   savedataedit,
-//   getsupplierlist
-// } from '@/api/personnel'
-// import { addTrigger,
-//   gettriggerlist,
-//   deletetriggerlistfordid
-// } from '@/api/trigger'
+
 export default {
-  name: 'personneladd',
+  name: 'personneledit',
   props: {
     PersonnelId: {
       default: 0
@@ -122,94 +101,47 @@ export default {
       formtype: '1',
       disabledbarcode: false,
       testlistform: {
-        Code: '',
-        Name: '',
-        Supplier: '',
-        SupplierId: '',
-        Model: '',
-        Brand: '',
-        Classification: '',
-        State: 1,
-        Remarks: '',
-        CalibrationDeadlineType: 2,
-        CalibrationTime: new Date(),
-        CalibrationDeadline: 1,
-        HeartbeatTime: new Date(),
-        TimeNotification: 0
       },
       Advancetime: 0,
       triggerlist: {},
       TimeNotification: false, // 有效期提醒
       classificationlist: [],
       getsupplierlist: [],
-      statelist: [{
-        stateName: '正常',
-        Id: 1
-      }, {
-        stateName: '维修',
-        Id: 2
-      }, {
-        stateName: '闲置',
-        Id: 3
-      }],
-      timeType: [{
-        stateName: '天',
-        Id: 1
-      }, {
-        stateName: '周',
-        Id: 2
-      }, {
-        stateName: '月',
-        Id: 3
-      }, {
-        stateName: '年',
-        Id: 4
-      }],
       rulestestlistform: {
-
-        Code: [{
-          required: true,
-          message: '请输入设备编码',
-          trigger: 'blur'
-        }],
-        Name: [{
+        PersonnelName: [{
           required: true,
-          message: '请输入设备姓名',
+          message: '请输入人员姓名',
           trigger: 'blur'
         }],
-        Supplier: [{
+        PersonneCode: [{
           required: true,
-          message: '请输入供应商',
+          message: '请输入人员编号',
           trigger: 'blur'
         }],
-        Model: [{
+        Telephone: [{
           required: true,
-          message: '请输入型号',
+          message: '请输入电话',
           trigger: 'blur'
         }],
-        Brand: [{
+        Mailbox: [{
           required: true,
-          message: '请输入品牌姓名',
+          message: '请输入邮箱',
           trigger: 'blur'
         }],
-        State: [{
+        CardId: [{
           required: true,
-          message: '请输入设备状态',
+          message: '请输入身份证号',
           trigger: 'blur'
         }],
-        Classification: [{
+        Address: [{
           required: true,
-          message: '请输入设备大类',
+          message: '请输入联系地址',
           trigger: 'blur'
         }]
-
       }
     }
   },
   created () {
-    //  this.getEntity(this.PersonnelId)
-    // this.getclassificationlist()
-    // this.getSupplier()
   },
   methods: {
     // 操作规程文件上传

+ 3 - 135
frontend_web/src/views/personnel/index.vue

@@ -13,22 +13,6 @@
                     v-model="search.Name"
                     placeholder="请输入人员姓名"></el-input>
         </el-form-item>
-        <!-- <el-form-item label="设备大类"
-                      class="sbutton_margin">
-          <el-select style="width:140px;"
-                     v-model="search.classification"
-                     clearable
-                     placeholder="请选择设备大类">
-            <el-option v-for="item in classificationlist"
-                       :key="item.Value"
-                       :label="item.Value"
-                       :value="item.Value">
-            </el-option>
-          </el-select>
-        </el-form-item> -->
-        <!-- <el-form-item label="创建时间" class="sbutton_margin">
-          <el-date-picker   style="width: 220px" v-model="CalibrationTime" type="daterange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束日期"></el-date-picker>
-        </el-form-item> -->
         <el-button size="mini"
                    type="primary"
                    @click="initDatas()"
@@ -59,15 +43,12 @@
                        align="center"
                        fixed='right'>
         <template slot-scope="scope">
-          <!-- <router-link :to="'/personnel/' + scope.row.Id + '/personneledit'"> -->
-          <!-- <router-link :to="'/personnel/personneldetails?id='+scope.row.Id +''"> -->
           <el-button size="mini"
                      title="编辑"
                      type="primary"
                      @click="personneledit(scope.row.Id)"
                      icon="el-icon-edit"
                      circle></el-button>
-          <!-- </router-link> -->
           <el-button size="mini"
                      type="danger"
                      title="删除"
@@ -75,29 +56,6 @@
                      style="margin-left:5px;"
                      icon="el-icon-delete"
                      circle></el-button>
-          <!-- <router-link :to="'/personnel/maintainlog?id='+scope.row.Id +''">
-              <el-button size="mini"   title="质量管理" type="warning" style="margin-left:5px;" icon="fa fa-flask" circle>
-              </el-button>
-            </router-link>
-            <router-link :to="'/personnel/instrumenrunrecord?id='+scope.row.Id +''">
-              <el-button size="mini"   title="运行记录" type="warning" style="margin-left:5px;" icon="fa fa-tachometer" circle>
-              </el-button>
-            </router-link> -->
-          <!-- <el-dropdown>
-                <el-button size="mini"   type="success" >
-                  更多
-                  <i class="el-icon-arrow-down el-icon--right"></i>
-                </el-button>
-                <el-dropdown-menu slot="dropdown">
-
-                  <el-dropdown-item>
-
-                  </el-dropdown-item>
-                  <el-dropdown-item>
-
-                  </el-dropdown-item>
-                </el-dropdown-menu>
-              </el-dropdown> -->
         </template>
       </el-table-column>
       <el-table-column prop="PersonnelName"
@@ -127,31 +85,11 @@
                        align="center"
                        min-width="120px"
                        show-overflow-tooltip></el-table-column>
-
-      <!-- <el-table-column prop="CalibrationTime"
-                         sortable
-                         label="校准时间"
-                         align="center"
-                         width="140px"
-                         show-overflow-tooltip>
-          <template slot-scope="scope">{{ jstimehandle(scope.row.CalibrationTime +'') }}</template>
-        </el-table-column> -->
-
-      <!-- <el-table-column prop="CalibrationDeadline"
-                         sortable
-                         align="center"
-                         width="100px"
-                         label="校准期限"></el-table-column> -->
       <el-table-column prop="Address"
                        align="center"
                        min-width="100px"
                        label="地址"></el-table-column>
 
-      <!-- <el-table-column prop="Type"
-                       min-width="160px"
-                       label="类型"
-                       align="center"
-                       show-overflow-tooltip></el-table-column> -->
     </el-table>
     <!-- </el-card> -->
     <addpersonnellog ref="addpersonnel"
@@ -179,15 +117,7 @@
 </template>
 
 <script>
-// import {
-//   classificationlist,
-//   searchdata,
-//   deletepersonnel
-// } from '@/api/personnel'
 import PersonnelApi from '@/api/personnel'
-// import {
-//   deletetriggerlistfordid
-// } from '@/api/trigger'
 import addpersonnellog from './components/personneladd'
 import addpersonneleditlog from './components/personneledit'
 export default {
@@ -219,20 +149,6 @@ export default {
         Code: '',
         classification: ''
       },
-      statelist: [
-        {
-          stateName: '正常',
-          Id: 1
-        },
-        {
-          stateName: '维修',
-          Id: 2
-        },
-        {
-          stateName: '闲置',
-          Id: 3
-        }
-      ],
       // 列表排序
       Column: {
         Order: '',
@@ -262,32 +178,21 @@ export default {
       this.$refs.addpersonnel.dialogvisible = false
       this.currpage = 1
       this.initDatas()
-      // this.getclassificationlist()
     },
     // 编辑 返回页面
     handleCloseEdit () {
       this.$refs.personneledit.dialogvisible = false
-      // this.getclassificationlist()
       this.initDatas()
     },
     // 初始化列表数据
     initDatas () {
       let _this = this
-      let CalibrationTime = []
       if (!_this.CalibrationTime) {
         _this.CalibrationTime = []
       }
-      // 解析时间
-      // if (_this.CalibrationTime.length === 2) {
-      //   _this.CalibrationTime[1].setHours(23)
-      //   _this.CalibrationTime[1].setMinutes(59)
-      //   _this.CalibrationTime[1].setSeconds(59)
-      //   CalibrationTime.push(_this.formatDateTime(_this.CalibrationTime[0]))
-      //   CalibrationTime.push(_this.formatDateTime(_this.CalibrationTime[1]))
-      // }
       let params = {
-        _currentPage: this.currpage,
-        _size: this.size,
+        current: this.currpage,
+        size: this.size,
         Code: this.search.Code,
         Classification: this.search.classification,
         Name: this.search.Name,
@@ -297,44 +202,7 @@ export default {
       PersonnelApi.getAllPersonnel(params)
         .then(res => {
           _this.activities = res.records
-          //   for (let i = 0; i < _this.activities.length; i++) {
-          //     var addTime = _this.addDate(_this.activities[i].CalibrationTime, 2)
-          //     var tdate = 0
-          //     if (_this.activities[i].CalibrationDeadlineType === 1) {
-          //       addTime = _this.addDate(_this.activities[i].CalibrationTime, _this.activities[i].CalibrationDeadline)
-          //       tdate = _this.count(new Date(addTime))
-          //       _this.activities[i].CalibrationDeadlineType = '天'
-          //     } else if (_this.activities[i].CalibrationDeadlineType === 2) {
-          //       addTime = _this.addDate(_this.activities[i].CalibrationTime, (_this.activities[i].CalibrationDeadline) * 7)
-          //       tdate = _this.count(new Date(addTime))
-          //       _this.activities[i].CalibrationDeadlineType = '周'
-          //     } else if (_this.activities[i].CalibrationDeadlineType === 3) {
-          //       addTime = _this.addDate(_this.activities[i].CalibrationTime, (_this.activities[i].CalibrationDeadline) * 30)
-          //       tdate = _this.count(new Date(addTime))
-          //       _this.activities[i].CalibrationDeadlineType = '月'
-          //     } else if (_this.activities[i].CalibrationDeadlineType === 4) {
-          //       addTime = _this.addDate(_this.activities[i].CalibrationTime, (_this.activities[i].CalibrationDeadline) * 365)
-          //       tdate = _this.count(new Date(addTime))
-          //       _this.activities[i].CalibrationDeadlineType = '年'
-          //     }
-          //     if (tdate >= 30) {
-          //       _this.activities[i].tYPE = 1
-          //     } else if (tdate < 30 && tdate >= 0) {
-          //       _this.activities[i].tYPE = 2
-          //     } else if (tdate < 0) {
-          //       _this.activities[i].tYPE = 3
-          //     }
-          //   }
-
-          //   for (let i = 0; i < _this.activities.length; i++) {
-          //     // _this.activities[i].CalibrationDeadline = _this.activities[i].CalibrationDeadline + ''
-          //     _this.activities[i].CalibrationDeadline = _this.activities[i].CalibrationDeadline + '' + _this.activities[i].CalibrationDeadlineType
-          //   }
-
-          //   _this.totalsize = response.info.currentItemCount
-          // })
-          // .catch(function (error) {
-          //   console.log(error)
+          _this.totalsize = res.total
         })
     },
     handleSizeChange (val) {

+ 32 - 13
frontend_web/src/views/setuser/passwordset.vue

@@ -1,26 +1,45 @@
 <template>
-      <el-dialog title="修改密码" :visible.sync="adddialog" width="700px">
-  <!-- <div class="page"> -->
+  <el-dialog title="修改密码"
+             :visible.sync="adddialog"
+             width="700px">
+    <!-- <div class="page"> -->
     <el-row>
-      <el-col :span="20" style="text-align:center">
-        <el-form :model="pwdform" :rules="pwdrules" ref="pwdform" label-width="200px">
-          <el-form-item label="当前登录密码 :" prop="pass" required>
-            <el-input type="password" v-model="pwdform.pass" auto-complete="off"></el-input>
+      <el-col :span="20"
+              style="text-align:center">
+        <el-form :model="pwdform"
+                 :rules="pwdrules"
+                 ref="pwdform"
+                 label-width="200px">
+          <el-form-item label="当前登录密码 :"
+                        prop="pass"
+                        required>
+            <el-input type="password"
+                      v-model="pwdform.pass"
+                      auto-complete="off"></el-input>
           </el-form-item>
-          <el-form-item label="新的登录密码 :" prop="newpass" required>
-            <el-input type="password" v-model="pwdform.newpass" auto-complete="off"></el-input>
+          <el-form-item label="新的登录密码 :"
+                        prop="newpass"
+                        required>
+            <el-input type="password"
+                      v-model="pwdform.newpass"
+                      auto-complete="off"></el-input>
           </el-form-item>
-          <el-form-item label="确认新的登录密码 :" prop="checknewPass" required>
-            <el-input type="password" v-model="pwdform.checknewPass" auto-complete="off"></el-input>
+          <el-form-item label="确认新的登录密码 :"
+                        prop="checknewPass"
+                        required>
+            <el-input type="password"
+                      v-model="pwdform.checknewPass"
+                      auto-complete="off"></el-input>
           </el-form-item>
           <el-form-item>
-            <el-button type="primary" @click="submitForm('pwdform')">提交</el-button>
+            <el-button type="primary"
+                       @click="submitForm('pwdform')">提交</el-button>
             <el-button @click="resetForm('pwdform')">重置</el-button>
           </el-form-item>
         </el-form>
       </el-col>
     </el-row>
-   </el-dialog>
+  </el-dialog>
 </template>
 
 <script>
@@ -94,7 +113,7 @@ export default {
                 })
               }
             })
-            .catch(() => {})
+            .catch(() => { })
         }
       })
     },