Files
MP_XOIL_company_new/BagStation/pages/components/price-tab.vue
xiaozhiyong d0953d12ff 更新
2023-07-20 17:01:43 +08:00

236 lines
7.2 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="padding-top">
<scroll-view scroll-x class=" nav text-center">
<view class="cu-item" v-for="(item,index) in channelList" :class="index==TabCur?'text-red cur':''"
:key="item.channelId" @tap="tabSelect" :data-id="index">
<image class="site-icon margin-right-sm" :src="imgURL+'site-'+item.channelCode+'.png'" mode="widthFix">
</image>
{{item.channelCode|channelCodeFamt}}
<!-- 少了壳牌 -->
</view>
</scroll-view>
<view class="cu-list menu padding-left padding-right">
<view class="cu-item" v-for="(itemx,index) in oilSitePriceDetailsVos" :key="index" v-if="itemx.sitePrice>0">
<text class="cu-tag my-tag line-red text-lg">
</text>
<text class="text-bold text-black text-lg">{{itemx.oilProductCode}}</text>
<!-- ==0?'-.--':itemx.sitePrice -->
<text class="text-bold text-red text-lg">{{itemx.sitePrice |moneyIntercept}} /L</text>
<text class="text-delete">{{itemx.oilSitePrice}}/L</text>
<text class="text-xs ">预计每100L节省{{(100*(itemx.oilSitePrice - itemx.sitePrice))|moneyFormat}}</text>
<!-- <text class="text-gray text-delete">$市场价</text>
<text class="text-gray text-sm">
预计每100L节省581元
</text> -->
</view>
</view>
<!-- 油站特色 -->
<view v-if="ts" class="bg-gray padding-top-sm ">
<view @click="goFinancial" style="margin-bottom: 20rpx;" class="bg-white padding ">
<view class="advertisement_body">
<view class="advertisement_body_label">车辆评估</view>
<view>评估分数+改善建议,组合报告查询8.8</view>
</view>
</view>
<view class="bg-white padding ">
<text>油站特色</text>
<view class="">
<text style="margin-top: 20rpx;margin-left: 0;" class="cu-tag line-yellow margin-right-xs"
v-for="(itemy,index) in tagList" :key="index">{{itemy}}</text>
<text style="margin-top: 20rpx;margin-left: 0;height: auto;line-height: 20px;"
v-if="channelPrice.activitySwitch"
class="cu-tag line-yellow margin-right-xs">{{channelPrice.activityContent}}</text>
</view>
</view>
</view>
</view>
</template>
<script>
import Financial from '@/api/Financial.js'
export default {
props: {
channelPrice: {
type: Object,
default () {}
},
channelList: {
type: Array,
default () {}
},
ts: {
type: Boolean,
default: true
}
},
data() {
return {
TabCur: 0,
imgURL: this.global.imgURL,
scrollLeft: 0
};
},
computed: {
activeChannelCode() {
if (this.channelList.length && this.channelList[this.TabCur]) {
let channelCode = this.channelList[this.TabCur].channelCode
let secondChannelCode = ''
if (this.channelList[this.TabCur].secondChannelCode) {
secondChannelCode = this.channelList[this.TabCur].secondChannelCode
}
this.$emit('onChangeChannelCode', channelCode, secondChannelCode)
return channelCode
}
},
tagList() {
if (this.channelList.length && this.channelList[this.TabCur].labelTag) {
let labelTag = this.channelList[this.TabCur].labelTag
let tagList = labelTag ? labelTag.split(',') : []
return tagList
}
},
activePay() {
if (this.channelList.length && this.channelList[this.TabCur]) {
let activePay = this.channelList[this.TabCur].activePay
this.$emit('onChangePay', activePay, this.TabCur)
}
},
qrcodePay() {
if (this.channelList.length && this.channelList[this.TabCur]) {
let qrcodePay = this.channelList[this.TabCur].qrcodePay
this.$emit('onChangePayQr', qrcodePay)
}
},
oilSitePriceDetailsVos() {
if (this.channelList[this.TabCur]) {
return this.channelList[this.TabCur].oilSitePriceDetailsVos
}
}
},
methods: {
goFinancial() {
const user = uni.getStorageSync('user');
if (user) {
Financial.findHomePageReport({
customerId: user.id
}).then(res => {
if (res.data) {
uni.navigateTo({
url: `../../../Financial/pages/estimate/index?data=${encodeURIComponent(JSON.stringify(res.data))}`
})
} else {
uni.navigateTo({
url: '../../../Financial/pages/index?guide=1'
})
}
});
} else {
uni.showToast({
title: '请先登录!',
icon: 'none'
})
}
},
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
}
},
filters: {
moneyIntercept(value) {
if (value != 'xxx.x') {
console.log(value, '************************')
// let valus = (parseInt(value * 100) / 100).toFixed(2)
// let valus = `${String(value).split('.')[0]}.${String(value).split('.')[1].substring(1,2)}`
// let valus = Number(valus).toFixed(2)
// console.log(String(value).split('.')[1].substring(2,4),String(value).split('.')[1].length,'*-*-*-*-');
// console.log( Number(`${String(value).split('.')[0]}.${String(value).split('.')[1].substring(0,2)}`)+0.01,'************');
// return String(value).split('.')[1]&&String(value).split('.')[1].length>2? Number(`${String(value).split('.')[0]}.${String(value).split('.')[1].substring(0,2)}`)+0.01 :Number(value).toFixed(2);
return String(value).split('.')[1] && String(value).split('.')[1].length > 2 ? Number(
`${String(value).split('.')[0]}.${String(value).split('.')[1].substring(0,2)}${Number(String(value).split('.')[1].substr(2))==0?'':9}`
).toFixed(2) : Number(value).toFixed(2);
} else {
return Number(value).toFixed(2)
}
},
moneyFormat(value) {
if (value != 'xxx.x') {
// console.log('old:', value)
let realAmount = Math.floor(value * 100) / 100
// console.log('new:', realAmount)
// return realAmount
return Number(value).toFixed(2)
} else {
// console.log('old:',value)
// let realAmount = Math.floor(value * 100) / 100
// console.log('new:',realAmount)
// return value
return Number(value).toFixed(2)
}
// if (value != 'xxx.x') {
// return "¥" + (parseInt(value * 100) / 100).toFixed(2)
// } else {
// return value
// }
},
channelCodeFamt(value) {
if (value) {
// 渠道编码 ( XOIL星油 WJY万金油 LV老吕找油网 TY团油 YDJY一点加油壳牌)
switch (value) {
case 'XOIL':
case 'ZDC':
return '星油'
case 'WJY':
return '万金油'
case 'LV':
return '其他'
case 'TY':
return '团油'
case 'YDJY':
return '一点加油(壳牌)'
}
}
}
}
}
</script>
<style scoped>
.advertisement_body_label {
color: #FFFFFF;
margin-right: 20rpx;
padding: 10rpx 35rpx 10rpx 10rpx;
border-radius: 10rpx;
border-right: 0px solid;
background-image: linear-gradient(32deg, #FF9000 70%, rgba(255, 255, 255, 0) 50%), linear-gradient(148deg, #FF9000 70%, rgba(255, 255, 255, 0) 50%);
}
.advertisement_body {
width: 100%;
height: 69rpx;
background: rgba(255, 144, 0, 0.2);
border-radius: 5px 5px 5px 5px;
opacity: 1;
color: #FF9000;
display: flex;
align-items: center;
padding: 0 20rpx;
/* justify-content: center; */
font-size: 24rpx;
}
.site-icon {
width: 2rem;
vertical-align: middle;
}
.my-tag {
padding: 0 12rpx;
}
</style>