Procházet zdrojové kódy

测试接口

master
[caserKing] před 4 roky
rodič
revize
2c06d9c4bd
10 změnil soubory, kde provedl 370 přidání a 25 odebrání
  1. +5
    -0
      package-lock.json
  2. +2
    -1
      src/main.js
  3. +11
    -1
      src/routers/index.js
  4. +10
    -0
      src/services/apiUrl.js
  5. +1
    -1
      src/stores/index.js
  6. +1
    -0
      src/styles/variables.less
  7. +100
    -16
      src/views/home/index.vue
  8. +34
    -4
      src/views/navigation/memberCancel.vue
  9. +204
    -0
      src/views/person/account.vue
  10. +2
    -2
      src/views/person/index.vue

+ 5
- 0
package-lock.json Zobrazit soubor

@@ -7456,6 +7456,11 @@
"minimist": "^1.2.5"
}
},
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz?cache=0&sync_timestamp=1601983320283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz",
"integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M="
},
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",


+ 2
- 1
src/main.js Zobrazit soubor

@@ -28,7 +28,7 @@ Vue.config.devtools = process.env.NODE_ENV === 'development';
Vue.config.productionTip = process.env.NODE_ENV === 'production';

window.EventBus = new Vue();
import { Button, NumberKeyboard, Form, Field, DatetimePicker, Icon, List,} from 'vant';
import { Button, NumberKeyboard, Form, Field, DatetimePicker, Icon, List, Toast,} from 'vant';
Vue.use(Button);
Vue.use(NumberKeyboard);
Vue.use(Form);
@@ -36,6 +36,7 @@ Vue.use(Field);
Vue.use(DatetimePicker);
Vue.use(Icon);
Vue.use(List);
Vue.use(Toast);

