<template> <view class="priceAdjustment_body"> <topBar height="343rpx" title="调价申请"> <view slot="coment"> <view class="header_seach"> <view class="header_seach_seach"> <view class="seach_input"> <uni-easyinput :letfText='letfText' confirmType='search' @confirm='getData.currentPage=1;getList()' placeholder-style="color:#bbbbbb;font-weight: 100;" v-model="getData.params.siteName" placeholder="油站名称、油站ID" @iconClick="onClick"> </uni-easyinput> </view> <button @tap='jump(2)' class="header_seach_butten"> <uni-icons type="plusempty" size="20" color="#bbbbbb"></uni-icons> <view>新增</view> </button> </view> <view class="Navigation"> <view @tap="seleFn(item);seleindex = index" :class="seleindex==index?'navigation_seleitem':'navigation_item'" v-for="(item,index) in navigation" :key="index"> {{item.text}} <uni-icons :animation="animationData" class="icoon" v-if="index==0" type="refreshempty" style="margin-left: 10rpx;" size="15" color="#bbbbbb"></uni-icons> </view> </view> </view> </view> </topBar> <view class="listContainer" style='flex: 1;overflow: hidden;'> <scroll-view :refresher-triggered='isShow.refresherTriggered' @refresherrefresh='refresherrefresh' :refresher-enabled='true' @scrolltolower='scrolltolower' style="height: 100%;" scroll-y="true"> <view v-for="(item,index) in list" @click="select(item)" class="list_item_car"> <view style=""> <view class=" list_item_car_title flex jb"> <view class="flex"> <view class="flex jcenter acenter" style="min-width: 93rpx;"> <uni-icons color="#2866ff" custom-prefix="iconfont" type="iconjiayou" size="30"> </uni-icons> </view> <view> <view style=" color: #333333;font-size: 28rpx;">{{item.siteName}}</view> <view style=" font-size: 22rpx;color: #999999;">{{item.siteId}}</view> </view> </view> <view :style="{background:Number(item.effectiveMode)==0?'':'#55aaff'}" class="itemtable flex jcenter acenter">{{Number(item.effectiveMode)==0?'立即':'预约'}} </view> </view> <view class=" list_item_car_title flex "> <view class="flex"> <view class="flex jcenter acenter olitext " style="">{{item.oilProductCode}}</view> <view class="pricr_text"> <view class="flex"> 发改委 <view style="margin: 0 10rpx; min-width: 82rpx;" class="blackcolor"> {{Number(item.marketPrice).toFixed(2)}} </view> <uni-icons :color=" Number(item.marketPrice) >= Number(item.oldMarketPrice)? '#ff5555':'#2CE308' " custom-prefix="iconfont" :type="Number(item.marketPrice)>=Number(item.oldMarketPrice)?'icona-shangzhang1':'icona-xiadie2' " size="15"></uni-icons> <text class="decor">{{ Number(item.oldMarketPrice).toFixed(2) }}</text> </view> <view class="flex"> 油站价 <view style="margin: 0 10rpx;min-width: 82rpx;" class="blackcolor"> {{ Number(item.sitePrice).toFixed(2) }} </view> <uni-icons :color="Number(item.sitePrice)>Number(item.oldSitePrice)?'#ff5555':'#2CE308' " custom-prefix="iconfont" :type="Number(item.sitePrice)>Number(item.oldSitePrice)?'icona-shangzhang1':'icona-xiadie2' " size="15"></uni-icons> <text class="decor">{{Number(item.oldSitePrice).toFixed(2)}}</text> </view> </view> </view> </view> </view> <view class="list_item_car_footer flex acenter jb" style=" padding: 10rpx;"> <view>创建时间:{{item.createTime}}</view> <view :style="{color:colorFn(item)}">{{item.applyStatus|applyStatus}}</view> </view> </view> </scroll-view> </view> <popup :show="modifyShow" :butten='butten' v-model="isShow.modify"> <view slot="coment"> <modify @closeFn='isShow.modify=false' @reject='reject' @postFn='postFn' v-if="isShow.modify" :seleData='seleData' /> </view> </popup> </view> </template> <script> import scroll from '@/components/scroll' import modify from '../../modify/modify.vue' import priceAdjustment from '@/api/priceAdjustment' import tool from '@/utils/tool.js' export default { components: { scroll, modify }, data() { return { seleData: null, list: [], animationData: null, seleindex: '0', isShow: { modify: false, refresherTriggered:false }, modifyShow: { img: false, footer: false }, butten: { colse: '撤回', confirm: '修改价格', coloseBg: '#EC4645', coloseColor: '#FFFFFF', confirmBg: '', confirmColor: '' }, getData: { pageSize: 15, currentPage: 1, params: { applyStatus: '', //申请状态审核状态 siteName: '', //油站名称 effectiveMode: '', //生效方式调价类型 } }, navigation: [{ text: '全部', index: '' }, { text: '待审核', index: '0' }, { text: '待执行', index: '1' } ], } }, onShow() { this.getList() }, onLoad() { }, filters: { applyStatus(e) { /* -3:执行失败 -2:已撤回 -1:审核失败 0:待审核 1:审核通过 2:等待执行 3:执行成功 */ switch (Number(e)) { case 1: return '审核通过' case 2: return '等待执行' case 3: return '执行成功' case 0: return '等待审核' case -1: return '审核失败' case -2: return '已撤回' case -3: return '执行失败' case -4: return '已撤销' } } }, methods: { refresherrefresh(e){ this.isShow.refresherTriggered = true this.getList() }, reject(e) { priceAdjustment.withdrawalOfPriceAdjustment(e).then(res => { if (res.code !== 20000) return uni.showToast({ title: '撤回成功', icon: 'success' }) setTimeout(() => { this.isShow.modify = false this.getList() }, 500) }) }, postFn(e) { priceAdjustment.update(e).then(res => { if (res.code !== 20000) return uni.showToast({ title: '提交成功', icon: 'success' }) setTimeout(() => { this.isShow.modify = false this.getList() }, 500) }) }, colorFn(item) { switch (Number(item.applyStatus)) { case 1: return '#17A00E' case 2: return '#17A00E' case 0: return '#EBC153' case -1: return '#EC4645' case -2: return '#EC4645' } }, select(item) { // if (item.applyStatus !== 0) return this.isShow.modify = true tool.numberSetting(item, ['marketPrice', 'oldMarketPrice', 'oldSitePrice', 'sitePrice'], 2) this.seleData = item }, //转圈圈逻辑 !!!! 操 seleFn(e) { if (e.index == '') { if (this.getData.params.applyStatus !== '') { this.navigation[0].text = '全部' this.getData.params.effectiveMode = '' this.getData.params.applyStatus = '' } else { switch (e.text) { case '全部': this.navigation[0].text = '立即' this.getData.params.effectiveMode = 0 break case '立即': this.navigation[0].text = '预约' this.getData.params.effectiveMode = 1 break case '预约': this.navigation[0].text = '全部' this.getData.params.effectiveMode = '' break } } this.getData.params.applyStatus = '' } else { this.navigation[0].text = '全部' this.getData.params.effectiveMode = '' this.getData.params.applyStatus = e.index } this.getData.currentPage = 1 this.rotateFn() this.getList() }, getList() { let page = JSON.parse(JSON.stringify(this.getData)) priceAdjustment.findByPage(page).then(res => { this.isShow.refresherTriggered = false if (res.code !== 20000) return if (res.data.list.length == 0) { uni.showToast({ title: '没有数据了哦', icon: 'none' }) } if (page.currentPage !== 1) { this.list = this.list.concat(res.data.list) return } this.list = res.data.list console.log(res) }) }, animationFns() { console.log('恢复动画') var animation = uni.createAnimation({ duration: 0, timingFunction: 'ease', }) animation.rotate(0).step() this.animationData = animation.export() }, rotateFn() { var animation = uni.createAnimation({ duration: 1000, timingFunction: 'ease', }) animation.rotate(360).step() this.animationData = animation.export() setTimeout(() => { this.animationFns() }, 1000) }, scrolltolower() { this.getData.currentPage += 1 this.getList() }, seachFn() {}, onClick() {}, jump() { uni.navigateTo({ url: '../addPrice/addPrice' }) }, } } </script> <style> @import url("./index.css"); </style>