Ver código fonte

验证提示异常

mxs 4 meses atrás
pai
commit
b14c16f6b8

+ 15 - 7
backend/vm/check.go

@@ -11,7 +11,7 @@ import (
 )
 
 // 爬虫验证
-func (vm *VM) VerifySpiderConfig(sc *be.SpiderConfig) (*be.SpiderConfigVerifyResult, error) {
+func (vm *VM) VerifySpiderConfig(sc *be.SpiderConfig) (*be.SpiderConfigVerifyResult, error, []string) {
 	if be.Cfg.IsOnly4MainSite {
 		return vm.verifySpiderConfig4MainSite(sc) //重点网站
 	} else {
@@ -21,8 +21,9 @@ func (vm *VM) VerifySpiderConfig(sc *be.SpiderConfig) (*be.SpiderConfigVerifyRes
 
 // verifySpiderConfig4Prod 验证爬虫配置,支持翻页,列表项数据只提取2条
 // 正式环境
-func (vm *VM) verifySpiderConfig4Prod(sc *be.SpiderConfig) (*be.SpiderConfigVerifyResult, error) {
+func (vm *VM) verifySpiderConfig4Prod(sc *be.SpiderConfig) (*be.SpiderConfigVerifyResult, error, []string) {
 	qu.Debug("sc---", *sc)
+	var errMsg []string
 	verifyResult := list.New()
 	be.DataResults[sc.Code] = verifyResult
 	ret := &be.SpiderConfigVerifyResult{false, false, false, false, false, false, false}
@@ -55,7 +56,7 @@ func (vm *VM) verifySpiderConfig4Prod(sc *be.SpiderConfig) (*be.SpiderConfigVeri
 	//初始化列表页信息
 	if !vm.InitListPage(ctx, sc) {
 		qu.Debug("初始化列表页失败,退出")
-		return ret, errors.New("初始化列表页失败")
+		return ret, errors.New("初始化列表页失败"), errMsg
 	}
 	no := 1
 	ret.ListTrunPage = true
@@ -68,6 +69,7 @@ T:
 		})
 		if err != nil {
 			qu.Debug("执行列表页JS代码失败", err.Error())
+			errMsg = append(errMsg, fmt.Sprintf("%s%d%s%s", "第", j+1, "页列表数据获取失败:", err.Error()))
 			continue
 		}
 		//TODO 5.操作详情页
@@ -86,6 +88,7 @@ T:
 			})
 			if err != nil {
 				qu.Debug("当前列表页第" + fmt.Sprint(contentIndex+1) + "条详情页打开异常")
+				errMsg = append(errMsg, fmt.Sprintf("%s%d%s%d%s%s", "第", j+1, "页,第", contentIndex+1, "条打开详情页失败:", err.Error()))
 				continue
 			}
 			//获取详情页内容
@@ -94,6 +97,7 @@ T:
 			})
 			if err != nil {
 				qu.Debug("当前列表页第" + fmt.Sprint(contentIndex+1) + "条详情页内容获取失败")
+				errMsg = append(errMsg, fmt.Sprintf("%s%d%s%d%s%s", "第", j+1, "页,第", contentIndex+1, "条详情页内容获取失败:", err.Error()))
 				continue
 			}
 			//下载附件
@@ -119,6 +123,7 @@ T:
 			if sc.MaxPages > 1 && j < VERIVY_MAX_TRUN_PAGE-1 && j < int(sc.MaxPages)-1 { //&& !ret.ListTrunPage {
 				if err = trunPage(sc, sc.ListTurnDelayTime, ctx); err != nil { //翻页失败
 					qu.Debug("第" + fmt.Sprint(j+1) + "页翻页失败")
+					errMsg = append(errMsg, fmt.Sprintf("%s%d%s%s", "第", j+1, "页翻页失败:", err.Error()))
 					ret.ListTrunPage = false
 					break T
 				}
@@ -139,13 +144,14 @@ T:
 	}
 	qu.Debug(verifyResult.Len())
 	ret.ListItems = (sc.MaxPages == 1 && verifyResult.Len() > 0) || (sc.MaxPages > 1 && verifyResult.Len() > 2)
-	return ret, nil
+	return ret, nil, errMsg
 }
 
 // verifySpiderConfig4MainSite 只验证列表标注
 // 重点网站测试环境
