1214 lines
34 KiB
Vue
1214 lines
34 KiB
Vue
<template>
|
||
<!-- 布局 flex 组件 view -->
|
||
<view class="addDiver_body">
|
||
<!-- 卡片 -->
|
||
<view class="addDiver_card">
|
||
<view class="card_title">
|
||
<view class="tiao"></view>
|
||
<view class="card_title_text">新增调价</view>
|
||
</view>
|
||
<uni-list>
|
||
<uni-list-item @tap="jump" link>
|
||
<view class="list_header" slot="header">
|
||
油站
|
||
</view>
|
||
<view style="" slot="body" class="list_right">
|
||
<view slot="body" :style="{color:aboutEnterprise.siteName?'#333333':' '}"
|
||
class="list_right list_nosele">
|
||
{{aboutEnterprise.siteName?aboutEnterprise.siteName:'请选择油站'}}
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
<uni-list-item @click="seleoli" link>
|
||
<view class="list_header" slot="header">
|
||
油号
|
||
</view>
|
||
<view style="" slot="body" class="list_right">
|
||
<view slot="body" :style="{color:aboutEnterprise.oilProductCode?'#333333':' '}"
|
||
class="list_right list_nosele">
|
||
{{aboutEnterprise.oilProductCode?aboutEnterprise.oilProductCode:'请选择油品类型'}}
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
<uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
调价类型
|
||
</view>
|
||
<view slot="body" class="list_right">
|
||
<u-radio-group class="u-radio-group" iconPlacement="right"
|
||
v-model="aboutEnterprise.effectiveMode" placement="row" @change="groupChange">
|
||
<u-radio :customStyle="{marginBottom: '8px'}" :class="'u-radio_'+index"
|
||
v-for="(item, index) in radiolist1" :key="index" :label="item.name" :name="item.value"
|
||
@change="radioChange">
|
||
{{item.name}}
|
||
</u-radio>
|
||
</u-radio-group>
|
||
</view>
|
||
</uni-list-item>
|
||
<uni-datetime-picker @change="datetimeChange" type="datetime" :start="start"
|
||
v-model="aboutEnterprise.subEntryTime">
|
||
<uni-list-item @click="show=!show" v-if="aboutEnterprise.effectiveMode==1" link>
|
||
<view class="list_header" slot="header">
|
||
预约时间
|
||
</view>
|
||
<view style="" slot="body" class="list_right">
|
||
<view slot="body" :style="{color:aboutEnterprise.subEntryTime?'#333333':' '}"
|
||
class="list_right list_nosele">
|
||
{{aboutEnterprise.subEntryTime?aboutEnterprise.subEntryTime:'请选择预约时间'}}
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
</uni-datetime-picker>
|
||
<uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
发改委价格 <text v-if="aboutEnterprise.oilProductCode"
|
||
style="font-size: 22rpx; color:#EE0707;margin-left: 30rpx;">
|
||
原价:{{ Number(aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].marketPrice).toFixed(2)}}
|
||
</text>
|
||
<uni-icons
|
||
v-if="aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].marketPricetipIsShow"
|
||
id="oilProductCode" style="margin-left: 15rpx;margin-top: 2rpx;" type="info-filled"
|
||
size="20"
|
||
@tap="tipAppear('发改委价格',aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].marketPrice)">
|
||
</uni-icons>
|
||
</view>
|
||
<view slot="body" class="list_right ">
|
||
<view style="width: 100%;display: flex; ">
|
||
<input :disabled='disabled' placeholder="请输入价格"
|
||
@input="inputFn('marketPrice','marketPrice')" type="digit"
|
||
v-model="aboutEnterprise.marketPrice" class="list_right_input" />
|
||
<text class="yuan">元</text>
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
<uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
油站价格
|
||
<text v-if="aboutEnterprise.oilProductCode"
|
||
style="font-size: 22rpx; color:#EE0707;margin-left: 30rpx;">
|
||
原价:{{Number(aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].sitePrice).toFixed(2)}}
|
||
</text>
|
||
<uni-icons v-if="aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].sitePricetipIsShow"
|
||
style="margin-left: 15rpx;margin-top: 2rpx;" type="info-filled" size="15"
|
||
@tap="tipAppear('油站价格',aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].sitePrice)">
|
||
</uni-icons>
|
||
</view>
|
||
<view slot="body" class="list_right ">
|
||
<view style="width: 100%;display: flex; ">
|
||
<input :disabled='disabled' placeholder="请输入价格" @input="inputFn('sitePrice','sitePrice')"
|
||
type="digit" v-model="aboutEnterprise.sitePrice" class="list_right_input" />
|
||
<text class="yuan">元</text>
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
</uni-list>
|
||
</view>
|
||
<view class="addDiver_card">
|
||
<uni-list :border="false">
|
||
<!-- <uni-list-item @tap="show=true" link>
|
||
<view class="list_header" slot="header">
|
||
新增调价策略
|
||
</view>
|
||
<view style="" slot="body" class="list_right">
|
||
<view slot="body" :style="{color:aboutEnterprise.siteName?'#333333':' '}"
|
||
class="list_right list_nosele">
|
||
{{aboutEnterprise.siteName?aboutEnterprise.siteName:'自定义策略'}}
|
||
</view>
|
||
</view>
|
||
</uni-list-item> -->
|
||
<!-- <uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
个人价
|
||
<text v-if="aboutEnterprise.oilProductCode"
|
||
style="font-size: 22rpx; color:#EE0707;margin-left: 30rpx;">
|
||
{{ Number(aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].personalPrice).toFixed(2)}}
|
||
</text>
|
||
</view>
|
||
<view slot="body" class="list_right ">
|
||
<view style="width: 100%;display: flex; ">
|
||
<input :disabled="disabled" v-model="aboutEnterprise.newPersonalPrice" placeholder="请输入价格"
|
||
@input="inputFn('newPersonalPrice')" type="digit" class="list_right_input" />
|
||
<text class="yuan">元</text>
|
||
</view>
|
||
</view>
|
||
</uni-list-item> -->
|
||
<uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
企业价
|
||
<text v-if="aboutEnterprise.oilProductCode"
|
||
style="font-size: 22rpx; color:#EE0707;margin-left: 30rpx;">
|
||
{{Number(aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].enterprisePrice).toFixed(2)}}
|
||
</text>
|
||
<uni-icons
|
||
v-if="aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].enterprisePricetipIsShow"
|
||
style="margin-left: 15rpx;margin-top: 2rpx;" type="info-filled" size="15"
|
||
@tap="tipAppear('企业价',aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].enterprisePrice)">
|
||
</uni-icons>
|
||
</view>
|
||
<view slot="body" class="list_right ">
|
||
<view style="width: 100%;display: flex; ">
|
||
<input :disabled='disabled' placeholder="请输入价格"
|
||
@input="inputFn('newEnterprisePrice','enterprisePrice')" type="digit"
|
||
v-model="aboutEnterprise.newEnterprisePrice" class="list_right_input" />
|
||
<text class="yuan">元</text>
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
<uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
底价
|
||
<text v-if="aboutEnterprise.oilProductCode"
|
||
style="font-size: 22rpx; color:#EE0707;margin-left: 30rpx;">
|
||
{{Number(aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].floorPrice||0).toFixed(4)}}
|
||
</text>
|
||
<uni-icons
|
||
v-if="aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].floorPricetipIsShow"
|
||
style="margin-left: 15rpx;margin-top: 2rpx;" type="info-filled" size="15"
|
||
@tap="tipAppear('底价',aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].floorPrice || 0, 4)">
|
||
</uni-icons>
|
||
</view>
|
||
<view slot="body" class="list_right ">
|
||
<view style="width: 100%;display: flex; ">
|
||
<input :disabled='disabled' placeholder="请输入价格"
|
||
@input="inputFn('newFloorPrice','floorPrice')" type="digit"
|
||
v-model="aboutEnterprise.newFloorPrice" class="list_right_input" />
|
||
<text class="yuan">元</text>
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
|
||
<uni-list-item>
|
||
<view class="list_header" slot="header">
|
||
结算价
|
||
<text v-if="aboutEnterprise.oilProductCode"
|
||
style="font-size: 22rpx; color:#EE0707;margin-left: 30rpx;">
|
||
{{Number(aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].settlementPrice).toFixed(4)}}
|
||
</text>
|
||
<uni-icons
|
||
v-if="aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].settlementPricetipIsShow"
|
||
style="margin-left: 15rpx;margin-top: 2rpx;" type="info-filled" size="15"
|
||
@tap="tipAppear('结算价',aboutEnterprise.oilSiteOilsPrices[aboutEnterprise.oloIndex].settlementPrice)">
|
||
</uni-icons>
|
||
</view>
|
||
<view slot="body" class="list_right ">
|
||
<view style="width: 100%;display: flex; ">
|
||
<input :disabled='disabled' placeholder="请输入价格"
|
||
@input="inputFn('newSettlementPrice','settlementPrice')" type="digit"
|
||
v-model="aboutEnterprise.newSettlementPrice" class="list_right_input" />
|
||
<text class="yuan">元</text>
|
||
</view>
|
||
</view>
|
||
</uni-list-item>
|
||
<uni-list-item @tap='isShow.collapse=!isShow.collapse'>
|
||
<view class="list_header" slot="header">
|
||
底价维护说明
|
||
</view>
|
||
<view style="width: 100%;display: flex; " slot="body" class="list_right ">
|
||
<!-- <view :style="{color:aboutEnterprise.floorRemark?'已说明':'#bbbbbb'}">
|
||
{{aboutEnterprise.floorRemark?'已说明':'未说明'}}
|
||
</view> -->
|
||
<view>
|
||
点击修改
|
||
</view>
|
||
<uni-icons :style="{transform:`rotate(${(isShow.collapse?'90':'0')}deg)`}"
|
||
style="transition: .3s;" type="forward" size="16" color="#bbb" />
|
||
</view>
|
||
</uni-list-item>
|
||
<view :style="{height:isShow.collapse?'':'0px'}"
|
||
style="width: 100%;overflow: hidden;transition: .3s;height: 230rpx;">
|
||
<view class="oldfloorRemark" style="width: 100% ; padding: 5rpx 16px;">
|
||
{{aboutEnterprise.oldfloorRemark}}
|
||
</view>
|
||
<view class="collapse">
|
||
<textarea v-model="aboutEnterprise.floorRemark" maxlength='-1' class="collapse_input"
|
||
placeholder-style="color:#bbb" placeholder="请输入说明" />
|
||
</view>
|
||
</view>
|
||
</uni-list>
|
||
</view>
|
||
<!-- 底部按钮 -->
|
||
<view class="list_footer">
|
||
<button @tap="postFn" class="list_butten ">保存</button>
|
||
</view>
|
||
|
||
<!-- <view v-show="windowInfo.show" :style="{top:windowInfo.x,left:windowInfo.y}" class="tip-container">
|
||
{{windowInfo.text}}
|
||
</view> -->
|
||
|
||
<uni-popup ref="popup" type="top" background-color="#fff">
|
||
<view style="padding: 20rpx 50rpx; text-align: center;">
|
||
{{windowInfo.text}}
|
||
</view>
|
||
</uni-popup>
|
||
|
||
<popup @confirmFn='confirmFn' @closeFn='closeFn' :styles="{width:'610rpx'}" v-model="isShow.oliType">
|
||
<view slot="coment">
|
||
<view class="olipopup">
|
||
<view @tap.prevent="olioss(item,index)"
|
||
:class=" immediate==index? 'seleOlipopup_item' : 'olipopup_item' "
|
||
v-for="(item,index) in aboutEnterprise.oilSiteOilsPrices" :key="index">
|
||
{{item.oilProductCode}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</popup>
|
||
<popup :butten='butten' @confirmFn='detailseConfirmFn' @closeFn='detailseCloseFn' :show="modifyShow"
|
||
v-model="isShow.examine">
|
||
<view slot="coment">
|
||
<view class="detailse">
|
||
<view class="detailse_title fontcolor">
|
||
调价任务详情
|
||
</view>
|
||
<view class="detailse_header flex ac">
|
||
<view class="detailse_header_icon">
|
||
<uni-icons color="#2866ff" custom-prefix="iconfont" type="iconjiayou" size="20"></uni-icons>
|
||
</view>
|
||
<view style="flex: 1;overflow: hidden;">
|
||
<view style="width: 100%;" class="textOverflow">{{aboutEnterprise.siteName||'暂无'}}</view>
|
||
<view class="samlltext hui ">{{aboutEnterprise.siteId||'暂无'}}</view>
|
||
</view>
|
||
</view>
|
||
<view class="detailse_oilType flex">
|
||
<view>
|
||
<view class="hui">油号</view>
|
||
<view class="mtop">{{aboutEnterprise.oilProductCode||'暂无'}}</view>
|
||
</view>
|
||
<view class="detailse_oilType_price">
|
||
<view class="hui">调价类型</view>
|
||
<view class="flex ac mtop">
|
||
<view class="detailse_oilType_lable flex ac jc">{{aboutEnterprise.effectiveMode|state}}
|
||
</view>
|
||
<view class="samlltext hui">
|
||
<text
|
||
v-if="aboutEnterprise.effectiveMode==1">{{aboutEnterprise.subEntryTime}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="detailse_content hui flex">
|
||
<view v-for="(item,index) in priceData" class="detailse_content_item">
|
||
<view class="hui">{{item.lable}}</view>
|
||
<view>
|
||
<text>{{ Number(aboutEnterprise[item.price]).toFixed((item.lable=='底价'||item.lable=='结算价')?4:2)}}</text>
|
||
<uni-icons :color="iconFn(item) " custom-prefix="iconfont" :type="icontype(item) "
|
||
size="15"></uni-icons>
|
||
|
||
<text
|
||
class="samlltext hui de">{{Number(aboutEnterprise[item.oldePrice]||0).toFixed((item.lable=='底价'||item.lable=='结算价')?4:2)}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
/*
|
||
* 奕 2022/1/25
|
||
*/
|
||
import tool from '@/utils/tool'
|
||
import addDirver from '@/api/addDirver'
|
||
import priceAdjustment from '@/api/priceAdjustment'
|
||
import priceAdjustmentTask from '@/api/priceAdjustmentTask'
|
||
export default {
|
||
data() {
|
||
return {
|
||
windowInfo: {
|
||
show: false,
|
||
x: 0,
|
||
y: 0,
|
||
text: ''
|
||
},
|
||
immediate: null,
|
||
time: null,
|
||
timing: 0,
|
||
priceData: [{
|
||
lable: '发改委价格',
|
||
price: 'marketPrice',
|
||
oldePrice: 'oldMarketPrice'
|
||
}, {
|
||
lable: '油站价格',
|
||
price: 'sitePrice',
|
||
oldePrice: 'oldSitePrice'
|
||
}, {
|
||
lable: '个人价',
|
||
price: 'newPersonalPrice',
|
||
oldePrice: 'personalPrice'
|
||
}, {
|
||
lable: '企业价',
|
||
price: 'newEnterprisePrice',
|
||
oldePrice: 'enterprisePrice'
|
||
}, {
|
||
lable: '底价',
|
||
price: 'newFloorPrice',
|
||
oldePrice: 'floorPrice'
|
||
}, {
|
||
lable: '结算价',
|
||
price: 'newSettlementPrice',
|
||
oldePrice: 'settlementPrice'
|
||
}],
|
||
details: null,
|
||
modifyShow: {
|
||
img: false,
|
||
footer: true
|
||
},
|
||
butten: {
|
||
colse: '返回',
|
||
confirm: '确定',
|
||
coloseBg: '#bbbbbb',
|
||
coloseColor: '#FFFFFF',
|
||
confirmBg: '#bbbbbb',
|
||
confirmColor: ''
|
||
},
|
||
params: {
|
||
year: true,
|
||
month: true,
|
||
day: true,
|
||
hour: true,
|
||
minute: true,
|
||
second: false
|
||
},
|
||
selector: [1, 2, 3],
|
||
shows: {
|
||
img: false,
|
||
footer: false
|
||
},
|
||
show: false,
|
||
disabled: false,
|
||
start: '',
|
||
spareAboutEnterprise: [
|
||
'siteName',
|
||
'siteId',
|
||
'oilProductCode',
|
||
'effectiveMode',
|
||
'oloIndex',
|
||
'subEntryTime',
|
||
'applyStatus',
|
||
'marketPrice',
|
||
'sitePrice',
|
||
'oldMarketPrice',
|
||
'oldSitePrice',
|
||
'siteOilsPriceId',
|
||
'createSource',
|
||
'newEnterprisePrice', //修改后企业价格
|
||
'newPersonalPrice', //修改后个人价格
|
||
'newSettlementPrice', //修改后结算价格
|
||
'newFloorPrice' //修改后底价
|
||
],
|
||
aboutEnterprise: {
|
||
siteName: '',
|
||
siteId: '',
|
||
oilProductCode: '',
|
||
effectiveMode: 0,
|
||
oloIndex: '',
|
||
subEntryTime: '',
|
||
applyStatus: 0,
|
||
marketPrice: '',
|
||
sitePrice: '',
|
||
oldMarketPrice: '',
|
||
oldSitePrice: '',
|
||
siteOilsPriceId: '',
|
||
createSource: 'OMS-MINIAPP',
|
||
newEnterprisePrice: '', //修改后企业价格
|
||
newPersonalPrice: '', //修改后个人价格
|
||
newSettlementPrice: '', //修改后结算价格
|
||
newFloorPrice: '', //修改后底价
|
||
floorRemark: '',
|
||
oldfloorRemark: ''
|
||
},
|
||
isShow: {
|
||
oliType: false,
|
||
examine: false,
|
||
collapse: false
|
||
},
|
||
radiolist1: [{
|
||
name: '立即',
|
||
value: 0
|
||
},
|
||
{
|
||
name: '预约',
|
||
value: 1
|
||
},
|
||
],
|
||
priceArr: ['marketPrice', 'sitePrice', 'enterprisePrice', 'floorPrice', 'settlementPrice']
|
||
}
|
||
},
|
||
onLoad() {
|
||
let that = this
|
||
|
||
uni.$on('serviceStation', function(e) {
|
||
console.log('%c 油站参数更新↓', 'font-size:50px;color:red')
|
||
that.aboutEnterprise = Object.assign(that.aboutEnterprise, e)
|
||
console.log('that.aboutEnterprise', that.aboutEnterprise)
|
||
that.aboutEnterprise.oilSiteOilsPrices.map(item => {
|
||
that.priceArr.forEach(key => {
|
||
item[`${key}tipIsShow`] = false
|
||
})
|
||
return item
|
||
})
|
||
that.aboutEnterprise.siteId = that.aboutEnterprise.id
|
||
that.clearFn();
|
||
uni.removeStorage({
|
||
key: 'bufferData',
|
||
success() {}
|
||
});
|
||
that.immediate = null
|
||
})
|
||
let start = new Date()
|
||
start.setMinutes(start.getMinutes() + 35)
|
||
this.start =
|
||
`${start.getFullYear()}-${start.getMonth()+1}-${start.getDate()} ${start.getHours()}:${start.getMinutes()}:00`
|
||
console.log(this.start, '---')
|
||
},
|
||
|
||
watch: {
|
||
'isShow.oliType': {
|
||
handler(n, o) {
|
||
if (n) {
|
||
this.disabled = true
|
||
} else {
|
||
this.disabled = false
|
||
}
|
||
}
|
||
}
|
||
},
|
||
filters: {
|
||
state: function(e) {
|
||
switch (Number(e)) {
|
||
case 0:
|
||
return '即时'
|
||
case 1:
|
||
return '预约'
|
||
default:
|
||
return '---'
|
||
}
|
||
},
|
||
|
||
typeText: function(e) {
|
||
switch (Number(e)) {
|
||
case 0:
|
||
return '等待执行'
|
||
case 1:
|
||
return '执行成功'
|
||
case -1:
|
||
return '执行失败'
|
||
default:
|
||
return '---'
|
||
}
|
||
},
|
||
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 '已撤销'
|
||
}
|
||
}
|
||
},
|
||
onShow() {
|
||
|
||
},
|
||
onUnload() {
|
||
uni.removeStorage({
|
||
key: 'bufferData',
|
||
success() {}
|
||
});
|
||
|
||
},
|
||
created() {
|
||
// this.tipAppear = this.tipAppear()
|
||
},
|
||
methods: {
|
||
tipAppear(title, originalPrice, num = 2) {
|
||
originalPrice = originalPrice.toFixed(num)
|
||
let text =
|
||
`调整后${title}建议控制在${((originalPrice * 1000) / 1000 - 0.6).toFixed(num)}~${((originalPrice * 1000) / 1000 + 0.6).toFixed(num)}之间`
|
||
this.windowInfo.text = text
|
||
this.$refs.popup.open()
|
||
return
|
||
const query = uni.createSelectorQuery().in(this);
|
||
return (pos, item) => {
|
||
console.log(1)
|
||
setTimeout(() => {
|
||
query.select(pos).boundingClientRect(data => {
|
||
this.windowInfo = {
|
||
x: `${data.left}rpx`,
|
||
y: `${data.top}rpx`,
|
||
text: '发改委价格',
|
||
show: true
|
||
}
|
||
}).exec();
|
||
}, 0)
|
||
}
|
||
// this.$refs.popup.open()
|
||
},
|
||
icontype(item) {
|
||
'use strict'
|
||
return Number(this.aboutEnterprise[item.price]) > Number(this.aboutEnterprise[item.oldePrice]) ?
|
||
'icona-shangzhang1' : Number(this.aboutEnterprise[item.price]) < Number(this.aboutEnterprise[item
|
||
.oldePrice]) ? 'icona-xiadie2' : 'iconchiping'
|
||
},
|
||
iconFn(item) {
|
||
'use strict'
|
||
return Number(this.aboutEnterprise[item.price]) > Number(this.aboutEnterprise[item.oldePrice]) ?
|
||
'#ff5555' : Number(this.aboutEnterprise[item.price]) < Number(this.aboutEnterprise[item.oldePrice]) ?
|
||
'#2CE308' : '#f9d06f'
|
||
},
|
||
detailseCloseFn() {
|
||
this.isShow.examine = false;
|
||
},
|
||
detailseConfirmFn() {
|
||
if (this.timing !== 0) return
|
||
|
||
this.aboutEnterprise.createSource = 'OMS-MINIAPP';
|
||
priceAdjustmentTask.newOilPriceAdjustApply(this.aboutEnterprise).then(res => {
|
||
if (res.code !== 20000) return
|
||
this.isShow.examine = false;
|
||
setTimeout(() => {
|
||
uni.navigateBack()
|
||
}, 500);
|
||
})
|
||
},
|
||
clearFn() {
|
||
let keysArray = Object.keys(this.aboutEnterprise);
|
||
let clearArray = ['oldMarketPrice', 'oloIndex', 'oilProductCode', 'oldSitePrice', 'siteOilsPriceId',
|
||
'marketPrice', 'sitePrice', 'newEnterprisePrice', 'newPersonalPrice', 'newSettlementPrice',
|
||
'newFloorPrice'
|
||
];
|
||
keysArray.forEach((item, index) => {
|
||
if (clearArray.includes(item)) {
|
||
this.aboutEnterprise[item] = ''
|
||
}
|
||
});
|
||
},
|
||
datetimeChange(e) {
|
||
console.log(e)
|
||
var seleDate = String(e).replace(/-/g, "/");
|
||
var startDate = String(this.start).replace(/-/g, "/");
|
||
if (Date.parse(new Date(seleDate)) < Date.parse(new Date(startDate))) {
|
||
setTimeout(() => {
|
||
this.aboutEnterprise.subEntryTime = this.start;
|
||
}, 0)
|
||
}
|
||
|
||
},
|
||
//后端要的乱七八糟的字段和值 逼事太多 直接合对象凑字段了 备注:后端钱斌周!
|
||
olioss(e, index) {
|
||
// this.aboutEnterprise.oilProductCode = e.oilProductCode;
|
||
// this.aboutEnterprise.oloIndex = index;
|
||
this.immediate = index
|
||
uni.setStorageSync('bufferData', {
|
||
oloIndex: index
|
||
});
|
||
},
|
||
closeFn() {
|
||
this.isShow.oliType = false;
|
||
if (this.aboutEnterprise.oilProductCode || this.aboutEnterprise.oloIndex) {
|
||
this.immediate = this.aboutEnterprise.oloIndex;
|
||
return
|
||
};
|
||
this.aboutEnterprise.oilProductCode = ''
|
||
this.aboutEnterprise.oloIndex = ''
|
||
this.immediate = null;
|
||
uni.removeStorage({
|
||
key: 'bufferData',
|
||
success() {}
|
||
});
|
||
},
|
||
confirmFn() {
|
||
// newEnterprisePrice:'',//修改后企业价格
|
||
// newPersonalPrice:'',//修改后个人价格
|
||
// newSettlementPrice:'',//修改后结算价格
|
||
// newFloorPrice:''//修改后底价
|
||
let that = this
|
||
let bufferData = uni.getStorageSync('bufferData');
|
||
({
|
||
oloIndex: that.aboutEnterprise.oloIndex
|
||
} = bufferData);
|
||
if (!that.aboutEnterprise.oloIndex && that.aboutEnterprise.oloIndex !== 0) {
|
||
uni.showToast({
|
||
title: '请选择油品',
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
//要骂人找他们:@钱斌周、@孙毅
|
||
this.aboutEnterprise.oilProductCode = this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex]
|
||
.oilProductCode;
|
||
this.immediate = that.aboutEnterprise.oloIndex;
|
||
if (!this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].floorPrice && this
|
||
.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].floorPrice !== 0) {
|
||
this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].floorPrice = 0.0000
|
||
}
|
||
this.aboutEnterprise.oldMarketPrice = JSON.parse(JSON.stringify(Number(this.aboutEnterprise
|
||
.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].marketPrice))).toFixed(2);
|
||
this.aboutEnterprise.oldSitePrice = JSON.parse(JSON.stringify(Number(this.aboutEnterprise
|
||
.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].sitePrice))).toFixed(2);
|
||
this.aboutEnterprise.newPersonalPrice = JSON.parse(JSON.stringify(Number(this.aboutEnterprise
|
||
.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].personalPrice))).toFixed(2);
|
||
this.aboutEnterprise.newEnterprisePrice = JSON.parse(JSON.stringify(Number(this.aboutEnterprise
|
||
.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].enterprisePrice))).toFixed(2);
|
||
this.aboutEnterprise.newFloorPrice = JSON.parse(JSON.stringify(Number(this.aboutEnterprise
|
||
.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].floorPrice || 0))).toFixed(4);
|
||
this.aboutEnterprise.newSettlementPrice = JSON.parse(JSON.stringify(Number(this.aboutEnterprise
|
||
.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].settlementPrice))).toFixed(4);
|
||
this.aboutEnterprise.oldfloorRemark = this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex]
|
||
.floorRemark || '暂无说明'
|
||
this.aboutEnterprise = Object.assign(this.aboutEnterprise, this.aboutEnterprise.oilSiteOilsPrices[this
|
||
.aboutEnterprise.oloIndex])
|
||
// this.aboutEnterprise.floorRemark = ''
|
||
this.aboutEnterprise.siteOilsPriceId = this.aboutEnterprise.id
|
||
this.isShow.oliType = false
|
||
},
|
||
seleoli() {
|
||
if (!this.aboutEnterprise.oilSiteOilsPrices || this.aboutEnterprise.oilSiteOilsPrices.length == 0) {
|
||
uni.showToast({
|
||
title: '请选择则正确油站',
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
console.log(this.immediate, '*9***')
|
||
this.isShow.oliType = true;
|
||
// this.disabled = true
|
||
},
|
||
dateConfirm(e) {
|
||
this.aboutEnterprise.subEntryTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:00`
|
||
console.log(e)
|
||
},
|
||
inputFn(e, originE) {
|
||
console.log(this.aboutEnterprise[e])
|
||
|
||
if (this.aboutEnterprise[e].indexOf('.') != -1) {
|
||
if (['newFloorPrice', 'newSettlementPrice'].includes(e)) {
|
||
if (this.aboutEnterprise[e].split('.')[1].length > 4) {
|
||
uni.showToast({
|
||
title: '最多保留小数点后4位',
|
||
icon: 'none'
|
||
})
|
||
this.$nextTick(() => {
|
||
this.aboutEnterprise[e] = Number(this.aboutEnterprise[e]).toFixed(4)
|
||
})
|
||
}
|
||
} else {
|
||
if (this.aboutEnterprise[e].split('.')[1].length > 2) {
|
||
uni.showToast({
|
||
title: '最多保留小数点后两位',
|
||
icon: 'none'
|
||
})
|
||
this.$nextTick(() => {
|
||
this.aboutEnterprise[e] = Number(this.aboutEnterprise[e]).toFixed(2)
|
||
|
||
})
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
this.isMeetWithTip(e, originE)
|
||
},
|
||
isMeetWithTip(e, originE) {
|
||
let originalInfo = this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex]
|
||
if (!originalInfo) {
|
||
return
|
||
}
|
||
let originalPrice = originalInfo[originE]
|
||
let newPrice = this.aboutEnterprise[e]
|
||
originalInfo[`${originE}tipIsShow`] = +newPrice > +originalPrice + 0.6 || +newPrice < +originalPrice - 0.6
|
||
},
|
||
postFn() {
|
||
let checkPage = {
|
||
// newPersonalPrice: {
|
||
// tacitly: '',
|
||
// custom: /^([1-9]\d*)(\.\d{1,6})?$|^0\.\d{1,6}?$/,
|
||
// WrongText: '个人价不能为空或零'
|
||
// },
|
||
newEnterprisePrice: {
|
||
tacitly: '',
|
||
custom: /^([1-9]\d*)(\.\d{1,6})?$|^0\.\d{1,6}?$/,
|
||
WrongText: '企业价不能为空或零'
|
||
},
|
||
newFloorPrice: {
|
||
tacitly: '',
|
||
custom: /^([1-9]\d*)(\.\d{1,6})?$|^0\.\d{1,6}?$/,
|
||
WrongText: '底价不能为空或零'
|
||
},
|
||
newSettlementPrice: {
|
||
tacitly: '',
|
||
custom: /^([1-9]\d*)(\.\d{1,6})?$|^0\.\d{1,6}?$/,
|
||
WrongText: '结算价不能为空或零'
|
||
},
|
||
siteName: {
|
||
tacitly: '',
|
||
WrongText: '请选择油站'
|
||
},
|
||
oilProductCode: {
|
||
tacitly: '',
|
||
WrongText: '请选择油号'
|
||
},
|
||
marketPrice: {
|
||
tacitly: '',
|
||
custom: /^([1-9]\d*)(\.\d{1,6})?$|^0\.\d{1,6}?$/,
|
||
WrongText: '发改委价格不能为空或零'
|
||
},
|
||
sitePrice: {
|
||
tacitly: '',
|
||
custom: /^([1-9]\d*)(\.\d{1,6})?$|^0\.\d{1,6}?$/,
|
||
WrongText: '油站价格不能为空或零'
|
||
}
|
||
}
|
||
if (this.aboutEnterprise.effectiveMode == 1) {
|
||
checkPage['subEntryTime'] = {
|
||
tacitly: '',
|
||
WrongText: '请选择时间'
|
||
}
|
||
}
|
||
let check = tool.checkFn(this.aboutEnterprise, [], checkPage)
|
||
if (!check.result) {
|
||
uni.showToast({
|
||
title: check.WrongText,
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
|
||
if (
|
||
this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].marketPrice == this
|
||
.aboutEnterprise.marketPrice &&
|
||
this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex].sitePrice == this.aboutEnterprise
|
||
.sitePrice &&
|
||
this.aboutEnterprise.newPersonalPrice == this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise
|
||
.oloIndex].personalPrice &&
|
||
this.aboutEnterprise.newEnterprisePrice == this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise
|
||
.oloIndex].enterprisePrice &&
|
||
this.aboutEnterprise.newFloorPrice == this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise
|
||
.oloIndex].floorPrice &&
|
||
this.aboutEnterprise.newSettlementPrice == this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise
|
||
.oloIndex].settlementPrice
|
||
) {
|
||
uni.showToast({
|
||
title: '请变动价格后提交',
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
let info = this.aboutEnterprise.oilSiteOilsPrices[this.aboutEnterprise.oloIndex]
|
||
let result = this.priceArr.some(item => {
|
||
return info[`${item}tipIsShow`]
|
||
})
|
||
|
||
if (result) {
|
||
uni.showModal({
|
||
title: '部分调整后价格,可能超出合理范围。是否确认',
|
||
confirmText: '确认',
|
||
icon: 'none',
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
if (+this.aboutEnterprise.newFloorPrice > +this.aboutEnterprise
|
||
.newEnterprisePrice) {
|
||
uni.showModal({
|
||
title: '当前调价后,存在企业价低于底价,超出合理范围,是否确认',
|
||
confirmText: '确认',
|
||
icon: 'none',
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
this.countdownInit()
|
||
}
|
||
}
|
||
})
|
||
return
|
||
}
|
||
this.countdownInit()
|
||
}
|
||
}
|
||
})
|
||
return
|
||
}
|
||
if (+this.aboutEnterprise.newFloorPrice > +this.aboutEnterprise.newEnterprisePrice) {
|
||
uni.showModal({
|
||
title: '当前调价后,存在企业价低于底价,超出合理范围,是否确认',
|
||
confirmText: '确认',
|
||
icon: 'none',
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
this.countdownInit()
|
||
}
|
||
}
|
||
})
|
||
return
|
||
}
|
||
this.countdownInit()
|
||
|
||
},
|
||
countdownInit() {
|
||
if (this.time) {
|
||
clearInterval(this.time)
|
||
}
|
||
this.timing = 5;
|
||
this.isShow.examine = true;
|
||
this.butten.confirm = '确定\n' + this.timing + 's';
|
||
this.butten.confirmBg = '#bbbbbb';
|
||
this.time = setInterval(() => {
|
||
this.timing -= 1;
|
||
this.butten.confirm = '确定\n' + this.timing + 's';
|
||
if (this.timing == 0) {
|
||
this.butten.confirm = `确定`
|
||
this.butten.confirmBg = '';
|
||
clearInterval(this.time)
|
||
};
|
||
}, 1000)
|
||
},
|
||
|
||
jump(e) {
|
||
uni.navigateTo({
|
||
url: '/driverManagement/serviceStation/serviceStation'
|
||
})
|
||
},
|
||
open() {
|
||
this.show = !this.show
|
||
},
|
||
change() {
|
||
this.aboutEnterprise.shareCompanyQuota = this.switchOpen ? 1 : 0
|
||
console.log(this.switchOpen)
|
||
},
|
||
radioChange(e) {
|
||
if (e) {
|
||
this.aboutEnterprise.subEntryTime = this.start
|
||
} else {
|
||
this.aboutEnterprise.subEntryTime = ''
|
||
}
|
||
console.log(e)
|
||
},
|
||
groupChange() {}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.uni-list-item {
|
||
padding-right: 16px !important;
|
||
}
|
||
|
||
.u-radio_1 .u-radio .u-radio__label {
|
||
margin-right: 0 !important;
|
||
}
|
||
|
||
// .uni-icons{
|
||
// margin-right: 10px;
|
||
// }
|
||
.oldfloorRemark {
|
||
text-overflow: ellipsis;
|
||
overflow: hidden;
|
||
/*超出部分隐藏*/
|
||
white-space: nowrap;
|
||
/*不换行*/
|
||
color: #bbbbbb;
|
||
|
||
}
|
||
|
||
.collapse {
|
||
width: 100%;
|
||
height: 150rpx;
|
||
background-color: #F0F0F0;
|
||
border-radius: 10px;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.collapse_input {
|
||
width: 100%;
|
||
padding: 5px 16px;
|
||
box-sizing: border-box;
|
||
height: 100%;
|
||
}
|
||
|
||
.de {
|
||
text-decoration: line-through;
|
||
|
||
}
|
||
|
||
.detailse_content_item {
|
||
width: 50%;
|
||
text-align: center;
|
||
margin-bottom: 50rpx;
|
||
}
|
||
|
||
.detailse_content {
|
||
margin-top: 50rpx;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.mtop {
|
||
margin-top: 15rpx;
|
||
}
|
||
|
||
.detailse_oilType_price {
|
||
margin-left: 78rpx;
|
||
}
|
||
|
||
.detailse_oilType {
|
||
padding-bottom: 56rpx;
|
||
border-bottom: 1px dashed #BBBBBB;
|
||
}
|
||
|
||
.detailse_oilType_lable {
|
||
background: rgba(0, 170, 255, 0.1);
|
||
color: #00AAFF;
|
||
Width: 88rpx;
|
||
Height: 40rpx;
|
||
margin-right: 20rpx;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.detailse_header {
|
||
margin-bottom: 40rpx;
|
||
}
|
||
|
||
.detailse_header_icon {
|
||
margin-right: 24rpx;
|
||
}
|
||
|
||
.hui {
|
||
color: #BBBBBB;
|
||
}
|
||
|
||
.samlltext {
|
||
font-size: 20rpx;
|
||
}
|
||
|
||
.jb {
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.an {
|
||
align-items: flex-end;
|
||
}
|
||
|
||
.jc {
|
||
justify-content: center;
|
||
}
|
||
|
||
.ac {
|
||
align-items: center;
|
||
}
|
||
|
||
.textOverflow {
|
||
overflow: hidden;
|
||
/*超出部分隐藏*/
|
||
white-space: nowrap;
|
||
/*不换行*/
|
||
text-overflow: ellipsis;
|
||
/*超出部分文字以...显示*/
|
||
}
|
||
|
||
.flex {
|
||
display: flex;
|
||
}
|
||
|
||
.flexOne {
|
||
flex: 1;
|
||
}
|
||
|
||
.detailse {
|
||
padding: 52rpx 62rpx;
|
||
}
|
||
|
||
view {
|
||
font-size: 28rpx;
|
||
color: #666666;
|
||
}
|
||
|
||
.fontcolor {
|
||
color: #BBBBBB;
|
||
}
|
||
|
||
.detailse_title {
|
||
margin-bottom: 50rpx;
|
||
}
|
||
|
||
.olipopup {
|
||
padding: 47rpx 43rpx;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 12rpx;
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
.olipopup_item {
|
||
width: 167rpx;
|
||
height: 60rpx;
|
||
border: 1px solid #999999;
|
||
border-radius: 4rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #999999;
|
||
}
|
||
|
||
.seleOlipopup_item {
|
||
width: 167rpx;
|
||
height: 60rpx;
|
||
border-radius: 4rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #FFFFFF;
|
||
background-color: #2866FF;
|
||
}
|
||
|
||
.clear {
|
||
font-size: 28rpx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
color: #BBBBBB;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.yuan {
|
||
font-size: 28rpx;
|
||
margin-left: 10rpx;
|
||
}
|
||
|
||
.popup_body {
|
||
padding: 20rpx;
|
||
}
|
||
|
||
.list_right_input {
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.list_footer {
|
||
padding-bottom: 57rpx;
|
||
margin-top: 57rpx;
|
||
}
|
||
|
||
.list_butten {
|
||
// height: 100rpx;
|
||
background: #2866FF;
|
||
border-radius: 10rpx;
|
||
color: #FFFFFF;
|
||
font-size: 36pxr;
|
||
}
|
||
|
||
.fg {
|
||
.uni-list-item__container {
|
||
padding-bottom: 0px !important;
|
||
}
|
||
}
|
||
|
||
.list_nosele {
|
||
font-size: 28rpx;
|
||
font-family: PingFang SC;
|
||
color: #999999;
|
||
}
|
||
|
||
.uni-icon-wrapper {
|
||
padding: 0px !important;
|
||
}
|
||
|
||
.uni-list-item__container {
|
||
padding: 12px 0 !important;
|
||
}
|
||
|
||
.tiao {
|
||
width: 8rpx;
|
||
height: 34rpx;
|
||
background: #2866FF;
|
||
}
|
||
|
||
.card_title_text {
|
||
font-size: 32rpx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
color: #333333;
|
||
margin-left: 10rpx;
|
||
}
|
||
|
||
.card_title {
|
||
display: flex;
|
||
border-bottom: 1px solid #F0F0F0;
|
||
align-items: center;
|
||
padding-bottom: 17rpx;
|
||
height: 86rpx;
|
||
}
|
||
|
||
.list_header {
|
||
font-size: 28rpx;
|
||
font-family: PingFang SC;
|
||
font-weight: 500;
|
||
color: #333333;
|
||
display: flex;
|
||
align-items: center;
|
||
padding-left: 16px;
|
||
position: relative;
|
||
height: fit-content;
|
||
}
|
||
|
||
.list_right_input {
|
||
width: 100%;
|
||
color: #333333;
|
||
text-align: end !important;
|
||
font-size: 28rpx;
|
||
text-align: right !important;
|
||
padding-left: 90rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.list_right {
|
||
flex: 1;
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
}
|
||
|
||
.addDiver_body {
|
||
padding: 0 40rpx;
|
||
}
|
||
|
||
.addDiver_card {
|
||
|
||
background: #FFFFFF;
|
||
box-shadow: 0px 3px 9px 0px rgba(88, 88, 88, 0.2);
|
||
border-radius: 20rpx;
|
||
margin-top: 38rpx;
|
||
overflow: hidden;
|
||
/* padding-top: 19rpx; */
|
||
padding: 19rpx 20rpx 0 20rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.tip-container {
|
||
position: absolute;
|
||
padding: 15rpx 25rpx;
|
||
display: block;
|
||
width: 300rpx;
|
||
color: #fff;
|
||
// height: 200rpx;
|
||
background: #33333390;
|
||
border-radius: 20rpx;
|
||
z-index: 20;
|
||
}
|
||
</style>
|