Переглянути джерело

【营销结算模块 还差最后一个来源】

master
GL 4 роки тому
джерело
коміт
fa0fa11a13
4 змінених файлів з 300 додано та 48 видалено
  1. +8
    -0
      src/services/apiUrl.js
  2. +1
    -1
      src/views/home/index.vue
  3. +254
    -35
      src/views/navigation/accounts/marketingClose.vue
  4. +37
    -12
      src/views/navigation/consume/memberGathering.vue

+ 8
- 0
src/services/apiUrl.js Переглянути файл

@@ -54,4 +54,12 @@ export const apiUrl = {
*C端扫B端储值卡交易流水SUM
*/
payMum:"/api/cardPay/sum",
/**
补贴记录
*/
subsidyList:"/api/subsidy/list",
/**
* 获取营销结算汇总
*/
getSubsidySummary:"/api/subsidy/summary",
}

+ 1
- 1
src/views/home/index.vue Переглянути файл

@@ -553,7 +553,7 @@ export default {
border-radius: .15rem;
margin: .3rem auto;
padding: .2rem 0 .3rem 0;
overflow: hidden;
.line-title {
height: 1rem;
line-height: 1rem;


+ 254
- 35
src/views/navigation/accounts/marketingClose.vue Переглянути файл

@@ -17,22 +17,25 @@
/>
</div>
</div>
<div class="status1_Box" v-if="navigationIndex == 0">
<div class="status_1" v-for="item in 4">
<div class="status1_Box" v-if="list.length != 0">
<div class="status_1" v-for="item in list" :key="item.id">
<div class="numBox">
<div class="numBox_left">468663580839145472</div>
<div class="numBox_right">2020-09-23 16:28:35</div>
<div class="numBox_left">{{ item.orderId }}</div>
<div class="numBox_right">
{{ setTiem(item.createDate, "YYYY-MM-DD HH:mm:ss") }}
</div>
</div>
<div class="accountBox numBox">
<div class="numBox_left">卡消费 自主结算</div>
<div class="numBox_left">{{item.sourceStr+" "+item.typeStr}}</div>
<div class="numBox_right" style="color: rgba(255, 106, 106, 1)">
应收:400
{{`应收:${item.subsidyStr}`}}
</div>
</div>
<div class="backStatus_1">已结算</div>
<div class="backStatus_2" v-if="item.statusStr&&item.status==0">{{item.statusStr}}</div>
<div class="backStatus_1" v-if="item.statusStr&&item.status!==0">{{item.statusStr}}</div>
</div>
</div>
<div class="status2_Box" v-if="navigationIndex == 1">
<div class="status2_Box" v-if="navigationIndex == 1&&showTiem">
<div class="beginDate" @click="beginDateShow = !beginDateShow">
{{ beginDateText }}
</div>
@@ -40,31 +43,80 @@
<div class="beginDate endDate" @click="endDateShow = !endDateShow">
{{ endDateText }}
</div>
<div class="dateCha">查询</div>
<div class="dateCha" @click="search()">查询</div>
</div>
<div class="status3_Box" v-if="navigationIndex == 2">
<div :class="status3_index==1?'status3_activity': 'my'" @click="status3_index=1">自主结算</div>
<div :class="status3_index==2?'status3_activity':'wx'" @click="status3_index=2">微信分账</div>
<div class="status3_Box" v-if="navigationIndex == 2&&showTiem">
<div
:class="status3_index == 1 ? 'status3_activity' : 'my'"
@click="settleWay(1)"
>
自主结算
</div>
<div
:class="status3_index == 2 ? 'status3_activity' : 'wx'"
@click="settleWay(2)"
>
微信分账
</div>
</div>
<div class="status4_Box status3_Box" v-if="navigationIndex == 3">
<div :class="status4_index==1?'status3_activity': 'my'" @click="status4_index=1">未结算</div>
<div :class="status4_index==2?'status3_activity':'wx'" @click="status4_index=2">已结算</div>
<div class="status4_Box status3_Box" v-if="navigationIndex == 3&&showTiem">
<div
:class="status4_index == 1 ? 'status3_activity' : 'my'"
@click="settleType(1)"
>
未结算
</div>
<div
:class="status4_index == 2 ? 'status3_activity' : 'wx'"
@click="settleType(2)"
>
已结算
</div>
</div>
<div class="status5_Box status3_Box" v-if="navigationIndex == 4">
<div :class="status5_index==1?'status3_activity': 'my'" @click="status5_index=1">未结算</div>
<div :class="status5_index==2?'status3_activity':'wx'" @click="status5_index=2">已结算</div>
<div :class="status5_index==3?'status3_activity': 'my'" @click="status5_index=3">未结算</div>
<div :class="status5_index==4?'status3_activity':'wx'" @click="status5_index=4">已结算</div>
<div :class="status5_index==5?'status3_activity': 'my'" @click="status5_index=5">未结算</div>
<div :class="status5_index==6?'status3_activity':'wx'" @click="status5_index=6">已结算</div>
<div
:class="status5_index == 1 ? 'status3_activity' : 'my'"
@click="status5_index = 1"
>
未结算
</div>
<div
:class="status5_index == 2 ? 'status3_activity' : 'wx'"
@click="status5_index = 2"
>
已结算
</div>
<div
:class="status5_index == 3 ? 'status3_activity' : 'my'"
@click="status5_index = 3"
>
未结算
</div>
<div
:class="status5_index == 4 ? 'status3_activity' : 'wx'"
@click="status5_index = 4"
>
已结算
</div>
<div
:class="status5_index == 5 ? 'status3_activity' : 'my'"
@click="status5_index = 5"
>
未结算
</div>
<div
:class="status5_index == 6 ? 'status3_activity' : 'wx'"
@click="status5_index = 6"
>
已结算
</div>
</div>


<!-- <div class="noData">暂无数据!</div> -->
<div class="noData" v-if="noData">暂无数据!</div>

<div class="bott_sum">
<div class="text">总计应收</div>
<div class="sum_num">¥800.00</div>
<div class="sum_num">{{`¥${aggregate/100}`}}</div>
</div>
<van-popup v-model="beginDateShow" position="bottom">
<van-datetime-picker
@@ -93,9 +145,10 @@
<script>
import { formatDate } from "@/utils/cloud-utils";
import Vue from "vue";
import { Popup, DatetimePicker } from "vant";
import moment from "moment";
import { Popup, DatetimePicker, Toast } from "vant";

Vue.use(DatetimePicker, Popup);
Vue.use(DatetimePicker, Popup, Toast);
export default {
data() {
return {
@@ -116,6 +169,8 @@ export default {
name: "来源",
},
],
showTiem:false,
noData:false,
navigationIndex: 0,
beginDateShow: false,
endDateShow: false,
@@ -123,34 +178,194 @@ export default {
maxDate: new Date(2025, 10, 1),
endminDate: new Date(2015, 0, 1),
endmaxDate: new Date(2025, 10, 1),
beginDateText: "开始时间",
endDateText: "结束时间",
beginDateText: "",
endDateText: "",
deyText: new Date(),
status3_index: 0,
status4_index:0,
status5_index:0
status4_index: 0,
status5_index: 0,
pageNum: 1,
pageSize: 10,
list: [],
aggregate: "",
type:"",
billtypes: [
{
name: "自主结算",
billTypeValue: 1,
id: 1,
},
{
name: "微信分账",
billTypeValue: 2,
id: 2,
},
],
statustypes: [
{
name: "未结算",
status: 0,
id: 0,
},
{
name: "已结算",
status: 1,
id: 1,
},
],
auditWayOptions: [
/* {
name: "全部",
value: ''
}, */
{
name: "补贴",
value: 0,
id: 0
},
{
name: "卡消费",
value: 1,
id: 1
},
{
name: "券核销",
value: 2,
id: 2
},
{
name: "砍价核销",
value: 3,
id: 3
},
{
name: "拼团核销",
value: 4,
id: 4
},
{
name: "收银分账",
value: 5,
id: 5
},
],
};
},
methods: {
settleWay(value){
this.status3_index = value
this.type = value
this.search()
},
settleType(value){
status4_index=1
this.type = value
this.search()
},
//时间处理
setTiem(temp, format) {
//第一个参数是时间戳 第二个参数是格式 参考momentJS
return moment(Number(temp)).format(format);
},
switchover(index) {
this.navigationIndex = index;
this.list='';
switch (index) {
case 0:this.noData = false;this.search();this.beginDateText= "";this.endDateText="";break;
case 1:this.noData = false;this.showTiem=true;this.beginDateText= "开始时间";this.endDateText="结束时间";break;
case 2:this.noData = false;this.showTiem=true;this.beginDateText= "";this.endDateText="";break;
case 3:this.noData = false;this.showTiem=true;this.beginDateText= "";this.endDateText="";break;
case 4:this.noData = false;this.showTiem=true;this.beginDateText= "";this.endDateText="";break;
default:
console.log("全部")
break;
}
},
setBeginDate(value) {
this.beginDateText = formatDate(value, "yyyy-MM-dd");
this.beginDateShow = !this.beginDateShow;
console.log(formatDate(value, "yyyy-MM-dd"));
console.log(this.beginDateText, "开始");
},
setEndDate(value) {
this.endDateText = formatDate(value, "yyyy-MM-dd");
this.endDateShow = !this.endDateShow;
console.log(formatDate(value, "yyyy-MM-dd"));
console.log(this.endDateText, "结束");
},
getLsit() {
this.$http
.subsidyList({
method: "get",
params: {
pageNum: this.pageNum,
pageSize: this.pageSize,
startdate: this.beginDateText+' 00:00:00',
enddate: this.endDateText+' 23:59:59',
source: "",
type: this.type,
status: "",
},
})
.then((res) => {
const { code, data, message } = res;
if (code == 200) {
if(data.list.length==0){
this.noData = true
}
data.list.map(item=>{
item.sourceStr = this.auditWayOptions.filter(e => e.value == item.source).length > 0 ? this.auditWayOptions.filter(e => e.value == item.source)[0].name : '';
item.typeStr = this.billtypes.filter(e => e.id == item.type).length > 0 ? this.billtypes.filter(e => e.id == item.type)[0].name : '';
item.statusStr = item.status===0?'未结算' : "已结算";
})
this.list = data.list;
} else {
Toast(message);
}
})
.catch((res) => {
Toast(res);
});
},
getTotal() {
this.$http
.getSubsidySummary({
method: "get",
params: {
startdate: this.beginDateText+' 00:00:00',
enddate:this.endDateText+' 23:59:59',
source: "",
type: this.type,
status: "",
},
})
.then((res) => {
const { code, data, message } = res;
if (code == 200) {
this.aggregate = data.subsidy;
} else {
Toast(message);
}
})
.catch((res) => {
Toast(res);
});
},
search(){
this.showTiem = false
this.getLsit();
this.getTotal();
},
},
mounted() {
this.search()
},
};
</script>
<style scoped>
.Box {
background: #f6f6f6;
/* background: #f6f6f6; */
overflow: hidden;
}
.navigation {
overflow: hidden;
@@ -188,6 +403,9 @@ export default {

transform: rotateX(180deg);
}
.status1_Box {
overflow: scroll;
}
.status_1 {
position: relative;
width: 96%;
@@ -224,6 +442,7 @@ export default {
padding: 0.1rem 0.3rem;
color: #ff6a6a;
}

.backStatus_2 {
line-height: 0.6rem;
position: absolute;
@@ -237,7 +456,7 @@ export default {
}
.bott_sum {
position: fixed;
line-height: 1.5rem;
line-height: 1.2rem;
width: 100%;
bottom: 0;
left: 0;
@@ -291,7 +510,7 @@ export default {
overflow: hidden;
}
.my {
width: 28%;
width: 28%;
float: left;
line-height: 1rem;
padding: 0 0.5rem;


+ 37
- 12
src/views/navigation/consume/memberGathering.vue Переглянути файл

@@ -2,20 +2,45 @@
<div class="Box">
<div class="RqBox">
<div class="text">扫描二维码向我付款</div>
<div class="Rq"></div>
<div class="Rq" ref="RqCode"></div>
</div>
<div class="record" @click="goToday">收款记录</div>
</div>
</template>

<script>
import QRCode from 'qrcodejs2'
import {mapState} from 'vuex'
export default {
methods: {
goToday(){
this.$router.push('/todayConsume')
data() {
return {
}
},
}
computed: {
...mapState(['merchant_id_scan'])
},
methods: {
goToday() {
this.$router.push("/todayConsume");
},
creatQrCode() {
var qrcode = new QRCode(this.$refs.RqCode, {
text: `{"END":"B","TYPE":"merchant","ID":"${this.merchant_id_scan}"}`, //需要转换为二维码的内容
width: 300,
height: 250,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.H
})
},
},
mounted() {
this.creatQrCode()
},
};
</script>
<style scoped>
.Box {
@@ -25,7 +50,7 @@ export default {
}
.RqBox {
width: 94%;
height: 10.5rem;
height: 9rem;
margin: 0 3%;
background-color: #ffffff;
border-radius: 0.3rem;
@@ -38,13 +63,13 @@ export default {
padding-top: 1.4rem;
color: rgba(51, 51, 51, 1);
}
.Rq{
background-color: bisque;
width: 6rem;
height: 5rem;
margin: 1rem auto;
.Rq {
background-color: bisque;
width: 6rem;
height: 5rem;
margin: 1rem auto;
}
.record{
.record {
width: 94%;
margin: 0 3%;
background-color: #ffffff;


Завантаження…
Відмінити
Зберегти