372 lines
17 KiB
Vue
372 lines
17 KiB
Vue
|
<template>
|
|||
|
<div>
|
|||
|
<base-layout ref="baseLayout" :buttonList="buttonList" @onFuncBtn="onFuncBtn" :querySwitch="true"
|
|||
|
:searchBtnList="searchBtnList" :searchList="requirementList" @search="handleSearchEvent" :isPage="true"
|
|||
|
@pageChange="handlePageChange" @onFuncSearchBtn="onFuncSearchBtn">
|
|||
|
<div slot="main" slot-scope="{ tableHeight }">
|
|||
|
<base-table ref="baseTable" :showIndex="true" :funWidth="300" :funData="funData" @onFunc="onFunc"
|
|||
|
:tabLoading.sync="tabLoading" :tableHeight="tableHeight" :tableData="tableData"
|
|||
|
:fixedTable="'right'" :tableColumn="tableColumnData" :showSelect="true">
|
|||
|
<template v-slot:new_state="{ row }">
|
|||
|
<div style="width: 100%">
|
|||
|
<span v-if="row.new_state == 'Y'" style="color: #67c23a">成功</span>
|
|||
|
<span v-else-if="row.new_state == 'H'" style="color: #67c23a">已处理</span>
|
|||
|
<span v-else style="color: #f56c6c">失败</span>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
</base-table>
|
|||
|
</div>
|
|||
|
</base-layout>
|
|||
|
<right-dialog ref="rightDialog" @resetTable="resetTable"></right-dialog>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import baseLayout from "@/components/base/baseLayout";
|
|||
|
import baseTable from "@/components/base/baseTable";
|
|||
|
import rightDialog from "./rightDialog";
|
|||
|
import configData from "./configData";
|
|||
|
import {
|
|||
|
authApi
|
|||
|
} from "@/api/apis/auth";
|
|||
|
import { option } from "@/api/apis/detailData"
|
|||
|
export default
|
|||
|
|
|||
|
{
|
|||
|
components: {
|
|||
|
baseLayout,
|
|||
|
baseTable,
|
|||
|
rightDialog,
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
buttonList: [
|
|||
|
{
|
|||
|
menuName: "刷新",
|
|||
|
icon: "el-icon-refresh",
|
|||
|
btnFunction: "resetLoad",
|
|||
|
},
|
|||
|
], //按钮组
|
|||
|
searchBtnList: [
|
|||
|
{
|
|||
|
name: "批量推送",
|
|||
|
btnFunction: "batchPush",
|
|||
|
},
|
|||
|
], //搜索按钮组
|
|||
|
requirementList: [
|
|||
|
{
|
|||
|
placeholder: "任务名称",
|
|||
|
prop: "plugin_id",
|
|||
|
tag: "elSelect",
|
|||
|
options: [],
|
|||
|
optionValue: "pluginId",
|
|||
|
optionLabel: "pluginName",
|
|||
|
},
|
|||
|
{
|
|||
|
placeholder: "源系统编码",
|
|||
|
prop: "root_app_bill",
|
|||
|
tag: "elInput",
|
|||
|
},
|
|||
|
{
|
|||
|
placeholder: "推送时间",
|
|||
|
prop: "new_push_date",
|
|||
|
tag: "elDatePicker",
|
|||
|
valueFormat: "yyyy-MM-dd",
|
|||
|
},
|
|||
|
{
|
|||
|
placeholder: "业务⽇期",
|
|||
|
prop: "business_date",
|
|||
|
tag: "elDatePicker",
|
|||
|
valueFormat: "yyyy-MM-dd",
|
|||
|
},
|
|||
|
{
|
|||
|
placeholder: "下游系统单号",
|
|||
|
prop: "new_system_number",
|
|||
|
tag: "elInput",
|
|||
|
},
|
|||
|
{
|
|||
|
placeholder: "推送状态",
|
|||
|
prop: "new_state",
|
|||
|
tag: "elRadio",
|
|||
|
options: [
|
|||
|
{ label: "全部", value: "" },
|
|||
|
{ label: "成功", value: "Y" },
|
|||
|
{ label: "已处理", value: "H" },
|
|||
|
{ label: "失败", value: "N" },
|
|||
|
],
|
|||
|
},
|
|||
|
], //查询模板list
|
|||
|
tabLoading: false,
|
|||
|
tableColumnData: configData.tableColumnData, //表头数据
|
|||
|
funData: [
|
|||
|
{
|
|||
|
color: "#6a9af1",
|
|||
|
text: "查看",
|
|||
|
},
|
|||
|
{
|
|||
|
color: "#6a9af1",
|
|||
|
text: "重新推送",
|
|||
|
},
|
|||
|
{
|
|||
|
color: "#6a9af1",
|
|||
|
text: "手工处理",
|
|||
|
},
|
|||
|
{
|
|||
|
color: "#d67a74",
|
|||
|
text: "删除",
|
|||
|
},
|
|||
|
],
|
|||
|
tableData: [], //表格数据
|
|||
|
pageModel: {
|
|||
|
pageNum: 1,
|
|||
|
pageSize: 10,
|
|||
|
},
|
|||
|
queryModel: {
|
|||
|
plugin_id: '',
|
|||
|
root_app_bill: '',
|
|||
|
new_push_date: '',
|
|||
|
business_date: '',
|
|||
|
new_system_number: '',
|
|||
|
new_state: 'N'
|
|||
|
},
|
|||
|
};
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
this.$refs.baseLayout.getField("new_state", "N");
|
|||
|
this.queryProductClassfy();
|
|||
|
this.GetProductionTableData();
|
|||
|
},
|
|||
|
methods: {
|
|||
|
// 表格数据
|
|||
|
async GetProductionTableData() {
|
|||
|
this.tabLoading = true;
|
|||
|
const res = await option({
|
|||
|
tl: "integration_task_living_detailsService",
|
|||
|
as: "integrationTaskLog",
|
|||
|
dj: "queryPage",
|
|||
|
}, {
|
|||
|
...this.pageModel,
|
|||
|
...this.queryModel
|
|||
|
})
|
|||
|
this.tabLoading = false;
|
|||
|
if (res.status == "200") {
|
|||
|
this.tableData = res.attribute.list;
|
|||
|
this.$refs.baseTable.setTableKey()
|
|||
|
this.$refs.baseLayout.setPageTotal(res.attribute.total);
|
|||
|
}
|
|||
|
},
|
|||
|
async queryProductClassfy() {
|
|||
|
const res = await option({
|
|||
|
tl: "pluginService",
|
|||
|
as: "plugins",
|
|||
|
dj: "queryPlugins",
|
|||
|
}, {})
|
|||
|
|
|||
|
if (res.status == "200") {
|
|||
|
this.requirementList[0].options = res.attribute;
|
|||
|
}
|
|||
|
},
|
|||
|
// 搜索
|
|||
|
handleSearchEvent() {
|
|||
|
let data = this.$refs.baseLayout.ruleForm;
|
|||
|
this.queryModel.plugin_id = data.plugin_id;
|
|||
|
this.queryModel.root_app_bill = data.root_app_bill;
|
|||
|
this.queryModel.new_push_date = data.new_push_date;
|
|||
|
this.queryModel.business_date = data.business_date;
|
|||
|
this.queryModel.new_system_number = data.new_system_number;
|
|||
|
this.queryModel.new_state = data.new_state;
|
|||
|
this.resetTable();
|
|||
|
},
|
|||
|
// 批量推送
|
|||
|
async batchPush() {
|
|||
|
let data = ''
|
|||
|
this.$refs.baseTable.$refs.elTable.selection.forEach(el => {
|
|||
|
if (data == '') {
|
|||
|
data = el.id
|
|||
|
} else {
|
|||
|
data += `,${el.id}`
|
|||
|
}
|
|||
|
});
|
|||
|
if (data.length > 0) {
|
|||
|
this.$confirm("确认重新推送吗?", "提示", {
|
|||
|
confirmButtonText: "确定",
|
|||
|
cancelButtonText: "取消",
|
|||
|
type: "warning",
|
|||
|
})
|
|||
|
.then(() => {
|
|||
|
this.openLoading("submit");
|
|||
|
this.rePushBatch(data)
|
|||
|
})
|
|||
|
.catch(() => {
|
|||
|
this.$vmNews("取消操作", "info");
|
|||
|
});
|
|||
|
} else {
|
|||
|
this.$vmNews("请选择需要推送的单据", "warning");
|
|||
|
}
|
|||
|
},
|
|||
|
async rePushBatch(data) {
|
|||
|
const res = await option({
|
|||
|
tl: "integration_task_living_detailsService",
|
|||
|
as: "integrationTaskLog",
|
|||
|
dj: "batchPush",
|
|||
|
}, {
|
|||
|
id: data
|
|||
|
})
|
|||
|
if (res.status == "200") {
|
|||
|
this.$vmNews("批量推送成功", "success");
|
|||
|
this.resetTable();
|
|||
|
}
|
|||
|
},
|
|||
|
// 分页变化
|
|||
|
handlePageChange(val) {
|
|||
|
this.pageModel.pageNum = val.pageIndex;
|
|||
|
this.pageModel.pageSize = val.pageSize;
|
|||
|
this.GetProductionTableData();
|
|||
|
},
|
|||
|
// 按钮组
|
|||
|
onFuncBtn(btn) {
|
|||
|
this[btn.btnFunction]();
|
|||
|
},
|
|||
|
// 搜索按钮组
|
|||
|
onFuncSearchBtn(btn) {
|
|||
|
this[btn.btnFunction]();
|
|||
|
},
|
|||
|
// 新增
|
|||
|
add() {
|
|||
|
this.$refs.rightDialog.openDialog("add");
|
|||
|
},
|
|||
|
// 表格操作事件 查看 编辑 删除
|
|||
|
async onFunc(index, row) {
|
|||
|
// 查看
|
|||
|
if (index == 0) {
|
|||
|
this.openLoading("detail");
|
|||
|
this.$refs.rightDialog.openDialog("show", row);
|
|||
|
}
|
|||
|
// 重新推送
|
|||
|
if (index == 1) {
|
|||
|
this.$confirm("确认重新推送吗?", "提示", {
|
|||
|
confirmButtonText: "确定",
|
|||
|
cancelButtonText: "取消",
|
|||
|
type: "warning",
|
|||
|
})
|
|||
|
.then(() => {
|
|||
|
this.openLoading("submit");
|
|||
|
this.handleRePush(row);
|
|||
|
})
|
|||
|
.catch(() => {
|
|||
|
this.$vmNews("取消操作", "info");
|
|||
|
});
|
|||
|
}
|
|||
|
// 手工推送
|
|||
|
if (index == 2) {
|
|||
|
this.$prompt("请填写旺店通或者NC的单据号,方便以后排查", "提示", {
|
|||
|
confirmButtonText: "提交",
|
|||
|
cancelButtonText: "取消",
|
|||
|
inputType: "textarea",
|
|||
|
inputValidator: (value) => {
|
|||
|
if (!value) {
|
|||
|
return "请输入处理内容";
|
|||
|
}
|
|||
|
},
|
|||
|
})
|
|||
|
.then(({ value }) => {
|
|||
|
this.openLoading("submit");
|
|||
|
let params =
|
|||
|
{
|
|||
|
id: row.id,
|
|||
|
processing_remarks: value,
|
|||
|
}
|
|||
|
;
|
|||
|
this.updateManualProcess(params);
|
|||
|
})
|
|||
|
.catch(() => {
|
|||
|
this.$message({
|
|||
|
type: "info",
|
|||
|
message: "取消操作",
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
// 删除
|
|||
|
if (index == 3) {
|
|||
|
this.$confirm("确认删除该内容吗?", "提示", {
|
|||
|
confirmButtonText: "确定",
|
|||
|
cancelButtonText: "取消",
|
|||
|
type: "warning",
|
|||
|
})
|
|||
|
.then(() => {
|
|||
|
this.openLoading("del");
|
|||
|
this.productionDeleteById(row.id);
|
|||
|
})
|
|||
|
.catch(() => {
|
|||
|
this.$vmNews("取消操作", "info");
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
async handleRePush(row) {
|
|||
|
const res = await option({
|
|||
|
tl: "integration_task_living_detailsService",
|
|||
|
as: "integrationTaskLog",
|
|||
|
dj: "repush",
|
|||
|
}, {
|
|||
|
id: row.id
|
|||
|
})
|
|||
|
if (res.status == "200") {
|
|||
|
this.$vmNews("补推成功", "success");
|
|||
|
this.resetTable();
|
|||
|
} else if (res.status == "500") {
|
|||
|
this.$message({
|
|||
|
title: "补推失败",
|
|||
|
showClose: true,
|
|||
|
message: res.msg,
|
|||
|
duration: 0,
|
|||
|
type: "error",
|
|||
|
});
|
|||
|
this.resetTable();
|
|||
|
}
|
|||
|
},
|
|||
|
async updateManualProcess(val) {
|
|||
|
const res = await option({
|
|||
|
tl: "integration_task_living_detailsService",
|
|||
|
as: "integrationTaskLog",
|
|||
|
dj: "manualProcessing",
|
|||
|
}, val)
|
|||
|
if (res.status == "200") {
|
|||
|
this.$vmNews("手工处理成功", "success");
|
|||
|
this.resetTable();
|
|||
|
}
|
|||
|
},
|
|||
|
async productionDeleteById(id) {
|
|||
|
const res = await option({
|
|||
|
tl: "integration_task_living_detailsService",
|
|||
|
as: "integrationTaskLog",
|
|||
|
dj: "deleteEntity",
|
|||
|
}, {
|
|||
|
id
|
|||
|
})
|
|||
|
if (res.status == "200") {
|
|||
|
this.$vmNews("删除成功", "success");
|
|||
|
this.resetTable();
|
|||
|
}
|
|||
|
},
|
|||
|
// 重置表格
|
|||
|
resetTable() {
|
|||
|
this.pageModel.pageNum = 1;
|
|||
|
this.$refs.baseLayout.pageClear();
|
|||
|
this.GetProductionTableData();
|
|||
|
},
|
|||
|
},
|
|||
|
};
|
|||
|
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
.clickTitle {
|
|||
|
color: #409eff;
|
|||
|
cursor: pointer;
|
|||
|
}
|
|||
|
|
|||
|
::v-deep .searchBox:nth-child(6) {
|
|||
|
width: 250px !important;
|
|||
|
}
|
|||
|
</style>
|