同步任务调整

master
wj 2 years ago
parent f04b747ad0
commit 4385edecdb

@ -22,4 +22,7 @@ body {
#app { #app {
height: 100%; height: 100%;
} }
.mr10{
margin-right: 10px;
}
</style> </style>

@ -18,6 +18,16 @@ export function deleteUploadStatus(params) {
} }
export function uploadInfoByStatus(query) {
return axios({
url: "/spssync/basic/udiinfo/uploadInfoByStatus",
method: "get",
params: query,
responseType: 'blob'
});
}
//下载任务接口 //下载任务接口
export function filterDownloadStatus(params) { export function filterDownloadStatus(params) {
return axios({ return axios({
@ -43,3 +53,12 @@ export function connectUpper(params) {
params: params params: params
}) })
} }
export function infoByStatus(query) {
return axios({
url: "/spssync/basic/udiinfo/infoByStatus",
method: "get",
params: query,
responseType: 'blob'
});
}

@ -14,9 +14,8 @@
<el-form-item class="query-form-item"> <el-form-item class="query-form-item">
<el-select v-model="filterQuery.status" placeholder="处理状态"> <el-select v-model="filterQuery.status" placeholder="处理状态">
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option label="等待下载" value="3"></el-option> <el-option label="文件待同步" value="3"></el-option>
<el-option label="已处理" value="1"></el-option> <el-option label="任务完成" value="4"></el-option>
<el-option label="异常" value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -29,11 +28,7 @@
</el-row> </el-row>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="list" style="width: 100%">
v-loading="loading"
:data="list"
style="width: 100%"
>
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<!-- <el-table-column--> <!-- <el-table-column-->
<!-- label="记录ID"--> <!-- label="记录ID"-->
@ -42,96 +37,47 @@
<!-- show-overflow-tooltip--> <!-- show-overflow-tooltip-->
<!-- ></el-table-column>--> <!-- ></el-table-column>-->
<el-table-column <el-table-column label="任务ID" prop="taskId" width="140" show-overflow-tooltip></el-table-column>
label="任务ID"
prop="taskId"
width="140"
show-overflow-tooltip
></el-table-column>
<el-table-column <el-table-column label="任务类型" prop="type" width="140" show-overflow-tooltip>
label="任务类型"
prop="idDatas"
width="140"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ type[scope.row.idDatas] }}</span> <span>{{ scope.row.type}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="状态" prop="status" width="140" show-overflow-tooltip>
label="状态"
prop="status"
width="140"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag v-if="scope.row.status" :type="statusFilterType(scope.row.status)">{{ status[scope.row.status] }}
:type="statusFilterType(scope.row.status)" </el-tag>
>{{ status[scope.row.status] }}
</el-tag
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="开始时间" width="180" prop="startTime" show-overflow-tooltip></el-table-column>
label="开始时间" <el-table-column label="结束时间" width="180" prop="endTime" show-overflow-tooltip></el-table-column>
width="180"
prop="startTime"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="结束时间"
width="180"
prop="endTime"
show-overflow-tooltip
></el-table-column>
<el-table-column <el-table-column label="同步信息" prop="remark" show-overflow-tooltip></el-table-column>
label="同步信息"
prop="remark"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="文件路径"
prop="cacheFilePath"
show-overflow-tooltip
></el-table-column>
<el-table-column label="文件路径" prop="cacheFilePath" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" fixed="right" width="160"> <el-table-column label="操作" fixed="right" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-popconfirm @confirm="downFile(scope.row)" confirm-button-text='' cancel-button-text=''
type="text" class="mr10" icon="el-icon-info" icon-color="blck" title="是否确认要下载文件?"
size="small" v-if="scope.row.cacheFilePath">
@click.native.stop="detailDialog(scope.row.id)" <el-button type="text" size="small" slot="reference">下载
>详情 </el-button>
</el-button </el-popconfirm>
> <el-popconfirm v-if="scope.row.status==4" @confirm="deleteData(scope.row.id)" confirm-button-text=''
<el-button cancel-button-text='不用了' icon="el-icon-info" icon-color="red" title="是否确认要删除这条数据?">
type="text" <el-button type="text" size="small" slot="reference">删除
size="small" </el-button>
@click.native.stop="deleteDialog(scope.row.id)" </el-popconfirm>
>删除
</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination :current-page="filterQuery.page" :page-size="filterQuery.limit" @current-change="handleCurrentChange"
:page-size="filterQuery.limit" layout="prev, pager, next" :total="total"></el-pagination>
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card> </el-card>
<el-dialog <el-dialog title="同步信息" width="25%" :close-on-click-modal="false" :close-on-press-escape="false"
title="同步信息" :visible.sync="syncVisible">
width="25%"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="syncVisible"
>
<span v-text="syncInfo" style="white-space:pre-line;" class="syncInfo"></span> <span v-text="syncInfo" style="white-space:pre-line;" class="syncInfo"></span>
</el-dialog> </el-dialog>
@ -139,7 +85,13 @@
</template> </template>
<script> <script>
import {filterDownloadStatus, deleteDownloadStatus, createSchedule, updateConfig} from "../../api/sync/dataSyncStatus"; import {
filterDownloadStatus,
deleteDownloadStatus,
createSchedule,
updateConfig,
infoByStatus
} from "../../api/sync/dataSyncStatus";
import store from "@/store"; import store from "@/store";
export default { export default {
@ -168,10 +120,10 @@ export default {
"AutoDownloadDiProducts": "国家库DI数据" "AutoDownloadDiProducts": "国家库DI数据"
}, },
status: { status: {
0: "等待处理", 1: "任务待触发",
1: "处理完成", 2: "文件待生成",
2: "处理异常", 3: "文件待同步",
3: "等待下载", 4: "任务完成",
}, },
configQuery: { configQuery: {
@ -242,7 +194,7 @@ export default {
this.loading = false; this.loading = false;
if (response.code == 20000) { if (response.code == 20000) {
this.$message.success("更新成功!"); this.$message.success("更新成功!");
this.getConfig(); // this.getConfig();
} }
}) })
.catch(() => { .catch(() => {
@ -257,13 +209,11 @@ export default {
if (val) { if (val) {
this.getList(); this.getList();
} }
} },
,
handleCurrentChange(val) { handleCurrentChange(val) {
this.filterQuery.page = val; this.filterQuery.page = val;
this.getList(); this.getList();
} },
,
createScheduleDialog(type) { createScheduleDialog(type) {
if (this.$isNotBlank(this.syncTime)) { if (this.$isNotBlank(this.syncTime)) {
@ -275,8 +225,7 @@ export default {
.then(() => { .then(() => {
this.createSchedule(type); this.createSchedule(type);
}) })
.catch(() => { .catch(() => {});
});
} else { } else {
this.createSchedule(type); this.createSchedule(type);
} }
@ -299,8 +248,7 @@ export default {
this.$alert(response.message, '提示', { this.$alert(response.message, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
type: "warning", type: "warning",
callback: action => { callback: action => {}
}
}); });
} else { } else {
@ -336,10 +284,8 @@ export default {
this.loading = false; this.loading = false;
}); });
}) })
.catch(() => { .catch(() => {});
}); },
}
,
handleChange(response, files, fileList) { handleChange(response, files, fileList) {
console.log(response); console.log(response);
if (response.code != 20000) { if (response.code != 20000) {
@ -350,13 +296,13 @@ export default {
this.$message.success(response.data); this.$message.success(response.data);
this.getList(); this.getList();
} }
} },
,
statusFilterType(status) { statusFilterType(status) {
const statusMap = { const statusMap = {
0: "warning", 1: "danger",
1: "success",
2: "danger", 2: "danger",
3: "danger",
4: "success",
}; };
return statusMap[status]; return statusMap[status];
}, },
@ -367,11 +313,41 @@ export default {
this.syncInfo = item.remark; this.syncInfo = item.remark;
} }
}) })
}
}, },
mounted() { downFile(rows) {
infoByStatus({
'id': rows.id
}).then(res => {
let blob = new Blob([res])
let fileName = rows.cacheFilePath.substring(rows.cacheFilePath.lastIndexOf('/'))
let link = document.createElement("a")
link.href = window.URL.createObjectURL(blob)
link.download = fileName
link.style.display = 'none'
document.body.appendChild(link)
link.click()
window.URL.revokeObjectURL(link.href)
document.body.removeChild(link)
})
}, },
deleteData(id) {
deleteDownloadStatus({
id
}).then((response) => {
if (response.code == 20000) {
this.filterQuery.page = 1
this.$message.success("删除成功");
} else {
this.$message.error(response.message);
}
this.getList();
})
.catch(() => {});
}
},
mounted() {},
components: {}, components: {},
created() { created() {
this.headers = { this.headers = {
@ -379,7 +355,7 @@ export default {
ADMIN_TOKEN: store.getters.token, ADMIN_TOKEN: store.getters.token,
}; };
this.getList(); this.getList();
this.getConfig(); // this.getConfig();
}, },
}; };
</script> </script>

