< template >
< view class = "fd flex" >
< topBar height = "373rpx" title = "企业动销" >
< view slot = "coment" >
< view style = "padding: 26rpx 40rpx" >
< seleBar @ seleBarFn = 'seleBarFn' : seleBarData = 'seleBarData' / >
< / view >
< view class = "header_footer" >
< view >
< view class = "flex jc" > 负责人 < / view >
< view
@ click = "chargeOpen"
style = "border-bottom-left-radius:0px;border-top-left-radius: 0px;width:164rpx;" class = "header_footer_item flex ac jc" >
< text style = "width: 100%;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;" > { { getData . params . customerName } } < / text >
< / view >
< / view >
< view style = "flex: 1;display: flex;flex-direction: column;justify-content: center;align-items: center;" >
< view class = "flex js ae" >
< text > 统计日期 < / text >
< text style = "font-size: 18rpx;visibility: hidden;" > 01 / 25 16 : 08 < / text >
< / view >
< view style = "padding: 0 20rpx; width: fit-content;" class = "header_footer_item flex ac jc" >
< text style = "font-size: 27rpx;" @click ="isShow.date=true" > {{ getData.params.startTime.split ( ' ' ) [ 0 ] }} 至 {{ getData.params.endTime.split ( ' ' ) [ 0 ] }} < / text >
< / view >
< / view >
< view class = "header_footer_item_right" >
< view @click ="isShow.filters=true"
style = "border-bottom-right-radius:0px;border-top-right-radius: 0px;"
class = "header_footer_item flex ac jc " >
{ { getData . params . dataArrangement == 'desc' ? '顺序' : '倒序' } }
< / view >
< / view >
< / view >
< / view >
< / topBar >
< view class = "sale_list" >
< scroll -view v-if ="dataList.length!==0" :refresher-triggered='isShow.refresherTriggered' @refresherrefresh='refresherrefresh' :refresher-enabled='true' @scrolltolower='scrolltolower' scroll-y="true" class="list_scroll" >
< view : key = 'index' v-for ="(item,index) in dataList" >
< view @click ="jump(item)" class = "list_item flex jb" >
< text :style ="{color:item.rankingNum==1?'#E5920E':item.rankingNum==2?'#9495AD':item.rankingNum==3?'#BC853B':'',fontWeight:item.rankingNum>3?'':'600'}" class = "flex ac ranking" > No . { { item . rankingNum } } < / text >
< view style = "width: 160rpx; height: 100%; display: flex;flex-direction: column;align-items: center;overflow: hidden;" class = "tc" >
< view class = "t-icon" >
< view :style ="{background:item.parentMark=='0'?'':'#BC853B'}" class = "list_item_tip" >
{ { item . parentMark == '0' ? '总公司' : '子公司' } }
< / view >
<!-- < image @ error = 'imgError' style = "width: 100%; height: 100%;" :src ="item.siteImages?item.siteImages:'../../../static/selegs.png'" > < / image > -- >
< / view >
< view style = "width: 100%;" class = "textOverflow" >
{ { item . siteContacts || '暂无' } }
< / view >
< / view >
< view class = "flex list_item_lable_right" >
< view style = "white-space:nowrap;overflow:hidden;text-overflow: ellipsis;" > { { item . companyName } } < / view >
< view class = "flex jb" >
< text > { { item . volume . toFixed ( 2 ) } } L < / text >
< text > { { item . realPrice | price } } ¥ < / text >
< / view >
< / view >
< / view >
< view v-if ="moreif(index)" >
< moreFillend @ moreFilledFn = 'moreFilledFn' : isShow = 'isShow.moreFilled' / >
< / view >
< / view >
< / s c r o l l - v i e w >
< view v -if = " dataList.length = = 0 "
style = "width: 100vw; height: 100%; display: flex;align-items: center;justify-content: center;" >
< image src = "@/static/qx.png" style = "width: 536rpx; height: 399rpx;" > < / image >
< / view >
< / view >
< charge type = '1' @ chargeChange = 'chargeChange' v -model = " isShow.charge " / >
< datePopup @ datePopupChange = 'datePopupChange' v -model = " isShow.date " / >
< filters @ filtersChange = 'filtersChange' v -model = " isShow.filters " / >
< / view >
< / template >
< script >
import sy from '@/api/sy'
import seleBar from '@/components/seleBar'
import moreFillend from '../../components/more.vue'
import datePopup from '../../components/datePopup.vue'
import filters from '../../components/filters.vue'
import convertW from '../../components/convertW.js'
import charge from '../../components/charge.vue'
export default {
components : {
seleBar ,
moreFillend ,
charge ,
datePopup ,
filters
} ,
data ( ) {
return {
seachValue : '' ,
index : 0 ,
single : "" ,
//展开控制器
isShow : {
moreFilled : true ,
charge : false ,
date : false ,
filters : false ,
refresherTriggered : false
} ,
seleBarData : [ {
lable : '柴油' ,
value : 'DIESEL' ,
open : true
} ,
{
lable : '汽油' ,
value : 'PETROL' ,
open : true
} ,
{
lable : 'LNG' ,
value : 'GAS' ,
open : true
}
] ,
permission : false ,
getData : {
pageSize : 5 ,
currentPage : 1 ,
params : {
endTime : '' ,
startTime : '' ,
productType : 'DIESEL' ,
dataArrangement : 'desc' ,
customerId : '' ,
customerName : '全部'
}
} ,
dataList : [ ] ,
endDate : null ,
}
} ,
watch : {
"isShow.charge" : {
handler : function ( n , o ) {
if ( ! n ) {
this . getData . currentPage = 1
this . getlist ( )
}
} ,
deep : true
}
} ,
created ( ) {
let date = new Date
let yesterday = new Date ( date . getTime ( ) - 86400000 )
this . getData . params . endTime = ` ${ yesterday . getFullYear ( ) } - ${ yesterday . getMonth ( ) + 1 < 10 ? ' 0 ' + ( yesterday.getMonth ( ) + 1 ) : yesterday.getMonth ( ) + 1 } - $ { yesterday.getDate ( ) < 10 ? ' 0 ' + yesterday.getDate ( ) : yesterday.getDate ( ) } 23 : 59 : 59 `
this . getData . params . startTime = ` ${ yesterday . getFullYear ( ) } - ${ yesterday . getMonth ( ) + 1 < 10 ? ' 0 ' + ( yesterday.getMonth ( ) + 1 ) : yesterday.getMonth ( ) + 1 } - $ { yesterday.getDate ( ) < 10 ? ' 0 ' + yesterday.getDate ( ) : yesterday.getDate ( ) } 00 : 00 : 00 `
} ,
onShow ( ) {
} ,
onLoad ( ) {
} ,
mounted ( ) {
this . getlist ( )
} ,
filters : {
price ( e ) {
return convertW . convertW ( e )
}
} ,
methods : {
refresherrefresh ( ) {
this . getData . currentPage = 1
this . isShow . refresherTriggered = true
this . getlist ( )
} ,
imgError ( e , index , i ) { } ,
moreif ( index ) {
if ( ! this . seleBarData [ this . index ] . open ) return false
if ( String ( this . dataList . length / 2 ) . indexOf ( '.' ) != - 1 ) {
return index + 1 == ( this . dataList . length + 1 ) / 2
} else {
return index + 1 == this . dataList . length / 2
}
} ,
jump ( e ) {
uni . navigateTo ( {
url : '../enterpriseDetails/enterpriseDetails?jsData=' + JSON . stringify ( Object . assign ( e , { endTime : this . getData . params . endTime , startTime : this . getData . params . startTime , productType : this . getData . params . productType } ) )
} )
} ,
//获取列表方法
getlist ( ) {
this . getData . pageSize = this . seleBarData [ this . index ] . open ? 5 : 10
sy . findEnterpriseDesc ( this . getData ) . then ( res => {
this . isShow . refresherTriggered = false
if ( res . code !== 20000 ) return
this . permission = Number ( res . data . params . permission ) == 0 ? false : true
if ( res . data . list . length == 0 ) {
uni . showToast ( {
title : '没有数据了哦' ,
icon : 'none'
} )
if ( this . getData . currentPage == 1 ) this . dataList = [ ]
return
}
if ( this . seleBarData [ this . index ] . open && res . data . list . length < 10 ) {
this . seleBarData [ this . index ] . open = false
}
if ( this . getData . currentPage !== 1 ) {
this . dataList = this . dataList . concat ( res . data . list ) ;
return
}
this . dataList = res . data . list
} )
} ,
//滑动到低触发的函数
scrolltolower ( ) {
uni . showToast ( {
title : '到底了' ,
icon : 'none'
} )
if ( this . seleBarData [ this . index ] . open ) return
this . getData . currentPage += 1
this . getlist ( )
} ,
// 排序组件选中触发的函数 e当前所选值
filtersChange ( e ) {
this . getData . currentPage = 1 ;
this . getData . params . dataArrangement = e . value ;
this . seleBarData [ this . index ] . open = false ;
this . getlist ( )
} ,
// 日期选择组件选中触发的函数 e选中的值
datePopupChange ( e ) {
this . getData . currentPage = 1
this . getData . params . startTime = e [ 0 ]
this . getData . params . endTime = e [ 1 ]
console . log ( e , this . getData , this . seleBarData [ this . index ] . open , 'datePopupChange' )
this . getlist ( )
} ,
//负责人选择组件选中触发的函数 e选中的值
chargeChange ( e ) {
this . getData . params . customerId = e . id
this . getData . params . customerName = e . userName
console . log ( e )
} ,
//打开charge组件
chargeOpen ( ) {
if ( ! this . permission ) return ;
this . isShow . charge = true
} ,
//点击moreFilled组件 回调事件
moreFilledFn ( ) {
this . getData . currentPage = 1
this . seleBarData [ this . index ] . open = false
this . getlist ( )
} ,
forList ( e ) {
let a = [ ]
for ( let i = 0 ; i < e ; i ++ ) {
a . push ( i )
}
return a
} ,
//顶部选择器值变化时触发的函数 e 当前的值
seleBarFn ( e , w ) {
console . log ( '%c 当前选择项↓' , 'color:red;font-size:50px' )
console . log ( e , w )
this . dataList = [ ]
this . getData . currentPage = 1
this . index = w
this . getData . params . productType = e . value
this . isShow . moreFilled = this . seleBarData [ this . index ] . open
this . getlist ( )
}
}
}
< / script >
< style scoped >
. list _item _tip {
padding : 11 rpx 14 rpx ;
background - color : # 9 F43CC ;
color : # FFFFFF ;
font - size : 16 rpx ;
width : fit - content ;
margin : 0 auto ;
display : flex ;
}
. textOverflow {
overflow : hidden ; /*超出部分隐藏*/
white - space : nowrap ; /*不换行*/
text - overflow : ellipsis ; /*超出部分文字以...显示*/
}
>>> . uni - easyinput _ _content {
border - radius : 15 px ! important ;
margin - top : 15 rpx ;
}
. list _scroll : nth - child ( 1 ) {
color : # 007 AFF ;
}
. picker - view {
/* height: 1000rpx; */
color : # 000000 ;
}
. sj _icon {
text - align : center ;
height : 30 px ;
transition : all .3 s ;
overflow : hidden ;
}
. list _item _lable _right {
display : flex ;
flex - direction : column ;
justify - content : space - between ;
width : 364 rpx ;
overflow : hidden ;
}
. tc {
text - align : center ;
}
. fw {
flex - wrap : wrap ;
}
. t - icon {
/* width: 50rpx !important; */
height : 50 rpx ! important ;
}
. list _scroll {
height : 100 % ;
overflow : hidden ;
}
. list _item {
background - color : # FFFFFF ;
margin : 0 40 rpx 10 rpx 40 rpx ;
border - radius : 10 px ;
color : # 666666 ;
font - size : 28 rpx ;
padding : 26 rpx ;
}
. sale _list {
flex : 1 ;
padding - top : 40 rpx ;
overflow : hidden ;
}
. header _footer _item _right {
border - bottom - right - radius : 0 px ;
border - top - right - radius : 0 px ;
}
. header _footer _item _right : before {
content : '111' ;
visibility : hidden ;
}
. fd {
flex - direction : column ;
flex - wrap : wrap ;
height : 100 vh ;
}
. ae {
align - items : flex - end ;
}
. jb {
justify - content : space - between ;
}
. js {
justify - content : space - around ;
}
. flex {
display : flex ;
}
. ac {
align - items : center ;
}
. jc {
justify - content : center ;
}
. header _footer _item {
height : 90 rpx ;
padding : 0 40 rpx ;
border - radius : 10 px ;
background : # ADCEFF ;
}
. header _footer {
display : flex ;
gap : 25 rpx
}
< / style >