<template> <!-- 布局 flex 组件 view --> <view class="addDiver_body"> <view class="sele_Bar"> <view :style="{transform: barIndex==2? 'translateX( calc(100% - 20rpx) )' :'' ,background:barIndex==2? '#EC4645' :'' }" class="move_item"></view> <view @tap="seleBarFn(1)" :style="{color:barIndex==1? 'white' : ''}" class="sele_Bar_item">调拨</view> <view @tap="seleBarFn(2)" :style="{color:barIndex==2? 'white' : ''}" class="sele_Bar_item">回拨</view> </view> <!-- 卡片 --> <view class="addDiver_card"> <uni-list :border="false"> <uni-list-item @click="isShowFn('companyAccount')" link> <view class="list_header" slot="header"> <image src="@/static/bt.png" style="width: 12rpx;position: absolute;left: 0;" mode="widthFix"> </image> 油站账户 </view> <view slot="body" class="list_right list_nosele textOverflow"> {{ postData.accountName?postData.accountName: '请选择油站账户' }} </view> </uni-list-item> <uni-list-item @click="isShowFn('companyAccountBank')" link> <view class="list_header" slot="header"> <image src="@/static/bt.png" style="width: 12rpx;position: absolute;left: 0;" mode="widthFix"> </image> 油站公司 </view> <view slot="body" class="list_right list_nosele textOverflow"> {{postData.companyName?postData.companyName:'选择账户后自动带出'}} </view> </uni-list-item> <uni-list-item> <view class="list_header" slot="header"> <image src="@/static/bt.png" style="width: 12rpx;position: absolute;left: 0;" mode="widthFix"> </image> 交易金额 </view> <view style="padding-right: 16px !important;" slot="body" class="list_right"> <input type="digit" @input="inputFn('transactionAmount')" v-model="postData.transactionAmount" placeholder="请输入交易金额" class="list_right_input" /> </view> </uni-list-item> </uni-list> </view> <!-- 底部按钮 --> <view class="list_footer"> <button :style="{background:barIndex==2? '#EC4645' :'' }" @tap="postFn" class="list_butten ">{{barIndex==1?'确认调拨':'确认回拨'}} {{postData.transactionAmount||''}}</button> </view> <!-- 企业打款账户选择器 --> <cpicker ref ='cpicker' @localSeach='localSeach' @chargeChange='companyAccountConfirm' v-model="isShow.companyAccount" /> <!-- <u-select v-model="isShow.companyAccount" :list="companyAccountData" @confirm="companyAccountConfirm"> </u-select> </u-select>--> </view> </template> <script> import tool from '@/utils/tool' import account from '@/api/oilAccount' import md5 from 'js-md5' import cpicker from '../../components/picker.vue' export default { components: { cpicker }, data() { return { barIndex: 1, companyAccountData: [], companyAccountBankData: [], oilCompanyData: [], oilCompanyBankData: [], isShow: { picker: false, companyAccount: false, companyAccountBank: false, oilCompanyBank: false }, disabled: false, postData: { accountName:'', companyName:'', receivingCompanyId: "",//收款公司id reverseRemark: "", //交易说明 siteChannelAccountId: "" ,//渠道账户id transactionAmount: "" ,//交易金额 transactionState: "0" ,//交易状态 transactionType: "", //交易类型 createSource: "OMS-MINIAPP", balance:'', totalRechargeAmount:'' } } }, created() { this.init() }, onLoad() {}, methods: { localSeach(e){ let a = this.companyAccountData.filter(item=>item.label.indexOf(e)!==-1); if(a.length){ this.$refs.cpicker.upDateList(a) } }, siteChannelAccountIdFn(e){ // console.log(this.companyAccountData.filter(item=>item.siteChannelAccountId==e),'---') }, seleBarFn(e) { this.barIndex = e }, isShowFn(e) { this.isShow[e] = !this.isShow[e] // switch (e) { // case 'companyAccount': // this.isShow[e] = !this.isShow[e] // break // case 'companyAccountBank': // if (this.postData.paymentCompanyIds.length !== 0) { // this.isShow[e] = !this.isShow[e] // } else { // uni.showToast({ // title: '请先选择企业打款账户', // icon: 'none' // }) // return // } // break // case 'oilCompanyBank': // if (this.postData.companyName && this.postData.companyId) { // this.isShow[e] = !this.isShow[e] // } else { // uni.showToast({ // title: '请先选择企业打款账户', // icon: 'none' // }) // return // } // break // } }, //图片上传方法 clickfn(e) { // if (typeof e !== "object") { // this.postData.offlineTransactionProof = e; // uni.showToast({ // title: '上传成功' // }) // return // } // tool.chooseImage(this.clickfn) }, companyAccountConfirm(e) { this.clearFn(this.postData,['accountName','siteChannelAccountId','receivingCompanyId','companyName','theRemainingAmount','totalRechargeAmount']) let a = this.companyAccountData.filter(item=>item.id==e.id); if(a.length&&a.length==1){ this.postData.totalRechargeAmount = a[0].totalRechargeAmount; account.getBySiteCompanyId(a[0].siteCompanyInfoId).then(res=>{ if(res.data.length){ this.postData['receivingCompanyId'] = res.data[0]['siteCompanyId']; this.postData['accountName'] = e.label; this.postData['siteChannelAccountId'] = a[0]['value']; account.getLikeBySiteComNameLimitNew({id:a[0].siteCompanyInfoId}).then(res=>{ this.postData.companyName = res.data[0]['companyName']; this.postData.balance = res.data[0]['balance'] }) }else{ uni.showToast({ title:'未绑定油站公司', icon:'none' }) } }); }else{ uni.showToast({ title:'数据错误', icon:'none' }) } // account.getBySiteCompanyId }, clearFn(e, w) { if (e && w) { w.forEach(item => { e[item] = '' }) } }, init() { this.getAccounts() }, getAccounts() { account.getChannelAccountMapsNew().then(res => { if (res.code == 20000) { this.companyAccountData = res.data; this.companyAccountData.forEach(item => { item['label'] = item.value; item.value = item.id }) } }) }, confirm(e) { console.log('confirm', e) }, inputFn(e) { console.log(e) if (this.postData[e].indexOf('.') != -1) { if (this.postData[e].split('.')[1].length > 2) { uni.showToast({ title: '最多保留小数点后两位', icon: 'none' }) this.$nextTick(function() { this.postData[e] = Number(this.postData[e]).toFixed(2) }) } } }, postFn() { let that = this let olicheck = null let check = null let checkPage = { receivingCompanyId: { tacitly: '', WrongText: '请完善油站公司信息' }, siteChannelAccountId: { tacitly: '', WrongText: '请完善油站账户信息' }, transactionAmount: { tacitly: '', WrongText: '交易金额不能为空' }, } check = tool.checkFn(this.postData, [], checkPage) if (!check.result) { uni.showToast({ title: check.WrongText, icon: 'none' }) return } if(this.barIndex==1){ if(Number(this.postData.transactionAmount)>Number(this.postData.balance)){ uni.showModal({ title: '提示', content: '余额不足,是否依然提交?', success: function (res) { if (res.confirm) { that.saveFn() } else if (res.cancel) { console.log('用户点击取消'); } } }); }else{ this.saveFn() } }else{ if(Number(this.postData.transactionAmount)>Number(this.postData.totalRechargeAmount)){ uni.showModal({ title: '提示', content: '余额不足,是否依然提交?', success: function (res) { if (res.confirm) { that.saveFn() } else if (res.cancel) { console.log('用户点击取消'); } } }); }else{ this.saveFn() } } }, saveFn() { this.postData['transactionType'] = this.barIndex==1?'DISPATCH':'CALLBACK' account.saveNew(this.postData).then(res => { (res.code == 20000) && uni.showToast({ title: '操作成功', icon: 'none' }) && (setTimeout(() => { uni.navigateBack() }, 500)) }) }, open() { this.show = !this.show }, change() { this.aboutEnterprise.shareCompanyQuota = this.switchOpen ? 1 : 0 console.log(this.switchOpen) }, radioChange(e) { console.log(e) }, } } </script> <style scoped> .move_item { position: absolute; left: 10rpx; width: 50%; height: 60rpx; background: #2866FF; border-radius: 10rpx; display: flex; align-items: center; justify-content: center; color: #999999; z-index: 0; transition: all .3s; } .sele_Bar_item { /* width: 287rpx; */ flex: 1; height: 60rpx; /* background: #2866FF; */ border-radius: 10rpx; display: flex; align-items: center; justify-content: center; color: #999999; z-index: 1; transition: color .4s; } .sele_Bar { /* background-color: #18B566; */ margin: 31rpx 40rpx; padding: 10rpx; display: flex; position: relative; background-color: #FFFFFF; border-radius: 10px; } .textOverflow { overflow: hidden; /*超出部分隐藏*/ white-space: nowrap; /*不换行*/ text-overflow: ellipsis; /*超出部分文字以...显示*/ } >>>.uni-easyinput__content { border-radius: 15px !important; margin-top: 15rpx; } </style> <style lang="scss"> .cue { color: #666666; font-size: 24rpx; margin-top: 20rpx; } .summary { padding: 12px 0; } .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; text-align: end; overflow: hidden; box-sizing: border-box; padding-left: 20rpx; } .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: 0rpx 20rpx 0 20rpx; box-sizing: border-box; } </style>