@ -12,14 +12,14 @@
<el-input v-model="filterQuery.taskId" placeholder="记录ID" clearable></el-input> <el-input v-model="filterQuery.taskId" placeholder="记录ID" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item class="query-form-item"> <!-- <el-form-item class="query-form-item">
<el-select v-model="filterQuery.status" placeholder="处理状态"> <el-select v-model="filterQuery.status" placeholder="处理状态">
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option label="等待处理" value="0"></el-option> <el-option label="等待处理" value="0"></el-option>
<el-option label="已处理" value="1"></el-option> <el-option label="已处理" value="1"></el-option>
<el-option label="异常" value="2"></el-option> <el-option label="异常" value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button-group style="display:flex;"> <el-button-group style="display:flex;">
@ -33,30 +33,16 @@
</el-row> </el-row>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="list" style="width: 100%">
v-loading="loading"
:data="list"
style="width: 100%"
>
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index"></el-table-column>
<el-table-column <el-table-column label="任务ID" prop="taskId" width="180" show-overflow-tooltip></el-table-column>
label="任务ID"
prop="taskId"
width="180"
show-overflow-tooltip
></el-table-column>
<el-table-column <el-table-column label="任务类型" prop="idDatas" width="140" show-overflow-tooltip>
label="任务类型"
prop="idDatas"
width="140"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ type[scope.row.idDatas] }}</span> <span>{{ type[scope.row.idDatas] }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column
label="状态" label="状态"
prop="status" prop="status"
width="140" width="140"
@ -69,64 +55,39 @@
</el-tag </el-tag
> >
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column label="开始时间" width="180" prop="startTime" show-overflow-tooltip></el-table-column>
label="开始时间" <!-- <el-table-column
width="180"
prop="startTime"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="结束时间" label="结束时间"
width="180" width="180"
prop="endTime" prop="endTime"
show-overflow-tooltip show-overflow-tooltip
></el-table-column> ></el-table-column> -->
<el-table-column <el-table-column label="同步信息" prop="remark" show-overflow-tooltip></el-table-column>
label="同步信息" <el-table-column label="文件路径" prop="cacheFilePath" show-overflow-tooltip></el-table-column>
prop="remark"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="文件路径"
prop="cacheFilePath"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作" fixed="right" width="160"> <el-table-column label="操作" fixed="right" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-popconfirm @confirm="downFile(scope.row)" confirm-button-text='' cancel-button-text=''
type="text" class="mr10" icon="el-icon-info" icon-color="blck" title="是否确认要下载文件?"
size="small" v-if="scope.row.cacheFilePath">
@click.native.stop="detailDialog(scope.row.id)" <el-button type="text" size="small" slot="reference">下载
>详情 </el-button>
</el-button </el-popconfirm>
> <el-popconfirm @confirm="deleteData(scope.row.id)" confirm-button-text=''
<el-button cancel-button-text='不用了' icon="el-icon-info" icon-color="red" title="是否确认要删除这条数据?">
type="text" <el-button type="text" size="small" slot="reference">删除
size="small" </el-button>
@click.native.stop="deleteDialog(scope.row.id)" </el-popconfirm>
>删除
</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination :current-page="filterQuery.page" :page-size="filterQuery.limit" @current-change="handleCurrentChange"
:page-size="filterQuery.limit" layout="prev, pager, next" :total="total"></el-pagination>
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card> </el-card>
<el-dialog <el-dialog title="同步信息" width="25%" :close-on-click-modal="false" :close-on-press-escape="false"
title="同步信息" :visible.sync="syncVisible">
width="25%"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="syncVisible"
>
<span v-text="syncInfo" style="white-space:pre-line;" class="syncInfo"></span> <span v-text="syncInfo" style="white-space:pre-line;" class="syncInfo"></span>
</el-dialog> </el-dialog>
@ -134,7 +95,13 @@
</template> </template>
<script> <script>
import {filterUploadStatus, deleteUploadStatus, updateConfig, connectUpper} from "../../api/sync/dataSyncStatus"; import {
filterUploadStatus,
deleteUploadStatus,
updateConfig,
connectUpper,
uploadInfoByStatus
} from "../../api/sync/dataSyncStatus";
import store from "@/store"; import store from "@/store";
export default { export default {
@ -143,7 +110,7 @@ export default {
filterQuery: { filterQuery: {
taskId: null, taskId: null,
id: null, id: null,
status: "0", // status: "0",
page: 1, page: 1,
limit: 10, limit: 10,
syncTime: null, syncTime: null,
@ -205,7 +172,7 @@ export default {
this.filterQuery = { this.filterQuery = {
id: null, id: null,
page: 1, page: 1,
limit: 20, limit: 10,
}; };
this.syncTime = null; this.syncTime = null;
this.getList(); this.getList();
@ -254,14 +221,13 @@ export default {
this.loading = false; this.loading = false;
if (response.code == 20000) { if (response.code == 20000) {
this.$message.success("更新成功!"); this.$message.success("更新成功!");
this.getConfig(); // this.getConfig();
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
}); });
} },
,
cancelDialog(val) { cancelDialog(val) {
@ -270,13 +236,11 @@ export default {
if (val) { if (val) {
this.getList(); this.getList();
} }
} },
,
handleCurrentChange(val) { handleCurrentChange(val) {
this.filterQuery.page = val; this.filterQuery.page = val;
this.getList(); this.getList();
} },
,
/* createScheduleDialog(type) { /* createScheduleDialog(type) {
if (this.$isNotBlank(this.syncTime)) { if (this.$isNotBlank(this.syncTime)) {
@ -349,10 +313,8 @@ export default {
this.loading = false; this.loading = false;
}); });
}) })
.catch(() => { .catch(() => {});
}); },
}
,
handleChange(response, files, fileList) { handleChange(response, files, fileList) {
console.log(response); console.log(response);
if (response.code != 20000) { if (response.code != 20000) {
@ -363,8 +325,7 @@ export default {
this.$message.success(response.data); this.$message.success(response.data);
this.getList(); this.getList();
} }
} },
,
statusFilterType(status) { statusFilterType(status) {
const statusMap = { const statusMap = {
0: "warning", 0: "warning",
@ -372,8 +333,7 @@ export default {
2: "danger", 2: "danger",
}; };
return statusMap[status]; return statusMap[status];
} },
,
detailDialog(id) { detailDialog(id) {
this.syncVisible = true; this.syncVisible = true;
this.list.forEach(item => { this.list.forEach(item => {
@ -381,25 +341,51 @@ export default {
this.syncInfo = item.remark; this.syncInfo = item.remark;
} }
}) })
}
}, },
mounted() { downFile(rows) {
infoByStatus({
'id': rows.id
}).then(res => {
let blob = new Blob([res])
let fileName = rows.cacheFilePath.substring(rows.cacheFilePath.lastIndexOf('/'))
let link = document.createElement("a")
link.href = window.URL.createObjectURL(blob)
link.download = fileName
link.style.display = 'none'
document.body.appendChild(link)
link.click()
window.URL.revokeObjectURL(link.href)
document.body.removeChild(link)
})
},
deleteData(id) {
deleteUploadStatus({
id
}).then((response) => {
if (response.code == 20000) {
this.filterQuery.page = 1
this.$message.success("删除成功");
} else {
this.$message.error(response.message);
}
this.getList();
})
.catch(() => {});
} }
, },
components: {}
, mounted() {},
components: {},
created() { created() {
this.headers = { this.headers = {
ADMIN_ID: store.getters.adminId, ADMIN_ID: store.getters.adminId,
ADMIN_TOKEN: store.getters.token, ADMIN_TOKEN: store.getters.token,
}; };
this.getList(); this.getList();
this.getConfig(); // this.getConfig();
} },
, };
}
;
</script> </script>
<style> <style>
.itemTag { .itemTag {

Loading…
Cancel
Save