Browse Source

add income api

tags/v1.1.30
刘嘉炜 3 years ago
parent
commit
21e0660b32
  1. 187
      src/pages/turnover/turnover.vue
  2. BIN
      src/static/images/icon/triangle_c33.png
  3. 5
      src/subpackage/income/pages/details_record/details_record.vue
  4. 65
      src/subpackage/income/pages/search/search.vue

187
src/pages/turnover/turnover.vue

@ -5,7 +5,6 @@
<view :class="[tabID == 3?'active':'']" @click="tabChange(3)">门店统计</view>
</view>
<view class="tc-total-section">
<!-- 品牌 -->
<view class="tts-address" v-if="tabID == 4&&storeList.length > 1">
<image class="ta-logo" :src="totalData.logo" mode="aspectFit"></image>
@ -31,10 +30,30 @@
</view>
<view><text>¥</text>{{totalData.count_type_actual_income_amount || '0'}}</view>
</view>
<view class="tts-preview">
<view>线上 ¥{{totalData.online_actual_income_amount || '0'}}</view>
<view>线下 ¥{{totalData.offline_actual_income_amount || '0'}}</view>
<view class="tts-preview-ls">
<view class="tpl-item">
<view class="ti-name">
<text>线上</text>
<image mode="aspectFit" src="/static/images/icon/question_mark.png"></image>
</view>
<view class="ti-price">¥{{totalData.online_actual_income_amount || '0'}}</view>
</view>
<view class="tpl-item">
<view class="ti-name">
<text>线下</text>
<image mode="aspectFit" src="/static/images/icon/question_mark.png"></image>
</view>
<view class="ti-price">¥{{totalData.offline_actual_income_amount || '0'}}</view>
</view>
<view class="tpl-item">
<view class="ti-name">
<text>联营</text>
<image mode="aspectFit" src="/static/images/icon/question_mark.png"></image>
</view>
<view class="ti-price">¥{{totalData.joint_actual_income_amount || '0'}}</view>
</view>
</view>
</view>
<view class="tc-info-section">
<view class="tis-tab">
@ -57,36 +76,32 @@
<view class="td-tip">总收入</view>
<view class="td-price"><text>¥</text>{{botData.count_type_actual_income_amount || 0}}</view>
<view class="td-detail">
<view>
<view class="td-first">
线上 ¥{{ botData.online_actual_income_amount || '0' }}
</view>
<view>
<text class="margin">收款{{ botData.online_income_num || '0' }} </text>
{{ botData.online_income_amount || '0' }}
</view>
<view>
<text class="margin">退款{{ botData.online_refund_num || '0' }} </text>
<text class="orange"> {{ botData.online_refund_amount || '0' }} </text>
<view class="td-check-btn">
<text>查看收款明细</text>
<image mode="aspectFit" src="/static/images/icon/triangle_c33.png"></image>
</view>
<view class="td-income-info">
<view class="tii-line">
<view class="tl-tit">线上 ¥{{ botData.online_actual_income_amount || '0' }}</view>
<view class="tl-detail">
<view class="td-item">收款{{ botData.online_income_num || '0' }}{{ botData.online_income_amount || '0' }}</view>
<view class="td-item">退款{{ botData.online_refund_num || '0' }}<text>{{ botData.online_refund_amount || '0' }}</text></view>
</view>
</view>
<view>
<view class="td-first">
线下 ¥{{ botData.offline_actual_income_amount || '0' }}
</view>
<view>
<text class="margin">收款{{ botData.offline_income_num || '0' }} </text>
{{botData.offline_income_amount || '0'}}
<view class="tii-line">
<view class="tl-tit">线下 ¥{{ botData.offline_actual_income_amount || '0' }}</view>
<view class="tl-detail">
<view class="td-item">收款{{ botData.offline_income_num || '0' }}{{ botData.offline_income_amount || '0' }}</view>
<view class="td-item">退款{{ botData.offline_refund_num || '0' }}<text>{{ botData.offline_refund_amount || '0' }}</text></view>
</view>
<view>
<text class="margin">退款{{ botData.offline_refund_num || '0' }} </text>
<text class="orange"> {{ botData.offline_refund_amount || '0' }} </text>
</view>
<view class="tii-line">
<view class="tl-tit">联营 ¥{{ botData.joint_actual_income_amount || '0' }}</view>
<view class="tl-detail">
<view class="td-item">收款{{ botData.joint_income_num || '0' }}{{ botData.joint_income_amount || '0' }}</view>
<view class="td-item">退款{{ botData.joint_refund_num || '0' }}<text>{{ botData.joint_refund_amount || '0' }}</text></view>
</view>
</view>
</view>
</view>
</view>
@ -387,7 +402,9 @@ export default {
background-color: #fff;
}
.turnover-container{
padding-bottom: 40upx;
padding-bottom: calc( 40upx + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */
padding-bottom: calc( 40upx + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
}
.tc-tab{
height: 134upx;
@ -445,7 +462,6 @@ export default {
}
.tts-money{
padding-top: 48upx;
>view{
margin-bottom: 34upx;
text-align: center;
@ -481,20 +497,38 @@ export default {
}
}
}
.tts-preview{
padding-bottom: 70upx;
.tts-preview-ls{
padding-top: 50upx;
padding-bottom: 36upx;
@include centerFlex(space-between);
>view{
width: 50%;
padding: 0 24upx;
line-height: 40upx;
text-align: center;
font-size: 28upx;
font-weight: 500;
color: #1a1a1a;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
.tpl-item{
padding: 0 10upx;
flex-shrink: 0;
flex-grow: 1;
width: 33.33%;
.ti-name{
@include centerFlex(center);
margin-bottom: 6upx;
line-height: 34upx;
font-weight: 500;
font-size: 24upx;
color: #1A1A1A;
>image{
margin-left: 10upx;
flex-shrink: 0;
width: 28upx;
height: 28upx;
}
}
.ti-price{
text-align: center;
line-height: 34upx;
font-size: 24upx;
font-weight: 500;
color: #1A1A1A;
@include textHide(1);
}
}
}
@ -577,37 +611,46 @@ export default {
}
@include textHide(1);
}
.td-detail{
padding: 0 24upx;
width: 100%;
@include centerFlex(center);
>view{
max-width: 50%;
flex-shrink: 0;
.td-first{
.td-check-btn{
padding-bottom: 12upx;
width: 642upx;
line-height: 40upx;
font-size: 28upx;
border-bottom: 2upx solid #D8D8D8;
color: #9C9C9F;
@include centerFlex(flex-end);
>image{
margin-left: 6upx;
width: 22upx;
height: 22upx;
}
}
.td-income-info{
padding: 40upx 0 0;
width: 642upx;
.tii-line{
margin-bottom: 50upx;
.tl-tit{
margin-bottom: 24upx;
color: #1A1A1A;
font-weight: 500;
line-height: 40upx;
font-size: 28upx;
}
&:first-child{
margin-right: 24upx;
}
&+view{
margin-left: 24upx;
}
>view{
font-size: 24upx;
color: #9C9C9F;
font-weight: 500;
color: #1A1A1A;
@include textHide(1);
>text{
}
.orange{
color: #F6843E;
}
.margin{
margin-right: 12upx;
}
.tl-detail{
@include centerFlex(space-between);
flex-wrap: nowrap;
.td-item{
width: 50%;
flex-grow: 0;
flex-shrink: 0;
font-size: 24upx;
color: #9C9C9F;
>text{
color: #F6843E;
}
}
}
}

BIN
src/static/images/icon/triangle_c33.png

After

Width: 44  |  Height: 44  |  Size: 339 B

5
src/subpackage/income/pages/details_record/details_record.vue

@ -42,8 +42,8 @@
<view class="dr-ls" v-if="incomeLs&&incomeLs.length">
<details-item
v-for="(e, i) in incomeLs"
:key="i"
:income-info="e"
:key = "i"
:income-info = "e"
></details-item>
</view>
@ -376,6 +376,7 @@
>input{
flex-grow: 1;
height: 100%;
font-weight: 400;
font-size: 28upx;
color: #1a1a1a;
}

65
src/subpackage/income/pages/search/search.vue

@ -2,20 +2,38 @@
<view class="income-search">
<view class="is-search-bar">
<view class="isb-frame">
<image class="if-search-icon" mode="aspectFit" src="/subpackage/income/static/images/search.png"></image>
<input confirm-type="search" />
<image class="if-close-icon" mode="aspectFit" src="/subpackage/income/static/images/close.png"></image>
<view class="if-search-icon" >
<image
mode="aspectFit"
src="/subpackage/income/static/images/search.png"
></image>
</view>
<input
confirm-type = "search"
v-model = "searchKey"
@focus = 'iptFocus'
@blur = 'iptBlur'
@confirm = 'searchConfirm'
hold-keyboard
/>
<view class="if-close-icon" >
<image
mode="aspectFit"
src="/subpackage/income/static/images/close.png"
v-if="isFocus&&searchKey!=''"
@click="searchKey = ''"
></image>
</view>
</view>
</view>
<view class="is-main">
<view class="im-ls" v-if="incomeLs.length">
<details-item v-for="i in 20" :key="i"></details-item>
<details-item v-for="(e, i) in incomeLs" :key = "i" :income-info = "e"></details-item>
</view>
<view class="im-null" v-else>
<image mode="aspectFit" src="/subpackage/income/static/images/account_null.png"></image>
</view>
</view>
</view>
</template>
@ -32,12 +50,36 @@ export default {
data(){
return {
incomeLs: [],
isFocus: false,
searchKey: '',
page: 1,
}
},
onLoad(){
this.getRecordLs({});
},
onReachBottom(){
let { searchKey, page } = this;
this.getRecordLs({
page: ++page,
key: searchKey,
})
},
methods: {
searchConfirm(e){
console.warn(e);
this.page = 1;
this.incomeLs = [];
this.getRecordLs({
key: e.detail.value || ''
})
},
iptFocus(){
this.isFocus = true;
},
iptBlur(){
this.isFocus = false;
},
getRecordLs({
brand_id = '',
stadium_id = '', // -1 id
@ -47,7 +89,7 @@ export default {
income_type = '', // online 线 offline线 joint
page = 1,
page_size = 20,
order_no= '',
key= '',
}){
util.showLoad();
server.get({
@ -61,7 +103,7 @@ export default {
scene,
type,
income_type,
order_no
key
},
failMsg: '加载失败!',
})
@ -99,10 +141,15 @@ export default {
font-size: 28upx;
color: #1a1a1a;
}
>image{
>view{
flex-shrink: 0;
width: 30upx;
height: 30upx;
font-size: 0;
>image{
width: 100%;
height: 100%;
}
}
.if-search-icon{
margin-right: 24upx;

Loading…
Cancel
Save