334 lines
9.1 KiB
Vue
334 lines
9.1 KiB
Vue
<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>
|