Browse Source

feat: 爬虫调试验证弹窗添加

cuiyalong 10 months ago
parent
commit
6b8d14cff3
2 changed files with 47 additions and 16 deletions
  1. 33 0
      frontend/src/components/spider/VerifySpider.vue
  2. 14 16
      frontend/src/views/CodeList.vue

+ 33 - 0
frontend/src/components/spider/VerifySpider.vue

@@ -0,0 +1,33 @@
+<!--爬虫配置自动校验-->
+<!-- 新增爬虫 -->
+<template>
+    <el-dialog title="爬虫配置验证结果" v-model="dialogVisible" width="50%">
+        <el-descriptions title="验证结果" direction="vertical" :column="4" border>
+            <el-descriptions-item label="标题">{{ formData.title ? "通过" : "未通过" }}</el-descriptions-item>
+            <el-descriptions-item label="发布单位">{{ formData.publishUnit ? "通过" : "未通过" }}</el-descriptions-item>
+            <el-descriptions-item label="发布时间">{{ formData.publishTime ? "通过" : "未通过" }}</el-descriptions-item>
+            <el-descriptions-item label="正文">{{ formData.content ? "通过" : "未通过" }}</el-descriptions-item>
+            <el-descriptions-item label="附件">{{ formData.attaches ? "通过" : "未通过" }}</el-descriptions-item>
+            <el-descriptions-item label="列表信息条数">{{ formData.listItems ? "通过" : "未通过" }}</el-descriptions-item>
+            <el-descriptions-item label="列表翻页">{{ formData.listTrunPage ? "通过" : "未通过" }}</el-descriptions-item>
+        </el-descriptions>
+    </el-dialog>
+</template>
+<script setup>
+import { ref, defineExpose } from 'vue';
+const formData = ref({
+    title: false,
+    publishUnit: false,
+    publishTime: false,
+    content: false,
+    attaches: false,
+    listItems: false,
+    listTrunPage: false,
+});
+const dialogVisible = ref(false);
+//这里是重点
+defineExpose({
+    dialogVisible,
+    formData
+})
+</script>

+ 14 - 16
frontend/src/views/CodeList.vue

@@ -1,7 +1,7 @@
 <template>
     <Breadcrumb pageTitle="爬虫列表"></Breadcrumb>
     <div class="space"></div>
-    <el-card>
+    <el-card v-loading="loading">
         <el-header>
             <div class="action-bar-container">
                 <el-space class="action-bar-item-container action-bar-action-left">
@@ -113,6 +113,7 @@
     </el-card>
     <EditSpider ref="editSpiderDialog" @custom-event="dialogEvents.editSpiderConfigSaveEvent" />
     <RunSpiderDialog ref="runSpiderDialog" />
+    <VerifySpider ref="verifySpiderDialog" />
 </template>
 
 <script setup>
@@ -121,10 +122,11 @@ import { useRouter } from 'vue-router';
 import { useStore } from 'vuex';
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { BrowserOpenURL, EventsOn } from "../../wailsjs/runtime"
-import { SaveOrUpdateSpiderConfig, SwitchSpiderConfig } from "../../wailsjs/go/main/App"
+import { VerifySpiderConfig, SwitchSpiderConfig } from "../../wailsjs/go/main/App"
 import Breadcrumb from "../components/Breadcrumb.vue"
 import EditSpider from "../components/spider/EditSpider.vue"
 import RunSpiderDialog from "../components/spider/RunSpiderDialog.vue"
+import VerifySpider from "../components/spider/VerifySpider.vue"
 import useCodeListFiltersWithRole from '../composables/filter-options'
 import { USER_ROLE_ADMIN, USER_ROLE_DEVELOPER, USER_ROLE_REVIEWER } from '../data/user'
 import { Refresh, Search, Box } from '@element-plus/icons-vue'
@@ -135,6 +137,8 @@ const spiderTable = ref(null)
 
 const { stateOptions, claimOptions } = useCodeListFiltersWithRole()
 
+const loading = ref(false)
+
 const filterConfig = reactive({
     // 爬虫状态备选项
     stateOptions: stateOptions,
@@ -229,6 +233,7 @@ const stopWatch = watch(() => filters.modifyuser, (n) => {
 
 const editSpiderDialog = ref(null)
 const runSpiderDialog = ref(null)
+const verifySpiderDialog = ref(null)
 
 // 取消prevClicked的高亮
 const cancelOtherHighlight = () => {
@@ -475,19 +480,6 @@ const dialogEvents = {
                 duration: 3000,
             })
         }
-        // SaveOrUpdateSpiderConfig(data).then(result => {
-        //     ElMessage({
-        //         message: `成功更新爬虫 ${data.site} /${data.channel}/${data.code}`,
-        //         showClose: true,
-        //         duration: 3000,
-        //     });
-        //     //表格数据更新
-        //     listState.list.forEach((v, i) => {
-        //         if (v.code == data.code) v = data
-        //     })
-        //     //更新当前选择
-        //     SwitchSpiderConfig(data.code).then(result => { })
-        // })
     },
 }
 
@@ -524,7 +516,13 @@ const tableEvents = {
     },
     handleVerify(index, row) {
         onlyClickHighlight(row, '_action_clicked_verify')
-        console.log('handleVerify', row)
+        loading.value = true
+        VerifySpiderConfig().then(r => {
+            console.log("验证爬虫结果", r)
+            loading.value = false
+            verifySpiderDialog.value.dialogVisible = true
+            verifySpiderDialog.value.formData = r
+        })
     },
     handleSubmit(index, row) {
         onlyClickHighlight(row, '_action_clicked_submit')