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

<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>