-func (vm *VM) verifySpiderConfig4MainSite(sc *be.SpiderConfig) (*be.SpiderConfigVerifyResult, error) {
+func (vm *VM) verifySpiderConfig4MainSite(sc *be.SpiderConfig) (*be.SpiderConfigVerifyResult, error, []string) {
 	qu.Debug("sc---", *sc)
+	var errMsg []string
 	verifyResult := list.New()
 	be.DataResults[sc.Code] = verifyResult
 	ret := &be.SpiderConfigVerifyResult{false, true, false, true, true, true, false}
@@ -174,7 +180,7 @@ func (vm *VM) verifySpiderConfig4MainSite(sc *be.SpiderConfig) (*be.SpiderConfig
 	//4.初始化列表页信息
 	if !vm.InitListPage(ctx, sc) {
 		qu.Debug("初始化列表页失败,退出")
-		return ret, errors.New("初始化列表页失败")
+		return ret, errors.New("初始化列表页失败"), errMsg
 	}
 	no := 1
 	ret.ListTrunPage = true
@@ -187,6 +193,7 @@ T:
 		})
 		if err != nil {
 			qu.Debug("执行列表页JS代码失败", err.Error())
+			errMsg = append(errMsg, fmt.Sprintf("%s%d%s%s", "第", j+1, "页列表数据获取失败:", err.Error()))
 			continue
 		}
 		//5.操作详情页
@@ -217,6 +224,7 @@ T:
 			if sc.MaxPages > 1 && j < VERIVY_MAX_TRUN_PAGE-1 && j < int(sc.MaxPages)-1 { //&& !ret.ListTrunPage {
 				if err = trunPage(sc, sc.ListTurnDelayTime, ctx); err != nil { //翻页失败
 					qu.Debug("第" + fmt.Sprint(j+1) + "页翻页失败")
+					errMsg = append(errMsg, fmt.Sprintf("%s%d%s%s", "第", j+1, "页翻页失败:", err.Error()))
 					ret.ListTrunPage = false
 					break T
 				}
@@ -239,5 +247,5 @@ T:
 		ret.ListItems = (sc.MaxPages == 1 && verifyResult.Len() > 0) || (sc.MaxPages > 1 && verifyResult.Len() > 2)
 	}
 
-	return ret, nil
+	return ret, nil, errMsg
 }

+ 7 - 2
bind4spider.go

@@ -7,6 +7,7 @@ import (
 	be "spider_creator/backend"
 	bdb "spider_creator/backend/db"
 	bew "spider_creator/backend/webservice"
+	"strings"
 )
 
 // DebugSpider 调试爬虫
@@ -36,7 +37,7 @@ func (a *App) VerifySpiderConfig(cssMark map[string]interface{}) map[string]inte
 			"msg": "标注信息传输失败!",
 		}
 	}
-	ret, err := vm.VerifySpiderConfig(sc) //验证
+	ret, err, msgArr := vm.VerifySpiderConfig(sc) //验证
 	if err != nil {
 		qu.Debug("验证脚本配置失败::", err.Error())
 		return map[string]interface{}{
@@ -47,10 +48,14 @@ func (a *App) VerifySpiderConfig(cssMark map[string]interface{}) map[string]inte
 	}
 	be.VerifyResults[sc.Code] = ret
 	qu.Debug("验证结果---", *ret)
+	var msg string
+	if len(msgArr) > 0 {
+		msg = strings.Join(msgArr, "\n")
+	}
 	return map[string]interface{}{
 		"ret": ret,
 		"err": 1,
-		"msg": "验证脚本配置成功",
+		"msg": msg,
 	}
 }
 

+ 1 - 1
frontend/src/components/spider/EditSpider.vue

@@ -14,7 +14,7 @@
               <span class="rollback-reason-label">打回原因:</span>
               <span class="rollback-reason-value">{{ formData.reason }}</span>
           </div> -->
-          <el-tag type="danger" v-if="formData.reason && (formData.state === 2||formData.state === 1)">打回原因:{{ formData.reason }} </el-tag>
+          <el-tag type="danger" v-if="formData.reason && (formData.state === 2||formData.state === 1||formData.state === 0)">打回原因:{{ formData.reason }} </el-tag>
           <el-tag type="danger" v-if="formData.taskReason && formData.state === 0">打回原因2:{{ formData.taskReason }} </el-tag>
         </div>
       </div>

+ 5 - 0
frontend/src/style.css

@@ -13,3 +13,8 @@ body {
 .space {
     height: 8px;
 }
+
+.el-message p {
+    white-space: pre-line;
+    line-height: 1.3;
+}

+ 8 - 0
frontend/src/views/CodeList.vue

@@ -665,6 +665,14 @@ const tableEvents = {
                   ret: r.ret,
                   row
                 })
+                if (r.msg != ""){
+                  ElMessage({
+                    showClose: true,
+                    type: 'warning',
+                    duration: 60*1000,
+                    message: r.msg,
+                  })
+                }
             } else {
                 return ElMessage({
                     message: r.msg || '验证异常',

+ 8 - 0
frontend/src/views/ReviewList.vue

@@ -705,6 +705,14 @@ const tableEvents = {
                   ret: r.ret,
                   row
                 })
+                if (r.msg != ""){
+                  ElMessage({
+                    showClose: true,
+                    type: 'warning',
+                    duration: 60*1000,
+                    message: r.msg,
+                  })
+                }
             } else {
                 return ElMessage({
                     message: r.msg || '验证异常',