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.
333 lines
9.1 KiB
333 lines
9.1 KiB
<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>
|
|
|