Commit 808b936a by yzh

feat:esa爬虫静态页面

parent aa2540fa
......@@ -236,7 +236,7 @@ const handleExport = async () => {
// 4. 使用之前获取的句柄保存文件
await saveToSelectedLocation(res.data, fileHandle);
loading.close();
ElMessage.success('ZIP文件保存成功');
ElMessage.success('数据导出成功');
close()
} catch (e) {
console.error('导出失败', e);
......@@ -246,8 +246,8 @@ const handleExport = async () => {
}
});
} catch (error) {
console.error('操作失败', error);
ElMessage.error('无法打开保存对话框,请使用浏览器默认下载');
console.error(error);
// ElMessage.error('无法打开保存对话框,请使用浏览器默认下载');
}
};
......
<!-- 基于 ruoyi-vue3 的 Pagination 重构,核心是简化无用的属性,并使用 ts 重写 -->
<template>
<el-config-provider :locale="zhCn">
<el-pagination
v-show="total > 0"
v-model:current-page="currentPage"
......@@ -9,15 +10,28 @@
:pager-count="pagerCount"
:total="total"
class="mt-4"
layout="total, sizes, prev, pager, next, jumper"
layout="total,sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
jumper-text="跳转"
/>
</el-config-provider>
</template>
<script lang="ts" setup>
import { computed } from 'vue'
// ElConfigProvider 组件
import { ElConfigProvider } from 'element-plus';
// 引入中文包
import zhCn from 'element-plus/es/locale/lang/zh-cn';
defineOptions({ name: 'Pagination' })
// 更改分页文字
zhCn.el.pagination.total = '共 `{total} 条`';
zhCn.el.pagination.goto = '跳至';
zhCn.el.pagination.pagesize = '条/页';
zhCn.el.pagination.pageClassifier = '页';
const props = defineProps({
// 总条目数
total: {
......
......@@ -35,6 +35,8 @@
<!-- ST数据页面组件 -->
<stDataTab v-if="mode === 'ST数据'">
</stDataTab>
<esDataTab v-if="mode === 'ESA数据'">
</esDataTab>
</div>
<exportDialog v-model:dialogVisible="showDeleteDialog" @confirm="handleExportConfirm" />
......@@ -48,13 +50,15 @@ import allDataTab from './components/allDataTab.vue'
import ituDataTab from './components/ituDataTab.vue'
import stDataTab from './components/stDataTab.vue'
import dsnDataTab from './components/dsnData/dsnTab.vue'
import esDataTab from './components/esDataTab.vue'
import exportDialog from '@/components/Export/index.vue'
import { genFileId } from 'element-plus'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
// const
const mode = ref('DSN数据')
const showDeleteDialog = ref(false)
const sizeOptions = ['DSN数据', 'ITU数据', 'ST数据']
const sizeOptions = ['DSN数据', 'ITU数据', 'ST数据', 'ES数据']
const route = useRoute()
const router = useRouter()
const modeValue = ref<any>('数据展示')
......
......@@ -7,8 +7,8 @@
</el-form-item>
<el-form-item label="所属爬虫:" v-if="currentMode === AddMode.ADD_TASK" prop="spiderTypeValue">
<el-select v-model="ruleForm.spiderTypeValue" placeholder="请选择所属爬虫" style="width: 90%" >
<el-option v-for="item in spiderTypeOptions" :key="item.value" :label="item.label"
:value="item.value" :id="item.value" />
<el-option v-for="item in spiderTypeOptions" :key="item.spider" :label="item.spider"
:value="item.spider" :id="item.spider" />
</el-select>
</el-form-item>
<el-form-item label="执行频率:" prop="cronExpression">
......@@ -35,6 +35,7 @@ import { AddMode } from './enum'
import { Crontab } from '@/components/Crontab/index'
import type { FormInstance, FormRules } from 'element-plus'
import { ElMessage } from 'element-plus'
import { getSpiderList } from '@/api/system.ts'
interface RuleForm {
taskName: string
......@@ -59,7 +60,7 @@ const props = defineProps<addDialogPropType>()
const rules = ref<FormRules<RuleForm>>({
taskName: [
{ required: true, message: '请输入任务名称', trigger: 'blur' },
{ min: 1, max: 50, message: '任务名称应在1-50个字符之间', trigger: 'blur' },
{ min: 2, max: 50, message: '任务名称应在2-20个字符之间', trigger: 'blur' },
],
spiderTypeValue: [
{
......@@ -93,20 +94,7 @@ const emit = defineEmits(['update:dialogVisible', 'confirm', 'update:mode', 'get
// 组件的状态
const currentVisible = ref(props.dialogVisible)
const currentMode = ref(props.mode)
const spiderTypeOptions = ref([
{
value: 'api_spider',
label: 'api_spider'
},
{
value: 'dsn_now',
label: 'dsn_now'
},
{
value: 'itu_space_explorer',
label: 'itu_space_explorer'
},
])
const spiderTypeOptions = ref()
const taskParams = ref({
scrapyd_server_id: '1',
schedule_type: '0',
......@@ -162,7 +150,12 @@ const handleConfirm = async () => {
}
})
}
const getData = async () => {
const res = await getSpiderList({scrapydServerId:'1',project:'spiders'})
spiderTypeOptions.value = res.data
console.log(res);
}
// 监听props变化,同步给组件内部
watch(() => props.dialogVisible,
(newVal) => {
......@@ -202,7 +195,7 @@ watch(
{ immediate: true }
);
onMounted(() => {
getData()
})
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment