pull/4/head
xiaozhiyong 1 year ago
parent 8c006d4f8b
commit c2412056fd
  1. 11
      api/financialCenter/settlementDoc.js
  2. 32
      financialCenter/enterprise/recharge/index.vue
  3. 287
      financialCenter/settlementDoc/manage/index.vue
  4. 427
      oilAccount/page/billPush/index.vue
  5. 16
      pages.json
  6. 14
      pages/index/menu.json
  7. 8
      utils/request.js

@ -0,0 +1,11 @@
import request from '@/utils/request'
export default {
getByOmsSettlementPage(data) {
return request({
url: '/oil-finance/oilSettlementInfo/getByOmsSettlementPage',
method: 'post',
data: data
})
},
}

@ -19,7 +19,7 @@
</input> -->
<view @click="inputFocus" class="special-input" >
{{ parameter.params.name || '企业名称'}}
<image v-if="parameter.params.name" class="close" src="../../../static/close.png" @click="inputClear"></image>
<image v-if="parameter.params.name" class="close" src="../../../static/close.png" @click.stop="inputClear"></image>
</view>
@ -39,7 +39,7 @@
</view>
<view style="flex: 1;overflow: hidden;">
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="scrolltolower">
<view v-for="(item,index) in listData">
<view v-for="(item,index) in listData" :key="index">
<view class="item">
<view class="type">{{typeEnum[item.transactionType]}}</view>
<view class="top-region">
@ -92,11 +92,9 @@
companyId: '',
createTimeStart: '',
createTimeEnd: '',
businessLeader: '',
businessLeader: ''
},
sorted: {
}
sorted: {}
},
styles: {},
listData: [],
@ -134,12 +132,11 @@
uni.$on('currentEnterprise', (item) => {
if (!item.id) return
this.parameter.currentPage = 1
this.parameter.params.companyId = item.id
this.parameter.params.name = item.name
})
},
onShow() {
this.search();
},
@ -166,6 +163,23 @@
this.parameter.params.businessLeader = this.userInfo.id
serve.getByPageRecharge(this.parameter).then(res => {
if (res.code !== 20000) return
if (this.parameter.currentPage == 1) {
if(!res.data.list.length) {
uni.showToast({
title: '暂无数据~',
icon:'none'
})
}
this.listData = res.data.list
return
}
if (!res.data.list.length) {
uni.showToast({
title: '没有更多数据了~',
icon:'none'
})
return
}
this.listData = this.listData.concat(res.data.list);
})
},

@ -0,0 +1,287 @@
<template>
<view style="height: 100vh;display: flex;flex-direction: column; ">
<view class="header">
<view :style="{height:styles.top+'px'}" class="top"></view>
<uni-nav-bar @clickLeft='back' color='white' backgroundColor="rgba(0,0,0,0)" left-icon="back"
title="结算单管理" />
<view class="header_seach">
<view class="header_seach_seach">
<uni-easyinput style="height: 100%; flex: 1; background-color: #FFFFFF; border-radius:12rpx ;"
placeholder-style="color:#bbbbbb;font-weight: 100;"
v-model="parameter.params.settlementObjectName" placeholder="企业账户名称">
</uni-easyinput>
<button @tap='search' class="header_seach_butten">
<uni-icons type="search" size="20" color="#bbbbbb"></uni-icons>
<view>搜索</view>
</button>
</view>
</view>
</view>
<view style="flex: 1;overflow: hidden;">
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="scrolltolower">
<view v-for="(item,index) in listData" :key="index">
<view class="item">
<view class="no"><text>结算单号:</text><text>{{item.settlementNo}}</text></view>
<image src="../../../static/selegs.png"
style="width: 100rpx; height: 100rpx;border-radius: 50%;"></image>
<view class="body">
<view class="name">{{item.settlementObjectName}}</view>
<view class="price">
<text>开票金额:</text><text>{{item.invoicedAmount}}</text>
<text>结算金额:</text><text>{{item.settlementAmount}}</text>
</view>
<view class="create">
<text>创建人信息:</text><text>{{item.createUserName}}</text> -
<text>{{item.createUserPhone}}</text>
</view>
</view>
<view class="bottom-region">
<text>{{item.createTime}}</text>
<text
:style="{color: item.settlementState == 2 ? '#13ce66' : '#ffba00'}">{{item.settlementState == 2 ?'已开票' : '待开票'}}</text>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
import serve from '@/api/financialCenter/settlementDoc.js'
export default {
data() {
return {
controlWindows: {
datePopup: false
},
parameter: {
pageSize: 15,
currentPage: 1,
params: {
settlementObjectName: '',
businessLeader: '',
},
sorted: {
}
},
styles: {},
listData: [],
userInfo: uni.getStorageSync('user'),
}
},
onLoad() {
this.styles = uni.getMenuButtonBoundingClientRect()
this.search();
},
methods: {
back() {
uni.navigateBack()
},
search() {
this.parameter.currentPage = 1
this.getByOmsSettlementPage()
},
getByOmsSettlementPage() {
this.parameter.params.businessLeader = this.userInfo.id
serve.getByOmsSettlementPage(this.parameter).then(res => {
if (res.code !== 20000) return
if (this.parameter.currentPage == 1) {
if(!res.data.list.length) {
uni.showToast({
title: '暂无数据~',
icon:'none'
})
}
this.listData = res.data.list
return
}
if (!res.data.list.length) {
uni.showToast({
title: '没有更多数据了~',
icon:'none'
})
return
}
this.listData = this.listData.concat(res.data.list);
})
},
scrolltolower() {
this.parameter.currentPage += 1
this.getByOmsSettlementPage()
},
}
}
</script>
<style lang="scss">
page {
background-color: #F0F2FF;
}
.item {
min-height: 200rpx;
position: relative;
overflow: hidden;
margin: 40rpx auto 0;
padding: 20rpx 20rpx 15rpx 20rpx;
width: 700rpx;
font-size: 28rpx;
background: #fff;
border-radius: 12rpx;
box-shadow: 0px 3px 9px 0px rgba(88, 88, 88, 0.2);
.no {
position: relative;
height: 50rpx;
padding: 0 10rpx;
text {
font-size: 25rpx;
&:nth-of-type(1) {}
&:nth-of-type(2) {
float: right;
}
}
&::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 1rpx;
background: #999;
}
}
image {
position: absolute;
left: 36rpx;
top: 52%;
transform: translateY(-50%);
width: 100rpx;
height: 100rpx;
// border: 1px solid #333;
}
.body {
padding-left: 150rpx;
.name {
margin-top: 20rpx;
}
.price {
margin-top: 5rpx;
text {
font-size: 22rpx;
&:nth-of-type(2),
&:nth-of-type(4) {
margin-left: 20rpx;
}
&:nth-of-type(3) {
margin-left: 50rpx;
}
}
}
.create {
margin-top: 5rpx;
text {
font-size: 22rpx;
&:nth-of-type(2) {
margin-left: 20rpx;
}
}
}
}
.bottom-region {
margin-top: 30rpx;
font-size: 22rpx;
text {
&:nth-of-type(1) {
color: #bbb;
}
&:nth-of-type(2) {
float: right;
font-size: 25rpx;
}
}
}
}
.header_seach_butten {
font-size: 24rpx !important;
display: flex !important;
align-items: center !important;
margin: 0 !important;
flex-shrink: 1;
margin-left: 9rpx !important;
background: #FFFFFF !important;
justify-content: center;
}
.uni-easyinput__content {
height: 80rpx;
}
.uni-easyinput {
height: 80rpx;
}
.header_seach_seach {
display: flex;
height: 80rpx;
margin-top: 23rpx;
}
.header_seach {
font-size: 26rpx;
padding: 0 10px;
}
.uni-navbar--border {
border: 0px !important;
}
.header {
position: relative;
color: white;
min-height: 403rpx;
background: url('https://xoi-support.oss-cn-hangzhou.aliyuncs.com/星油admin小程序/sjbj.png') 100%/100%;
}
.uni-navbar__header-btns-right {
padding-right: 0 !important;
width: 120rpx !important;
}
.top {
height: var(--status-bar-height);
}
</style>

@ -0,0 +1,427 @@
<template>
<view style="height: 100vh;display: flex;flex-direction: column; ">
<view class="header">
<view :style="{height:styles.top+'px'}" class="top"></view>
<uni-nav-bar @clickLeft='back' color='white' backgroundColor="rgba(0,0,0,0)" left-icon="back"
title="账单余额推送" />
<view class="header_seach">
<view class="header_seach_seach">
<!-- <uni-easyinput @focus="inputFocus" @clear="inputClear"
style="height: 100%; flex: 1; background-color: #FFFFFF; border-radius:12rpx ;"
placeholder-style="color:#bbbbbb;font-weight: 100;" :value="parameter.params.name"
placeholder="企业名称">
</uni-easyinput> -->
<!-- <input @focus="inputFocus"
style="height: 100%; flex: 1; background-color: #FFFFFF; border-radius:12rpx ;"
placeholder-style="color:#bbbbbb;font-weight: 100;" :value="parameter.params.name"
placeholder="企业名称">
</input> -->
<!-- <view @click="inputFocus" class="special-input" >
{{ parameter.params.name || '企业名称'}}
<image v-if="parameter.params.name" class="close" src="../../../static/close.png" @click.stop="inputClear"></image>
</view> -->
<!-- <uni-number-box></uni-number-box> -->
<uni-data-select style="background: #fff;" v-model="parameter.params.ackStatus" :localdata="statusEnum" @change="change"></uni-data-select>
<!-- <button @tap='search' class="header_seach_butten">
<uni-icons type="search" size="20" color="#bbbbbb"></uni-icons>
<view>搜索</view>
</button> -->
</view>
<!-- <view class="date-chunk">
<text>日期</text>
<text style="margin-left: 10rpx;" @click="controlWindows.datePopup=true">
{{ parameter.params.createTimeStart.split(' ')[0] || '开始时间' }} ~ {{ parameter.params.createTimeEnd.split(' ')[0] || '结束时间' }}
</text>
</view> -->
</view>
</view>
<view style="flex: 1;overflow: hidden;">
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="scrolltolower">
<view v-for="(item,index) in listData" :key="index">
<view class="item">
<view class="type">{{typeEnum[item.transactionType]}}</view>
<view class="top-region">
<!-- <image src="../../../static/selegs.png"
style="width: 100rpx; height: 100rpx;border-radius: 50%;"></image>
<view class="">{{item.companyName}}</view>
<view class="transfer">
<text class="pay"></text>
<text>{{item.offlinePaymentCompany || '暂无'}}</text>
</view>
<view class="transfer">
<text class="collect"></text>
<text>{{item.internalCompanyName || '暂无'}}</text>
</view>
<view class="status"
:class="statusEnum.find(_item => _item.value == item.transactionState).class">
{{statusEnum.find(_item => _item.value == item.transactionState).label}}
</view> -->
</view>
<view class="bottom-region">
<text>{{item.createTime}}</text>
<text>{{item.transactionAmount}}</text>
</view>
</view>
</view>
</scroll-view>
</view>
<datePopup @datePopupChange='datePopupChange' v-model="controlWindows.datePopup" />
</view>
</template>
<script>
import datePopup from '@/components/datePopup.vue'
import serve from '@/api/financialCenter/business.js'
export default {
components: {
datePopup
},
data() {
return {
statusEnum: [{
value: 1,
text: "待确认"
},
{
value: 2,
text: "确认无误"
},
{
value: 3,
text: "金额有误"
},
],
// controlWindows: {
// datePopup: false
// },
parameter: {
pageSize: 15,
currentPage: 1,
params: {
ackStatus:0,
// name: '',
// companyId: '',
// createTimeStart: '',
// createTimeEnd: '',
// businessLeader: ''
},
sorted: {}
},
styles: {},
listData: [],
userInfo: uni.getStorageSync('user'),
// statusEnum: [{
// value: '0',
// label: '',
// class: 'orange'
// },
// {
// value: '1',
// label: '',
// class: 'green'
// },
// {
// value: '-1',
// label: '',
// class: 'gray'
// }
// ],
typeEnum: {
'RECHARGE': '充值',
'REVOKE': '销账',
'CHARGE_SALES': '赊销',
'CONSUME_REBATE': '消费返利',
'TURN': '圈回',
}
}
},
onPullDownRefresh() {
console.log('下拉的生命周期')
},
onLoad() {
this.styles = uni.getMenuButtonBoundingClientRect()
// uni.$on('currentEnterprise', (item) => {
// if (!item.id) return
// this.parameter.currentPage = 1
// this.parameter.params.companyId = item.id
// this.parameter.params.name = item.name
// })
// this.search();
},
methods: {
change() {
},
back() {
uni.navigateBack()
},
// inputFocus(e) {
// console.log('e', e)
// uni.navigateTo({
// url: './selEnterprise'
// })
// },
// inputClear() {
// this.parameter.params.companyId = ''
// this.parameter.params.name = ''
// },
// datePopupChange(time) {
// this.parameter.currentPage = 1
// this.parameter.params.createTimeStart = time[0]
// this.parameter.params.createTimeEnd = time[1]
// },
search() {
// this.parameter.params.businessLeader = this.userInfo.id
serve.getByPageRecharge(this.parameter).then(res => {
if (res.code !== 20000) return
if (this.parameter.currentPage == 1) {
if (!res.data.list.length) {
uni.showToast({
title: '暂无数据~',
icon: 'none'
})
}
this.listData = res.data.list
return
}
if (!res.data.list.length) {
uni.showToast({
title: '没有更多数据了~',
icon: 'none'
})
return
}
this.listData = this.listData.concat(res.data.list);
})
},
scrolltolower() {
this.parameter.currentPage += 1
this.search()
},
// handlerDate(date) {
// if (date instanceof String || date instanceof Number) {
// date = new Date(parseInt(date))
// }
// if (!(date instanceof Date)) return {}
// return {
// y: date.getFullYear(),
// M: (date.getMonth() + 1 + '').padStart(2, '0'),
// d: (date.getDate() + '').padStart(2, '0'),
// }
// },
}
}
</script>
<style lang="scss">
page {
background-color: #F0F2FF;
}
.date-chunk {
margin-top: 19rpx;
padding: 0 40rpx;
height: 75rpx;
width: 555rpx;
line-height: 75rpx;
font-size: 27rpx;
background: #ADCEFF;
border-radius: 6px;
}
.special-input {
position: relative;
height: 100%;
flex: 1;
background-color: #FFF;
border-radius: 12rpx;
color: #333;
line-height: 80rpx;
padding-left: 20rpx;
.close {
position: absolute;
top: 50%;
right: 20rpx;
transform: translateY(-50%);
width: 36rpx;
height: 36rpx;
}
}
.item {
position: relative;
overflow: hidden;
margin: 40rpx auto 0;
padding: 20rpx 20rpx 15rpx 20rpx;
width: 700rpx;
font-size: 28rpx;
background: #fff;
border-radius: 12rpx;
box-shadow: 0px 3px 9px 0px rgba(88, 88, 88, 0.2);
.type {
position: absolute;
left: -24px;
width: 175rpx;
text-align: center;
height: 40rpx;
transform: rotate(-45deg);
font-size: 22rpx;
line-height: 40rpx;
z-index: 20;
color: #fff;
background: #1890FF;
}
.top-region {
position: relative;
padding-left: 135rpx;
min-height: 150rpx;
image {
position: absolute;
left: 5rpx;
top: 50%;
transform: translateY(-50%);
width: 100rpx;
height: 100rpx;
// border: 1px solid #333;
}
.transfer {
margin-top: 10rpx;
text {
font-size: 25rpx;
&:nth-of-type(1) {
vertical-align: top;
display: inline-block;
width: 40rpx;
height: 40rpx;
text-align: center;
line-height: 40rpx;
&.pay {
color: #1890ff;
background: #e8f4ff;
border: 1px solid #d1e9ff;
}
&.collect {
color: #13ce66;
background: #e7faf0;
border: 1px solid #d0f5e0;
}
}
&:nth-of-type(2) {
display: inline-block;
margin-left: 15rpx;
width: 450rpx;
}
}
}
.status {
position: absolute;
top: 0;
right: 0;
font-size: 25rpx;
&.green {
color: #13ce66;
}
&.orange {
color: #ffba00;
}
&.gray {
color: #909399;
}
}
}
.bottom-region {
font-size: 22rpx;
text {
&:nth-of-type(1) {
color: #bbb;
}
&:nth-of-type(2) {
float: right;
font-size: 25rpx;
color: #1890FF;
}
}
}
}
.header_seach_butten {
font-size: 24rpx !important;
display: flex !important;
align-items: center !important;
margin: 0 !important;
flex-shrink: 1;
margin-left: 9rpx !important;
background: #FFFFFF !important;
justify-content: center;
}
.uni-easyinput__content {
height: 80rpx;
}
.uni-easyinput {
height: 80rpx;
}
.header_seach_seach {
display: flex;
height: 80rpx;
margin-top: 23rpx;
}
.header_seach {
font-size: 26rpx;
padding: 0 10px;
}
.uni-navbar--border {
border: 0px !important;
}
.header {
position: relative;
color: white;
min-height: 403rpx;
background: url('https://xoi-support.oss-cn-hangzhou.aliyuncs.com/星油admin小程序/sjbj.png') 100%/100%;
}
.uni-navbar__header-btns-right {
padding-right: 0 !important;
width: 120rpx !important;
}
.top {
height: var(--status-bar-height);
}
</style>

@ -388,6 +388,14 @@
"enablePullDownRefresh": false
}
},{
"path": "page/billPush/index",
"style": {
"navigationBarTitleText": "账单余额推送",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}]
},
{
@ -416,6 +424,14 @@
"enablePullDownRefresh": false
}
}, {
"path": "settlementDoc/manage/index",
"style": {
"navigationBarTitleText": "结算单管理",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}, {
"path": "enterprise/recharge/selEnterprise",
"style": {

@ -121,6 +121,13 @@
"router":"/oilAccount/page/accountRecharge/index",
"lable":"sys:siteAcct:recharge",
"image":"../../static/newindex/siteAcctList.png"
},
{
"icon":"iconxiugaijiage",
"name":"账单余额推送",
"router":"/oilAccount/page/billPush/index",
"lable":"sys:siteAcct:billPush",
"image":"../../static/newindex/siteAcctList.png"
}
]
},
@ -150,6 +157,13 @@
"router":"/financialCenter/enterprise/recharge/index",
"lable":"finance:enterprise:recharge",
"image":"../../static/newindex/customerList.png"
},
{
"icon":"iconxiugaijiage",
"name":"结算单管理",
"router":"/financialCenter/settlementDoc/manage/index",
"lable":"finance:settlementDoc:manage",
"image":"../../static/newindex/customerList.png"
}
]
},

@ -1,12 +1,12 @@
import axios from 'axios'
import utils from '@/utils/encode'
// const env = process.env.NODE_ENV
// const env = 'test'
const env = 'production'
const env = 'test'
// const env = 'production'
const testUrl = 'http://192.168.1.83:38080'
// const productUrl = 'https://www.xingoil.com/adminapi'
const productUrl = 'https://www.xingoil.com/adminapi'
// const productUrl = 'https://www.xingoil.com/adminapi' // 生产,加密 new
const productUrl = 'http://uat.xingoil.com/adminapi'
// const productUrl = 'http://uat.xingoil.com/adminapi'
const service = axios.create({
baseURL: env == 'production' ? productUrl : testUrl,

Loading…
Cancel
Save