Files
wx_oms/priceAdjustment/page/index/index.vue
caolc fa1b5f31bd oms
2022-08-08 09:22:43 +08:00

334 lines
9.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>