企业查询、采集任务修改
This commit is contained in:
parent
92c242ab21
commit
4c75ae51b5
|
@ -6,6 +6,43 @@
|
||||||
<el-button type="primary" @click="dialogFormVisible = !dialogFormVisible">确 定</el-button>
|
<el-button type="primary" @click="dialogFormVisible = !dialogFormVisible">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</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-form ref="form" :model="form">
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
|
@ -40,7 +77,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="采集脚本">
|
<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"
|
<el-upload class="upload-demo" ref="upload" :show-file-list="false" action="/wide_data/spider/upload_script"
|
||||||
:on-success="handleSpiderUploadSuccess" :auto-upload="true">
|
:on-success="handleSpiderUploadSuccess" :auto-upload="true">
|
||||||
<el-button type="primary">上传</el-button>
|
<el-button type="primary">上传</el-button>
|
||||||
|
@ -76,12 +113,12 @@
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="数据来源">
|
<el-form-item label="数据来源">
|
||||||
<el-select v-model="form.data_source" placeholder="请选择数据来源" :disabled="showDisable">
|
<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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-if="!task_numbering" :span="4">
|
<el-col v-if="!task_numbering" :span="4">
|
||||||
<span class="clolr">设置</span>
|
<span class="clolr" @click="handleSource">设置</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
@ -123,8 +160,8 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="每次间隔">
|
<el-form-item label="每次间隔">
|
||||||
<el-input-number v-model="form.time_interval" controls-position="right" :min="0"
|
<el-input-number v-model="form.time_interval" controls-position="right" :min="0" :max="24"
|
||||||
:max="24" :disabled="showDisable"></el-input-number>
|
:disabled="showDisable"></el-input-number>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -151,7 +188,15 @@ import axios from "axios";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
pythonCode: '',
|
||||||
|
dialogScriptVisible: false,
|
||||||
|
sourceForm: {
|
||||||
|
name: "",
|
||||||
|
link: ""
|
||||||
|
},
|
||||||
parameter: {},
|
parameter: {},
|
||||||
|
outerVisible: false,
|
||||||
|
innerVisible: false,
|
||||||
dialogFormVisible: false,
|
dialogFormVisible: false,
|
||||||
showDisable: true,
|
showDisable: true,
|
||||||
showtoggle: true,
|
showtoggle: true,
|
||||||
|
@ -178,7 +223,17 @@ export default {
|
||||||
data_storage: "",
|
data_storage: "",
|
||||||
begin_time: "",
|
begin_time: "",
|
||||||
time_interval: 0
|
time_interval: 0
|
||||||
}
|
},
|
||||||
|
source_form: {
|
||||||
|
name: "",
|
||||||
|
page: 1,
|
||||||
|
page_size: 5
|
||||||
|
},
|
||||||
|
pageSize: 5,
|
||||||
|
currentPage: 1,
|
||||||
|
total: 0,
|
||||||
|
sourceData: [],
|
||||||
|
sourceList: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -189,6 +244,8 @@ export default {
|
||||||
}
|
}
|
||||||
this.fetchTaskDetails();
|
this.fetchTaskDetails();
|
||||||
this.getDataStroage();
|
this.getDataStroage();
|
||||||
|
this.sourceSet()
|
||||||
|
this.sourceListSet()
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
parameterJson() {
|
parameterJson() {
|
||||||
|
@ -196,6 +253,13 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
async previewParam() {
|
||||||
try {
|
try {
|
||||||
const response = await axios.get(`/wide_data/spider/get_script_parameter?file_id=${this.form.script_parameter}`);
|
const response = await axios.get(`/wide_data/spider/get_script_parameter?file_id=${this.form.script_parameter}`);
|
||||||
|
@ -389,6 +453,67 @@ export default {
|
||||||
},
|
},
|
||||||
toggleDisable() {
|
toggleDisable() {
|
||||||
this.showtoggle = !this.showtoggle;
|
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;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dialog-footer-source {
|
||||||
|
text-align: right;
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
::v-deep .el-card__header {
|
::v-deep .el-card__header {
|
||||||
padding: 12px 10px;
|
padding: 12px 10px;
|
||||||
background: #2a82e4;
|
background: #2a82e4;
|
||||||
|
@ -456,5 +586,17 @@ export default {
|
||||||
color: #2a82e4;
|
color: #2a82e4;
|
||||||
line-height: 52px;
|
line-height: 52px;
|
||||||
font-size: 14px;
|
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>
|
</style>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<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 :model="stroageData">
|
||||||
<el-form-item label="编号">
|
<el-form-item label="编号">
|
||||||
<el-input v-model="stroageData.storage_numbering" :disabled="true"></el-input>
|
<el-input v-model="stroageData.storage_numbering" :disabled="true"></el-input>
|
||||||
|
|
|
@ -71,7 +71,7 @@ export default {
|
||||||
industry_list: [],
|
industry_list: [],
|
||||||
area_list: area_data,
|
area_list: area_data,
|
||||||
time_list: [
|
time_list: [
|
||||||
"一年内",
|
"1年内",
|
||||||
"1-5年",
|
"1-5年",
|
||||||
"5-10年",
|
"5-10年",
|
||||||
"10-15年",
|
"10-15年",
|
||||||
|
|
Loading…
Reference in New Issue