Explorar el Código

Merge branch 'dev2.0' of http://192.168.3.207:8080/data_processing/data_validation into dev2.0

* 'dev2.0' of http://192.168.3.207:8080/data_processing/data_validation:
  xg
  xg
  xg
  xg

# Conflicts:
#	src/web/templates/project/remark_detail.html
Jianghan hace 3 años
padre
commit
2863cf47d6
Se han modificado 4 ficheros con 632 adiciones y 596 borrados
  1. 0 29
      src/front/front.go
  2. 134 70
      src/front/mark.go
  3. 9 8
      src/front/project.go
  4. 489 489
      src/web/templates/project/remark_detail.html

+ 0 - 29
src/front/front.go

@@ -6,7 +6,6 @@ import (
 	"mongodb"
 	qu "qfw/util"
 	"strconv"
-	"time"
 	. "util"
 )
 
@@ -132,31 +131,3 @@ func GetUserMenu(role int) []map[string]interface{} {
 	}
 	return list
 }
-
-// SaveLog 标注日志保存
-func SaveLog(s_infoid, s_usertaskid, s_stype string, tagFields map[string]interface{}) (success bool) {
-	defer qu.Debug()
-	task, _ := Mgo.FindById(TASKCOLLNAME, s_usertaskid, nil)
-	if task != nil && len(*task) > 0 {
-		v_before := map[string]interface{}{}
-		v_after := map[string]interface{}{}
-		save := map[string]interface{}{
-			"s_projectname": qu.ObjToString((*task)["s_projectname"]),
-			"s_taskid":      s_usertaskid,
-			"s_infoid":      s_infoid,
-			"s_stype":       s_stype,
-			"s_userid":      qu.ObjToString((*task)["s_personid"]),
-			"s_username":    qu.ObjToString((*task)["s_personname"]),
-			"i_createtime":  time.Now().Unix(),
-			"v_before":      v_before,
-			"v_after":       v_after,
-		}
-		id := Mgo.Save(LOGCOLLNAME, save)
-		if id != "" {
-			success = true
-		}
-	} else {
-		qu.Debug("Find Data Failed:", s_infoid)
-	}
-	return
-}

+ 134 - 70
src/front/mark.go

@@ -3,6 +3,7 @@ package front
 import (
 	"encoding/json"
 	"fmt"
+	"mongodb"
 	qu "qfw/util"
 	"strings"
 	"time"
@@ -11,24 +12,26 @@ import (
 
 // DataMark 数据标注
 func (f *Front) DataMark() {
+	qu.Debug("-----------------")
 	defer qu.Catch()
 	success := false
 	msg := ""
-	//user := f.GetSession("user").(map[string]interface{})
-	//username := qu.ObjToString(user["s_login"]) //当前登录用户
+	user := f.GetSession("user").(map[string]interface{})
+	username := qu.ObjToString(user["s_login"]) //当前登录用户
 	obj := []map[string]interface{}{}
 	infoId := f.GetString("s_infoid")
 	userTaskId := f.GetString("s_usertaskid")
+	qu.Debug("Task ID:", userTaskId, "	Data ID:", infoId)
 	data := f.GetString("data")
 	err := json.Unmarshal([]byte(data), &obj)
 	if err != nil {
+		qu.Debug("Json Unmarshal Error")
 		f.ServeJson(map[string]interface{}{"success": success, "msg": "解析数据失败"})
 		return
 	}
 	tagSet := map[string]interface{}{}    //被标注字段状态
 	baseSet := map[string]interface{}{}   //要修改的字段信息
 	baseUnset := map[string]interface{}{} //要删除的字段信息
-
 	//isSaveMarked := false
 	if len(obj) == 1 { //单独保存某个一级
 		content, ok := obj[0]["content"].([]interface{})
@@ -41,17 +44,17 @@ func (f *Front) DataMark() {
 		status := qu.IntAll(obj[0]["status"])
 		switch title {
 		case "基本字段":
-			BzJBZD_New(content, tagSet, baseSet, baseUnset)
+			MarkBase(content, tagSet, baseSet, baseUnset)
 		case "时间地点":
-			BzSJDD_New(content, tagSet, baseSet, baseUnset)
+			MarkTimePlace(content, tagSet, baseSet, baseUnset)
 		case "标的信息":
-			BzBDXX_New(content, tagSet, baseSet, baseUnset, istag, status)
+			MarkPurchasinglist(content, tagSet, baseSet, baseUnset, istag, status)
 		case "多包信息":
-			BzDBXX_New(content, tagSet, baseSet, baseUnset, status)
+			MarkPackage(content, tagSet, baseSet, baseUnset, status)
 		case "中标候选人信息":
-			BzZBHXRXX_New(content, tagSet, baseSet, baseUnset, status)
+			MarkWonderorder(content, tagSet, baseSet, baseUnset, status)
 		case "其余信息":
-			BzQYXX_New(content, tagSet, baseSet, baseUnset)
+			MarkOther(content, tagSet, baseSet, baseUnset)
 		}
 	} else {
 		for j, val := range obj {
@@ -63,72 +66,111 @@ func (f *Front) DataMark() {
 			}
 			istag, _ := val["checkAllTag"].(bool)
 			if j == 0 { //基本信息
-				BzJBZD_New(content, tagSet, baseSet, baseUnset)
+				MarkBase(content, tagSet, baseSet, baseUnset)
 			} else if j == 1 { //时间地点
-				BzSJDD_New(content, tagSet, baseSet, baseUnset)
+				MarkTimePlace(content, tagSet, baseSet, baseUnset)
 			} else if j == 2 { //标的物
-				BzBDXX_New(content, tagSet, baseSet, baseUnset, istag, status)
+				MarkPurchasinglist(content, tagSet, baseSet, baseUnset, istag, status)
 			} else if j == 3 { //多包
-				BzDBXX_New(content, tagSet, baseSet, baseUnset, status)
+				MarkPackage(content, tagSet, baseSet, baseUnset, status)
 			} else if j == 4 { //候选人
-				BzZBHXRXX_New(content, tagSet, baseSet, baseUnset, status)
+				MarkWonderorder(content, tagSet, baseSet, baseUnset, status)
 			} else { //其余信息
-				BzQYXX_New(content, tagSet, baseSet, baseUnset)
+				MarkOther(content, tagSet, baseSet, baseUnset)
 			}
 		}
 	}
+	allTagFields := map[string]interface{}{} //记录此此标注所有标注信息,用于日志记录
+	for k, v := range baseSet {
+		allTagFields[k] = v
+	}
+	for k, _ := range baseUnset {
+		allTagFields[k] = nil
+	}
+	qu.Debug("allTagFields===", allTagFields)
 	userTask, _ := util.Mgo.FindById(util.TASKCOLLNAME, userTaskId, map[string]interface{}{"s_personid": 1, "s_personname": 1, "s_projectname": 1, "s_sourceinfo": 1})
-	if sourceInfo := qu.ObjToString((*userTask)["s_sourceinfo"]); sourceInfo != "" { //数据源表
-		dataInfo, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
-		if tagInfo, ok := (*dataInfo)["v_taginfo"].(map[string]interface{}); ok && len(tagInfo) > 0 {
-			for field, tmpStatus := range tagSet { //比对本次标注信息和历史标注信息
-				status := qu.IntAll(tmpStatus)            //此次被标注字段的状态
-				markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
-				if status == 1 && markedStatus != 0 {     //此次标注结果为正确,且有历史标注记录,不做修改
-					qu.Debug("已标注字段field---", field)
-					delete(tagSet, field)
-					delete(baseSet, field)
-					continue
-				} else {
-					qu.Debug("未标注字段field---", field, status)
-				}
+	if userTask == nil || len(*userTask) == 0 {
+		f.ServeJson(map[string]interface{}{"success": success, "msg": "查询用户任务失败"})
+		return
+	}
+	sourceInfo := qu.ObjToString((*userTask)["s_sourceinfo"])                                                     //数据源表
+	dataInfo, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1}) //查询标注保存前的原始信息
+	tagInfo, _ := (*dataInfo)["v_taginfo"].(map[string]interface{})
+	baseInfo, _ := (*dataInfo)["v_baseinfo"].(map[string]interface{})
+	if tagInfo != nil && len(tagInfo) > 0 {
+		for field, tmpStatus := range tagSet { //比对本次标注信息和历史标注信息
+			status := qu.IntAll(tmpStatus)            //此次被标注字段的状态
+			markedStatus := qu.IntAll(tagInfo[field]) //历史标注状态
+			if status == 1 && markedStatus != 0 {     //此次标注结果为正确,且有历史标注记录,不做修改
+				qu.Debug("已标注字段field---", field)
+				delete(tagSet, field)
+				delete(baseSet, field)
+				continue
+			} else {
+				qu.Debug("未标注字段field---", field, status)
 			}
 		}
-		if len(tagSet) > 0 {
-			//1、更新数据源信息
-			setResult := map[string]interface{}{ //更新字段集
-				"i_updatetime": time.Now().Unix(),
-				"i_ckdata":     2,
-				"b_istag":      true,
-			}
-			for field, val := range tagSet { //更新标注字段
-				setResult["v_taginfo."+field] = val
-			}
-			for field, val := range baseSet { //更新基本字段
-				setResult["v_baseinfo."+field] = val
-			}
-			baseUnsetResult := map[string]interface{}{} //删除字段集
-			for field, _ := range baseUnset {           //删除基本字段
-				baseUnsetResult["v_baseinfo."+field] = ""
-			}
-			set := map[string]interface{}{
-				"$set": setResult,
-			}
-			if len(baseUnsetResult) > 0 {
-				set["$unset"] = baseUnsetResult
-			}
-			qu.Debug("set---", set)
-			//success = util.Mgo.UpdateById(sourceInfo, infoId, set)
-			//2、更新marked表
-
-			//3、保存标注记录
+	}
+	qu.Debug("2222222222222")
+	if len(tagSet) > 0 {
+		//1、更新数据源信息
+		setResult := map[string]interface{}{ //更新字段集
+			"i_updatetime": time.Now().Unix(),
+			"i_ckdata":     2,
+			"b_istag":      true,
 		}
-
+		for field, val := range tagSet { //更新标注字段
+			setResult["v_taginfo."+field] = val
+		}
+		for field, val := range baseSet { //更新基本字段
+			setResult["v_baseinfo."+field] = val
+		}
+		baseUnsetResult := map[string]interface{}{} //删除字段集
+		for field, _ := range baseUnset {           //删除基本字段
+			baseUnsetResult["v_baseinfo."+field] = ""
+		}
+		set := map[string]interface{}{
+			"$set": setResult,
+		}
+		if len(baseUnsetResult) > 0 {
+			set["$unset"] = baseUnsetResult
+		}
+		qu.Debug("set---", set)
+		qu.Debug("3333333")
+		success = util.Mgo.UpdateById(sourceInfo, infoId, set)
+		qu.Debug("444444")
+		//2、更新marked表
+		tmp, _ := util.Mgo.FindById(sourceInfo, infoId, map[string]interface{}{"v_baseinfo": 1, "v_taginfo": 1, "i_ckdata": 1})
+		qu.Debug("infoId:", infoId)
+		delete((*tmp), "_id")
+		(*tmp)["updatetime"] = time.Now().Unix()
+		qu.Debug("5555555555555")
+		b := util.Mgo.Update(util.AllToColl, map[string]interface{}{"_id": mongodb.StringTOBsonId(infoId)}, map[string]interface{}{"$set": tmp}, true, false)
+		qu.Debug("Update Marked:", b)
 	}
+	/*
+		} else {
+			表示页面标注时未做修改标注
+		}
+	*/
+	//3、修改任务状态
+	b := util.Mgo.Update(util.TASKCOLLNAME, map[string]interface{}{"_id": (*userTask)["_id"], "s_status": "未开始"}, map[string]interface{}{
+		"$set": map[string]interface{}{
+			"i_starttime":    time.Now().Unix(),
+			"i_updatetime":   time.Now().Unix(),
+			"s_updateperson": username,
+			"s_status":       "进行中",
+		},
+	}, false, false)
+	qu.Debug("Update UserTask:", b)
+	//4、保存标注日志
+	b = SaveLog(infoId, userTaskId, "标注", baseInfo, allTagFields, *userTask)
+	qu.Debug("Save Log:", b)
+
 	f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
 }
 
-func BzJBZD_New(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}) {
+func MarkBase(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}) {
 	defer qu.Catch()
 	info, _ := content[0].(map[string]interface{})
 	if uInputs, ok := info["uInput"].([]interface{}); ok {
@@ -171,7 +213,7 @@ func BzJBZD_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	qu.Debug("baseUnset===", baseUnset)
 }
 
-func BzSJDD_New(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}) {
+func MarkTimePlace(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}) {
 	info, _ := content[0].(map[string]interface{})
 	if uInputs, ok := info["uInput"].([]interface{}); ok {
 		for _, tmp := range uInputs {
@@ -205,7 +247,7 @@ func BzSJDD_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	qu.Debug("baseUnset===", baseUnset)
 }
 
-func BzBDXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, istag bool, status int) {
+func MarkPurchasinglist(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, istag bool, status int) {
 	if status == -1 {
 		return
 	}
@@ -251,8 +293,7 @@ func BzBDXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	if len(purchasinglist)+delpclson == len(content) {
 		if len(purchasinglist) > 0 {
 			baseSet["purchasinglist"] = purchasinglist
-		}
-		if len(content) > 0 && delpclson == len(content) { //只有删除
+		} else if len(content) > 0 && delpclson == len(content) { //只有删除
 			baseUnset["purchasinglist"] = ""
 		}
 		tagSet["purchasinglist"] = status
@@ -264,7 +305,7 @@ func BzBDXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	qu.Debug("baseUnset===", baseUnset)
 }
 
-func BzDBXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, status int) {
+func MarkPackage(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, status int) {
 	if status == -1 {
 		return
 	}
@@ -355,8 +396,7 @@ func BzDBXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	if len(pkgs)+delpkgson == len(content) {
 		if len(pkgs) > 0 {
 			baseSet["package"] = pkgs
-		}
-		if len(content) > 0 && delpkgson == len(content) { //只有删除
+		} else if len(content) > 0 && delpkgson == len(content) { //只有删除
 			baseUnset["package"] = ""
 		}
 		tagSet["package"] = status
@@ -368,7 +408,7 @@ func BzDBXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	qu.Debug("baseUnset===", baseUnset)
 }
 
-func BzZBHXRXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, status int) {
+func MarkWonderorder(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}, status int) {
 	if status == -1 {
 		return
 	}
@@ -411,8 +451,7 @@ func BzZBHXRXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]
 	if len(winnerorder)+delwodrson == len(content) {
 		if len(winnerorder) > 0 {
 			baseSet["winnerorder"] = winnerorder
-		}
-		if len(content) > 0 && delwodrson == len(content) { //只有删除
+		} else if len(content) > 0 && delwodrson == len(content) { //只有删除
 			baseUnset["winnerorder"] = ""
 		}
 		tagSet["winnerorder"] = status
@@ -424,7 +463,7 @@ func BzZBHXRXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]
 	qu.Debug("baseUnset===", baseUnset)
 }
 
-func BzQYXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}) {
+func MarkOther(content []interface{}, tagSet, baseSet, baseUnset map[string]interface{}) {
 	info, _ := content[0].(map[string]interface{})
 	if uInputs, ok := info["uInput"].([]interface{}); ok {
 		for _, tmp := range uInputs {
@@ -461,3 +500,28 @@ func BzQYXX_New(content []interface{}, tagSet, baseSet, baseUnset map[string]int
 	qu.Debug("baseSet===", baseSet)
 	qu.Debug("baseUnset===", baseUnset)
 }
+
+// SaveLog 标注日志保存
+func SaveLog(s_infoid, s_usertaskid, s_stype string, baseInfo, allTagFields, userTask map[string]interface{}) (success bool) {
+	defer qu.Debug()
+	v_before := map[string]interface{}{}
+	for f, _ := range allTagFields {
+		v_before[f] = baseInfo[f]
+	}
+	save := map[string]interface{}{
+		"s_projectname": qu.ObjToString(userTask["s_projectname"]),
+		"s_taskid":      s_usertaskid,
+		"s_infoid":      s_infoid,
+		"s_stype":       s_stype,
+		"s_userid":      qu.ObjToString(userTask["s_personid"]),
+		"s_username":    qu.ObjToString(userTask["s_personname"]),
+		"i_createtime":  time.Now().Unix(),
+		"v_before":      v_before,
+		"v_after":       allTagFields,
+	}
+	id := util.Mgo.Save(util.LOGCOLLNAME, save)
+	if id != "" {
+		success = true
+	}
+	return
+}

+ 9 - 8
src/front/project.go

@@ -41,7 +41,7 @@ func (f *Front) ProjectList() {
 				map[string]interface{}{"s_departname": map[string]interface{}{"$regex": search}},
 			}
 		}
-		list, _ := util.Mgo.Find(util.PROJECTCOLLNAME, query, nil, nil, false, start, limit)
+		list, _ := util.Mgo.Find(util.PROJECTCOLLNAME, query, map[string]interface{}{"_id": -1}, nil, false, start, limit)
 		count := util.Mgo.Count(util.PROJECTCOLLNAME, query)
 		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
 	} else {
@@ -187,7 +187,7 @@ func (f *Front) ProjectComplete() {
 	success := false
 	msg := ""
 	projectId := f.GetString("s_projectid")
-	sourceInfo := f.GetString("s_sourceinfo")
+	//sourceInfo := f.GetString("s_sourceinfo")
 	status := f.GetString("s_status")
 	if status == "进行中" {
 		//查询该项目下未完成的用户组和用户任务
@@ -198,9 +198,10 @@ func (f *Front) ProjectComplete() {
 			},
 		}
 		taskCount := util.Mgo.Count(util.TASKCOLLNAME, query)
-		dataCount := util.Mgo.Count(sourceInfo, map[string]interface{}{"b_istag": false}) //未标注数据个数
-		qu.Debug("No Tag Count:", dataCount)
-		if dataCount == 0 && taskCount == 0 { //全部完成
+		//dataCount := util.Mgo.Count(sourceInfo, map[string]interface{}{"b_istag": false}) //未标注数据个数
+		//qu.Debug("No Tag Count:", dataCount)
+		//if dataCount == 0 && taskCount == 0 { //全部完成
+		if taskCount == 0 { //全部完成
 			success = util.Mgo.UpdateById(util.PROJECTCOLLNAME, projectId, map[string]interface{}{
 				"$set": map[string]interface{}{
 					"s_status":       "已完成",
@@ -216,9 +217,9 @@ func (f *Front) ProjectComplete() {
 			if taskCount != 0 {
 				msg += "任务未全部完成;"
 			}
-			if dataCount != 0 {
-				msg += "数据未全部标注;"
-			}
+			//if dataCount != 0 {
+			//	msg += "数据未全部标注;"
+			//}
 		}
 	} else {
 		msg = "项目未开始"

+ 489 - 489
src/web/templates/project/remark_detail.html

@@ -891,24 +891,24 @@
                     uin.status = changeStatus ? 1 : 2
                         this.setStatus(uin, uin.status, two, one);
                     },
-                    openLink(link) {
+                openLink(link) {
                         window.open(link, '_blank')
                     },
-                    // 改变基本字段属性
-                    changeBaseValue(index, input, status) {
-                        if (this.editData[0].content[0].uInput[index].input !== input) {
-                            this.editData[0].content[0].uInput[index].input = input
-                            this.editData[0].content[0].uInput[index].status = status
-                        }
-                    },
-                    selectChange(uni, status, two, one) {
+                // 改变基本字段属性
+                changeBaseValue(index, input, status) {
+                    if (this.editData[0].content[0].uInput[index].input !== input) {
+                        this.editData[0].content[0].uInput[index].input = input
+                        this.editData[0].content[0].uInput[index].status = status
+                    }
+                },
+                selectChange(uni, status, two, one) {
                         //状态更新
                         if (uni.status === '-1' || uni.status === '2') {
                             status = 2
                         }
                         this.setStatus(uni, status, two, one)
                     },
-                    openHref() {
+                openHref() {
                         if (!issave) {
                             alert("请先保存数据!")
                         } else {
@@ -919,537 +919,537 @@
                             }
                         }
                     },
-                    // 检查一级是否需要改变状态
-                    checkOneStatus: function (config) {
-                        var tempObj = {
-                            obj: config.type ? config.one : config.two
-                        }
-                        if (config.type) {
-                            tempObj.list = config.one.content
-                        } else {
-                            tempObj.list = config.two.uInput
-                        }
-                        var statusList = [0, 0, 0, 0, 0]
-                        for (var i in tempObj.list) {
-                        var tempList = tempObj.list[i]
-                        var tempIndex = Number(tempList.status)
-                        if (tempIndex === -1) {
-                            tempIndex = 0
-                        }
-                            statusList[tempIndex] = Number(statusList[tempIndex]) + 1
-                        }
-                        if (statusList[1] > 0) {
-                            tempObj.obj.status = 1
-                        }
-                        if (statusList[4] > 0 || statusList[3] > 0 || statusList[2] > 0) {
-                            tempObj.obj.status = 2
+                // 检查一级是否需要改变状态
+                checkOneStatus: function (config) {
+                    var tempObj = {
+                        obj: config.type ? config.one : config.two
+                    }
+                    if (config.type) {
+                        tempObj.list = config.one.content
+                    } else {
+                        tempObj.list = config.two.uInput
+                    }
+                    var statusList = [0, 0, 0, 0, 0]
+                    for (var i in tempObj.list) {
+                    var tempList = tempObj.list[i]
+                    var tempIndex = Number(tempList.status)
+                    if (tempIndex === -1) {
+                        tempIndex = 0
+                    }
+                        statusList[tempIndex] = Number(statusList[tempIndex]) + 1
+                    }
+                    if (statusList[1] > 0) {
+                        tempObj.obj.status = 1
+                    }
+                    if (statusList[4] > 0 || statusList[3] > 0 || statusList[2] > 0) {
+                        tempObj.obj.status = 2
+                    }
+                    if (statusList[4] === tempObj.list.length) {
+                        tempObj.obj.status = 4
+                    if (tempObj.obj.title === "标的信息" || tempObj.obj.title === "多包信息" || tempObj.obj.title === "中标候选人信息") {
+                        tempObj.obj.status = 2
                         }
-                        if (statusList[4] === tempObj.list.length) {
-                            tempObj.obj.status = 4
-                        if (tempObj.obj.title === "标的信息" || tempObj.obj.title === "多包信息" || tempObj.obj.title === "中标候选人信息") {
-                            tempObj.obj.status = 2
+                    }
+                    if (statusList[3] === tempObj.list.length) {
+                        tempObj.obj.status = 2
+                    }
+                    if (statusList[2] === tempObj.list.length) {
+                        tempObj.obj.status = 2
+                    }
+                    if (statusList[0] === tempObj.list.length) {
+                        tempObj.obj.status = -1
+                    }
+                    if (!config.type) {
+                        this.checkOneStatus({
+                            one: config.one,
+                            two: config.two,
+                            type: true
+                        })
+                    }
+                },
+                //切换状态按钮
+                setStatus:function (witch, s, two, one) {
+                    var key = witch.key
+                    //校验日期格式
+                    if (key === "bidendtime" || key === "bidopentime" || key === "project_startdate" || key === "project_completedate" ||
+                        key === "publishtime" || key === "signaturedate") {
+                        var val = witch.input
+                        if (val !== "") {
+                            var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
+                            var regExp = new RegExp(reg);
+                            if (!regExp.test(val)) {
+                                this.$message({
+                                    message: witch.title + ",日期格式错误!正确格式:2006-01-02 15:04:05",
+                                    type: 'warning',
+                                    duration: 2000,
+                                    offset: 300
+                                });
+                                //alert(witch.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
+                                return
                             }
                         }
-                        if (statusList[3] === tempObj.list.length) {
-                            tempObj.obj.status = 2
+                    }
+                    if (s === '2' && !one && !two && witch.content.length === 0) {
+                        return
+                    }
+                    witch.status = s;
+                    if (two) {
+                        this.checkOneStatus({
+                            one: one,
+                            two: two,
+                            type: false
+                        })
+                    }
+                },
+                //二级删除
+                delNewTwo: function (one, index, two) {
+                    //two.ck_isnew = false //目前点删除按钮页面直接不显示,但是集合索引位置不变,所以加了此代码
+                    //two.show = false
+                    if (two.ck_isnew) {
+                        one.content.splice(index, 1)
+                    } else {
+                        two.show = false
+                        two.status = 4
+                        this.saveDataTwo(two, 4, one)
+                    }
+                    this.checkOneStatus({
+                        one: one,
+                        two: two,
+                        type: true
+                    })
+                },
+                /*add style*/
+                addStyle: function (data) {
+                    return prettyPrint(data).replace(/(checkAllTag|checkType|showCheck|wstatus|status|key|title|input|content|uInput|selectArr|select|show|true)/g, "<mark>$1</mark>")
+                },
+                /*同步修改源码*/
+                changeText: function (boolean) {
+                    try {
+                        var tempText = JSON.parse(this.$refs.text.innerText.replace(/(\n|\s)/g, ''))
+                        if (boolean) {
+                            this.tagvalues = tempText
+                        } else {
+                            this.editData = tempText
                         }
-                        if (statusList[2] === tempObj.list.length) {
-                            tempObj.obj.status = 2
+                    } catch (err) {
+                        alert('源码修改失败')
+                    }
+                },
+                goText: function (value) {
+                    /*重置Html*/
+                    this.pageHtml = this.getPageInfo.html
+                    if (!value) {
+                        return false
+                    }
+                    var rs = new RegExp('(' + value + ')', 'gi')
+                    //选中input框值文本高亮
+                    if (rs.test(this.pageHtml)) {
+                        this.pageHtml = this.pageHtml.replace(rs, '<mark>$1</mark>')
+                        /*延迟查询dom,防止dom未插入*/
+                        var $this = this
+                        setTimeout(function () {
+                            $this.goMark(value)
+                        }, 150)
+                    } else {
+                        /*重置Html*/
+                        this.pageHtml = this.getPageInfo.html
+                    }
+                },
+                goMark: function (value) {
+                    var mLength = document.querySelectorAll('mark').length
+                    if (this.scrollCache.value === value) {
+                        this.scrollCache.index = (this.scrollCache.index + 1) % mLength
+                    } else {
+                        this.scrollCache.index = 0
+                    }
+                    this.scrollCache.value = value
+                    /*滚动到第一个mark*/
+                    var temp = document.querySelectorAll('mark')[this.scrollCache.index]
+                    $("mark").removeClass('focus')
+                    $(temp).addClass('focus')
+                    document.querySelector('.article').scrollTop = offset(temp).top - window.screen.height / 2
+                },
+                // markTag:function(n){
+                //    $.ajax({
+                //        url:"/markTag",
+                //        method:"post",
+                //        data: {tag:n,_id:_id},
+                //        success:function(res){
+                //            if(res){
+                //                document.getElementById("com-alert-val").innerHtml="标记成功";
+                //                var label1 = document.getElementById("com-alert");
+                //                label1.style.display="block";
+                //                setTimeout(function(){label1.style.display="none";},1000)
+                //            }
+                //        }
+                //    });
+                // },
+                addChild: function (one, oindex) {
+                    var tempNode = {}
+                    switch (one.title) {
+                        case "标的信息": {
+                            tempNode = {
+                                //content: [],
+                                show: true,
+                                ck_isnew: true,
+                                status: 2,
+                                title: "标的物",
+                                uInput: JSON.parse(JSON.stringify(pclfInput))
+                            }
+                            break
                         }
-                        if (statusList[0] === tempObj.list.length) {
-                            tempObj.obj.status = -1
+                        case "多包信息": {
+                            tempNode = {
+                                //content: [],
+                                show: true,
+                                status: 2,
+                                ck_isnew: true,
+                                title: "子包",
+                                uInput: JSON.parse(JSON.stringify(pfInput))
+                            }
+                            break
                         }
-                        if (!config.type) {
-                            this.checkOneStatus({
-                                one: config.one,
-                                two: config.two,
-                                type: true
-                            })
+                        case "中标候选人信息": {
+                            tempNode = {
+                                //content: [],
+                                show: true,
+                                status: 2,
+                                ck_isnew: true,
+                                title: "候选人",
+                                uInput: JSON.parse(JSON.stringify(wodfInput))
+                            }
+                            break
                         }
-                    },
-                    //切换状态按钮
-                    setStatus:function (witch, s, two, one) {
-                        var key = witch.key
-                        //校验日期格式
+                    }
+                    // if (one.status >= 2) {
+                    //     one.status = '2'
+                    // }
+                    one.content.push(tempNode)
+                    this.checkOneStatus({
+                        one: one,
+                        type: true
+                    })
+                    this.$nextTick(() => {
+                        var tempN = $(".edit.one").eq(oindex).find(".edit-title")
+                        var goTop = tempN.eq(tempN.length - 1).offset().top
+                        setTimeout(() => {
+                            $(".operation").scrollTop($(".operation").scrollTop() + goTop)
+                        }, 150)
+                    })
+                },
+                // 新增子包中标信息字段
+                addThreeChild:function (two, n, one) {
+                    two.uInput.push({
+                        input: "",
+                        key: 'winner',
+                        status: "2",
+                        title: '标段(包)中标单位'
+                    })
+                    two.uInput.push({
+                        input: "",
+                        key: 'bidamount',
+                        status: "2",
+                        title: '标段(包)中标金额'
+                    })
+                    two.status = 2
+                    this.checkOneStatus({
+                        one: one,
+                        two: two,
+                        type: false
+                    })
+                },
+                //保存
+                saveDataTwo:function (two, n, one) {
+                    two.uInput.forEach(function (v) {
+                        var key = v.key
                         if (key === "bidendtime" || key === "bidopentime" || key === "project_startdate" || key === "project_completedate" ||
                             key === "publishtime" || key === "signaturedate") {
-                            var val = witch.input
+                            var val = v.input
                             if (val !== "") {
                                 var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
                                 var regExp = new RegExp(reg);
                                 if (!regExp.test(val)) {
                                     this.$message({
-                                        message: witch.title + ",日期格式错误!正确格式:2006-01-02 15:04:05",
+                                        message: v.title + ",日期格式错误!正确格式:2006-01-02 15:04:05",
                                         type: 'warning',
                                         duration: 2000,
                                         offset: 300
                                     });
-                                    //alert(witch.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
+                                    //alert(v.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
                                     return
                                 }
                             }
                         }
-                        if (s === '2' && !one && !two && witch.content.length === 0) {
-                            return
+                        if (n === "1" && v.status === "-1") {
+                            v.status = n
+                        } else if (n === "-1") {
+                            v.status = n
+                        } else if (n === "2") {
+                            v.status = n
+                        } else if (n === "4") {
+                            v.status = n
                         }
-                        witch.status = s;
-                        if (two) {
-                            this.checkOneStatus({
-                                one: one,
-                                two: two,
-                                type: false
-                            })
-                        }
-                    },
-                    //二级删除
-                    delNewTwo: function (one, index, two) {
-                        //two.ck_isnew = false //目前点删除按钮页面直接不显示,但是集合索引位置不变,所以加了此代码
-                        //two.show = false
-                        if (two.ck_isnew) {
-                            one.content.splice(index, 1)
-                        } else {
-                            two.show = false
-                            two.status = 4
-                            this.saveDataTwo(two, 4, one)
-                        }
-                        this.checkOneStatus({
-                            one: one,
-                            two: two,
-                            type: true
-                        })
-                    },
-                    /*add style*/
-                    addStyle: function (data) {
-                        return prettyPrint(data).replace(/(checkAllTag|checkType|showCheck|wstatus|status|key|title|input|content|uInput|selectArr|select|show|true)/g, "<mark>$1</mark>")
-                    },
-                    /*同步修改源码*/
-                    changeText: function (boolean) {
-                        try {
-                            var tempText = JSON.parse(this.$refs.text.innerText.replace(/(\n|\s)/g, ''))
-                            if (boolean) {
-                                this.tagvalues = tempText
-                            } else {
-                                this.editData = tempText
-                            }
-                        } catch (err) {
-                            alert('源码修改失败')
-                        }
-                    },
-                    goText: function (value) {
-                        /*重置Html*/
-                        this.pageHtml = this.getPageInfo.html
-                        if (!value) {
-                            return false
-                        }
-                        var rs = new RegExp('(' + value + ')', 'gi')
-                        //选中input框值文本高亮
-                        if (rs.test(this.pageHtml)) {
-                            this.pageHtml = this.pageHtml.replace(rs, '<mark>$1</mark>')
-                            /*延迟查询dom,防止dom未插入*/
-                            var $this = this
-                            setTimeout(function () {
-                                $this.goMark(value)
-                            }, 150)
-                        } else {
-                            /*重置Html*/
-                            this.pageHtml = this.getPageInfo.html
-                        }
-                    },
-                    goMark: function (value) {
-                        var mLength = document.querySelectorAll('mark').length
-                        if (this.scrollCache.value === value) {
-                            this.scrollCache.index = (this.scrollCache.index + 1) % mLength
-                        } else {
-                            this.scrollCache.index = 0
-                        }
-                        this.scrollCache.value = value
-                        /*滚动到第一个mark*/
-                        var temp = document.querySelectorAll('mark')[this.scrollCache.index]
-                        $("mark").removeClass('focus')
-                        $(temp).addClass('focus')
-                        document.querySelector('.article').scrollTop = offset(temp).top - window.screen.height / 2
-                    },
-                    // markTag:function(n){
-                    //    $.ajax({
-                    //        url:"/markTag",
-                    //        method:"post",
-                    //        data: {tag:n,_id:_id},
-                    //        success:function(res){
-                    //            if(res){
-                    //                document.getElementById("com-alert-val").innerHtml="标记成功";
-                    //                var label1 = document.getElementById("com-alert");
-                    //                label1.style.display="block";
-                    //                setTimeout(function(){label1.style.display="none";},1000)
-                    //            }
-                    //        }
-                    //    });
-                    // },
-                    addChild: function (one, oindex) {
-                        var tempNode = {}
-                        switch (one.title) {
-                            case "标的信息": {
-                                tempNode = {
-                                    //content: [],
-                                    show: true,
-                                    ck_isnew: true,
-                                    status: 2,
-                                    title: "标的物",
-                                    uInput: JSON.parse(JSON.stringify(pclfInput))
-                                }
-                                break
-                            }
-                            case "多包信息": {
-                                tempNode = {
-                                    //content: [],
-                                    show: true,
-                                    status: 2,
-                                    ck_isnew: true,
-                                    title: "子包",
-                                    uInput: JSON.parse(JSON.stringify(pfInput))
-                                }
-                                break
-                            }
-                            case "中标候选人信息": {
-                                tempNode = {
-                                    //content: [],
-                                    show: true,
-                                    status: 2,
-                                    ck_isnew: true,
-                                    title: "候选人",
-                                    uInput: JSON.parse(JSON.stringify(wodfInput))
-                                }
-                                break
-                            }
-                        }
-                        // if (one.status >= 2) {
-                        //     one.status = '2'
-                        // }
-                        one.content.push(tempNode)
-                        this.checkOneStatus({
-                            one: one,
-                            type: true
-                        })
-                        this.$nextTick(() => {
-                            var tempN = $(".edit.one").eq(oindex).find(".edit-title")
-                            var goTop = tempN.eq(tempN.length - 1).offset().top
-                            setTimeout(() => {
-                                $(".operation").scrollTop($(".operation").scrollTop() + goTop)
-                            }, 150)
-                        })
-                    },
-                    // 新增子包中标信息字段
-                    addThreeChild:function (two, n, one) {
-                        two.uInput.push({
-                            input: "",
-                            key: 'winner',
-                            status: "2",
-                            title: '标段(包)中标单位'
-                        })
-                        two.uInput.push({
-                            input: "",
-                            key: 'bidamount',
-                            status: "2",
-                            title: '标段(包)中标金额'
-                        })
-                        two.status = 2
-                        this.checkOneStatus({
-                            one: one,
-                            two: two,
-                            type: false
-                        })
-                    },
-                    //保存
-                    saveDataTwo:function (two, n, one) {
-                        two.uInput.forEach(function (v) {
-                            var key = v.key
-                            if (key === "bidendtime" || key === "bidopentime" || key === "project_startdate" || key === "project_completedate" ||
-                                key === "publishtime" || key === "signaturedate") {
-                                var val = v.input
-                                if (val !== "") {
-                                    var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
-                                    var regExp = new RegExp(reg);
-                                    if (!regExp.test(val)) {
-                                        this.$message({
-                                            message: v.title + ",日期格式错误!正确格式:2006-01-02 15:04:05",
-                                            type: 'warning',
-                                            duration: 2000,
-                                            offset: 300
-                                        });
-                                        //alert(v.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
-                                        return
+                    });
+                    two.status = n
+                    this.checkOneStatus({
+                        one: one,
+                        two: two,
+                        type: false
+                    })
+                  /**
+                   two.content.forEach(function(v) {
+                      v.uInput.forEach(function(value) {
+                          if (value.input && value.input != '') {
+                              value.status = n
+                          }
+                      })
+                  })
+                   */
+                },
+                saveDataOne:function (one, n) {
+                    //保存后的样式
+                    var _this = this
+                    one.content.forEach(function (v) {
+                        v.uInput.forEach(function (value) {
+                            var key = value.key
+                            if (n === 1) {
+                                if (key === "bidendtime" || key === "bidopentime" || key === "project_startdate" || key === "project_completedate" ||
+                                    key === "publishtime" || key === "signaturedate") {
+                                    var val = value.input
+                                    if (val !== "") {
+                                        var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
+                                        var regExp = new RegExp(reg);
+                                        if (!regExp.test(val)) {
+                                            this.$message({
+                                                message: value.title + ",日期格式错误!正确格式:2006-01-02 15:04:05",
+                                                type: 'warning',
+                                                duration: 2000,
+                                                offset: 300
+                                            });
+                                            //alert(value.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
+                                            return
+                                        }
                                     }
                                 }
                             }
-                            if (n === "1" && v.status === "-1") {
-                                v.status = n
+                            // 取消全部,通过时判断状态是否处于修改新增等
+                            if (n === "1" && value.status === "-1") {
+                                value.status = n
                             } else if (n === "-1") {
-                                v.status = n
-                            } else if (n === "2") {
-                                v.status = n
-                            } else if (n === "4") {
-                                v.status = n
+                                value.status = n
                             }
-                        });
-                        two.status = n
-                        this.checkOneStatus({
+                        })
+
+                        _this.checkOneStatus({
+                            two: v,
                             one: one,
-                            two: two,
                             type: false
                         })
-                      /**
-                       two.content.forEach(function(v) {
-                          v.uInput.forEach(function(value) {
-                              if (value.input && value.input != '') {
-                                  value.status = n
-                              }
-                          })
-                      })
-                       */
-                    },
-                    saveDataOne:function (one, n) {
-                        //保存后的样式
-                        var _this = this
-                        one.content.forEach(function (v) {
-                            v.uInput.forEach(function (value) {
-                                var key = value.key
-                                if (n === 1) {
-                                    if (key === "bidendtime" || key === "bidopentime" || key === "project_startdate" || key === "project_completedate" ||
-                                        key === "publishtime" || key === "signaturedate") {
-                                        var val = value.input
-                                        if (val !== "") {
-                                            var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
-                                            var regExp = new RegExp(reg);
-                                            if (!regExp.test(val)) {
-                                                this.$message({
-                                                    message: value.title + ",日期格式错误!正确格式:2006-01-02 15:04:05",
-                                                    type: 'warning',
-                                                    duration: 2000,
-                                                    offset: 300
-                                                });
-                                                //alert(value.title+",日期格式错误!正确格式:2006-01-02 15:04:05")
-                                                return
-                                            }
-                                        }
+                    });
+                },
+                //验证保存提示
+                open:function (stype) {
+                    this.$confirm('是否保存?', '提示', {
+                        confirmButtonText: '确定',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(() => {
+                        this.upChange(stype)
+                    }).catch(() => {
+                    });
+                },
+                //保存事件
+                upChange: function (stype) {
+                    console.log(this.editData)
+                    var noTagKey = [];
+                    console.log(allCheckFields)
+                    this.editData.filter(function (one) {
+                        if (one.title === "标的信息" || one.title === "多包信息" || one.title === "中标候选人信息") {
+                            if (allCheckFields[one.key] && one.status === -1) {
+                                noTagKey.push(one.title);
+                            }
+                        } else {
+                            one.content.filter(function (v) {
+                                v.uInput.filter(function (u) {
+                                    if (allCheckFields[u.key] && u.status === -1) {
+                                        noTagKey.push(u.title);
                                     }
-                                }
-                                // 取消全部,通过时判断状态是否处于修改新增等
-                                if (n === "1" && value.status === "-1") {
-                                    value.status = n
-                                } else if (n === "-1") {
-                                    value.status = n
-                                }
+                                })
                             })
-
-                            _this.checkOneStatus({
-                                two: v,
-                                one: one,
-                                type: false
+                        }
+                    })
+                    if (noTagKey.length > 0) {
+                        var fieldText = noTagKey.join(",");
+                        fieldText = fieldText.replace(/\([^\)]*\)/g, "");
+                        this.$alert("未标注字段:" + fieldText);
+                        return
+                    }
+                    var resultStatus = false
+                    if (stype === 1) {//全部字段验证
+                        var checkAllKey = this.editData.filter(function (one) {
+                            var otherOne = one.content.filter(function (v) {
+                                return v.uInput.filter(function (u) {
+                                    return u.status === '-1'
+                                }).length
                             })
-                        });
-                    },
-                    //验证保存提示
-                    open:function (stype) {
-                        this.$confirm('是否保存?', '提示', {
-                            confirmButtonText: '确定',
-                            cancelButtonText: '取消',
-                            type: 'warning'
-                        }).then(() => {
-                            this.upChange(stype)
-                        }).catch(() => {
-                        });
-                    },
-                    //保存事件
-                    upChange: function (stype) {
-                        console.log(this.editData)
-                        var noTagKey = [];
-                        console.log(allCheckFields)
-                        this.editData.filter(function (one) {
-                            if (one.title === "标的信息" || one.title === "多包信息" || one.title === "中标候选人信息") {
-                                if (allCheckFields[one.key] && one.status === -1) {
-                                    noTagKey.push(one.title);
-                                }
+                            if ((one.title === "标的信息" || one.title === "多包信息" || one.title === "中标候选人信息") && (one.status === "-1")) {
+                                return true
                             } else {
-                                one.content.filter(function (v) {
-                                    v.uInput.filter(function (u) {
-                                        if (allCheckFields[u.key] && u.status === -1) {
-                                            noTagKey.push(u.title);
-                                        }
-                                    })
-                                })
+                                return otherOne.length
                             }
                         })
-                        if (noTagKey.length > 0) {
-                            var fieldText = noTagKey.join(",");
-                            fieldText = fieldText.replace(/\([^\)]*\)/g, "");
-                            this.$alert("未标注字段:" + fieldText);
-                            return
-                        }
-                        var resultStatus = false
-                        if (stype === 1) {//全部字段验证
-                            var checkAllKey = this.editData.filter(function (one) {
-                                var otherOne = one.content.filter(function (v) {
-                                    return v.uInput.filter(function (u) {
-                                        return u.status === '-1'
-                                    }).length
-                                })
-                                if ((one.title === "标的信息" || one.title === "多包信息" || one.title === "中标候选人信息") && (one.status === "-1")) {
-                                    return true
-                                } else {
-                                    return otherOne.length
-                                }
-                            })
-                            resultStatus = !Boolean(checkAllKey.length)
-                        } else {//部分字段验证
-                            var otherTag = 0 //标注状态 0:没标 1:标注成功 2:标注失败
-                            var baseTag = 0
-                            this.editData.filter(function (one) {
-                                //多包信息、中标候选人信息在为标注失败的前提下检测标注状态,一个失败不能保存
-                                if (otherTag < 2) {
-                                    if (one.title === "标的信息" || one.title === "多包信息" || one.title === "中标候选人信息") {
-                                        if (one.status === "-1") {//没标
-                                            if (otherTag !== 1) {//前一个标注成功不用记录后一个是否未标
-                                                otherTag = 0
+                        resultStatus = !Boolean(checkAllKey.length)
+                    } else {//部分字段验证
+                        var otherTag = 0 //标注状态 0:没标 1:标注成功 2:标注失败
+                        var baseTag = 0
+                        this.editData.filter(function (one) {
+                            //多包信息、中标候选人信息在为标注失败的前提下检测标注状态,一个失败不能保存
+                            if (otherTag < 2) {
+                                if (one.title === "标的信息" || one.title === "多包信息" || one.title === "中标候选人信息") {
+                                    if (one.status === "-1") {//没标
+                                        if (otherTag !== 1) {//前一个标注成功不用记录后一个是否未标
+                                            otherTag = 0
+                                        }
+                                    } else {
+                                        if (one.content.length === 0) {//不含子包
+                                            if (one.status === '2') {
+                                                otherTag = 2 //失败
+                                            } else {
+                                                otherTag = 1 //成功
                                             }
-                                        } else {
-                                            if (one.content.length === 0) {//不含子包
-                                                if (one.status === '2') {
-                                                    otherTag = 2 //失败
-                                                } else {
-                                                    otherTag = 1 //成功
-                                                }
-                                            } else {//含子包
-                                                if (one.title === "标的信息") {
-                                                    var otherOne = one.content.filter(function (v) {
-                                                        if (v.status >= 1) {//子信息标注
-                                                            var twoLength = v.uInput.filter(function (u) {
-                                                                return u.status === '-1'
-                                                            })
-                                                            if (twoLength.length > 0) {
-                                                                otherTag = 2
-                                                            }
-                                                            return true //返回此条信息被标注
-                                                        }
-                                                    })
-                                                    if (otherTag !== 2) {
-                                                        if (otherOne.length > 0) {//
-                                                            otherTag = 1
-                                                        } else {
+                                        } else {//含子包
+                                            if (one.title === "标的信息") {
+                                                var otherOne = one.content.filter(function (v) {
+                                                    if (v.status >= 1) {//子信息标注
+                                                        var twoLength = v.uInput.filter(function (u) {
+                                                            return u.status === '-1'
+                                                        })
+                                                        if (twoLength.length > 0) {
                                                             otherTag = 2
                                                         }
+                                                        return true //返回此条信息被标注
                                                     }
-                                                } else {
-                                                    var otherOne = one.content.filter(function (v) {
-                                                        return v.uInput.filter(function (u) {
-                                                            return u.status === '-1'
-                                                        }).length
-                                                    })
+                                                })
+                                                if (otherTag !== 2) {
                                                     if (otherOne.length > 0) {//
-                                                        otherTag = 2
-                                                    } else {
                                                         otherTag = 1
+                                                    } else {
+                                                        otherTag = 2
                                                     }
                                                 }
+                                            } else {
+                                                var otherOne = one.content.filter(function (v) {
+                                                    return v.uInput.filter(function (u) {
+                                                        return u.status === '-1'
+                                                    }).length
+                                                })
+                                                if (otherOne.length > 0) {//
+                                                    otherTag = 2
+                                                } else {
+                                                    otherTag = 1
+                                                }
                                             }
                                         }
-                                    } else {
-                                        var baseOne = one.content.filter(function (v) {
-                                            return v.uInput.filter(function (u) {
-                                                return u.status !== '-1'
-                                            }).length
-                                        })
-                                        if (baseOne.length > 0) {//基本字段
-                                            baseTag = 1
-                                        }
+                                    }
+                                } else {
+                                    var baseOne = one.content.filter(function (v) {
+                                        return v.uInput.filter(function (u) {
+                                            return u.status !== '-1'
+                                        }).length
+                                    })
+                                    if (baseOne.length > 0) {//基本字段
+                                        baseTag = 1
                                     }
                                 }
-                            })
-                            if (otherTag === 0 && baseTag === 1) {
-                                resultStatus = true
-                            } else if (otherTag === 1) {
-                                resultStatus = true
                             }
+                        })
+                        if (otherTag === 0 && baseTag === 1) {
+                            resultStatus = true
+                        } else if (otherTag === 1) {
+                            resultStatus = true
                         }
-                        if (!resultStatus) {
-                            this.$alert("未标注完成");
-                            return
-                        }
-                        var d = JSON.stringify(this.editData);
-                        console.log(d)
-                        var _this = this
-                        $.ajax({
-                            url: "/front/data/mark",
-                            method: "post",
-                            data: {key: d, _id: _id, stype: stype},
-                            success: function (res) {
-                                if (res) {
-                                    _this.$message({
-                                        message: '保存成功',
-                                        type: 'success',
-                                        duration: 1000,
-                                        offset: 300
-                                    });
-                                    issave = true//保存成功
-                                }
-                            },
-                            error: function (err) {
-                                alert(err);
+                    }
+                    if (!resultStatus) {
+                        this.$alert("未标注完成");
+                        return
+                    }
+                    var d = JSON.stringify(this.editData);
+                    console.log(d)
+                    var _this = this
+                    $.ajax({
+                        url: "/front/data/mark",
+                        method: "post",
+                        data: {key: d, _id: _id, stype: stype},
+                        success: function (res) {
+                            if (res) {
+                                _this.$message({
+                                    message: '保存成功',
+                                    type: 'success',
+                                    duration: 1000,
+                                    offset: 300
+                                });
+                                issave = true//保存成功
                             }
-                        });
-                    },
-                    //保存提示
-                    // open:function(one, type) {
-                    //     this.$confirm('是否保存?', '提示', {
-                    //         confirmButtonText: '确定',
-                    //         cancelButtonText: '取消',
-                    //         type: 'warning'
-                    //     }).then(() => {
-                    //         if (type) {
-                    //             this.saveOneData(one)
-                    //         } else {
-                    //             this.upChange()
-                    //         }
-                    //     }).catch(() => {
-                    //     });
-                    // },
-                    //一级保存
-                    //    saveOneData: function (one) {
-                    //        if (one.title==="标的信息"||one.title==="多包信息"||one.title==="中标候选人信息"){
-                    //            if(one.status ===  "-1"){
-                    //                this.$alert(one.title+" 未标注完成")
-                    //                return
-                    //            }else if (one.status !=="-1"){
-                    //                var isAlert = one.content.filter(function(v) {
-                    //                    return v.uInput.filter(function (u) {
-                    //                        return u.status === '-1'
-                    //                    }).length
-                    //                })
-                    //                if (isAlert.length) {
-                    //                    this.$alert(one.title+" 未标注完成")
-                    //                    return
-                    //                }
-                    //            }
-                    //        }
-                    //        onetext = "["+ JSON.stringify(one) +"]";
-                    //        $.ajax({
-                    //            url:"/center/biaozhu",
-                    //            method:"post",
-                    //            data: {key:onetext,_id:_id},
-                    //            success:function(res){
-                    //                if(res){
-                    //                    document.getElementById("com-alert-val").innerHtml="保存成功";
-                    //                    var label1 = document.getElementById("com-alert");
-                    //                    label1.style.display="block";
-                    //                    setTimeout(function(){
-                    //                            label1.style.display="none";
-                    //                        },
-                    //                        1000)
-                    //                }
-                    //            },
-                    //            error:function(err){
-                    //                alert(err);
-                    //            }
-                    //        });
-                    //    },
+                        },
+                        error: function (err) {
+                            alert(err);
+                        }
+                    });
+                }
+                //保存提示
+                // open:function(one, type) {
+                //     this.$confirm('是否保存?', '提示', {
+                //         confirmButtonText: '确定',
+                //         cancelButtonText: '取消',
+                //         type: 'warning'
+                //     }).then(() => {
+                //         if (type) {
+                //             this.saveOneData(one)
+                //         } else {
+                //             this.upChange()
+                //         }
+                //     }).catch(() => {
+                //     });
+                // },
+                //一级保存
+                //    saveOneData: function (one) {
+                //        if (one.title==="标的信息"||one.title==="多包信息"||one.title==="中标候选人信息"){
+                //            if(one.status ===  "-1"){
+                //                this.$alert(one.title+" 未标注完成")
+                //                return
+                //            }else if (one.status !=="-1"){
+                //                var isAlert = one.content.filter(function(v) {
+                //                    return v.uInput.filter(function (u) {
+                //                        return u.status === '-1'
+                //                    }).length
+                //                })
+                //                if (isAlert.length) {
+                //                    this.$alert(one.title+" 未标注完成")
+                //                    return
+                //                }
+                //            }
+                //        }
+                //        onetext = "["+ JSON.stringify(one) +"]";
+                //        $.ajax({
+                //            url:"/center/biaozhu",
+                //            method:"post",
+                //            data: {key:onetext,_id:_id},
+                //            success:function(res){
+                //                if(res){
+                //                    document.getElementById("com-alert-val").innerHtml="保存成功";
+                //                    var label1 = document.getElementById("com-alert");
+                //                    label1.style.display="block";
+                //                    setTimeout(function(){
+                //                            label1.style.display="none";
+                //                        },
+                //                        1000)
+                //                }
+                //            },
+                //            error:function(err){
+                //                alert(err);
+                //            }
+                //        });
+                //    },
       }
     })