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.

308 lines
11 KiB

<style lang="less" scoped>
.container{
height:100%;
background:#f6f6f6;
&>.d-search{
.u-tabs{
margin-top:-20rpx;
}
.tabs{
display:flex;
flex-wrap: wrap;
margin:20rpx -20rpx -15rpx 0;
text{
height:48rpx;
line-height: 48rpx;
background:rgba(238, 238, 238, 0.4);
color:#999;
font-size:24rpx;
border-radius: 48rpx;
min-width:110rpx;
padding:0 10rpx;
box-sizing: border-box;
text-align: center;
transition: all 0.3s;
margin:0 20rpx 15rpx 0;
&.active{
color:#fff;
background:#10C176;
}
}
}
}
scroll-view{
flex-grow: 1;
height:1rpx;
.card{
margin-top:0;
&>.info{
display:flex;
align-items: center;
&>.plant-xitongxiaoxi{
background:#10C176;
color:#fff;
width:90rpx;
height:90rpx;
line-height: 90rpx;
text-align: center;
border-radius: 50%;
position:relative;
margin-right:16rpx;
&.noRead{
&:after{
content:"";
position:absolute;
background:red;
width:12rpx;
height:12rpx;
border-radius: 50%;
top:9rpx;
right:9rpx;
}
}
}
&>view{
flex-grow: 1;
width:1rpx;
.title{
display:flex;
align-items: center;
text{
&:first-child{
font-weight: bold;
}
&:nth-child(2){
margin:0 20rpx 0 18rpx;
color:#fff;
background:#10C176;
border-radius: 4rpx 40rpx 4rpx 40rpx;
height:34rpx;
line-height: 34rpx;
padding:0 10rpx;
min-width:80rpx;
text-align: center;
font-size:20rpx;
}
&:nth-child(3){
margin-left:auto;
}
}
}
.tabs{
display:flex;
flex-wrap: wrap;
margin:12rpx -18rpx -16rpx 0;
text{
border-radius: 44rpx;
margin:0 18rpx 16rpx 0;
font-size:24rpx;
height:44rpx;
line-height: 44rpx;
background-position: 20rpx 12rpx;
background-repeat: no-repeat;
color:rgba(var(--c),1);
background-color:rgba(var(--c),0.1);
padding-right:20rpx;
&.read{
color:#999;
font-size:24rpx;
margin-left:auto;
}
}
.germinate{
--c:15, 194, 119;
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAAYZJREFUKFOdkU1IVHEUxc957yE45YwKSRnUpp24dKELZ4YCMdFNJNWyRdDOr3lBkMzK0PmIEsFVqzDMlRsXBcObaBuCgRjMphREUOq9USqc9z/igGKKMHi3554f955D1DCXC8/aLNu8pNgFoonSqsA5v8m8YQ1+NBZTgcB6AN8oXRF5lYAjaakKuFQcbnfgDEHoAlkHaPlfxYz+vZ37AYGxz+4aoe8S7oIwMhxRuPe+fGdmhzEv9RTA9KEAYAPALwA3INh+ItOMD/ftaMvNOYvWIIC9CszAbjxbOLqcMc+doKV9iR0EegUJ4FcJpSAx9TDqua8rDiYdKa6K+VRO5rZPvv1fBg3eWL9Nzgq4BnEeMCuw2O53Zx6dl9XZENNpq74zuP6nJ78e+ei22nXmQTmRzdcOOLXZWEw9/h3PvL0wIOaNTfiJ7POaAZEvbqsT4okl3QMZGKlEoB+EF8K82936uYjBhfC4hVNkRgujL2jbfYBuEWyu6oIvahPkssL98SD5qnTkOwB+A5pVJ9wdJQAAAABJRU5ErkJggg==);
background-size:30rpx 22rpx;
padding-left:30rpx+25rpx;
}
.organ{
--c:248, 203, 54;
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANCAYAAACdKY9CAAAAAXNSR0IArs4c6QAAAQ9JREFUKFOlUrtKA1EQPedeHxERFAQRCYK9GCW7Ivb+hEUqsbONhZVFCm0kYCPoD9gFS4tgYeFVsLBLmyaNWO5qmCOYjYJuksJphnmcmTMPIpPkIXoGuda3f7QEoSVgbyoOd+wH0sfoCKL/DZA0A+IAQLMQhR0moVwHXPFv5cxjuJTTIYHpQhTWmYRYA5O/AjoDUAIw+w+A0AV0QcemmTZIVAFm8+V2sBOjzq2bpnJ+fowTVwTjHtWBlGQATgHcSjgmuTUCkD+6YDVPNWjOj8fhfviWhNZrp12aW1jadbK3yc2n6xEA1QW8kFoF3IqXauy9BJbzCAlqOOpG8hVAi864//0aw473EcrbEt8NqnwCf8mG+U/vRGMAAAAASUVORK5CYII=);
background-size:26rpx 24rpx;
padding-left:26rpx+25rpx;
}
.type{
--c:235, 67, 118;
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAASBJREFUKFN9kD0vQ2EYhq/7bUUklUhEYxAMNfsDJk0TGxN/wWJ0EpvExmjpajMYTAaDxSIWg1ERFh/toCGpr55bzkk1qmmf8cl9PR+XqvPRHfY+QRH9KvY2YkXVYmTgEFjCNIBmi8sghv7MSDNtwHapfv8+OlPZ/UhCV4W1wZHJoSpiuAV1AgltxxVJL0nA9ogUCj03YC8iPWBixDiQ/fdS10lz+ZOdsSRULUanwFxfIH0IPhMD2ANIj2rGURzClsT0r5hOS62Rtq8F5aZ9miHMWo4kXXZYSrW2AZ7q942p7MSrklYu5M8Qtz0B7POBz8zCV/Z7+Y3aXi6MHSHV+2xwjZhNiUnsG4I2kC5S4Lm4fqBYxwRWwekJ3aVEdtmi9AMqTJE6K1mcKgAAAABJRU5ErkJggg==);
background-size:24rpx 22rpx;
padding-left:24rpx+25rpx;
}
}
}
}
&>.content{
display:flex;
align-items: center;
margin-top:10rpx;
.fruit,.food{
border-radius: 8rpx;
flex-shrink: 0;
height:44rpx;
line-height: 44rpx;
color:rgba(var(--c),1);
background:rgba(var(--c),0.1);
display:flex;
align-items: center;
padding:0 5rpx;
&:before{
content:"";
flex-shrink: 0;
margin-right:4rpx;
}
&:after{
flex-shrink: 0;
}
}
.fruit{
--c:248, 203, 54;
&:before{
width:29rpx;
height:21rpx;
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAALCAYAAACgR9dcAAAAAXNSR0IArs4c6QAAAitJREFUKFNVkV1Ik3EUxp//ecdm84ttMFHDGMYSbKaIbTPISTYzeJmDdiNUUhdZVHRRBEUXel1UBN6EF2LRRdEXIyiyG5sGGqkFUYph4i6knBs13Lv3/Z/YcsLOzTk8D7/DwzkCW6WqqtXutodGb40+Kmi5fjAUau/1Jf3js6WvUtoO98SzJy8KvsgN4fBRt6ZJf01D/Tm54bg2MjI0ntM7VLXt5OHkh/6uDXo7VyqjC/VxW+0P7+DpWDzn5+HW1tZql6tlyOl0RyrLa4zllY/Di4uxO2dPlKz2dSQtZhMjnSFMyAak06nUg5n3XU8vpabzcCAQMHn2hpbMZmtFWbnDvLAwuRmPf/r97t7a7u+zOu5SFezLVgQDNthShPJUevpXZu14HgZAp/oH32SySZ+mbaIzMGCdmbwiRnpfA/w/X1bfB8lN0AwdFos0Plds7C/A+Q2NjY325uaeaGXFTn9d7a7E1T1hW05nHUha6mSitIn0kqpMwmTr9B64ObUNHztz/vKh7iMDzCwAJiHIUISuFC7LTBJExBKSAf4yP5fdhtuDYSeb+YYQKGOIhACbpOSXRNTHzA8ZbIWAiyBaWPJ9kOIpiu1Tw9cJsELwOiTapNRuk2JRNWGMKUAdoDgUhoeZ/0iDxopgb09vUFHQzUATwN8YPAWQuvXTOcGoZgEHgPWp6PMLRXAkElFW/moXhUI+SKwKYXxlQd78O0BLzNIuWeiKMA3Hoo9//gNbO95NYH+HjwAAAABJRU5ErkJggg==);
}
&:after{
content:"水果";
}
}
.food{
--c:16, 193, 118;
&:before{
width:24rpx;
height:24rpx;
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAkRJREFUKFM1kF9IU2EYxr/v/Nk52s7cGp45qSTMMbNAmDRFCwSXHOtiSQhGkWVddFEXYRde1FUQNaOrLhIMQS8kb3YROOjCZJFRRoWKiLV0Ttf+tu0c5znnO9+3OELP5fs8P3ifBwIAgL9faldaitf2mwsDwtfaqep1x8zi2/Bn0zshSRzTnYtiQbMxBX4b+np6anK3d34rbRmHGTBln3f/4qa9ravvZxWfz8dqEv9RPaq4IYEl6H3etpC7sHWG0mhClRmCq4wK4AgrTnsWLm97UR5pSlTY9SCXirFVr8Cml63fdHdZZBQLZ9gQYrIWHdWVuZM/GnITxS4vIgS/SMRnP2ysDhVFkYKnRs49Tt5ZHa1ZrMtiq0EohQZyR9r+cCy401slOqPFvzip618eTU1I5rvQL/UfKQTi41qD3FGhgQowUDuXmvaulzz1K0xMrxeL1HqWXYmsVd/8FAlvQpPyDQdu5friIeGnM39X67NpShnJ2i7laSxCwFYBou/DpQT3/Vlo5jwcvHf/qYW3dCqOQqOI7HS78ziLCEZbpU22qZ79PxxIZA24vI1eQenqjdeS1NutaxqgaRZACAEh+CBIUTSoVCoAYwQsHA/m5iLz0H/xUtfQlcF3G7EY73K5AMswwDCMA4BhGIAMA6RSKdDibVbHJycDZgdq+MHosiiKx3jOgmmaIaqqUSbA8xzB2KBUTafT6XR8IvTk9EHps8GBYG3t4THBKgg2wUYnU3/2zLvbVXeoJJewrMhyJpMfiYbfhP8BZDwCZS4yOV4AAAAASUVORK5CYII=);
}
&:after{
content:"蔬菜";
}
}
.cause,.date{
color:#999;
font-size:24rpx;
margin-left:16rpx;
}
.cause{
flex-grow: 1;
}
}
}
}
}
</style>
<template>
<view class="container flex">
<d-search :btn="false" v-model="searchVal.search" popup ref="dSearch" @search="clean();">
<u-tabs :current="tabIndex" @change="tabIndex=$event.index" :list="[{name:'消息类型'},{name:'作物类型'}]" lineColor="#10C176" :activeStyle="{color:'#10C176'}" :inactiveStyle="{color:'#999'}" :itemStyle="{height:'60rpx'}" lineHeight="6rpx" lineWidth="96rpx"/>
<view class="tabs" v-if="tabIndex==0">
<text :class="{active:searchVal.mesType=='病害'}" @click="clean({cropType:'',mesType:'病害'})">病害</text>
<text :class="{active:searchVal.mesType=='虫害'}" @click="clean({cropType:'',mesType:'虫害'})">虫害</text>
</view>
<view class="tabs" v-else>
<text :class="{active:searchVal.cropType=='1610539208847142914'}" @click="clean({cropType:'1610539208847142914',mesType:''});$refs.dSearch.show=false">水果</text>
<text :class="{active:searchVal.cropType=='1610539232360411138'}" @click="clean({cropType:'1610539232360411138',mesType:''});$refs.dSearch.show=false">蔬菜</text>
</view>
</d-search>
<scroll-view scroll-y @scrolltolower="search">
<view class="card" v-for="(v,k) in list" :key="k" @click="toDetail(k)">
<view class="info">
<text class="plant-xitongxiaoxi" :class="{noRead:v.readStatus=='2'}"/>
<view>
<view class="title">
<text class="over">{{v.cropName}}</text>
<text>{{v.messageType}}</text>
<text class="plant-youbian"/>
</view>
<view class="tabs">
<text class="germinate">{{v.growthProcess_dictText}}</text>
<text class="organ">{{v.pestSite_dictText}}</text>
<text class="type">{{v.symptom_dictText}}</text>
<text class="read">阅读:{{v.readNum}}</text>
</view>
</view>
</view>
<view class="content">
<text v-if="v.cropType=='水果'" class="fruit"/>
<text v-if="v.cropType=='蔬菜'" class="food"/>
<text class="cause over">{{v.content}}</text>
<text class="date">{{new Date(v.sendTime).format('yyyy/MM/dd')}}</text>
</view>
</view>
<u-empty :show="list.length<=0" text="为查询到相关信息" width="50%" icon="/static/noData.png"/>
</scroll-view>
</view>
</template>
<script>
import request from '@/common/request'
export default {
data(){
return{
tabIndex:0,
searchVal:{
pageNo:1,
pageSize:7,
search:"",
cropType:"",
mesType:"",
},
list:[],
total:0,
}
},
onLoad(){
this.search()
},
methods:{
clean(e){
this.total=0
this.list=[]
this.searchVal.pageNo=1
if(e){
this.searchVal.cropType=this.searchVal.cropType==e.cropType?'':e.cropType
this.searchVal.mesType=this.searchVal.mesType==e.mesType?'':e.mesType
}
this.search()
},
async search(){
if(this.total==0||this.list.length<this.total){
var res=await request('/api/message/list',{
params: this.searchVal
})
if(res.statu){
this.list=this.list.concat(res.data.records)
this.total=res.data.total
this.searchVal.pageNo++
if(this.list.length==this.total)uni.showToast({title:"加载完成!",icon:"none"})
}else{
uni.showModal({
title:"提示",
content:res.msg||"获取信息失败!",
showCancel:false,
})
}
}
},
async toDetail(index){
var res=await request("/api/message/getById",{params:{id:this.list[index].id}})
if(res.statu){
if(this.list[index].readStatus=='2'){
this.list[index].readStatus='1'
this.$store.state.sysMsgNum-=1
}
uni.navigateTo({
url:`/pages/home/newsDetail?intoPage=news`,
success(e){
e.eventChannel.emit("detail",res.data)
}
})
}else{
uni.showModal({
title:"提示",
content:res.msg||"获取信息详情失败!",
showCancel:false,
})
}
}
},
}
</script>