You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

281 lines
6.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="noTabBarPage">
<view class="search">
<u-search placeholder="搜索" v-model="keyword" shape="square" @custom="search" :animation="true"></u-search>
</view>
<view class="areas">
<!-- <view class="searchBlock" @click="choose('',0)" :class="currentKey==0?'chooseCss':'unchooseCss'">
<image class="searchIcon" :src="currentKey==0?all:all1"></image>
<view class="rightIcon">
<view style="font-size:32rpx">{{total}}</view>
<view style="opacity: 0.7;">全部巡检点</view>
</view>
</view> -->
<view class="searchBlock" @click="choose(2)" :class="currentKey==2?'chooseCss':'unchooseCss'">
<image class="searchIcon" :src="currentKey==2?all:all1"></image>
<view class="rightIcon">
<view style="font-size:32rpx">{{total}}</view>
<view style="opacity: 0.7;">全部</view>
</view>
</view>
<view class="searchBlock" @click="choose(1)" :class="currentKey==1?'chooseCss':'unchooseCss'">
<image class="searchIcon" :src="currentKey==1?dangerS:dangerS1"></image>
<view class="rightIcon">
<view style="font-size:32rpx">{{total1}}</view>
<view style="opacity: 0.7;">有隐患</view>
</view>
</view>
<view class="searchBlock" @click="choose(0)" :class="currentKey==0?'chooseCss':'unchooseCss'">
<image class="searchIcon" :src="currentKey==0?dangerP:dangerP1"></image>
<view class="rightIcon">
<view style="font-size:32rpx">{{total0}}</view>
<view style="opacity: 0.7;">无隐患</view>
</view>
</view>
<!-- <view class="searchBlock" @click="choose(item.type,+index+1)"
:class="+index+1==currentKey?'chooseCss':'unchooseCss'" v-for="(item,index) in screening">
<image class="searchIcon" :src="index+1==currentKey?all:all1"></image>
<view class="rightIcon">
<view style="font-size:32rpx">{{item.count}}</view>
<view style="opacity: 0.7;">{{item.typeName}}</view>
</view>
</view> -->
</view>
<view>
<view class="content">
<view v-if="total>0">
<view class="taskCard " v-for="item in listData">
<view @click="pushdetail(item.id,current)">
<view class="u-flex u-col-top u-row-between"><span>{{item.name}}</span>
<u-tag :text='item.checkResult==0?"无隐患":"有隐患"' border-color="#fff"
:type="item.checkResult==0?'success':'error'" />
</view>
<view class="cardcontant">
<image :src="taskIcon" class="taskIcon"></image>
<view class="rightContant">
<view>检查类别:{{item.checkTypeName}}</view>
<view>检查时间:<span
:class="current==0&&item.checkStatus==4?'red':''">{{item.realCheckTime.slice(0, 10)}}</span>
</view>
<view>检查人员{{item.relatedUsers}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<u-loadmore :status="status" v-if="total>=9" />
</view>
</template>
<script>
export default {
name: "checkList",
components: {},
props:['type'],
data() {
return {
comeback: require("@/static/images/arrow-right.png"),
all: require("@/static/images/all.png"),
all1: require("@/static/images/qb.png"),
dangerS: require("@/static/images/dangerS.png"),
dangerS1: require("@/static/images/wxy.png"),
dangerP: require("@/static/images/wxd.png"),
dangerP1: require("@/static/images/wxd.png"),
taskIcon: require("@/static/images/taskIcon.png"),
menuList: [],
name: "",
currentKey: 2,
show: false,
screening: [],
status: 'loadmore',
total1: 0,
total0: 0,
keyword: "",
listData: [],
total: 0,
page: {
current: 1,
size: 10,
},
current: 1
}
},
// onReachBottom() {
// debugger
// this.status = 'loading';
// this.page.current = ++this.page.current;
// this.queryListByType(2)
// },
methods: {
onBottom() {
console.log(11)
this.status = 'loading';
this.page.current = ++this.page.current;
this.queryListByType(2)
},
queryListByType(val, type) {
if (val == 2) {
delete this.page.checkResult;
} else {
this.page.checkResult = val
}
//1是临时检查 2是检查记录
if(this._props.type==1){
this.page.checkMode =2
}else{
this.page.checkState= '1,2'
}
this.$u.api.queryListByType(this.page).then(res => {
this.listData.push(...res.rows)
if (res.rows.length < 10) {
this.status = 'nomore'
}
if (!type) {
this.total += res.rows.length
res.rows.length > 0 && res.rows.map(item => {
item.checkResult == 0 ? this.total0++ : this.total1++
})
}
})
},
search(val) {
this.page.current = 1
this.listData = []
this.total1 = 0
this.total0 = 0
this.total = 0
this.page.keyword = val
this.queryListByType(this.currentKey)
},
choose(index) {
this.page.current = 1
this.listData = []
this.queryListByType(index, 'choose')
this.currentKey = index;
},
pushdetail(val, type) {
uni.navigateTo({
url: `/packageD/pages/dualMechanism/securityManage/checkDetail?id=${val}&type=${type}`
});
}
},
mounted() {
// var queryData="queryType=2";
this.$u.api.queryHeadType({},queryType:2).then(res => {
this.screening = res
})
this.queryListByType(2)
}
}
</script>
<style lang="scss" scoped>
::v-deep .u-load-more-inner {
margin-bottom: 20rpx;
}
.red {
color: red
}
.search {
width: 100%;
height: 88rpx;
background: #fff;
padding: 12rpx 20rpx;
}
.chooseCss {
background-color: #347ACF;
color: #fff;
}
.unchooseCss {
background-color: #fff;
}
.searchBlock {
width: 225rpx;
height: 112rpx;
border-radius: 8rpx;
display: inline-block;
padding: 24rpx 10rpx;
margin-right: 20rpx;
margin-top: 20rpx;
.searchIcon {
width: 60rpx;
height: 60rpx;
}
.rightIcon {
margin-top: -75rpx;
margin-left: 70rpx;
font-size: 22rpx;
}
}
.areas {
padding: 20rpx 0 20rpx 20rpx;
width: 750rpx;
height: 176rpx;
white-space: nowrap;
overflow: hidden;
}
.content {
padding: 20rpx;
.taskCard {
width: 710rpx;
height: 240rpx;
background: #fff;
border-radius: 8rpx;
padding: 30rpx;
position: relative;
font-size: 28rpx;
margin-bottom: 20rpx;
.check {
width: 64rpx;
height: 64rpx;
position: absolute;
top: 140rpx;
right: 35rpx;
}
.cardcontant {
.taskIcon {
width: 162rpx;
height: 128rpx;
}
.rightContant {
font-size: 22rpx;
width: 300rpx;
margin-top: 10rpx;
margin-left: 20rpx;
position: absolute;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: inline-block;
view {
margin-bottom: 10rpx;
}
}
}
}
}
</style>