yxk_h5_master/pages/eqUpkeep/keepSearch.vue

306 lines
8.5 KiB
Vue

<template>
<view class="page">
<view class="example-body" v-if="listCards.length > 0">
<view
v-for="(item, index) in listCards"
:key="index"
class="example-box"
style="position: relative; flex: 1"
@click="toDetail(item)"
>
<dev-block
:title="item.title"
:titleNumber="item.titleNumber"
:note="item.note"
:extra="item.extra"
:tagType="item.tagType"
:contentList="item.contentList"
></dev-block>
</view>
<uni-load-more
:loadingType="loadingType"
:contentText="contentText"
></uni-load-more>
</view>
<view class="example-body" v-else>
<no-record></no-record>
</view>
<view class="goHome" @click="goMain()">
<img src="../../static/img/gohome.png" />
</view>
</view>
</template>
<script>
import devBlock from "@/components/xinsoft-dev-block/xinsoft-dev-block.vue";
import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
import noRecord from "@/components/xinsoft-no-record/xinsoft-no-record";
export default {
components: {
devBlock,
uniLoadMore,
noRecord,
},
data() {
return {
listCards: [],
fixed: false,
themeColor: "#000000",
titleColor: "#666666",
page: 1, //当前第几页S
pageSize: 5, //每页加载数据条数
//上拉刷新,下拉加载
loadingText: "加载中...",
loadingType: 0, //定义加载方式 0---contentdown 1---contentrefresh 2---contentnomore
contentText: {
contentdown: "上拉显示更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了",
},
search: "",
};
},
created() {
this.getDateList({});
},
onPullDownRefresh: function () {
//下拉刷新的时候请求一次数据
this.getDateList();
},
onReachBottom: function () {
//触底的时候请求数据,即为上拉加载更多
this.getDateListMore();
},
methods: {
//获取列表数据
getDateList() {
var _this = this;
this.page = 1;
this.loadingType = 0;
this.$http
.request({
url: "/apis/upkeepPlan/addValidRecords",
params: {
pageno: this.page,
pagesize: this.pageSize,
deviceName: this.search,
},
})
.then((res) => {
if (
!res.data.data ||
!res.data.data.datas ||
res.data.data.datas.length == 0
) {
//没有数据
this.listCards = [];
uni.hideNavigationBarLoading(); //关闭加载动画
return;
}
if (res.data.code == 0) {
this.page++; //得到数据之后page+1
uni.hideNavigationBarLoading();
uni.stopPullDownRefresh(); //得到数据后停止下拉刷新
if (res.data.data.datas.length > 0) {
_this.listCards = _this.formaterData(res.data.data.datas);
}
}
})
.catch((err) => {
uni.showToast({
title: "获取信息失败",
duration: 2000,
icon: "none",
});
});
},
getDateListMore() {
if (this.loadingType !== 0) {
//loadingType!=0;直接返回
return false;
}
this.loadingType = 1;
uni.showNavigationBarLoading(); //显示加载动画
this.$http
.request({
url: "/apis/upkeepPlan/addValidRecords",
params: {
pageno: this.page,
pagesize: this.pageSize,
deviceName: this.search,
},
})
.then((res) => {
if (
!res.data.data ||
!res.data.data.datas ||
res.data.data.datas.length == 0
) {
//没有数据
this.loadingType = 2;
uni.hideNavigationBarLoading(); //关闭加载动画
return;
}
if (res.data.code == 0) {
this.page++; //每触底一次 page +1
this.loadingType = 0; //将loadingType归0重置
uni.hideNavigationBarLoading(); //关闭加载动画
var resultData = this.formaterData(res.data.data.datas);
this.listCards = [...this.listCards, ...resultData];
}
})
.catch((err) => {
uni.showToast({
title: "没有更多数据了",
duration: 2000,
icon: "none",
});
});
},
formaterData(data) {
var resData = [];
data.forEach((vals, index) => {
var combineJSON = {
id: vals.id,
title:vals.device_serialno + "/" + vals.deviceName,
titleNumber: vals.work_orderNo
? vals.work_orderNo:'--',
// title: vals.work_orderNo
// ? vals.work_orderNo + "-" + vals.result_name
// : vals.result_name,
// titleNumber: "[" + vals.device_serialno + "]" + vals.deviceName,
contentList: [
{
id: 1,
isDouble: true,
labelName: "保养名称",
labelContent: vals.planName,
},
{
id: 2,
isDouble: true,
labelName: "保养负责人",
labelContent: vals.username,
},
{
id: 6,
isDouble: false,
labelName: "计划开始时间",
labelContent: vals.start_time,
},
{
id: 7,
isDouble: false,
labelName: "计划结束时间",
labelContent: vals.end_time || "-",
},
// {
// id: 3,
// isDouble: true,
// labelName: '保养工时',
// labelContent: (vals.man_hour)?vals.man_hour+'小时':'小时'
// },
// {
// id: 4,
// isDouble: true,
// labelName: '保养工时费',
// labelContent: vals.manhourCost?vals.manhourCost+'元':'元'
// },{
// id: 5,
// isDouble: true,
// labelName: '保养材料费',
// labelContent: vals.cost?vals.cost+'元':'元'
// },{
// id: 6,
// isDouble: false,
// labelName: '保养时间',
// labelContent:vals.start_time+'~'+(vals.end_time||'-')
// }
],
extra: vals.result_name,
tagType: this.setTag(vals.result),
};
resData.push(combineJSON);
});
return resData;
},
//设置状态颜色
setTag(val) {
if (val == 50) {
return "106";
} else if (val == 999) {
return "108";
} else {
return "106";
}
},
//查看详情
toDetail(item) {
uni.navigateTo({
url: "upkeepDetail?id=" + item.id,
});
},
},
onNavigationBarSearchInputConfirmed(e) {
let text = e.text;
if (!text) {
uni.showModal({
title: "提示",
content: "请输入搜索设备编号或设备名称",
success: (res) => {
if (res.confirm) {
}
},
});
return;
} else {
this.search = text;
uni.hideKeyboard();
this.getDateList();
}
},
/**
* 点击导航栏 buttons 时触发
*/
onNavigationBarButtonTap() {
var inputText = document.querySelector("input").value;
// const currentWebview = this.$mp.page.$getAppWebview();
// var inputText = currentWebview.getTitleNViewSearchInputText();
if (inputText) {
this.search = inputText;
// this.wwebViewContent.nameAndType = inputText;
uni.hideKeyboard();
this.getDateList();
} else {
uni.showModal({
title: "提示",
content: "请输入搜索设备编号或设备名称",
success: (res) => {},
});
}
},
};
</script>
<style scoped>
.topBox {
/* position: fixed; */
width: 100%;
height: 40px;
/* top: var(var(--window-top)); */
z-index: 2;
box-sizing: border-box;
background-color: #fff;
}
.filter_container {
padding-top: 7px;
box-sizing: border-box;
-webkit-flex: 1;
flex: 1;
position: relative;
}
</style>