企业查询、采集任务修改

This commit is contained in:
彭森 2023-11-02 11:11:19 +08:00
parent 92c242ab21
commit 4c75ae51b5
3 changed files with 150 additions and 8 deletions

View File

@ -6,6 +6,43 @@
<el-button type="primary" @click="dialogFormVisible = !dialogFormVisible"> </el-button>
</div>
</el-dialog>
<el-dialog title="采集脚本" v-model="dialogScriptVisible" width="40%">
<pre class="script-container"><code>{{ pythonCode }}</code></pre>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogScriptVisible = !dialogScriptVisible;"> </el-button>
</div>
</el-dialog>
<el-dialog title="数据源设置" v-model="outerVisible" width="50%">
<el-dialog width="30%" title="新建数据源" v-model="innerVisible" append-to-body>
<el-form ref="form" :model="sourceForm">
<el-form-item label="名称">
<el-input v-model="sourceForm.name"></el-input>
</el-form-item>
<el-form-item label="链接">
<el-input v-model="sourceForm.link"></el-input>
</el-form-item>
</el-form>
<div class="block">
<el-button @click="innerVisible = !innerVisible"> </el-button>
<el-button type="primary" @click="createSource">新建</el-button>
</div>
</el-dialog>
<el-table :data="sourceData" border stripe style="width: 100%">
<el-table-column prop="label" label="数据源名称">
</el-table-column>
<el-table-column prop="link" label="数据源链接">
</el-table-column>
</el-table>
<div class="block">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="currentPage" :page-size="pageSize" layout="total, prev, pager, next" :total="total">
</el-pagination>
</div>
<div slot="footer" class="dialog-footer-source">
<el-button @click="outerVisible = false"> </el-button>
<el-button type="primary" @click="innerVisible = true">新建</el-button>
</div>
</el-dialog>
<el-form ref="form" :model="form">
<el-card class="box-card">
<template v-slot:header>
@ -40,7 +77,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="采集脚本">
<!-- <el-button type="success">预览</el-button> -->
<el-button type="success" @click="showScript">预览</el-button>
<el-upload class="upload-demo" ref="upload" :show-file-list="false" action="/wide_data/spider/upload_script"
:on-success="handleSpiderUploadSuccess" :auto-upload="true">
<el-button type="primary">上传</el-button>
@ -76,12 +113,12 @@
<el-col :span="4">
<el-form-item label="数据来源">
<el-select v-model="form.data_source" placeholder="请选择数据来源" :disabled="showDisable">
<el-option v-for="item in dataSource" :key="item.value" :label="item.label" :value="item.label" />
<el-option v-for="item in sourceData" :key="item.value" :label="item.label" :value="item.label" />
</el-select>
</el-form-item>
</el-col>
<el-col v-if="!task_numbering" :span="4">
<span class="clolr">设置</span>
<span class="clolr" @click="handleSource">设置</span>
</el-col>
</el-row>
</el-card>
@ -123,8 +160,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="每次间隔">
<el-input-number v-model="form.time_interval" controls-position="right" :min="0"
:max="24" :disabled="showDisable"></el-input-number>
<el-input-number v-model="form.time_interval" controls-position="right" :min="0" :max="24"
:disabled="showDisable"></el-input-number>
</el-form-item>
</el-col>
@ -151,7 +188,15 @@ import axios from "axios";
export default {
data() {
return {
pythonCode: '',
dialogScriptVisible: false,
sourceForm: {
name: "",
link: ""
},
parameter: {},
outerVisible: false,
innerVisible: false,
dialogFormVisible: false,
showDisable: true,
showtoggle: true,
@ -178,7 +223,17 @@ export default {
data_storage: "",
begin_time: "",
time_interval: 0
}
},
source_form: {
name: "",
page: 1,
page_size: 5
},
pageSize: 5,
currentPage: 1,
total: 0,
sourceData: [],
sourceList: []
};
},
mounted() {
@ -189,6 +244,8 @@ export default {
}
this.fetchTaskDetails();
this.getDataStroage();
this.sourceSet()
this.sourceListSet()
},
computed: {
parameterJson() {
@ -196,6 +253,13 @@ export default {
}
},
methods: {
formatDateTime(dateTimeString) {
const dateObj = new Date(dateTimeString);
const year = dateObj.getFullYear();
const month = String(dateObj.getMonth() + 1).padStart(2, '0'); // add 1 because months are 0-indexed
const day = String(dateObj.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
async previewParam() {
try {
const response = await axios.get(`/wide_data/spider/get_script_parameter?file_id=${this.form.script_parameter}`);
@ -389,6 +453,67 @@ export default {
},
toggleDisable() {
this.showtoggle = !this.showtoggle;
},
handleSizeChange(val) {
//
this.currentPage = val;
this.outerVisible = !this.outerVisible;
this.sourceSet(); //
},
async handleCurrentChange(val) {
this.currentPage = val;
this.outerVisible = !this.outerVisible;
await this.sourceSet();
},
async handleSource() {
this.outerVisible = !this.outerVisible;
this.source_form.page = this.currentPage;
this.source_form.page_size = 5;
await this.sourceSet();
},
async createSource() {
this.innerVisible = !this.innerVisible;
try {
const response = await axios.post("/wide_data/spider/create_data_sources", this.sourceForm);
if (response.data.message == "新建成功") {
this.$message({
type: 'success',
message: '新建成功!'
});
this.outerVisible = !this.outerVisible;
this.sourceListSet()
}
} catch (error) {
console.error("Error fetching data:", error);
}
},
async sourceListSet() {
this.source_form.page = 1;
this.source_form.page_size = 100;
await this.sourceSet()
},
async sourceSet() {
try {
const response = await axios.post("/wide_data/spider/search_data_sources", this.source_form);
if (response.data.message == "查询成功") {
const result = response.data.result.result;
this.sourceData = result;
this.total = response.data.result.total;
}
} catch (error) {
console.error("Error fetching data:", error);
}
},
async showScript() {
this.dialogScriptVisible = !this.dialogScriptVisible;
try {
const response = await axios.get(`/wide_data/spider/get_script?file_id=${this.form.spider_script}`);
this.pythonCode = response.data;
} catch (error) {
console.error("Failed to fetch Python code:", error);
}
}
}
};
@ -436,6 +561,11 @@ export default {
text-align: right;
}
.dialog-footer-source {
text-align: right;
padding-top: 5px;
}
::v-deep .el-card__header {
padding: 12px 10px;
background: #2a82e4;
@ -456,5 +586,17 @@ export default {
color: #2a82e4;
line-height: 52px;
font-size: 14px;
cursor: pointer;
}
.block {
padding: 15px 0px 5px 0px;
display: flex;
justify-content: flex-end;
}
.script-container {
max-height: 300px; /* 或者其他你想设置的高度 */
overflow: auto;
}
</style>

View File

@ -1,6 +1,6 @@
<template>
<div class="container">
<el-dialog title="收货地址" v-model="dialogFormVisible" width="18%">
<el-dialog title="存储地址" v-model="dialogFormVisible" width="18%">
<el-form :model="stroageData">
<el-form-item label="编号">
<el-input v-model="stroageData.storage_numbering" :disabled="true"></el-input>

View File

@ -71,7 +71,7 @@ export default {
industry_list: [],
area_list: area_data,
time_list: [
"年内",
"1年内",
"1-5年",
"5-10年",
"10-15年",