2
3
Prechádzať zdrojové kódy

2023年合同评价-基本条件评价

wd 2 rokov pred
rodič
commit
b2a09fc251
23 zmenil súbory, kde vykonal 1682 pridanie a 217 odobranie
  1. 16 0
      src/dashoo.cn/backend/api/business/oilcontract/contract/contractService.go
  2. 8 0
      src/dashoo.cn/backend/api/business/oilcontract/contractSumScore/contractSumScore.go
  3. 49 30
      src/dashoo.cn/backend/api/business/oilcontract/contractSumScore/contractSumScoreService.go
  4. 21 0
      src/dashoo.cn/backend/api/business/oilcontract/evaluationItems/evaluationItems.go
  5. 4 2
      src/dashoo.cn/backend/api/conf/app.conf
  6. 4 0
      src/dashoo.cn/backend/api/controllers/oilcontract/contractReview.go
  7. 53 51
      src/dashoo.cn/backend/api/controllers/oilcontract/contractSumScore.go
  8. 165 0
      src/dashoo.cn/backend/api/controllers/oilcontract/evaluationItems.go
  9. 8 0
      src/dashoo.cn/frontend_web/src/api/oilcontract/contract.js
  10. 31 24
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year/_opera/operation.vue
  11. 3 1
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year/index.vue
  12. 274 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/basenewlist.vue
  13. 33 21
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluate.vue
  14. 29 22
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods-year/_opera/operation.vue
  15. 5 1
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods-year/index.vue
  16. 274 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/basenewlist.vue
  17. 28 16
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluate.vue
  18. 28 20
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service-year/_opera/operation.vue
  19. 5 1
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service-year/index.vue
  20. 274 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/basenewlist.vue
  21. 33 24
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluate.vue
  22. 322 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/evaluation-items/basenewlist.vue
  23. 15 4
      src/dashoo.cn/frontend_web/src/pages/oilcontract/evaluation-items/index.vue

+ 16 - 0
src/dashoo.cn/backend/api/business/oilcontract/contract/contractService.go

@@ -149,3 +149,19 @@ func (s *OilContractService) GetMyPagingEntitiesWithOrderByIsReview(oilContractN
 	return total
 }
 
+func (s *OilContractService) GetFileCountByName(name string, supplierId int, code string) (total int64) {
+	var resultsSlice []map[string][]byte
+
+	sqlCount := "select count(*) from OilSupplierFile where SupplierId = " + strconv.Itoa(supplierId) + " and NeedFileType = '" + name + "'" + " and IsDelete = 0 and ( SupplierTypeCode = '000' or SupplierTypeCode = '" + code + "') and EffectDate > now()"
+	resultsSlice, _ = s.DBE.Query(sqlCount)
+	if len(resultsSlice) > 0 {
+		results := resultsSlice[0]
+		for _, value := range results {
+			total, _ = strconv.ParseInt(string(value), 10, 64)
+			break
+		}
+	}
+
+	return total
+
+}

+ 8 - 0
src/dashoo.cn/backend/api/business/oilcontract/contractSumScore/contractSumScore.go

@@ -120,6 +120,14 @@ type OilContractComputeSumScoreVo struct {
 	Score8  	  string    `json:"Score8"`
 	Score9        string    `json:"Score9"`
 
+	ConditionScore        string    `json:"ConditionScore"`
+	ConditionScore1    	  string    `json:"ConditionScore1"`
+	ConditionScore2  	  string    `json:"ConditionScore2"`
+	ConditionScore3       string    `json:"ConditionScore3"`
+	ConditionScore4    	  string    `json:"ConditionScore4"`
+	ConditionScore5  	  string    `json:"ConditionScore5"`
+	CountScore  	  	  string    `json:"CountScore"`
+
 	B1    	  string    `json:"B1"`
 	B2  	  string    `json:"B2"`
 	B3        string    `json:"B3"`

+ 49 - 30
src/dashoo.cn/backend/api/business/oilcontract/contractSumScore/contractSumScoreService.go

@@ -106,14 +106,20 @@ func (s *OilContractSumScoreService) GetPagingComputeEntitiesWithOrderBytbl(page
 	//sql += ` case max(cert.Status) when '8' then '已准入' when '11' then '已准入' else '未准入' end as "certStatus", `
 	// 2021年03月28日新增4个字段查询 结束 ↑↑↑↑↑↑↑↑↑
 
-	sql += ` sum(case when items.SequenceNo in  ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B1, `
-	sql += ` sum(case when items.SequenceNo in  ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B2, `
-	sql += ` sum(case when items.SequenceNo in  ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B3, `
-	sql += ` sum(case when items.SequenceNo in  ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B4, `
-	sql += ` sum(case when items.SequenceNo in  ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B5, `
-	sql += ` sum(case when items.SequenceNo in  ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B6, `
-	sql += ` sum(case when items.SequenceNo in  ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B7, `
-	sql += ` sum(case when items.SequenceNo in  ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B8, `
+	//sql += ` sum(case when items.SequenceNo in  ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B1, `
+	//sql += ` sum(case when items.SequenceNo in  ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B2, `
+	//sql += ` sum(case when items.SequenceNo in  ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B3, `
+	//sql += ` sum(case when items.SequenceNo in  ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B4, `
+	//sql += ` sum(case when items.SequenceNo in  ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B5, `
+	//sql += ` sum(case when items.SequenceNo in  ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B6, `
+	//sql += ` sum(case when items.SequenceNo in  ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B7, `
+	//sql += ` sum(case when items.SequenceNo in  ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B8, `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + ` then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore1,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('2') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore2,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('3') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore3,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('4') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore4,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('5') AND items.Type =3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =3` + where1 + `  then 1 else 0 end),2) ConditionScore5,  `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 3` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3` + where1 + `  then 1 else 0 end),2) ConditionScore,  `
 
 	if scoreType == "2" {
 		where1 += " AND items.Category = 0 "
@@ -129,8 +135,9 @@ func (s *OilContractSumScoreService) GetPagingComputeEntitiesWithOrderBytbl(page
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('7') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score7,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('8') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score8,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('9') AND items.Type =1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1` + where1 + `  then 1 else 0 end),2) Score9,  `
-	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1` + where1 + `  then 1 else 0 end),2) Score,  `
-	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1` + where1 + `  then 1 else 0 end),2) < ` + pass + ` then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) < ` + good + ` then 2 else 1 end as Evaluate `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1` + where1 + `  then 1 else 0 end) * 0.75,2) Score,  `
+	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1` + where1 + `  then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1` + where1 + `  then 1 else 0 end) * 0.75,2) < ` + pass + ` then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) < ` + good + ` then 2 else 1 end as Evaluate, `
+	sql += ` (ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2)) CountScore `
 	sql += ` from ` + controllers.OilContractReviewName + ` review `
 	sql += ` left join ` + controllers.OilContractName + ` contract on review.ContractId=contract.id `
 	sql += ` left join ` + controllers.OilContractEvaluationItemsName + ` items on items.ContentReviewId=review.id and items.LevelCode=1 ` + where1
@@ -178,14 +185,15 @@ func (s *OilContractSumScoreService) GetComputeEntity(entitiesPtr interface{}, w
 	var sql string
 	sql = `select YEAR(NOW()) as Year,contract.ContractClass,contract.SupplierId,contract.SupplierName,count(review.id) as count, `
 
-	sql += ` sum(case when items.SequenceNo in  ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B1, `
-	sql += ` sum(case when items.SequenceNo in  ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B2, `
-	sql += ` sum(case when items.SequenceNo in  ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B3, `
-	sql += ` sum(case when items.SequenceNo in  ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B4, `
-	sql += ` sum(case when items.SequenceNo in  ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B5, `
-	sql += ` sum(case when items.SequenceNo in  ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B6, `
-	sql += ` sum(case when items.SequenceNo in  ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B7, `
-	sql += ` sum(case when items.SequenceNo in  ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B8, `
+	//sql += ` sum(case when items.SequenceNo in  ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B1, `
+	//sql += ` sum(case when items.SequenceNo in  ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B2, `
+	//sql += ` sum(case when items.SequenceNo in  ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B3, `
+	//sql += ` sum(case when items.SequenceNo in  ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B4, `
+	//sql += ` sum(case when items.SequenceNo in  ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B5, `
+	//sql += ` sum(case when items.SequenceNo in  ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B6, `
+	//sql += ` sum(case when items.SequenceNo in  ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B7, `
+	//sql += ` sum(case when items.SequenceNo in  ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B8, `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2) ConditionScore,  `
 
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('1') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score1,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('2') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score2,  `
@@ -196,8 +204,9 @@ func (s *OilContractSumScoreService) GetComputeEntity(entitiesPtr interface{}, w
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('7') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score7,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('8') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score8,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('9') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score9,  `
-	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) Score,  `
-	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) < ` + pass + ` then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) < ` + good + ` then 2 else 1 end as Evaluate `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) Score,  `
+	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2) < ` + pass + ` then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2) < ` + good + ` then 2 else 1 end as Evaluate, `
+	sql += ` (ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2)) CountScore `
 	sql += ` from ` + controllers.OilContractReviewName + ` review `
 	sql += ` left join ` + controllers.OilContractName + ` contract on review.ContractId=contract.id `
 	sql += ` left join ` + controllers.OilContractEvaluationItemsName + ` items on items.ContentReviewId=review.id and items.LevelCode=1 `
@@ -251,14 +260,23 @@ func (s *OilContractSumScoreService) GetComputeEntityBytbl(where string) OilCont
 	// contract.ContractClass,
 	var sql string
 	sql = `select YEAR(NOW()) as Year,contract.SupplierId,contract.SupplierName,count(review.id) as count, `
-	sql += ` sum(case when items.SequenceNo in  ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B1, `
-	sql += ` sum(case when items.SequenceNo in  ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B2, `
-	sql += ` sum(case when items.SequenceNo in  ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B3, `
-	sql += ` sum(case when items.SequenceNo in  ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B4, `
-	sql += ` sum(case when items.SequenceNo in  ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B5, `
-	sql += ` sum(case when items.SequenceNo in  ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B6, `
-	sql += ` sum(case when items.SequenceNo in  ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B7, `
-	sql += ` sum(case when items.SequenceNo in  ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B8, `
+	//sql += ` sum(case when items.SequenceNo in  ('1') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B1, `
+	//sql += ` sum(case when items.SequenceNo in  ('2') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B2, `
+	//sql += ` sum(case when items.SequenceNo in  ('3') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B3, `
+	//sql += ` sum(case when items.SequenceNo in  ('4') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B4, `
+	//sql += ` sum(case when items.SequenceNo in  ('5') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B5, `
+	//sql += ` sum(case when items.SequenceNo in  ('6') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B6, `
+	//sql += ` sum(case when items.SequenceNo in  ('7') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B7, `
+	//sql += ` sum(case when items.SequenceNo in  ('8') AND items.Type = 2 AND items.Value > 0 then 1 else 0 end )  B8, `
+
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('1') AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3 then 1 else 0 end),2) ConditionScore1,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('2') AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3 then 1 else 0 end),2) ConditionScore2,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('3') AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3 then 1 else 0 end),2) ConditionScore3,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('4') AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3 then 1 else 0 end),2) ConditionScore4,  `
+	sql += ` ROUND(sum(case when items.SequenceNo in  ('5') AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3 then 1 else 0 end),2) ConditionScore5,  `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2) ConditionScore,  `
+
+
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('1') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score1,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('2') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score2,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('3') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score3,  `
@@ -268,8 +286,9 @@ func (s *OilContractSumScoreService) GetComputeEntityBytbl(where string) OilCont
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('7') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score7,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('8') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score8,  `
 	sql += ` ROUND(sum(case when items.SequenceNo in  ('9') AND items.Type =1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type =1 then 1 else 0 end),2) Score9,  `
-	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) Score,  `
-	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) < ` + pass + ` then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end),2) < ` + good + ` then 2 else 1 end as Evaluate `
+	sql += ` ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) Score,  `
+	sql += ` case when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2) < ` + pass + ` then 3 when ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2) < ` + good + ` then 2 else 1 end as Evaluate, `
+	sql += ` (ROUND(sum(case when items.ParentId = 0 AND items.Type = 1 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 1 then 1 else 0 end) * 0.75,2) + ROUND(sum(case when items.ParentId = 0 AND items.Type = 3 then items.Score else 0 end)/sum(case when items.SequenceNo in  ('1') AND items.Type = 3  then 1 else 0 end),2)) CountScore `
 	sql += ` from ` + controllers.OilContractReviewName + ` review `
 	sql += ` left join ` + controllers.OilContractName + ` contract on review.ContractId=contract.id `
 	sql += ` left join ` + controllers.OilContractEvaluationItemsName + ` items on items.ContentReviewId=review.id and items.LevelCode=1 `

+ 21 - 0
src/dashoo.cn/backend/api/business/oilcontract/evaluationItems/evaluationItems.go

@@ -42,3 +42,24 @@ type DailyItems struct {
 	ModifiedBy     string    `json:"ModifiedBy"`
 	Son			   []DailyItems
 }
+
+type BasicConditionItems struct {
+	Id             int       `json:"Id"`
+	ParentId       int       `json:"ParentId"`
+	Type           string    `json:"Type"`
+	Category       int       `json:"Category"`
+	SequenceNo     string    `json:"SequenceNo"`
+	Content        string    `json:"Content"`
+	NormalScore    string    `json:"NormalScore"`
+	Score          string    `json:"Score"`
+	LevelCode      int       `json:"LevelCode"`
+	Remark         string    `json:"Remark"`
+	IsDelete       int       `json:"IsDelete"`
+	CreateOn       time.Time `json:"CreateOn"`
+	CreateUserId   int       `json:"CreateUserId"`
+	CreateBy       string    `json:"CreateBy"`
+	ModifiedOn     time.Time `json:"ModifiedOn"`
+	ModifiedUserId int       `json:"ModifiedUserId"`
+	ModifiedBy     string    `json:"ModifiedBy"`
+	Son			   []DailyItems
+}

+ 4 - 2
src/dashoo.cn/backend/api/conf/app.conf

@@ -67,8 +67,10 @@ reviewGoodsUrl=http://weed1.labsop.cn:9390/3,04bd11be92260c
 reviewServiceUrl=http://weed1.labsop.cn:9390/4,04bd0e8e219881
 reviewBasisUrl=http://weed1.labsop.cn:9390/6,03b041cda73303
 contractSumScoreUrl=http://weed1.labsop.cn:9390/3,04b52a0cbe710e
-ServiceSumScoreUrl=http://weed1.labsop.cn:9390/1,036a3addb41d61
-GoodsSumScoreUrl=http://weed1.labsop.cn:9390/1,04f468ac70e35b
+# ServiceSumScoreUrl=http://weed1.labsop.cn:9390/1,036a3addb41d61
+ServiceSumScoreUrl=http://weed1.labsop.cn:9390/11,05271ba49ace99
+# GoodsSumScoreUrl=http://weed1.labsop.cn:9390/1,04f468ac70e35b
+GoodsSumScoreUrl=http://weed1.labsop.cn:9390/12,05271afcead351
 
 goodsModuleHost=http://weed1.labsop.cn:9390/6,387ef1cde26d
 basisModuleHost=http://weed1.labsop.cn:9390/4,387f41329d9c

+ 4 - 0
src/dashoo.cn/backend/api/controllers/oilcontract/contractReview.go

@@ -839,6 +839,10 @@ func (this *OilContractReviewController) DeleteEntity() {
 	opdesc := "删除-" + Id
 	err := svc.DeleteOperationAndWriteLogBytbl(OilContractReviewName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "钻井日报")
 	if err == nil {
+		// 删除子表
+		where := "delete from OilContractEvaluationItems where ContentReviewId = " + Id
+		svc.DBE.Exec(where)
+
 		activitiService := workflow.GetActivitiService(utils.DBE)
 		var deleteProcessVM workflow.DeleteProcessVM
 		if model.WorkflowId != "" && model.WorkflowId != "0" {

+ 53 - 51
src/dashoo.cn/backend/api/controllers/oilcontract/contractSumScore.go

@@ -221,20 +221,20 @@ func (this *OilContractSumScoreController) GetComputeEntityList() {
 	var list []contractSumScore.OilContractComputeSumScoreVo
 	total := svc.GetPagingComputeEntitiesWithOrderBytbl(page.CurrentPage, page.Size, orderby, asc, &list, where, having, ScoreType)
 
-	if ContractClass == "02" {
-		for index, item := range list {
-			where1 := where + " and contract.SupplierId = " + strconv.Itoa(item.SupplierId)
-			var list1 []contractSumScore.OilContractSumScoreResult
-			svc.GetSumListEntitiesWithOrderBytbl(&list1, where1)
-			if len(list1) > 0 {
-				for _, value := range list1 {
-					if value.Result2 == "0" {
-						list[index].Result = "0"
-					}
-				}
-			}
-		}
-	}
+	//if ContractClass == "02" {
+	//	for index, item := range list {
+	//		where1 := where + " and contract.SupplierId = " + strconv.Itoa(item.SupplierId)
+	//		var list1 []contractSumScore.OilContractSumScoreResult
+	//		svc.GetSumListEntitiesWithOrderBytbl(&list1, where1)
+	//		if len(list1) > 0 {
+	//			for _, value := range list1 {
+	//				if value.Result2 == "0" {
+	//					list[index].Result = "0"
+	//				}
+	//			}
+	//		}
+	//	}
+	//}
 	var datainfo DataInfo
 	datainfo.Items = list
 	datainfo.CurrentItemCount = total
@@ -256,7 +256,7 @@ func (this *OilContractSumScoreController) GetComputeHeaderEntityList() {
 	sql := `select a.NormalScore, a.Content from OilContractEvaluationItems a
 			left join OilContractReview b on a.ContentReviewId = b.Id
 			left join OilContract c on b.ContractId = c.Id
-			where a.ModifiedOn like '` + Year + `%' and a.ParentId = 0 and c.ContractClass = '` + ContractClass + `'
+			where a.ModifiedOn like '` + Year + `%' and a.ParentId = 0 and a.Type = 1 and c.ContractClass = '` + ContractClass + `'
 			group by a.NormalScore, a.Content`
 	utils.DBE.Sql(sql).Find(&model)
 	this.Data["json"] = &model
@@ -881,20 +881,22 @@ func (this *OilContractSumScoreController) DocExport() {
 	datamap["AccessCardNo"] = supplierCertModel.AccessCardNo
 	datamap["ContactName"] = supplierModel.ContactName
 	datamap["Mobile"] = supplierModel.Mobile
-	datamap["Result1"] = Result2
-	if list.Evaluate == "1" {
-		datamap["Result2"] = "优秀"
-	} else if list.Evaluate == "2" {
-		datamap["Result2"] = "合格"
-	} else if list.Evaluate == "3" {
-		datamap["Result2"] = "不合格"
-	} else {
-		datamap["Result2"] = "观察使用"
-	}
-	if Result2 == "否" {
-		datamap["Result2"] = "不合格"
-	}
-	datamap["SumScore"] = list.Score
+	datamap["Result2"] = list.Score
+	datamap["Result1"] = list.ConditionScore
+	//datamap["Result1"] = Result2
+	//if list.Evaluate == "1" {
+	//	datamap["Result2"] = "优秀"
+	//} else if list.Evaluate == "2" {
+	//	datamap["Result2"] = "合格"
+	//} else if list.Evaluate == "3" {
+	//	datamap["Result2"] = "不合格"
+	//} else {
+	//	datamap["Result2"] = "观察使用"
+	//}
+	//if Result2 == "否" {
+	//	datamap["Result2"] = "不合格"
+	//}
+	datamap["SumScore"] = list.CountScore
 	datamap["SumScore1"] = list.Score1
 	datamap["Count"] = total
 	Amount := 10000.00
@@ -918,14 +920,14 @@ func (this *OilContractSumScoreController) DocExport() {
 	datamap["SumScore8"] = list.Score8
 	datamap["Content8"] = strings.TrimLeft(item[7].Content1, ",")
 
-	datamap["B1"] = list.B1
-	datamap["B2"] = list.B2
-	datamap["B3"] = list.B3
-	datamap["B4"] = list.B4
-	datamap["B5"] = list.B5
-	datamap["B6"] = list.B6
-	datamap["B7"] = list.B7
-	datamap["B8"] = list.B8
+	//datamap["B1"] = list.B1
+	//datamap["B2"] = list.B2
+	//datamap["B3"] = list.B3
+	//datamap["B4"] = list.B4
+	//datamap["B5"] = list.B5
+	//datamap["B6"] = list.B6
+	//datamap["B7"] = list.B7
+	//datamap["B8"] = list.B8
 
 	datamap["Year"] = model.Year
 	datamap["Department"] = model.Unit
@@ -1048,20 +1050,20 @@ func (this *OilContractSumScoreController) ExcelExport() {
 	svc.GetPagingComputeEntitiesWithOrderBytbl(0, 0, orderby, asc, &list, where, having, ScoreType)
 
 
-	if ContractClass == "02" {
-		for index, item := range list {
-			where1 := where + " and contract.SupplierId = " + strconv.Itoa(item.SupplierId)
-			var list1 []contractSumScore.OilContractSumScoreResult
-			svc.GetSumListEntitiesWithOrderBytbl(&list1, where1)
-			if len(list1) > 0 {
-				for _, value := range list1 {
-					if value.Result2 == "0" {
-						list[index].Result = "0"
-					}
-				}
-			}
-		}
-	}
+	//if ContractClass == "02" {
+	//	for index, item := range list {
+	//		where1 := where + " and contract.SupplierId = " + strconv.Itoa(item.SupplierId)
+	//		var list1 []contractSumScore.OilContractSumScoreResult
+	//		svc.GetSumListEntitiesWithOrderBytbl(&list1, where1)
+	//		if len(list1) > 0 {
+	//			for _, value := range list1 {
+	//				if value.Result2 == "0" {
+	//					list[index].Result = "0"
+	//				}
+	//			}
+	//		}
+	//	}
+	//}
 
 	var datainfo ErrorDataInfo
 	if len(list) == 0 {

+ 165 - 0
src/dashoo.cn/backend/api/controllers/oilcontract/evaluationItems.go

@@ -1,6 +1,10 @@
 package oilcontract
 
 import (
+	"dashoo.cn/backend/api/business/oilcontract/contract"
+	"dashoo.cn/backend/api/business/oilsupplier/supplier"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
+	"dashoo.cn/backend/api/business/oilsupplier/supplierfile"
 	"encoding/json"
 	"strconv"
 	"strings"
@@ -222,6 +226,167 @@ func (this *OilEvaluationItemsController) GetOneEntityList() {
 	this.ServeJSON()
 }
 
+// @Title 获取2023基本条件评价
+// @Description get user by token
+// @Success 200 {object} []evaluationItems.OilEvaluationItems
+// @router /basicConditionList/:type/:contractId [get]
+func (this *OilEvaluationItemsController) GetBasicConditionList() {
+	Type := this.Ctx.Input.Param(":type")
+
+	// 获取合同信息
+	contractId := this.Ctx.Input.Param(":contractId")
+	var contractModel contract.OilContract
+	contractSvc := contract.GetOilContractService(utils.DBE)
+	contractSvc.GetEntityByIdBytbl(OilContractName, contractId, &contractModel)
+	// 获取公司信息
+	supplierId := contractModel.SupplierId
+	supplierSvc := supplier.GetOilSupplierService(utils.DBE)
+	var supplierModel supplier.OilSupplier
+	supplierSvc.GetEntityByIdBytbl(OilSupplierName, supplierId, &supplierModel)
+	regCapital := supplierModel.RegCapital * 10000 // 注册资金
+	operType := supplierModel.OperType // 类型
+	legalPerson := supplierModel.LegalPerson // 法人
+
+	var certModel suppliercert.OilSupplierCert
+	certSvc := suppliercert.GetOilSupplierCertService(utils.DBE)
+	certSql := "SupplierId = " + strconv.Itoa(supplierId) + " and SupplierTypeCode = " + Type + " and InFlag = '1' and ApplyTime > now()"
+	certSvc.GetEntityByWhere(OilSupplierCertName, certSql, &certModel)
+
+	var fileList []supplierfile.OilSupplierFile
+	// 过期的file
+	fileSql := "SupplierId = " + strconv.Itoa(supplierId) + " and EffectDate < now()"
+	certSvc.GetEntitysByWhere(OilSupplierFileName, fileSql, &fileList)
+
+	//获取分页信息
+	page := this.GetPageInfoForm()
+	orderby := "Id"
+	where := " ParentId = 0"
+	if Type != "0" {
+		where += " AND Type = " + Type
+	}
+	where += " AND Category = 3"
+	svc := evaluationItems.GetOilEvaluationItemsService(utils.DBE)
+	var list []evaluationItems.OilEvaluationItems
+	var result []evaluationItems.BasicConditionItems
+	total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, true, &list, where)
+
+	for _, value := range list {
+		var firstTmp evaluationItems.BasicConditionItems
+		firstTmp.Content = value.Content
+		firstTmp.ParentId = value.ParentId
+		firstTmp.Id = value.Id
+		firstTmp.Type = value.Type
+		firstTmp.Category = value.Category
+		firstTmp.SequenceNo = value.SequenceNo
+		firstTmp.Remark = value.Remark
+		firstTmp.LevelCode = value.LevelCode
+		firstTmp.NormalScore = value.NormalScore
+		normalScore := "0"
+		if Type == "01" {
+			if value.SequenceNo == "1" {
+				// 供方是否具有独立法人资格,《市场管理信息系统》中供方名称与营业执照是否一致,保持一致且持续有效得5分,否则为0分。
+				fileTotal := contractSvc.GetFileCountByName("营业执照", supplierId, "01")
+				if fileTotal > 0 && legalPerson != "" {
+					normalScore = "5"
+				}
+			} else if value.SequenceNo == "2" {
+				// 制造商5分,代理商3分,贸易商1分。
+				if operType == "制造商" {
+					normalScore = "5"
+				} else if operType == "代理商" {
+					normalScore = "3"
+				} else if operType == "贸易商" {
+					normalScore = "1"
+				}
+			} else if value.SequenceNo == "3" {
+				// 注册资金在1亿元及以上得5分,小于1亿元且大于5000万元得4分,5000万元及以下且大于1000万元得3分,1000万元及以下且大于500万元得2分,500万元及以下得1分
+				if regCapital >= 100000000 {
+					normalScore = "5"
+				} else if regCapital < 100000000 && regCapital > 50000000 {
+					normalScore = "4"
+				} else if regCapital <= 50000000 && regCapital > 10000000 {
+					normalScore = "3"
+				} else if regCapital <= 10000000 && regCapital > 5000000 {
+					normalScore = "2"
+				} else if regCapital <= 5000000 {
+					normalScore = "1"
+				}
+			} else if value.SequenceNo == "4" {
+				// 如期办理大港油田公司供方年审、及时更新相关资质信息,系统准入状态有效的得5分,否则为0分。
+				if certModel.Id > 0 && len(fileList) == 0 {
+					normalScore = "5"
+				}
+			} else if value.SequenceNo == "5" {
+				// 具备质量管理体系认证证书且持续有效得5分,认证证书过期或无认证证书得0分
+				fileTotal := contractSvc.GetFileCountByName("质量管理体系认证证书", supplierId, "01")
+				if fileTotal > 0 {
+					normalScore = "5"
+				}
+			}
+
+		} else if Type == "02" || Type == "03" {
+			if value.SequenceNo == "1" {
+				// 供方名称与营业执照保持一致且持续有效得5分,否则为0分。
+				fileTotal := contractSvc.GetFileCountByName("营业执照", supplierId, Type)
+				if fileTotal > 0 && legalPerson != "" {
+					normalScore = "5"
+				}
+			} else if value.SequenceNo == "2" {
+				// 注册资金在1亿元及以上得5分,小于1亿元且大于5000万元得4分,5000万元及以下且大于1000万元得3分,1000万元及以下且大于500万元得2分,500万元及以下得1分
+				if regCapital >= 100000000 {
+					normalScore = "5"
+				} else if regCapital < 100000000 && regCapital > 50000000 {
+					normalScore = "4"
+				} else if regCapital <= 50000000 && regCapital > 10000000 {
+					normalScore = "3"
+				} else if regCapital <= 10000000 && regCapital > 5000000 {
+					normalScore = "2"
+				} else if regCapital <= 5000000 {
+					normalScore = "1"
+				}
+			} else if value.SequenceNo == "3" {
+				// 如期办理大港油田公司供方年审、及时更新相关资质信息,系统准入状态有效的得5分,否则为0分。
+				if certModel.Id > 0 && len(fileList) == 0 {
+					normalScore = "5"
+				}
+			} else if value.SequenceNo == "4" {
+				// 质量、环境、职业健康安全管理体系认证通过且持续有效得5分,其中一个证书失效扣1分,两个证书失效扣2分,三个证书全部失效及无以上三个证书供方得0分
+				fileTotal1 := contractSvc.GetFileCountByName("环境管理体系认证证书", supplierId, Type)
+				fileTotal2 := contractSvc.GetFileCountByName("质量管理体系认证证书", supplierId, Type)
+				fileTotal3 := contractSvc.GetFileCountByName("职业健康安全管理体系认证证书", supplierId, Type)
+				if fileTotal1 == 0 && fileTotal2 == 0 && fileTotal3 == 0 {
+					normalScore = "0"
+				} else {
+					score := 5
+					if fileTotal1 < 0 {
+						score-=1
+					}
+					if fileTotal2 < 0 {
+						score-=1
+					}
+					if fileTotal3 < 0 {
+						score-=1
+					}
+					normalScore = strconv.Itoa(score)
+				}
+			} else if value.SequenceNo == "5" {
+				// 按要求办理大港油田公司安全资质审查得5分,否则为0分。
+				fileTotal := contractSvc.GetFileCountByName("安全资质审查", supplierId, Type)
+				if fileTotal > 0 {
+					normalScore = "5"
+				}
+			}
+		}
+		firstTmp.Score = normalScore
+		result = append(result, firstTmp)
+	}
+	var datainfo DataInfo
+	datainfo.Items = result
+	datainfo.CurrentItemCount = total
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
 // @Title 获取实体
 // @Description 获取实体
 // @Success 200 {object} evaluationItems.OilEvaluationItems

+ 8 - 0
src/dashoo.cn/frontend_web/src/api/oilcontract/contract.js

@@ -26,6 +26,14 @@ export default {
     })
   },
 
+  // 基本条件2023
+  basicConditionList (contractId, contractClass, myAxios) {
+    return myAxios({
+      url: '/evaluation-items/basicConditionList/' + contractClass + '/' + contractId,
+      method: 'GET'
+    })
+  },
+
   // 初审
   contractUnitAudit (entityId, params, myAxios) {
     return myAxios({

+ 31 - 24
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year/_opera/operation.vue

@@ -49,8 +49,8 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="评价得分" prop="SumScore">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore" :max="100" :min="0"
+                  <el-form-item label="评价得分" prop="CountScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.CountScore" :max="100" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
@@ -122,17 +122,23 @@
                 <!--  </el-form-item>-->
                 <!--</el-col>-->
                 <el-col :span="8">
-                  <el-form-item label="业绩评价结果" prop="Result1">
-                    <el-input-number :disabled="true" v-model="evaluateData.Result1" :max="100" :min="0"
+                  <el-form-item label="业绩评价结果" prop="SumScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore" :max="100" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                  <el-form-item label="基本条件评价结果" prop="Result2">
-                    <el-input :readonly="true" v-model="evaluateData.Result2" placeholder="请输入"
-                              style="width: 100%"></el-input>
+                  <el-form-item label="基本条件评价结果" prop="ConditionScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.ConditionScore" :max="25" :min="0"
+                                     placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
+<!--                <el-col :span="8">-->
+<!--                  <el-form-item label="基本条件评价结果" prop="Result2">-->
+<!--                    <el-input :readonly="true" v-model="evaluateData.Result2" placeholder="请输入"-->
+<!--                              style="width: 100%"></el-input>-->
+<!--                  </el-form-item>-->
+<!--                </el-col>-->
               </el-row>
               <el-row>
                 <el-col :span="16">
@@ -391,7 +397,6 @@ export default {
         Id: 0,
         Status: 0
       },
-
       editData: {},
       evaluation_list: [],
       auditBtn: false,
@@ -582,27 +587,29 @@ export default {
       this.$set(this.evaluateData, 'SumScore6', Number(item.Score6))
       this.$set(this.evaluateData, 'SumScore7', Number(item.Score7))
       this.$set(this.evaluateData, 'SumScore8', Number(item.Score8))
+      this.$set(this.evaluateData, 'ConditionScore', Number(item.ConditionScore))
+      this.$set(this.evaluateData, 'CountScore', Number(item.CountScore))
       console.log(item,'item')
       // this.$set(this.evaluateData, 'Result1', '')
       // this.$set(this.evaluateData, 'Result2', '')
       // this.getList()
       // 判断基本条件结果
-      let params = {
-        ContractClass : '02'
-      }
-      api.GetResultEntity(id,params, this.$axios).then(res => {
-        console.log('结果', res)
-        this.$set(this.evaluateData, 'Result1', res.data.Result1)
-        if (res.data.Result2 && res.data.Result2 == '0') {
-          this.$set(this.evaluateData, 'Result2', '否')
-          this.$set(this.evaluateData, 'Conclusion', 3)
-        } else {
-          this.$set(this.evaluateData, 'Result2', '是')
-          this.$set(this.evaluateData, 'Conclusion', Number(item.Evaluate))
-        }
-      }).catch(err => {
-        console.error(err)
-      })
+      // let params = {
+      //   ContractClass : '02'
+      // }
+      // api.GetResultEntity(id,params, this.$axios).then(res => {
+      //   console.log('结果', res)
+      //   this.$set(this.evaluateData, 'Result1', res.data.Result1)
+      //   if (res.data.Result2 && res.data.Result2 == '0') {
+      //     this.$set(this.evaluateData, 'Result2', '否')
+      //     this.$set(this.evaluateData, 'Conclusion', 3)
+      //   } else {
+      //     this.$set(this.evaluateData, 'Result2', '是')
+      //     this.$set(this.evaluateData, 'Conclusion', Number(item.Evaluate))
+      //   }
+      // }).catch(err => {
+      //   console.error(err)
+      // })
     },
     // 获取编辑信息
     showIdDatas () {

+ 3 - 1
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year/index.vue

@@ -68,7 +68,9 @@
           </template>
         </el-table-column>
         <el-table-column sortable prop="SupplierName" header-align="center" width="250" align="center" label="承包商名称"></el-table-column>
-        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="评价得分(100分)" width="140" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="CountScore" header-align="center" label="评价得分(100分)" width="140" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="业绩评价结果(75分)" width="170" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="ConditionScore" header-align="center" label="基本条件评价结果(25分)" width="180" align="center"></el-table-column>
 
         <!-- <el-table-column sortable show-overflow-tooltip label="法人资格和相应的资质证明文件应满足要求且持续有效" header-align="center"  :min-width="tableWidth">
           <template slot-scope="scope">

+ 274 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/basenewlist.vue

@@ -0,0 +1,274 @@
+<template>
+  <div>
+    <el-form ref="formEvaluation" :model="entityListData" label-width="0px" :rules="rules">
+      <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading">
+        <el-table-column
+          property="SequenceNo"
+          label="序号"
+          header-align="center"
+          align="center"
+          width="80">
+        </el-table-column>
+        <el-table-column
+          property="Content"
+          header-align="center"
+          label="评价项目">
+        </el-table-column>
+        <el-table-column
+          property="NormalScore"
+          label="标准分值"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.NormalScore }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Score"
+          label="实得分数"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <el-form-item style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'"
+                          :rules="rules.relation">
+              <el-input size="mini" :min="0" :max="scope.row.NormalScore" type="number" placeholder="实得分数"
+                        :disabled="!disabledForm" v-model="scope.row.Score"
+                        @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+        <div>标准总分:{{ standardNum }}分</div>
+        <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getNumFun() }}分</div>
+      </div>
+    </el-form>
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                   :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+    </el-pagination> -->
+  </div>
+</template>
+<script>
+import {mapGetters} from 'vuex'
+// import api from '@/api/oilcontract/contractEvaluationItems';
+import api from '@/api/oilcontract/contract'
+
+export default {
+  computed: {
+    ...mapGetters({
+      authUser: 'authUser'
+    }),
+    getNumFun: function () {
+      return function () {
+        var num = 0
+        var list = this.entityListData.entityList
+        for (var index = 0; index < list.length; index++) {
+          // var code = Number(list[index].LevelCode)
+          if (list[index].LevelCode == 1) {
+            num = num + Number(list[index].Score)
+          }
+        }
+        return num
+      }
+    }
+  },
+  name: 'oilcontractevaluationitems',
+  props: {
+    // 评价id
+    evaluateId: {
+      type: null,
+      default: ''
+    },
+    // 类型 0 二级部门创建 1 专业处创建
+    category: {
+      type: null,
+      default: ''
+    },
+    // 项目类型
+    ContractClass: {
+      type: null,
+      default: ''
+    },
+    ContractId: {
+      type: null,
+      default: ''
+    },
+    // 是否禁用
+    disabledForm: {
+      type: null,
+      default: false
+    },
+    // 二级单位提交还是业务处室提交
+    isBusiness: {
+      type: null,
+      default: 0
+    }
+  },
+  data () {
+    var validatePass = (rule, value, callback) => {
+      var num = Number(value)
+      if (num == '' && num != 0) {
+        this.fractionBoolean = false
+        callback(new Error('请输入分值'))
+        return
+      }
+      // if (num > Number(this.branchNum)) {
+      //   this.fractionBoolean = false
+      //   callback(new Error('不能大于规定的分值'));
+      //   return
+      // }
+      if (num < 0) {
+        this.fractionBoolean = false
+        callback(new Error('不能为负数'))
+        return
+      }
+      this.fractionBoolean = true
+      callback()
+    }
+    return {
+      tableLoading: false,
+      dialogVisible: false,
+      // 列表数据
+      entityListData: {
+        entityList: []
+      },
+      rules: {
+        relation: [
+          {validator: validatePass, trigger: 'blur'}
+        ]
+      },
+      // 分页参数
+      size: 10,
+      currentPage: 1,
+      currentItemCount: 0,
+      // 列表排序
+      Column: {
+        Order: '',
+        Prop: ''
+      },
+      // 查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
+      CreateOn: [],
+      // 查询项
+      searchFormReset: {},
+      standardNum: 0, // 标准分数
+      getNum: 0// 实得总分
+
+    }
+  },
+  created () {
+    // 查询条件初始值备份
+    Object.assign(this.searchFormReset, this.searchForm)
+    // 查询列表
+    // this.initDatas();
+    // this.getDictOptions()
+
+    // 判断是编辑状态还是新增状态
+    if (this.evaluateId == 0) {
+      this.initDatas()
+    } else {
+      this.editDatas()
+    }
+  },
+  methods: {
+    // aa(){
+    //   if (this.evaluateId == 0) {
+    //     this.initDatas();
+    //   } else {
+    //     this.editDatas();
+    //   }
+    // },
+    // 分数校验
+    onInputFen (index, fen) {
+      this.branchNum = fen
+      // this.entityListData.entityList[index].Score = fen
+    },
+    initDatas () {
+      this.tableLoading = true
+      console.log('初始化了没有111???', this.ContractClass)
+      this.standardNum = 0
+      api.basicConditionList(this.ContractId, this.ContractClass, this.$axios).then(res => {
+        this.tableLoading = false
+        console.log('上级节点内容', res)
+        var data = res.data.items
+        var list = []
+
+        for (var index = 0; index < data.length; index++) {
+          data[index].typeStatus = index
+          data[index].Value = 1
+          data[index].Category = 3
+          // this.$set(data[index],'NormalScore','0')
+          list.push(data[index])
+          this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+        }
+        this.entityListData.entityList = list
+        console.log('处理完的数据', list)
+      }).catch(err => {
+        this.tableLoading = false
+        console.error(err)
+      })
+    },
+    // 初始数据
+    editDatas () {
+      this.tableLoading = true
+      this.standardNum = 0
+      console.log('处室初始的分类是什么 ', this.category)
+      var data = {
+        ContentReviewId: this.evaluateId,
+        Category: this.isBusiness == 1 ? 2 : this.category,
+        Type: 3
+      }
+      api.contractEvaluationTree(data, this.$axios).then(res => {
+        this.tableLoading = false
+        let data = res.data.items
+        let list = []
+        if (data) {
+          for (let index = 0; index < data.length; index++) {
+            data[index].typeStatus = index
+            data[index].Value = data[index].Value === undefined || data[index].Value === '' ? '0' : data[index].Value
+            data[index].Category = 2
+            list.push(data[index])
+            this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+          }
+        }
+        this.entityListData.entityList = list
+        console.log('处理完的数据', list)
+      }).catch(err => {
+        this.tableLoading = false
+        console.error(err)
+      })
+    },
+
+    jstimehandle (val) {
+      if (val === '') {
+        return '----'
+      } else if (val === '0001-01-01T08:00:00+08:00') {
+        return '----'
+      } else if (val === '5000-01-01T23:59:59+08:00') {
+        return '永久'
+      } else {
+        val = val.replace('T', ' ')
+        return val.substring(0, 10)
+      }
+    },
+
+    formatDateTime (date) {
+      var y = date.getFullYear()
+      var m = date.getMonth() + 1
+      m = m < 10 ? ('0' + m) : m
+      var d = date.getDate()
+      d = d < 10 ? ('0' + d) : d
+      var h = date.getHours()
+      var minute = date.getMinutes()
+      minute = minute < 10 ? ('0' + minute) : minute
+      return y + '-' + m + '-' + d + ' ' + h + ':' + minute
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+.el-pagination {
+  margin: 1rem 0 2rem;
+  text-align: right;
+}
+</style>

+ 33 - 21
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluate.vue

@@ -182,9 +182,13 @@
                            :disabledForm="auditBtnBoolean"></evaluation-list>
         </el-tab-pane>
         <!-- v-if="formData.Status=='4'||Number(formData.Status)>4" -->
-        <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">
-          <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"
-                     :ContractClass="contractData.ContractClass" :isBusiness="isBusiness" :disabledForm="auditBtnBoolean"></base-list>
+<!--        <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">-->
+<!--          <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"-->
+<!--                     :ContractClass="contractData.ContractClass" :isBusiness="isBusiness" :disabledForm="auditBtnBoolean"></base-list>-->
+<!--        </el-tab-pane>-->
+        <el-tab-pane label="基本条件评价" name="4">
+          <base-new-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0" v-if="contractData.ContractClass" :ContractId="contractData.Id"
+                     :ContractClass="contractData.ContractClass" :isBusiness="isBusiness" :disabledForm="auditBtnBoolean"></base-new-list>
         </el-tab-pane>
         <el-tab-pane label="专业处室业绩评价" name="3"
                      v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4) && (formData.IsBusiness != 1 && byBus !=1)">
@@ -192,11 +196,17 @@
                            :ContractClass="contractData.ContractClass"
                            :disabledForm="auditBtnBooleanZhuan"></evaluation-list>
         </el-tab-pane>
+<!--        <el-tab-pane-->
+<!--          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && (formData.IsBusiness != 1 && byBus != 1)"-->
+<!--          label="专业处室基本条件评价" name="5">-->
+<!--          <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"-->
+<!--                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>-->
+<!--        </el-tab-pane>-->
         <el-tab-pane
-          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && (formData.IsBusiness != 1 && byBus != 1)"
+          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4) && (formData.IsBusiness != 1 && byBus != 1)"
           label="专业处室基本条件评价" name="5">
-          <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"
-                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>
+          <base-new-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1" v-if="contractData.ContractClass"
+                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan" :ContractId="contractData.Id"></base-new-list>
         </el-tab-pane>
 
         <el-tab-pane label="审批流程" name="6" :disabled="formData.Status==0">
@@ -229,6 +239,7 @@ import {
 import api from '@/api/oilcontract/contract'
 import evaluationList from './evaluationlist'
 import baseList from './baselist'
+import baseNewList from './basenewlist'
 import WfHistory from '@/components/workflow/wfhistory.vue'
 import apiCert from '@/api/oilsupplier/suppliercert'
 import permissionApi from '@/api/oilcontract/permission'
@@ -246,6 +257,7 @@ export default {
     evaluationList,
     WfHistory,
     baseList,
+    baseNewList,
     submitPopup
   },
 
@@ -522,16 +534,16 @@ export default {
     onSeaveBigAdd (val) {
       if (this.formData.Status <= 0) { //  普通二级用户评价evaluation_listType_one
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         //  获取第一列评价格式
         var list = this.evaluation_list
         for (var i = 0; i < list.length; i++) {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
@@ -557,14 +569,14 @@ export default {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
         }
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_two.entityListData.entityList)
-        }
+        // }
         //  获取第一列评价格式c
         this.$refs.evaluation_list_two.$refs.formEvaluation.validate((valid) => {
           if (valid) {
@@ -582,14 +594,14 @@ export default {
         // 企管法规处审批时保存
         // 预处理二级单位的保存
         let secEvaList = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           secEvaList = secEvaList.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         for (let i = 0; i < secEvaList.length; i++) {
           if (Number(secEvaList[i].Score) > Number(secEvaList[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
@@ -610,14 +622,14 @@ export default {
           if (Number(businessEvaList[i].Score) > Number(businessEvaList[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
         }
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           businessEvaList = businessEvaList.concat(this.$refs.evaluation_listType_two.entityListData.entityList)
-        }
+        // }
         this.$refs.evaluation_list_two.$refs.formEvaluation.validate((valid) => {
           if (valid) {
             proValid = true
@@ -665,15 +677,15 @@ export default {
     onSaveEvaByBusiness (val) {
       if (this.formData.Status <= 0 || this.formData.Status == '4' || this.formData.Status == '7') { // 业务处室保存评价
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         var list = this.evaluation_list
         for (var i = 0; i < list.length; i++) {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }

+ 29 - 22
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods-year/_opera/operation.vue

@@ -46,8 +46,8 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="评价得分" prop="SumScore">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore" ::max="100" :min="0"
+                  <el-form-item label="评价得分" prop="CountScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.CountScore" ::max="100" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
@@ -99,9 +99,15 @@
                 <!--  </el-form-item>-->
                 <!--</el-col>-->
                 <el-col :span="8">
-                  <el-form-item label="业绩评价结果" prop="Result1">
-                    <el-input-number :disabled="true" v-model="evaluateData.Result1" :max="100" :min="0" placeholder="请输入"
-                              style="width: 100%"></el-input-number>
+                  <el-form-item label="业绩评价结果" prop="SumScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore" :max="100" :min="0"
+                                     placeholder="请输入" style="width: 100%"/>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="基本条件评价结果" prop="ConditionScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.ConditionScore" :max="25" :min="0"
+                                     placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
 <!--                <el-col :span="8">-->
@@ -351,7 +357,6 @@ export default {
         Status: 0
       },
       nowItem: {},
-
       editData: {},
       evaluation_list: [],
       auditBtn: false,
@@ -506,26 +511,28 @@ export default {
       this.$set(this.evaluateData, 'SumScore3', Number(item.Score3))
       this.$set(this.evaluateData, 'SumScore4', Number(item.Score4))
       this.$set(this.evaluateData, 'SumScore5', Number(item.Score5))
+      this.$set(this.evaluateData, 'ConditionScore', Number(item.ConditionScore))
+      this.$set(this.evaluateData, 'CountScore', Number(item.CountScore))
       // this.$set(this.evaluateData, 'Result1', '')
       // this.$set(this.evaluateData, 'Result2', '')
       // this.getList()
       // 判断基本条件结果
-      let params = {
-        ContractClass : '01'
-      }
-      api.GetResultEntity(id, params, this.$axios).then(res => {
-        console.log('结果', res)
-        this.$set(this.evaluateData, 'Result1', res.data.Result1)
-        if (res.data.Result2 && res.data.Result2 == '0') {
-          this.$set(this.evaluateData, 'Result2', '否')
-          this.$set(this.evaluateData, 'Conclusion', 3)
-        } else {
-          this.$set(this.evaluateData, 'Result2', '是')
-          this.$set(this.evaluateData, 'Conclusion', Number(item.Evaluate))
-        }
-      }).catch(err => {
-        console.error(err)
-      })
+      // let params = {
+      //   ContractClass : '01'
+      // }
+      // api.GetResultEntity(id, params, this.$axios).then(res => {
+      //   console.log('结果', res)
+      //   this.$set(this.evaluateData, 'Result1', res.data.Result1)
+      //   if (res.data.Result2 && res.data.Result2 == '0') {
+      //     this.$set(this.evaluateData, 'Result2', '否')
+      //     this.$set(this.evaluateData, 'Conclusion', 3)
+      //   } else {
+      //     this.$set(this.evaluateData, 'Result2', '是')
+      //     this.$set(this.evaluateData, 'Conclusion', Number(item.Evaluate))
+      //   }
+      // }).catch(err => {
+      //   console.error(err)
+      // })
     },
     // 获取编辑信息
     showIdDatas () {

+ 5 - 1
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods-year/index.vue

@@ -65,7 +65,11 @@
           </template>
         </el-table-column>
         <el-table-column sortable prop="SupplierName" header-align="center" min-width="250" align="center" label="供应商名称"></el-table-column>
-        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="评价得分(100分)" align="center" width="140"></el-table-column>
+<!--        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="评价得分(100分)" align="center" width="140"></el-table-column>-->
+        <el-table-column sortable show-overflow-tooltip prop="CountScore" header-align="center" label="评价得分(100分)" width="140" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="业绩评价结果(75分)" width="170" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="ConditionScore" header-align="center" label="基本条件评价结果(25分)" width="180" align="center"></el-table-column>
+
         <!--<el-table-column sortable show-overflow-tooltip prop="Evaluate" label="评价结果" header-align="center" width="100" align="center">-->
         <!--  <template slot-scope="scope">-->
         <!--    {{evaluateFun(scope.row.Evaluate,scope.row.Result)}}-->

+ 274 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/basenewlist.vue

@@ -0,0 +1,274 @@
+<template>
+  <div>
+    <el-form ref="formEvaluation" :model="entityListData" label-width="0px" :rules="rules">
+      <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading">
+        <el-table-column
+          property="SequenceNo"
+          label="序号"
+          header-align="center"
+          align="center"
+          width="80">
+        </el-table-column>
+        <el-table-column
+          property="Content"
+          header-align="center"
+          label="评价项目">
+        </el-table-column>
+        <el-table-column
+          property="NormalScore"
+          label="标准分值"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.NormalScore }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Score"
+          label="实得分数"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <el-form-item style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'"
+                          :rules="rules.relation">
+              <el-input size="mini" :min="0" :max="scope.row.NormalScore" type="number" placeholder="实得分数"
+                        :disabled="!disabledForm" v-model="scope.row.Score"
+                        @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+        <div>标准总分:{{ standardNum }}分</div>
+        <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getNumFun() }}分</div>
+      </div>
+    </el-form>
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                   :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+    </el-pagination> -->
+  </div>
+</template>
+<script>
+import {mapGetters} from 'vuex'
+// import api from '@/api/oilcontract/contractEvaluationItems';
+import api from '@/api/oilcontract/contract'
+
+export default {
+  computed: {
+    ...mapGetters({
+      authUser: 'authUser'
+    }),
+    getNumFun: function () {
+      return function () {
+        var num = 0
+        var list = this.entityListData.entityList
+        for (var index = 0; index < list.length; index++) {
+          // var code = Number(list[index].LevelCode)
+          if (list[index].LevelCode == 1) {
+            num = num + Number(list[index].Score)
+          }
+        }
+        return num
+      }
+    }
+  },
+  name: 'oilcontractevaluationitems',
+  props: {
+    // 评价id
+    evaluateId: {
+      type: null,
+      default: ''
+    },
+    // 类型 0 二级部门创建 1 专业处创建
+    category: {
+      type: null,
+      default: ''
+    },
+    // 项目类型
+    ContractClass: {
+      type: null,
+      default: ''
+    },
+    ContractId: {
+      type: null,
+      default: ''
+    },
+    // 是否禁用
+    disabledForm: {
+      type: null,
+      default: false
+    },
+    // 二级单位提交还是业务处室提交
+    isBusiness: {
+      type: null,
+      default: 0
+    }
+  },
+  data () {
+    var validatePass = (rule, value, callback) => {
+      var num = Number(value)
+      if (num == '' && num != 0) {
+        this.fractionBoolean = false
+        callback(new Error('请输入分值'))
+        return
+      }
+      // if (num > Number(this.branchNum)) {
+      //   this.fractionBoolean = false
+      //   callback(new Error('不能大于规定的分值'));
+      //   return
+      // }
+      if (num < 0) {
+        this.fractionBoolean = false
+        callback(new Error('不能为负数'))
+        return
+      }
+      this.fractionBoolean = true
+      callback()
+    }
+    return {
+      tableLoading: false,
+      dialogVisible: false,
+      // 列表数据
+      entityListData: {
+        entityList: []
+      },
+      rules: {
+        relation: [
+          {validator: validatePass, trigger: 'blur'}
+        ]
+      },
+      // 分页参数
+      size: 10,
+      currentPage: 1,
+      currentItemCount: 0,
+      // 列表排序
+      Column: {
+        Order: '',
+        Prop: ''
+      },
+      // 查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
+      CreateOn: [],
+      // 查询项
+      searchFormReset: {},
+      standardNum: 0, // 标准分数
+      getNum: 0// 实得总分
+
+    }
+  },
+  created () {
+    // 查询条件初始值备份
+    Object.assign(this.searchFormReset, this.searchForm)
+    // 查询列表
+    // this.initDatas();
+    // this.getDictOptions()
+
+    // 判断是编辑状态还是新增状态
+    if (this.evaluateId == 0) {
+      this.initDatas()
+    } else {
+      this.editDatas()
+    }
+  },
+  methods: {
+    // aa(){
+    //   if (this.evaluateId == 0) {
+    //     this.initDatas();
+    //   } else {
+    //     this.editDatas();
+    //   }
+    // },
+    // 分数校验
+    onInputFen (index, fen) {
+      this.branchNum = fen
+      // this.entityListData.entityList[index].Score = fen
+    },
+    initDatas () {
+      this.tableLoading = true
+      console.log('初始化了没有111???', this.ContractClass)
+      this.standardNum = 0
+      api.basicConditionList(this.ContractId, this.ContractClass, this.$axios).then(res => {
+        this.tableLoading = false
+        console.log('上级节点内容', res)
+        var data = res.data.items
+        var list = []
+
+        for (var index = 0; index < data.length; index++) {
+          data[index].typeStatus = index
+          data[index].Value = 1
+          data[index].Category = 3
+          // this.$set(data[index],'NormalScore','0')
+          list.push(data[index])
+          this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+        }
+        this.entityListData.entityList = list
+        console.log('处理完的数据', list)
+      }).catch(err => {
+        this.tableLoading = false
+        console.error(err)
+      })
+    },
+    // 初始数据
+    editDatas () {
+      this.tableLoading = true
+      this.standardNum = 0
+      console.log('处室初始的分类是什么 ', this.category, this.isBusiness)
+      var data = {
+        ContentReviewId: this.evaluateId,
+        Category: this.isBusiness == 1 ? 2 : this.category,
+        Type: 3
+      }
+      api.contractEvaluationTree(data, this.$axios).then(res => {
+        this.tableLoading = false
+        let data = res.data.items
+        let list = []
+        if (data) {
+          for (let index = 0; index < data.length; index++) {
+            data[index].typeStatus = index
+            data[index].Value = data[index].Value === undefined || data[index].Value === '' ? '0' : data[index].Value
+            data[index].Category = 2
+            list.push(data[index])
+            this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+          }
+        }
+        this.entityListData.entityList = list
+        console.log('处理完的数据', list)
+      }).catch(err => {
+        this.tableLoading = false
+        console.error(err)
+      })
+    },
+
+    jstimehandle (val) {
+      if (val === '') {
+        return '----'
+      } else if (val === '0001-01-01T08:00:00+08:00') {
+        return '----'
+      } else if (val === '5000-01-01T23:59:59+08:00') {
+        return '永久'
+      } else {
+        val = val.replace('T', ' ')
+        return val.substring(0, 10)
+      }
+    },
+
+    formatDateTime (date) {
+      var y = date.getFullYear()
+      var m = date.getMonth() + 1
+      m = m < 10 ? ('0' + m) : m
+      var d = date.getDate()
+      d = d < 10 ? ('0' + d) : d
+      var h = date.getHours()
+      var minute = date.getMinutes()
+      minute = minute < 10 ? ('0' + minute) : minute
+      return y + '-' + m + '-' + d + ' ' + h + ':' + minute
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+.el-pagination {
+  margin: 1rem 0 2rem;
+  text-align: right;
+}
+</style>

+ 28 - 16
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluate.vue

@@ -172,9 +172,13 @@
                            :isBusiness="isBusiness"
                            :disabledForm="auditBtnBoolean"></evaluation-list>
         </el-tab-pane>
-        <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">
-          <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"
-                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBoolean"></base-list>
+<!--        <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">-->
+<!--          <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"-->
+<!--                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBoolean"></base-list>-->
+<!--        </el-tab-pane>-->
+        <el-tab-pane label="基本条件评价" name="4">
+          <base-new-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0" v-if="contractData.ContractClass"
+                     :ContractClass="contractData.ContractClass" :isBusiness="isBusiness" :disabledForm="auditBtnBoolean" :ContractId="contractData.Id"></base-new-list>
         </el-tab-pane>
         <!-- v-if="formData.Status=='4'||Number(formData.Status)>4" -->
         <el-tab-pane label="专业处室业绩评价" name="3"
@@ -183,11 +187,17 @@
                            :ContractClass="contractData.ContractClass"
                            :disabledForm="auditBtnBooleanZhuan"></evaluation-list>
         </el-tab-pane>
+<!--        <el-tab-pane-->
+<!--          v-if="((departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02') && (formData.IsBusiness != 1 && byBus != 1)"-->
+<!--          label="专业处室基本条件评价" name="5">-->
+<!--          <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"-->
+<!--                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>-->
+<!--        </el-tab-pane>-->
         <el-tab-pane
-          v-if="((departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02') && (formData.IsBusiness != 1 && byBus != 1)"
+          v-if="((departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)) && (formData.IsBusiness != 1 && byBus != 1)"
           label="专业处室基本条件评价" name="5">
-          <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"
-                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>
+          <base-new-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1" v-if="contractData.ContractClass"
+                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan" :ContractId="contractData.Id"></base-new-list>
         </el-tab-pane>
 
         <el-tab-pane label="审批流程" name="6" :disabled="formData.Status==0">
@@ -219,6 +229,7 @@ import {
 import api from '@/api/oilcontract/contract'
 import evaluationList from './evaluationlist'
 import baseList from './baselist'
+import baseNewList from './basenewlist'
 import WfHistory from '@/components/workflow/wfhistory.vue'
 import apiCert from '@/api/oilsupplier/suppliercert'
 import permissionApi from '@/api/oilcontract/permission'
@@ -236,6 +247,7 @@ export default {
     evaluationList,
     WfHistory,
     baseList,
+    baseNewList,
     submitPopup
   },
 
@@ -513,9 +525,9 @@ export default {
       console.log('业务处室保存评价', val)
       if (this.formData.Status <= 0 || this.formData.Status == '4' || this.formData.Status == '7') { // 业务处室保存评价
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         var list = this.evaluation_list
         for (var i = 0; i < list.length; i++) {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
@@ -547,9 +559,9 @@ export default {
       console.log('普通保存', val)
       if (this.formData.Status <= 0) { //  普通二级用户评价evaluation_listType_one
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         // 获取第一列评价格式
         // var fractionBoolean_1 = this.$refs.evaluation_list_one.fractionBoolean
         var list = this.evaluation_list
@@ -588,9 +600,9 @@ export default {
             return
           }
         }
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_two.entityListData.entityList)
-        }
+        // }
         // 获取第一列评价格式c
         this.$refs.evaluation_list_two.$refs.formEvaluation.validate((valid) => {
           if (valid) {
@@ -608,9 +620,9 @@ export default {
         // 企管法规处审批时保存
         // 预处理二级单位的保存
         let secEvaList = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           secEvaList = secEvaList.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         for (let i = 0; i < secEvaList.length; i++) {
           if (Number(secEvaList[i].Score) > Number(secEvaList[i].NormalScore)) {
             this.$message.error({
@@ -641,9 +653,9 @@ export default {
             return
           }
         }
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           businessEvaList = businessEvaList.concat(this.$refs.evaluation_listType_two.entityListData.entityList)
-        }
+        // }
         this.$refs.evaluation_list_two.$refs.formEvaluation.validate((valid) => {
           if (valid) {
             proValid = true

+ 28 - 20
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service-year/_opera/operation.vue

@@ -46,8 +46,8 @@
                 </el-col>
 
                 <el-col :span="8">
-                  <el-form-item label="评价得分" prop="SumScore">
-                    <el-input-number :disabled="true" v-model="evaluateData.SumScore" :max="100" :min="0"
+                  <el-form-item label="评价得分" prop="CountScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.CountScore" :max="100" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
@@ -93,8 +93,14 @@
                 <!--  </el-form-item>-->
                 <!--</el-col>-->
                 <el-col :span="8">
-                  <el-form-item label="业绩评价结果" prop="Result1">
-                    <el-input-number :disabled="true" v-model="evaluateData.Result1" :max="100" :min="0"
+                  <el-form-item label="业绩评价结果" prop="SumScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.SumScore" :max="100" :min="0"
+                                     placeholder="请输入" style="width: 100%"/>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="基本条件评价结果" prop="ConditionScore">
+                    <el-input-number :disabled="true" v-model="evaluateData.ConditionScore" :max="25" :min="0"
                                      placeholder="请输入" style="width: 100%"/>
                   </el-form-item>
                 </el-col>
@@ -492,26 +498,28 @@ export default {
       this.$set(this.evaluateData, 'SumScore2', Number(item.Score2))
       this.$set(this.evaluateData, 'SumScore3', Number(item.Score3))
       this.$set(this.evaluateData, 'SumScore4', Number(item.Score4))
+      this.$set(this.evaluateData, 'ConditionScore', Number(item.ConditionScore))
+      this.$set(this.evaluateData, 'CountScore', Number(item.CountScore))
       // this.$set(this.evaluateData, 'Result1', '')
       // this.$set(this.evaluateData, 'Result2', '')
       // this.getList()
       // 判断基本条件结果
-      let params = {
-        ContractClass : '03'
-      }
-      api.GetResultEntity(id, params, this.$axios).then(res => {
-        console.log('结果', res)
-        this.$set(this.evaluateData, 'Result1', res.data.Result1)
-        if (res.data.Result2 && res.data.Result2 == '0') {
-          this.$set(this.evaluateData, 'Result2', '否')
-          this.$set(this.evaluateData, 'Conclusion', 3)
-        } else {
-          this.$set(this.evaluateData, 'Result2', '是')
-          this.$set(this.evaluateData, 'Conclusion', Number(item.Evaluate))
-        }
-      }).catch(err => {
-        console.error(err)
-      })
+      // let params = {
+      //   ContractClass : '03'
+      // }
+      // api.GetResultEntity(id, params, this.$axios).then(res => {
+      //   console.log('结果', res)
+      //   this.$set(this.evaluateData, 'Result1', res.data.Result1)
+      //   if (res.data.Result2 && res.data.Result2 == '0') {
+      //     this.$set(this.evaluateData, 'Result2', '否')
+      //     this.$set(this.evaluateData, 'Conclusion', 3)
+      //   } else {
+      //     this.$set(this.evaluateData, 'Result2', '是')
+      //     this.$set(this.evaluateData, 'Conclusion', Number(item.Evaluate))
+      //   }
+      // }).catch(err => {
+      //   console.error(err)
+      // })
     },
     // 获取编辑信息
     showIdDatas () {

+ 5 - 1
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service-year/index.vue

@@ -68,7 +68,11 @@
           </template>
         </el-table-column>
         <el-table-column sortable prop="SupplierName" header-align="center" min-width="250" align="center" label="服务商名称"></el-table-column>
-        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="评价得分(100分)" width="140" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="CountScore" header-align="center" label="评价得分(100分)" width="140" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="业绩评价结果(75分)" width="170" align="center"></el-table-column>
+        <el-table-column sortable show-overflow-tooltip prop="ConditionScore" header-align="center" label="基本条件评价结果(25分)" width="180" align="center"></el-table-column>
+
+<!--        <el-table-column sortable show-overflow-tooltip prop="Score" header-align="center" label="评价得分(100分)" width="140" align="center"></el-table-column>-->
         <!--<el-table-column sortable show-overflow-tooltip prop="Evaluate" align="center" label="评价结果" header-align="center" width="100" >-->
         <!--  <template slot-scope="scope">-->
         <!--    {{evaluateFun(scope.row.Evaluate,scope.row.Result)}}-->

+ 274 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/basenewlist.vue

@@ -0,0 +1,274 @@
+<template>
+  <div>
+    <el-form ref="formEvaluation" :model="entityListData" label-width="0px" :rules="rules">
+      <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" v-loading="tableLoading">
+        <el-table-column
+          property="SequenceNo"
+          label="序号"
+          header-align="center"
+          align="center"
+          width="80">
+        </el-table-column>
+        <el-table-column
+          property="Content"
+          header-align="center"
+          label="评价项目">
+        </el-table-column>
+        <el-table-column
+          property="NormalScore"
+          label="标准分值"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.NormalScore }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Score"
+          label="实得分数"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <el-form-item style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'"
+                          :rules="rules.relation">
+              <el-input size="mini" :min="0" :max="scope.row.NormalScore" type="number" placeholder="实得分数"
+                        :disabled="!disabledForm" v-model="scope.row.Score"
+                        @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="" style="display: flex;align-items: center;justify-content: flex-end;margin: 18px 0;">
+        <div>标准总分:{{ standardNum }}分</div>
+        <div style="margin-left: 18px;margin-right: 140px;">实得总分:{{ getNumFun() }}分</div>
+      </div>
+    </el-form>
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                   :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+    </el-pagination> -->
+  </div>
+</template>
+<script>
+import {mapGetters} from 'vuex'
+// import api from '@/api/oilcontract/contractEvaluationItems';
+import api from '@/api/oilcontract/contract'
+
+export default {
+  computed: {
+    ...mapGetters({
+      authUser: 'authUser'
+    }),
+    getNumFun: function () {
+      return function () {
+        var num = 0
+        var list = this.entityListData.entityList
+        for (var index = 0; index < list.length; index++) {
+          // var code = Number(list[index].LevelCode)
+          if (list[index].LevelCode == 1) {
+            num = num + Number(list[index].Score)
+          }
+        }
+        return num
+      }
+    }
+  },
+  name: 'oilcontractevaluationitems',
+  props: {
+    // 评价id
+    evaluateId: {
+      type: null,
+      default: ''
+    },
+    // 类型 0 二级部门创建 1 专业处创建
+    category: {
+      type: null,
+      default: ''
+    },
+    // 项目类型
+    ContractClass: {
+      type: null,
+      default: ''
+    },
+    ContractId: {
+      type: null,
+      default: ''
+    },
+    // 是否禁用
+    disabledForm: {
+      type: null,
+      default: false
+    },
+    // 二级单位提交还是业务处室提交
+    isBusiness: {
+      type: null,
+      default: 0
+    }
+  },
+  data () {
+    var validatePass = (rule, value, callback) => {
+      var num = Number(value)
+      if (num == '' && num != 0) {
+        this.fractionBoolean = false
+        callback(new Error('请输入分值'))
+        return
+      }
+      // if (num > Number(this.branchNum)) {
+      //   this.fractionBoolean = false
+      //   callback(new Error('不能大于规定的分值'));
+      //   return
+      // }
+      if (num < 0) {
+        this.fractionBoolean = false
+        callback(new Error('不能为负数'))
+        return
+      }
+      this.fractionBoolean = true
+      callback()
+    }
+    return {
+      tableLoading: false,
+      dialogVisible: false,
+      // 列表数据
+      entityListData: {
+        entityList: []
+      },
+      rules: {
+        relation: [
+          {validator: validatePass, trigger: 'blur'}
+        ]
+      },
+      // 分页参数
+      size: 10,
+      currentPage: 1,
+      currentItemCount: 0,
+      // 列表排序
+      Column: {
+        Order: '',
+        Prop: ''
+      },
+      // 查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
+      CreateOn: [],
+      // 查询项
+      searchFormReset: {},
+      standardNum: 0, // 标准分数
+      getNum: 0// 实得总分
+
+    }
+  },
+  created () {
+    // 查询条件初始值备份
+    Object.assign(this.searchFormReset, this.searchForm)
+    // 查询列表
+    // this.initDatas();
+    // this.getDictOptions()
+
+    // 判断是编辑状态还是新增状态
+    if (this.evaluateId == 0) {
+      this.initDatas()
+    } else {
+      this.editDatas()
+    }
+  },
+  methods: {
+    // aa(){
+    //   if (this.evaluateId == 0) {
+    //     this.initDatas();
+    //   } else {
+    //     this.editDatas();
+    //   }
+    // },
+    // 分数校验
+    onInputFen (index, fen) {
+      this.branchNum = fen
+      // this.entityListData.entityList[index].Score = fen
+    },
+    initDatas () {
+      this.tableLoading = true
+      console.log('初始化了没有111???', this.ContractClass)
+      this.standardNum = 0
+      api.basicConditionList(this.ContractId, this.ContractClass, this.$axios).then(res => {
+        this.tableLoading = false
+        console.log('上级节点内容', res)
+        var data = res.data.items
+        var list = []
+
+        for (var index = 0; index < data.length; index++) {
+          data[index].typeStatus = index
+          data[index].Value = 1
+          data[index].Category = 3
+          // this.$set(data[index],'NormalScore','0')
+          list.push(data[index])
+          this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+        }
+        this.entityListData.entityList = list
+        console.log('处理完的数据', list)
+      }).catch(err => {
+        this.tableLoading = false
+        console.error(err)
+      })
+    },
+    // 初始数据
+    editDatas () {
+      this.tableLoading = true
+      this.standardNum = 0
+      console.log('处室初始的分类是什么 ', this.category, this.isBusiness)
+      var data = {
+        ContentReviewId: this.evaluateId,
+        Category: this.isBusiness == 1 ? 2 : this.category,
+        Type: 3
+      }
+      api.contractEvaluationTree(data, this.$axios).then(res => {
+        this.tableLoading = false
+        let data = res.data.items
+        let list = []
+        if (data) {
+          for (let index = 0; index < data.length; index++) {
+            data[index].typeStatus = index
+            data[index].Value = data[index].Value === undefined || data[index].Value === '' ? '0' : data[index].Value
+            data[index].Category = 2
+            list.push(data[index])
+            this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+          }
+        }
+        this.entityListData.entityList = list
+        console.log('处理完的数据', list)
+      }).catch(err => {
+        this.tableLoading = false
+        console.error(err)
+      })
+    },
+
+    jstimehandle (val) {
+      if (val === '') {
+        return '----'
+      } else if (val === '0001-01-01T08:00:00+08:00') {
+        return '----'
+      } else if (val === '5000-01-01T23:59:59+08:00') {
+        return '永久'
+      } else {
+        val = val.replace('T', ' ')
+        return val.substring(0, 10)
+      }
+    },
+
+    formatDateTime (date) {
+      var y = date.getFullYear()
+      var m = date.getMonth() + 1
+      m = m < 10 ? ('0' + m) : m
+      var d = date.getDate()
+      d = d < 10 ? ('0' + d) : d
+      var h = date.getHours()
+      var minute = date.getMinutes()
+      minute = minute < 10 ? ('0' + minute) : minute
+      return y + '-' + m + '-' + d + ' ' + h + ':' + minute
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+.el-pagination {
+  margin: 1rem 0 2rem;
+  text-align: right;
+}
+</style>

+ 33 - 24
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluate.vue

@@ -162,9 +162,6 @@
                 </el-col>
               </el-row>
             </el-form>
-
-
-
           </el-card>
         </el-tab-pane>
         <el-tab-pane label="业绩评价" name="2">
@@ -173,9 +170,13 @@
                            :isBusiness="isBusiness"
                            :disabledForm="auditBtnBoolean"></evaluation-list>
         </el-tab-pane>
-        <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">
-          <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"
-                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBoolean"></base-list>
+<!--        <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">-->
+<!--          <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"-->
+<!--                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBoolean"></base-list>-->
+<!--        </el-tab-pane>-->
+        <el-tab-pane label="基本条件评价" name="4">
+          <base-new-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0" v-if="contractData.ContractClass"
+                     :ContractClass="contractData.ContractClass" :isBusiness="isBusiness" :disabledForm="auditBtnBoolean" :ContractId="contractData.Id"></base-new-list>
         </el-tab-pane>
         <!-- v-if="formData.Status=='4'||Number(formData.Status)>4" -->
         <el-tab-pane label="专业处室业绩评价" name="3"
@@ -184,11 +185,17 @@
                            :ContractClass="contractData.ContractClass"
                            :disabledForm="auditBtnBooleanZhuan"></evaluation-list>
         </el-tab-pane>
+<!--        <el-tab-pane-->
+<!--          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && (formData.IsBusiness != 1 && byBus != 1)"-->
+<!--          label="专业处室基本条件评价" name="5">-->
+<!--          <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"-->
+<!--                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>-->
+<!--        </el-tab-pane>-->
         <el-tab-pane
-          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && (formData.IsBusiness != 1 && byBus != 1)"
+          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4) && (formData.IsBusiness != 1 && byBus != 1)"
           label="专业处室基本条件评价" name="5">
-          <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"
-                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>
+          <base-new-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1" v-if="contractData.ContractClass"
+                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan" :ContractId="contractData.Id"></base-new-list>
         </el-tab-pane>
 
         <el-tab-pane label="审批流程" name="6" :disabled="formData.Status==0">
@@ -221,6 +228,7 @@ import {
 import api from '@/api/oilcontract/contract'
 import evaluationList from './evaluationlist'
 import baseList from './baselist'
+import baseNewList from './basenewlist'
 import WfHistory from '@/components/workflow/wfhistory.vue'
 import apiCert from '@/api/oilsupplier/suppliercert'
 import permissionApi from '@/api/oilcontract/permission'
@@ -238,6 +246,7 @@ export default {
     evaluationList,
     WfHistory,
     baseList,
+    baseNewList,
     submitPopup
   },
 
@@ -515,15 +524,15 @@ export default {
     onSaveEvaByBusiness (val) {
       if (this.formData.Status <= 0 || this.formData.Status == '4' || this.formData.Status == '7') { // 业务处室保存评价
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         var list = this.evaluation_list
         for (var i = 0; i < list.length; i++) {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
@@ -548,9 +557,9 @@ export default {
     onSeaveBigAdd (val) {
       if (this.formData.Status <= 0) { // 普通二级用户评价evaluation_listType_one
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         // 获取第一列评价格式
         // var fractionBoolean_1 = this.$refs.evaluation_list_one.fractionBoolean
         var list = this.evaluation_list
@@ -558,7 +567,7 @@ export default {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
@@ -584,14 +593,14 @@ export default {
           if (Number(list[i].Score) > Number(list[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
         }
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_two.entityListData.entityList)
-        }
+        // }
         // 获取第一列评价格式c
         this.$refs.evaluation_list_two.$refs.formEvaluation.validate((valid) => {
           if (valid) {
@@ -609,14 +618,14 @@ export default {
         // 企管法规处审批时保存
         // 预处理二级单位的保存
         let secEvaList = this.$refs.evaluation_list_one.entityListData.entityList
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           secEvaList = secEvaList.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
-        }
+        // }
         for (let i = 0; i < secEvaList.length; i++) {
           if (Number(secEvaList[i].Score) > Number(secEvaList[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
@@ -637,14 +646,14 @@ export default {
           if (Number(businessEvaList[i].Score) > Number(businessEvaList[i].NormalScore)) {
             this.$message.error({
                 duration: 10000,
-                message: '业绩评价填写的分数不能大于标准分值'
+                message: '填写的分数不能大于标准分值'
               })
             return
           }
         }
-        if (this.contractData.ContractClass == '02') {
+        // if (this.contractData.ContractClass == '02') {
           businessEvaList = businessEvaList.concat(this.$refs.evaluation_listType_two.entityListData.entityList)
-        }
+        // }
         this.$refs.evaluation_list_two.$refs.formEvaluation.validate((valid) => {
           if (valid) {
             proValid = true

+ 322 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/evaluation-items/basenewlist.vue

@@ -0,0 +1,322 @@
+<template>
+  <div>
+    <span style="float: right;">
+        <el-button type="primary" size="mini" style="margin: 0px 0px 10px;" @click="addListButton">添加</el-button>
+    </span>
+    <el-table highlight-current-row stripe :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%">
+      <el-table-column
+        property="SequenceNo"
+        label="序号"
+        header-align="center"
+        align="center"
+        width="80">
+      </el-table-column>
+      <el-table-column
+        property="Content"
+        header-align="center"
+        label="评价项目">
+      </el-table-column>
+      <el-table-column
+        property="NormalScore"
+        label="标准分值"
+        header-align="center"
+        width="120">
+        <template slot-scope="scope">
+          <span>{{scope.row.NormalScore}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        property="Value"
+        label="操作"
+        header-align="center"
+        align="center"
+        width="150">
+        <template slot-scope="scope">
+          <el-button slot="reference" type="text"  icon="el-icon-edit" size="small" @click="onDialogVisible(scope.row,scope.$index)">编辑</el-button>
+          <el-popover placement="top" title="提示" :ref="'popover-' + `${scope.$index}`">
+            <el-alert
+              title=""
+              description="确认要删除吗?"
+              type="warning"
+              :closable="false">
+            </el-alert>
+            <br/>
+            <div style="text-align: right; margin: 0">
+              <el-button type="primary" size="mini" @click="deleteEntity(scope.row,scope.$index)">删除</el-button>
+            </div>
+            <el-button slot="reference"  type="text" style="margin-left:3px" icon="el-icon-delete" size="small" >删除</el-button>
+          </el-popover>
+        </template>
+      </el-table-column>
+    </el-table>
+
+
+    <el-dialog
+      title="编辑"
+      :visible.sync="dialogBoolean"
+      width="60%"
+      >
+      <el-form ref="advancedsearchForm" :model="formData" :rules="rulesEve" label-width="110px" class="advancedsearchFormClass">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="序号" prop="SequenceNo">
+              <el-input  placeholder="请输入" type="number" min="0" v-model="formData.SequenceNo" ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="标准分值" prop="NormalScore">
+              <el-input placeholder="请输入" type="number" min="0" v-model="formData.NormalScore" ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="评价项目" prop="Content">
+              <el-input type="textarea" placeholder="请输入" v-model="formData.Content" ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogBoolean = false" size="small" >取 消</el-button>
+        <el-button type="primary" @click="onTrueDialog" size="small">确 定</el-button>
+      </span>
+    </el-dialog>
+
+
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                   :page-sizes="[10, 50, 100, 200, 500]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+    </el-pagination> -->
+  </div>
+</template>
+<script>
+  import { mapGetters } from 'vuex';
+  // import api from '@/api/oilcontract/contractEvaluationItems';
+  import api from '@/api/oilcontract/contract'
+  import apiItems from '@/api/oilcontract/evaluationItems';
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilcontractevaluationitems',
+    props: {
+      // 评价id
+      evaluateId: {
+        type: null,
+        default:'',
+      },
+      // 类型 0 二级部门创建 1 专业处创建
+      category: {
+        type: null,
+        default:'',
+      },
+      //项目类型
+      ContractClass: {
+        type: null,
+        default:'',
+      },
+      //是否禁用
+      disabledForm: {
+        type: null,
+        default:false,
+      },
+
+    },
+    data() {
+      return {
+        dialogBoolean: false,
+        rulesEve:{
+          SequenceNo: [
+            { required: true, message: '请输入序号', trigger: 'blur' }
+          ],
+          Content: [
+            { required: true, message: '请输入评价内容', trigger: 'blur' }
+          ],
+          NormalScore: [
+            { required: true, message: '请输入标准分值', trigger: 'blur' }
+          ],
+        },
+        //列表数据
+        entityListData:{
+          entityList: [],
+        },
+
+        //分页参数
+        size: 10,
+        currentPage: 1,
+        currentItemCount: 0,
+        //列表排序
+        Column: {
+          Order: '',
+          Prop: ''
+        },
+        //查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
+        CreateOn: [],
+        //查询项
+        searchFormReset: {},
+        formData:{
+          Content:'',
+          Category: 3,
+          SequenceNo:'',
+          NormalScore: '5'
+        },
+
+      }
+    },
+    created() {
+      //this.initDatas();
+      //this.getDictOptions()
+        this.editDatas();
+    },
+    methods: {
+      //添加数据
+      addListButton(){
+        this.formData.Id = 0
+        this.formData.Content = ''
+        this.formData.NormalScore = '5'
+        this.formData.SequenceNo = 0
+        this.dialogBoolean = true
+      },
+      //点击编辑按钮
+      onDialogVisible(item,index){
+        this.formData = item
+        this.dialogBoolean = true
+      },
+      //确认编辑内容
+      onTrueDialog(){
+        console.log(this.formData)
+        this.$refs['advancedsearchForm'].validate((valid) => {
+          if (valid) {
+            if(this.formData.Id!=0&&this.formData.Id!=''&&this.formData.Id!=undefined){
+              apiItems.updateContractEvaluate(this.formData.Id,this.formData,this.$axios).then(res => {
+                  if(res.data.code==0){
+                    this.$message({
+                duration: 10000,
+                type: 'success',
+                message: res.data.message
+              });
+                  }else{
+                    this.$message({
+                      type: 'error',
+                      message: res.data.message
+                    });
+                  }
+                  this.editDatas()
+                  this.dialogBoolean = false
+                }).catch(err => {
+                  console.error(err)
+                })
+              // }
+            }else{
+              this.formData.LevelCode = 1
+              this.formData.Type = this.ContractClass
+              this.formData.ParentId = 0
+              apiItems.addContractEvaluate(this.formData,this.$axios).then(res => {
+                  if(res.data.code==0){
+                    this.$message({
+                duration: 10000,
+                type: 'success',
+                message: res.data.message
+              });
+                  }else{
+                    this.$message({
+                      type: 'error',
+                      message: res.data.message
+                    });
+                  }
+                  this.editDatas()
+                  this.dialogBoolean = false
+                }).catch(err => {
+                  console.error(err)
+                })
+              }
+          }
+        })
+      },
+      //初始数据
+      editDatas() {
+        apiItems.evaluationItemsOnelist(this.ContractClass, 3, this.$axios).then(res => {
+          console.log('编辑后的内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            data[index].Score = data[index].Score==undefined||data[index].Score==''?'0':data[index].Score
+            list.push(data[index])
+            this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = data[index].Son[k].Score==undefined||data[index].Son[k].Score==''?'0':data[index].Son[k].Score
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      deleteEntity(row,index) {
+        this.$refs['popover-' + `${index}`].doClose()
+        apiItems.deleteEntity(row.Id, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            this.editDatas();
+            this.$message({
+                duration: 10000,
+                type: 'success',
+                message: res.data.message
+              });
+
+          } else {
+            this.$message({
+                duration: 10000,
+                type: 'warning',
+                message: res.data.message
+              });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      jstimehandle(val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      formatDateTime(date) {
+        var y = date.getFullYear();
+        var m = date.getMonth() + 1;
+        m = m < 10 ? ('0' + m) : m;
+        var d = date.getDate();
+        d = d < 10 ? ('0' + d) : d;
+        var h = date.getHours();
+        var minute = date.getMinutes();
+        minute = minute < 10 ? ('0' + minute) : minute;
+        return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+      }
+    }
+  }
+
+</script>
+
+<style lang="scss">
+  .el-pagination {
+    margin: 1rem 0 2rem;
+    text-align: right;
+  }
+</style>

+ 15 - 4
src/dashoo.cn/frontend_web/src/pages/oilcontract/evaluation-items/index.vue

@@ -44,11 +44,20 @@
           <evaluation-list ref="evaluation_list_one"   :evaluateId="0" category="0" ContractClass="03" ></evaluation-list>
         </el-tab-pane>
 
-        <el-tab-pane label="基本条件评价" name="4" >
-          <base-list ref="evaluation_listType_one" :evaluateId="0" category="0" ContractClass="02"></base-list>
+<!--        <el-tab-pane label="基本条件评价" name="4" >-->
+<!--          <base-list ref="evaluation_listType_one" :evaluateId="0" category="0" ContractClass="02"></base-list>-->
+<!--        </el-tab-pane>-->
+        <el-tab-pane label="承包商基本条件评价" name="4" >
+          <base-new-list ref="evaluation_listType_one" :evaluateId="0" category="0" ContractClass="02"></base-new-list>
+        </el-tab-pane>
+        <el-tab-pane label="供应商基本条件评价" name="5" >
+          <base-new-list ref="evaluation_listType_one" :evaluateId="0" category="0" ContractClass="01"></base-new-list>
+        </el-tab-pane>
+        <el-tab-pane label="服务商基本条件评价" name="6" >
+          <base-new-list ref="evaluation_listType_one" :evaluateId="0" category="0" ContractClass="03"></base-new-list>
         </el-tab-pane>
 
-        <el-tab-pane label="参数配置" name="5" >
+        <el-tab-pane label="参数配置" name="7" >
           <el-card  class="box-card" style="min-height: 550px">
             <div style="margin-top: -10px">
               <div style="text-align: right; padding: 2px">
@@ -169,6 +178,7 @@
   import api from '@/api/oilcontract/evaluationItems'
   import evaluationList from './evaluationlist'
   import baseList from './baselist'
+  import baseNewList from './basenewlist'
 
   export default {
     computed: {
@@ -179,7 +189,8 @@
     name: 'oilevaluationitems',
     components: {
       evaluationList,
-      baseList
+      baseList,
+      baseNewList
     },
 
     data () {