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.
1213 lines
34 KiB
1213 lines
34 KiB
<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(2)}} |
|
</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=='底价'?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=='底价'?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(2); |
|
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 (e == 'newFloorPrice') { |
|
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>
|
|
|