// 注册过滤器
Object.keys(filters).forEach((key) => {


+ 11
- 1
src/routers/index.js Zobrazit soubor

@@ -25,8 +25,9 @@ const Login = () => import(/* webpackChunkName: "login" */ '@/views/login');
const Home = () => import(/* webpackChunkName: "home" */ '@/views/home');
const Person = () => import(/* webpackChunkName: "person" */ '@/views/person');
const PointRecord = () => import(/* webpackChunkName: "PointRecord" */ '@/views/person/pointRecord.vue');
const MyTicket = () => import(/* webpackChunkName: "PointRecord" */ '@/views/person/myTicket.vue');
const MyTicket = () => import(/* webpackChunkName: "MyTicket" */ '@/views/person/myTicket.vue');
const UserInfo = () => import(/* webpackChunkName: "UserInfo" */ '@/views/person/userInfo.vue');
const Account = () => import(/* webpackChunkName: "Account" */ '@/views/person/account.vue');

Vue.use(Router);

@@ -68,6 +69,15 @@ const routes = [
title: '我的'
}
},
{
path: '/account',
name: 'account',
component: Account,
meta: {
isShowNav: false,
title: '收款账户管理'
}
},
{
path: '/myTicket',
name: 'myTicket',


+ 10
- 0
src/services/apiUrl.js Zobrazit soubor

@@ -19,6 +19,16 @@ export const apiUrl = {
wxMerchantcouponSend: "/api/couponSend/list",
// 商户注券记录
wxMerchantcouponStory: "/api/couponSend/actionLog",
//查询商户授权状态
getOpenIdByPhone:"/api/merchant/getOpenIdByPhone",
//查询账户信息
findAccountById:"/api/merchant/findAccountById",
//删除分账账户
deleteByReceiverId: "/api/merchant/deleteByReceiverId",
//某日期交易总流水
getUnverifiedAmountOnDate: '/api/couponOrder/getUnverifiedAmountOnDate',
//首页账单列表
listBillOweAndWaitPay:"/api/bill/listBillOweAndWaitPay",

loginOut: '/api/loginOut',



+ 1
- 1
src/stores/index.js Zobrazit soubor

@@ -11,7 +11,7 @@ Vue.use(Vuex)

export default new Vuex.Store({
state: {
token: '',
token: '914e314e-81cb-4064-93f8-79b9ac5cc7d1',
merchant_id:'',
merchant_id_scan:'',



+ 1
- 0
src/styles/variables.less Zobrazit soubor

@@ -24,6 +24,7 @@

@fontSize12: .33rem;
@fontSize14: .38rem;
@fontSize15: .41rem;
@fontSize16: .43rem;
@fontSize18: .48rem;
@fontSize20: .53rem;


+ 100
- 16
src/views/home/index.vue Zobrazit soubor

@@ -8,14 +8,12 @@
<p>富茂服务商</p>
</div>
</div>
<div class="writeOff ">
<div class="classification " >
<div v-for="(item,index) in classIfyList" :key="index" class="category" @click="toWriteoff(item.path)">
<div hover-class="active" :style="`background:${item.bg}`" >
<i :class="item.icon"></i>
</div>
<span>{{item.text}}</span>
</div>

<div class="nav-list">
<div class="nav-item" v-for="(item,index) in classIfyList" :key="index" @click="toWriteoff(item.path)">
<!-- <img class="nav-bg" :src="item.bg"> -->
<van-icon size="1rem" :color="item.color" :name="item.icon" />
<span class="nav-text">{{item.text}}</span>
</div>
</div>
<!-- -->
@@ -68,6 +66,7 @@
import Vue from "vue";
import {mapMutations} from 'vuex'
import { Toast } from "vant";
import {formatDate} from '@/filters'
// 组件
export default {
name: 'page-index',
@@ -79,34 +78,42 @@ export default {
showJiaoyi: true,
showHexiao: true,
showShouyin: true,
djMoney: '',
djArr: [],
djMoney: '',
classIfyList: [
{
text: "会员核销",
icon: "iconfont icon-hexiao",
icon: "coupon-o",
color: 'orange',
id: 0,
path:"/memberCancel"
},
{
text: "消费卡收款",
icon: "iconfont icon-shouye1",
icon: "gold-coin-o",
color: '#FF9797',
id: 1,
path:"/memberGathering"
},
{
text: "会员积分",
icon: "iconfont icon-jifen",
icon: "balance-o",
color: '#52CD00',
id: 4,
path:"/memberIntegral"
},
{
text: "会员赠券",
icon: "iconfont icon-quan",
icon: "gift-o",
color: '#FF5683',
id: 5,
path:"/memberTicket"
},
{
text: "营销结算",
icon: "iconfont icon-jiesuan",
icon: "notes-o",
color: '#6580FF',
id: 6,
path:"/marketingClose"
},
@@ -118,12 +125,41 @@ export default {
this.getTabletListOrder();
this.getTabletListVerify();
this.getMicroPayAmountOnDate();

this.getUnverifiedAmountOnDate();
},
methods: {
...mapMutations(['setMerchantId','setMerchantIdScan']),
toWriteoff(path){
this.$router.push(path)
},
listBillOweAndWaitPay(data) {
this.$http.listBillOweAndWaitPay({
method: 'post',
data: {
merchantId: data.merchant_id,
tenantId: data.tenant_id,
}
}).then(res => {
res.data.map(file => {
if (file.starttime && file.endtime) {
file.end = file.starttime.substring(0, 7).replace(/-/g, ".") + "-" + file.endtime.substring(0, 7).replace(/-/g, ".");
} else {
file.end = "";
file.endtime = ""
}
file.receiveDate = formatDate(new Date(file.receiveDate),'yyyy-MM-dd')
})
this.billList = res.data,
this.djArr = res.data.filter(item => item.status == 2),
this.djMoney = this.djArr.map(item => parseInt(item.owe / 100))
let money = 0
this.djMoney.filter(function (item, index) {
money += item;
})
this.djZmoney = this.changePeoNumber(money)
})
},
/**
* 交易记录
*/
@@ -399,14 +435,38 @@ export default {
if(code==200){
this.setMerchantId(data.merchant_id)
this.setMerchantIdScan(data.merchant_id_scan)

this.listBillOweAndWaitPay(data);

}else{
Toast(message);
}
}).catch(res=>{
Toast(res);
})
},
//货币单位转换
changeNumber(num) {
var changeNum = 0;
if (num < 1000000) {
return num / 100;
} else if (num >= 1000000 && num < 10000000000) {
return (num / 1000000).toFixed(2) + '万'
} else if (num > 10000000000) {
return (num / 10000000000).toFixed(2) + '亿'
}
},
changePeoNumber(num) {
var changeNum = 0;
if (num < 10000) {
return num;
} else if (num >= 10000 && num < 100000000) {
return (num / 10000).toFixed(2) + '万'
} else if (num > 100000000) {
return (num / 100000000).toFixed(2) + '亿'
}
}
}
},

}
@@ -440,8 +500,6 @@ export default {
z-index: 1000;
width: 9.5rem;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
}
.category{
@@ -536,4 +594,30 @@ export default {
margin-top: .2rem;
}


.nav-list {
margin: .1rem .4rem .2rem;
overflow: hidden;
.nav-item {
float: left;
width: 24%;
height: 2.5rem;
background: #fff;
padding-top: .4rem;
margin: .05rem .05rem 0 0;
.nav-bg {
display: block;
margin: .3rem auto .5rem;
width: 1rem;
height: 1rem;
}
.nav-text {
display: block;
text-align: center;
margin-top: .2rem;
}

}
}

</style>

+ 34
- 4
src/views/navigation/memberCancel.vue Zobrazit soubor

@@ -1,6 +1,10 @@
<template>
<div>
<member-public :data="rule"/>
<div class='page-home'>
<div class="back-box">
<van-icon class="back-icon" @click="goBack" size=".6rem" name="arrow-left" color="#fff" />
<span>会员核销</span>
</div>
<member-public style="margin-top:1.3rem;" :data="rule"/>
</div>
</template>

@@ -22,10 +26,36 @@ export default {
methods: {
goDetails(){
this.$router.push('/details')
}
},
goBack() {
this.$router.go(-1)
},
},
mounted() {
},
}
</script>
</script>

<style lang="less" scoped>
.page-home {
text-align: left;
.back-box {
position: absolute;
left: 0;
top: 0;
z-index: 1000;
width: 100%;
height: 1.3rem;
line-height: 1.3rem;
background: #52A0FD;
color: #fff;
font-size: @fontSize16;
text-align: center;
.back-icon {
float: left;
margin: .4rem 0 0 .1rem;
}
}
}
</style>

+ 204
- 0
src/views/person/account.vue Zobrazit soubor

@@ -0,0 +1,204 @@
<template>
<div class='page-home'>
<div class="back-box">
<van-icon class="back-icon" @click="goBack" size=".6rem" name="arrow-left" color="#fff" />
<span>收款账户管理</span>
</div>

<div class="title-h1">商家收款账户</div>
<div class="item-box">
<span class="item-left">账号类型</span>
<span class="item-right">{{accountData.receiverType == 0?'微信商户号':'个人微信号'}}</span>
</div>
<div class="item-box">
<span class="item-left">{{accountData.receiverType == 0?'商户号':(accountData.receiverType == 1?'微信号':'openId')}}</span>
<span class="item-right" style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">{{accountData.receiverAccount}}</span>
</div>
<div class="item-box">
<span class="item-left">{{accountData.receiverType == 0?'商户名':'姓名'}}</span>
<span class="item-right">账号类型</span>
</div>
<div class="item-box" v-if="accountData.receiverType == 1||accountData.receiverType == 3">
<span class="item-left">收款授权状态</span>
<span class="item-right" style="color:red;" v-if="haveAccount">已授权</span>
<span class="item-right" style="color:red;" v-if="!haveAccount">未授权(请打开本广场用户端小程序领取任意一张优惠券,然后刷新本页面点击保存完成授权)</span>
</div>

<div class="btn-delete" @click="deleteByReceiverId">删除账号</div>
<div class="btn-delete" @click="submitAccount" v-if="accountData.receiverType == 1">提交</div>



</div>
</template>

<script type="text/babel">
import {formatDate} from '@/filters'
import { Toast } from 'vant';
// 组件
export default {
name: 'page-index',
components: {

},
data() {
return {
accountData: {
receiverType: 0,

},
haveAccount: false,
userInfo: null,

};
},
mounted() {
this.userInfo = JSON.parse(this.$route.query.userInfo)
this.getOpenIdByPhone()
this.findAccountById()
},
methods: {
/**
* 查询商户C端授权状态
*/
getOpenIdByPhone() {
this.$http.getOpenIdByPhone({
method: 'get',
params: {
phone: this.userInfo.phone
}
}).then(res => {
if (res.data != undefined) {
this.haveAccount = res.data
}
if (res.code==1993) {
this.haveAccount = false
}
})
},
findAccountById() {
this.$http.findAccountById({
method: 'get',
params: {
id: this.userInfo.merchant_id
}
}).then(res => {
this.accountData = res.data
})
},
goBack() {
this.$router.go(-1)
},
//删除账号得信息
deleteByReceiverId() {
this.$http.deleteByReceiverId({
method: 'get',
params: {
id: this.accountData.id
}
}).then(res => {
console.log(res)
if (res.code != 1993) {
this.goBack()
} else {
Toast(res.message);
console.log(333)
}
})
},

}
}
</script>

<style lang="less" rel="stylesheet/less" scoped>
.floatR {
float: right;
}
@font-face {
font-family: 'iconfont'; /* project id 1353693 */
src: url('//at.alicdn.com/t/font_1353693_617eu8di04k.eot');
src: url('//at.alicdn.com/t/font_1353693_617eu8di04k.eot?#iefix') format('embedded-opentype'),
url('//at.alicdn.com/t/font_1353693_617eu8di04k.woff2') format('woff2'),
url('//at.alicdn.com/t/font_1353693_617eu8di04k.woff') format('woff'),
url('//at.alicdn.com/t/font_1353693_617eu8di04k.ttf') format('truetype'),
url('//at.alicdn.com/t/font_1353693_617eu8di04k.svg#iconfont') format('svg');
}

.page-home {
text-align: left;
.back-box {
position: absolute;
left: 0;
top: 0;
z-index: 1000;
width: 100%;
height: 1.3rem;
line-height: 1.3rem;
background: #52A0FD;
color: #fff;
font-size: @fontSize16;
text-align: center;
.back-icon {
float: left;
margin: .4rem 0 0 .1rem;
}
}
}
.header-wrap {
width: 100%;
height: 4rem;
position: relative;
top: -1rem;

.header-bg {
width: 100%;
height: 4rem;
}
}


.title-h1 {
height: 1.5rem;
line-height: 1.5rem;
color: #000;
font-size: @fontSize20;
margin-top: 1.5rem;
font-weight: 900;
padding: 0 .4rem;
}
.item-box {
width: 100%;
padding: 0 .4rem;
font-size: @fontSize15;
margin-bottom: .3rem;
overflow: hidden;
line-height: .6rem;
.item-left {
float: left;
width: 2.8rem;
}
.item-right {
float: left;
width: 6.2rem;
}
}

.btn-delete {
width: 4rem;
height: 1.2rem;
line-height: 1.2rem;
text-align: center;
border-radius: .1rem;
background: #52A0FD;
color: #fff;
font-size: @fontSize16;
margin: .5rem auto;
}


</style>

+ 2
- 2
src/views/person/index.vue Zobrazit soubor

@@ -68,7 +68,7 @@ export default {
name: '',
merchant_id: ''
},
routerUrl: ['/accountManage','/myTicket','/mermberList','/pointRecord']
routerUrl: ['/account','/myTicket','/mermberList','/pointRecord']
};
},
mounted() {
@@ -107,7 +107,7 @@ export default {
this.userInfo.phone = res.data.phone
this.userInfo.service_phone = res.data.service_phone
this.userInfo.name = res.data.name
this.userInfo.name = res.data.merchant_id
this.userInfo.merchant_id = res.data.merchant_id
}
})


Načítá se…
Zrušit
Uložit