420 lines
10 KiB
Vue
420 lines
10 KiB
Vue
<template>
|
||
<view class="top-level">
|
||
<view class="Page_change" :style="{ marginTop: tarbarHeight }">
|
||
<u-search
|
||
:clearabled="true"
|
||
:showAction="false"
|
||
shape="square"
|
||
v-model="pageModel.sourceData"
|
||
:placeholder="'请输入源数据'"
|
||
@change="handlerSearchEvent"
|
||
></u-search>
|
||
</view>
|
||
<view
|
||
class="listContent"
|
||
:style="{ marginTop: isOther ? '220rpx' : '142rpx' }"
|
||
>
|
||
<view
|
||
v-for="(item, index) in tableData"
|
||
:key="item.billid"
|
||
class="listData"
|
||
@click="handlerShowDetails(item, index)"
|
||
>
|
||
<view class="content">
|
||
<text>发送者应用:</text>
|
||
<view
|
||
style="width: calc(100% - 90px); display: flex; align-items: center"
|
||
>
|
||
<u--text :lines="1" :text="item.sendAppName" :size="14"></u--text>
|
||
<img
|
||
src="./push.png"
|
||
class="pushBtn"
|
||
@click.stop.prevent="pushDetails(item, index)"
|
||
/>
|
||
</view>
|
||
</view>
|
||
<view class="content">
|
||
<text>状态:</text>
|
||
<view :style="[textColor(item.status)]" class="itemName">{{
|
||
textData(item.status)
|
||
}}</view>
|
||
</view>
|
||
<view class="content">
|
||
<text>接口名称:</text>
|
||
<u--text :lines="1" :text="item.receiveApiName" :size="14"></u--text>
|
||
</view>
|
||
<view class="content">
|
||
<text>源数据:</text>
|
||
<u--text :lines="1" :text="item.sourceData" :size="14"></u--text>
|
||
</view>
|
||
<view class="content">
|
||
<text>目标数据:</text>
|
||
<u--text :lines="1" :text="item.targetData" :size="14"></u--text>
|
||
</view>
|
||
<view class="content">
|
||
<text>错误状态:</text>
|
||
<u--text
|
||
:lines="1"
|
||
:text="item.errorStatus === '1' ? '需要重新发送' : '不需要重新发送'"
|
||
:size="14"
|
||
></u--text>
|
||
</view>
|
||
<view class="content">
|
||
<text>返回信息:</text>
|
||
<u--text :lines="1" :text="item.returnData" :size="14"></u--text>
|
||
</view>
|
||
<view class="content">
|
||
<text>创建时间:</text>
|
||
<u--text :lines="1" :text="item.createTime" :size="14"></u--text>
|
||
</view>
|
||
<view class="content">
|
||
<text>备注:</text>
|
||
<u--text :lines="1" :text="item.remark" :size="14"></u--text>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="noData" v-show="noData">
|
||
<u-divider text="我是有底线哒!" :hairline="true"></u-divider>
|
||
</view>
|
||
</view>
|
||
<view class="plusButton" @click="handlerAddProject">
|
||
<u-icon name="plus" :color="'#ffffff'"></u-icon
|
||
></view>
|
||
<u-toast ref="uToast"></u-toast>
|
||
<u-loading-page :loading="loading"></u-loading-page>
|
||
<base-tarbar ref="baseTarbar" :pageTitle="'异常信息'"></base-tarbar>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { authApi } from "@/api/login";
|
||
import baseTarbar from "@/components/baseTarbar/index.vue";
|
||
export default {
|
||
/**
|
||
* ┌─┐ ┌─┐
|
||
* ┌──┘ ┴───────┘ ┴──┐
|
||
* │ │
|
||
* │ ─── │
|
||
* │ ─┬┘ └┬─ │
|
||
* │ │
|
||
* │ ─┴─ │
|
||
* │ │
|
||
* └───┐ ┌───┘
|
||
* │ │
|
||
* │ │
|
||
* │ │
|
||
* │ └──────────────┐
|
||
* │ │
|
||
* │ ├─┐
|
||
* │ ┌─┘
|
||
* │ │
|
||
* └─┐ ┐ ┌───────┬──┐ ┌──┘
|
||
* │ ─┤ ─┤ │ ─┤ ─┤
|
||
* └──┴──┘ └──┴──┘
|
||
* 神兽保佑
|
||
* 代码无BUG!
|
||
*/
|
||
components: {
|
||
baseTarbar,
|
||
},
|
||
onReady() {
|
||
this.$refs.baseTarbar.currentEnvironment();
|
||
this.isOther = this.$refs.baseTarbar.isOther;
|
||
if (this.$refs.baseTarbar.isOther) {
|
||
this.tarbarHeight = "84rpx";
|
||
}
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
isOther: false,
|
||
tarbarHeight: "0",
|
||
msgType: "warn",
|
||
timer: null,
|
||
loading: false,
|
||
noData: false,
|
||
pageModel: {
|
||
pageNum: 1,
|
||
pageSize: 20,
|
||
sourceData: "",
|
||
},
|
||
tableData: [],
|
||
delBillid: "",
|
||
appId: "",
|
||
};
|
||
},
|
||
computed: {
|
||
textColor() {
|
||
return (item) => {
|
||
if (item == "1") {
|
||
return { backgroundColor: "#CFCFCF", color: "#333" };
|
||
} else if (item == "2") {
|
||
return { backgroundColor: "#C6DEFF", color: "#1677FF" };
|
||
} else if (item == "3") {
|
||
return { backgroundColor: "#D0FFEF", color: "#00B578" };
|
||
} else if (item == "4") {
|
||
return { backgroundColor: "#FFE5E3", color: "#FF3B30" };
|
||
} else {
|
||
return { backgroundColor: "#CFCFCF", color: "#333" };
|
||
}
|
||
};
|
||
},
|
||
textData() {
|
||
return (item) => {
|
||
if (item == "1") {
|
||
return "待发送";
|
||
} else if (item == "2") {
|
||
return "发送中";
|
||
} else if (item == "3") {
|
||
return "发送成功";
|
||
} else if (item == "4") {
|
||
return "发送失败";
|
||
} else {
|
||
return null;
|
||
}
|
||
};
|
||
},
|
||
},
|
||
onShow() {
|
||
this.resetTable();
|
||
},
|
||
// 下拉刷新
|
||
onPullDownRefresh() {
|
||
this.pageModel.pageNum = 1;
|
||
this.getTableData();
|
||
setTimeout(function () {
|
||
uni.stopPullDownRefresh();
|
||
}, 1000);
|
||
},
|
||
onLoad(option) {
|
||
//option为object类型,会序列化上个页面传递的参数
|
||
if (Object.getOwnPropertyNames(option).length != 0) {
|
||
this.appId = option.appId;
|
||
}
|
||
uni.$on("resetTable", this.resetTable);
|
||
},
|
||
onUnload() {
|
||
uni.$off("resetTable", this.resetTable);
|
||
},
|
||
methods: {
|
||
resetTable() {
|
||
this.pageModel.pageNum = 1;
|
||
this.tableData = [];
|
||
this.getTableData();
|
||
},
|
||
//表格数据
|
||
async getTableData() {
|
||
this.noData = false;
|
||
this.loading = true;
|
||
setTimeout(() => {
|
||
this.loading = false;
|
||
}, 5000);
|
||
let param = {
|
||
...this.pageModel,
|
||
receiveApp: this.appId,
|
||
status: "4",
|
||
};
|
||
let res = await authApi(
|
||
"sysApplicationService",
|
||
"application",
|
||
"thirdInterfacequeryAppApiLog",
|
||
"",
|
||
param
|
||
);
|
||
if (this.pageModel.pageNum > 1) {
|
||
this.tableData.push(...res.attribute.list);
|
||
} else {
|
||
this.tableData = res.attribute.list;
|
||
}
|
||
if (res.attribute.list.length < 20) {
|
||
this.noData = true;
|
||
}
|
||
this.loading = false;
|
||
},
|
||
// 触底刷新事件
|
||
onReachBottom() {
|
||
if (this.noData != true) {
|
||
this.pageModel.pageNum++;
|
||
this.getTableData();
|
||
}
|
||
},
|
||
// 搜索
|
||
handlerSearchEvent() {
|
||
if (this.timer !== null) clearTimeout(this.timer);
|
||
this.timer = setTimeout(() => {
|
||
this.pageModel.pageNum = 1;
|
||
this.getTableData();
|
||
}, 100);
|
||
},
|
||
//查看
|
||
handlerShowDetails(row, index) {
|
||
let url = "/pages/logsError/show?billid=" + row.id;
|
||
this.$tab.navigateTo(url);
|
||
},
|
||
//推送
|
||
pushDetails(row, index) {
|
||
let url = "/pages/logsError/details?billid=" + row.id;
|
||
this.$tab.navigateTo(url);
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
<style scoped lang="scss">
|
||
.itemName {
|
||
font-size: 24rpx;
|
||
margin: 0 20rpx;
|
||
font-weight: 400;
|
||
color: #fff;
|
||
padding: 2rpx 8rpx;
|
||
height: fit-content;
|
||
border-radius: 2px;
|
||
}
|
||
.pushBtn {
|
||
width: 19px;
|
||
height: 19px;
|
||
}
|
||
.top-level {
|
||
.listContent {
|
||
margin: 20rpx 24rpx 0 24rpx;
|
||
}
|
||
|
||
.swipe-action-item {
|
||
margin: 20rpx 0 20rpx 0;
|
||
}
|
||
.listData {
|
||
background-color: #fff;
|
||
border-radius: 16rpx;
|
||
padding: 20rpx 20rpx;
|
||
margin-bottom: 20rpx;
|
||
|
||
.head {
|
||
// height: 64rpx;
|
||
border-bottom: 1px solid #f7f7f7;
|
||
justify-content: space-between;
|
||
}
|
||
.head {
|
||
display: flex;
|
||
flex-direction: column;
|
||
color: #333;
|
||
margin-bottom: 16rpx;
|
||
padding: 10rpx 0 20rpx 0;
|
||
}
|
||
.head .itembox {
|
||
font-size: 32rpx;
|
||
font-weight: 600;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
|
||
.levelbox {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
border: 4rpx solid #3c9cff;
|
||
border-radius: 50%;
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
color: #3c9cff;
|
||
font-weight: 700;
|
||
font-size: 28rpx;
|
||
margin: 0 10rpx;
|
||
}
|
||
}
|
||
.head .itemName {
|
||
font-size: 24rpx;
|
||
color: #999999;
|
||
margin-left: 10px;
|
||
font-weight: 400;
|
||
|
||
text {
|
||
color: #fff;
|
||
padding: 4rpx 8rpx;
|
||
}
|
||
}
|
||
.state {
|
||
margin: 25rpx 0;
|
||
}
|
||
|
||
.time {
|
||
margin: 4rpx 0 0;
|
||
font-size: 28rpx;
|
||
flex-wrap: wrap;
|
||
line-height: 1.5;
|
||
|
||
text {
|
||
display: inline-block;
|
||
font-size: 28rpx;
|
||
color: #979797;
|
||
margin-bottom: 15rpx;
|
||
}
|
||
|
||
view {
|
||
height: 60rpx;
|
||
width: 50%;
|
||
}
|
||
|
||
view:nth-child(4) {
|
||
text:nth-child(2) {
|
||
font-size: 28rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.content {
|
||
line-height: 1.5;
|
||
font-size: 28rpx;
|
||
margin-bottom: 15rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
text {
|
||
font-size: 28rpx;
|
||
color: #979797;
|
||
}
|
||
}
|
||
}
|
||
.noData {
|
||
text-align: center;
|
||
margin: 20rpx 0 60rpx 0;
|
||
}
|
||
|
||
.Page_change {
|
||
width: 100%;
|
||
background-color: #fff;
|
||
padding: 20rpx 20rpx 20rpx 20rpx;
|
||
position: fixed;
|
||
top: 0;
|
||
z-index: 1;
|
||
|
||
.buttom {
|
||
justify-content: space-between;
|
||
padding-top: 30rpx;
|
||
|
||
::v-deep .u-button--circle {
|
||
width: 30%;
|
||
}
|
||
}
|
||
|
||
.input_box {
|
||
margin-top: 20rpx;
|
||
|
||
::v-deep .u-input--radius:nth-child(1) {
|
||
margin-right: 20rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
::v-deep .subsetion.u-subsection--button {
|
||
height: 70rpx;
|
||
margin-top: 10px;
|
||
}
|
||
|
||
::v-deep .u-subsection--button__bar {
|
||
background-color: #3c9cff;
|
||
}
|
||
</style>
|
||
<style scoped>
|
||
page {
|
||
height: 100vh;
|
||
}
|
||
</style> |