Merge branch 'bd-region-select' of gitee.com:cabbage_qd/web-base-h5 into bd-dev
This commit is contained in:
commit
bcc36ad68b
|
@ -1,413 +0,0 @@
|
|||
|
||||
<template>
|
||||
<view class="main">
|
||||
<view v-if="userInfo.pkCountry != 1" class="top">
|
||||
<view class="search-bottom">
|
||||
<view class="time-text">{{ '查询时间' }}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.startDate" mode="date" @change="bindDateChange">
|
||||
<view v-if="query.startDate != ''" class="uni-input">{{
|
||||
query.startDate
|
||||
}}</view>
|
||||
<view v-else class="uni-input">{{ '开始日期' }}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="text_s">{{ '至' }}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.endDate" mode="date" @change="bindDateChange1">
|
||||
<view v-if="query.endDate != ''" class="uni-input">{{
|
||||
query.endDate
|
||||
}}</view>
|
||||
<view v-else class="uni-input">{{ '结束日期' }}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="search-icons" @click="submit">
|
||||
<image
|
||||
class="search-icon-s"
|
||||
src="../../static/images/search.png"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="search-content">
|
||||
<view class="search-list">
|
||||
<view v-for="item in dataList" class="search-view">
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{ '奖金日期' }}
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{ item.settleDate }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left"> {{ '创客直推收益' }}(¥) </view>
|
||||
<view class="data-right style1" @click="getDetails(item, 20)">
|
||||
{{ item.makerDirectIncome | toThousandthAndKeepDecimal }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left"> {{ '创客共享收益' }}(¥) </view>
|
||||
<view class="data-right style1" @click="getDetails(item, 21)">
|
||||
{{ item.makerShareIncome | toThousandthAndKeepDecimal }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left"> {{ '平台服务费' }}(¥) </view>
|
||||
<view class="data-right">
|
||||
{{ item.serviceSpend | toThousandthAndKeepDecimal }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left"> {{ '实发小计' }}(¥) </view>
|
||||
<view class="data-right">
|
||||
{{ item.makerRealSubtotal | toThousandthAndKeepDecimal }}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="border_s">
|
||||
<view class="button" v-if="checkRule == true" @click="urlTap">
|
||||
{{ '查看详情' }}
|
||||
</view>
|
||||
</view> -->
|
||||
<view style="clear: both"></view>
|
||||
<view style="height: 20rpx; background-color: #fff"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-popup
|
||||
:show="show"
|
||||
mode="center"
|
||||
closeOnClickOverlay
|
||||
closeable
|
||||
round="10"
|
||||
@close="close"
|
||||
>
|
||||
<view class="kuang">
|
||||
<view
|
||||
v-for="item in tableDetails"
|
||||
v-show="tableDetails.length > 0"
|
||||
class="kuang_i"
|
||||
>
|
||||
<view class="kuang_ii">
|
||||
<view>来源会员编号</view>
|
||||
<view>{{ item.sourceMemberCode }}</view>
|
||||
</view>
|
||||
<view class="kuang_ii">
|
||||
<view>来源会员名称</view>
|
||||
<view>{{ item.sourceMemberName }}</view>
|
||||
</view>
|
||||
<view class="kuang_ii">
|
||||
<view>奖金金额</view>
|
||||
<view>{{ item.realIncome | toThousandthAndKeepDecimal}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="tableDetails.length == 0" class="kong"> 暂无数据 </view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as api from "@/config/login.js";
|
||||
import { setToken } from "@/config/auth.js";
|
||||
import store from "@/store";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableDetails: [],
|
||||
show: false,
|
||||
getBonusTypeList: [],
|
||||
index: null,
|
||||
dataList: [],
|
||||
userInfo: [],
|
||||
query: {
|
||||
startDate: "",
|
||||
endDate: "",
|
||||
sourceMemberCode: "",
|
||||
sourceMemberName: "",
|
||||
pkBonusItems: "",
|
||||
},
|
||||
page: {
|
||||
pageNum: 1,
|
||||
pageSize: 50,
|
||||
},
|
||||
};
|
||||
},
|
||||
props: ["num", "checkRule"],
|
||||
onLoad() {},
|
||||
created() {
|
||||
// this.getType()
|
||||
this.userInfo = uni.getStorageSync("User");
|
||||
this.getDataList();
|
||||
},
|
||||
methods: {
|
||||
getDetails(row, bonusValue) {
|
||||
api
|
||||
.markBonus({
|
||||
startDate: row.settleDate,
|
||||
bonusValue: bonusValue,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(
|
||||
"%c [ res ]-151",
|
||||
"font-size:13px; background:#fb0ce4; color:#ff50ff;",
|
||||
res
|
||||
);
|
||||
this.tableDetails = res.rows;
|
||||
this.show = true;
|
||||
});
|
||||
},
|
||||
close() {
|
||||
this.show = false;
|
||||
},
|
||||
urlTap() {
|
||||
uni.navigateTo({ url: "/pages/bonusSource/index" });
|
||||
},
|
||||
getInfo() {
|
||||
api
|
||||
.getInfo()
|
||||
.then((res) => {
|
||||
if (res) {
|
||||
this.userInfo = res.data;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
},
|
||||
submit() {
|
||||
this.getDataList();
|
||||
},
|
||||
getType() {
|
||||
api
|
||||
.getBonusType()
|
||||
.then((res) => {
|
||||
if (res) {
|
||||
this.getBonusTypeList = res.rows;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.index = e.detail.value;
|
||||
},
|
||||
bindDateChange(e) {
|
||||
this.query.startDate = e.detail.value;
|
||||
},
|
||||
bindDateChange1(e) {
|
||||
this.query.endDate = e.detail.value;
|
||||
},
|
||||
getDataList(num) {
|
||||
api
|
||||
.queryBonusMaker(
|
||||
this.query,
|
||||
`?pageNum=${num || 1}&pageSize=${this.page.pageSize}`
|
||||
)
|
||||
.then((res) => {
|
||||
if (res) {
|
||||
this.dataList.push(...res.rows);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
},
|
||||
submit() {},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.border_s {
|
||||
border-bottom: 1rpx solid #eee;
|
||||
height: 10rpx;
|
||||
}
|
||||
.button {
|
||||
padding: 0 30rpx;
|
||||
/* width: 150rpx; */
|
||||
height: 52rpx;
|
||||
line-height: 52rpx;
|
||||
color: #fff;
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
background: #005BAC;
|
||||
margin: 30rpx 0 0 0;
|
||||
float: right;
|
||||
border-radius: 24rpx;
|
||||
}
|
||||
.type {
|
||||
color: #005BAC !important;
|
||||
}
|
||||
.flex_s {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-bottom: 15rpx;
|
||||
}
|
||||
.data-left {
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.data-right {
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-view {
|
||||
/* display: flex; */
|
||||
/* justify-content: space-between; */
|
||||
padding: 30rpx 20rpx 0 20rpx;
|
||||
border-bottom: 20rpx solid #eee;
|
||||
/* border-bottom: 1px solid #eee; */
|
||||
margin: 0;
|
||||
}
|
||||
.search-list {
|
||||
margin-bottom: 25rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
.search-content {
|
||||
margin-top: 25rpx;
|
||||
}
|
||||
.text_s {
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-icon-s {
|
||||
width: 22rpx;
|
||||
height: 22rpx;
|
||||
}
|
||||
.search-icons {
|
||||
width: 47rpx;
|
||||
height: 47rpx;
|
||||
background: #005BAC;
|
||||
border-radius: 50%;
|
||||
margin-left: 20rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 30rpx 20rpx 0 0;
|
||||
}
|
||||
.time1 {
|
||||
width: 158rpx;
|
||||
height: 75rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
margin: 0 50rpx 30rpx 50rpx;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
/* margin-bottom: 30rpx; */
|
||||
}
|
||||
.time-text {
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-bottom {
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
display: flex;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.texts {
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
/* width:200rpx; */
|
||||
text-align: right;
|
||||
}
|
||||
.select-text {
|
||||
display: flex;
|
||||
margin-right: 20rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
position: relative;
|
||||
}
|
||||
.selIcon {
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
.text-s {
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.place {
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
}
|
||||
.border-colors {
|
||||
border: none;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
page {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
.search-icon {
|
||||
width: 25rpx;
|
||||
height: 25rpx;
|
||||
position: absolute;
|
||||
left: 30rpx;
|
||||
top: 12rpx;
|
||||
}
|
||||
.search-bg {
|
||||
}
|
||||
.top {
|
||||
/* height: 200rpx; */
|
||||
background-color: #fff;
|
||||
padding: 20rpx 0 20rpx 0;
|
||||
}
|
||||
.search-tops {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 65rpx;
|
||||
line-height: 65rpx;
|
||||
padding-bottom: 40rpx;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.search-bg {
|
||||
width: 432rpx;
|
||||
height: 35rpx;
|
||||
background: #f5f6f8;
|
||||
border-radius: 33rpx;
|
||||
display: flex;
|
||||
position: relative;
|
||||
padding: 20rpx 50rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.style1 {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
color: #d61820;
|
||||
}
|
||||
.kuang {
|
||||
height: 800rpx;
|
||||
background: #eee;
|
||||
padding: 60rpx 20rpx;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.kuang_i {
|
||||
padding: 20rpx 20rpx;
|
||||
border-radius: 8px;
|
||||
background: #fff;
|
||||
font-size: 14px;
|
||||
color: #999;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.kuang_ii {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
::v-deep .u-popup__content {
|
||||
width: 80%;
|
||||
}
|
||||
.kong {
|
||||
text-align: center;
|
||||
line-height: 250px;
|
||||
}
|
||||
</style>
|
|
@ -1,321 +0,0 @@
|
|||
|
||||
<template>
|
||||
<view class="main">
|
||||
<view v-if="userInfo.pkCountry!=1" class="top">
|
||||
<view class="search-bottom">
|
||||
<view class="time-text">{{'查询时间'}}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.startDate" mode="date" @change="bindDateChange">
|
||||
<view v-if="query.startDate!=''" class="uni-input">{{query.startDate}}</view>
|
||||
<view v-else class="uni-input">{{'开始日期'}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="text_s">{{'至'}}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.endDate" mode="date" @change="bindDateChange1">
|
||||
<view v-if="query.endDate!=''" class="uni-input">{{query.endDate}}</view>
|
||||
<view v-else class="uni-input">{{'结束日期'}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="search-icons" @click="submit">
|
||||
<image class="search-icon-s" src="../../static/images/search.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="search-content">
|
||||
<view class="search-list">
|
||||
<view v-for="item in dataList" class="search-view">
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'奖金日期'}}
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.settleDate}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'海粉直推收益'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.directIncome | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'平台服务费'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.serviceIncome | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'实发小计'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.realIncomeTotal| numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="border_s">
|
||||
<view class="button" v-if="checkRule==true" @click="urlTap">
|
||||
{{'查看详情'}}
|
||||
</view>
|
||||
</view> -->
|
||||
<view style="clear: both;"></view>
|
||||
<view style="height: 20rpx;background-color: #fff;"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as api from '@/config/login.js'
|
||||
import { setToken } from '@/config/auth.js'
|
||||
import store from '@/store'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
getBonusTypeList:[],
|
||||
index:null,
|
||||
dataList:[],
|
||||
userInfo:[],
|
||||
query:{
|
||||
startDate:'',
|
||||
endDate:'',
|
||||
sourceMemberCode:'',
|
||||
sourceMemberName:'',
|
||||
pkBonusItems: ''
|
||||
},
|
||||
page:{
|
||||
pageNum:1,
|
||||
pageSize:50
|
||||
}
|
||||
}
|
||||
},
|
||||
props:["num","checkRule"],
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
created() {
|
||||
// this.getType()
|
||||
this.userInfo = uni.getStorageSync('User')
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
urlTap() {
|
||||
uni.navigateTo({ url: '/pages/bonusSource/index' })
|
||||
},
|
||||
getInfo(){
|
||||
api.getInfo().then(res => {
|
||||
if (res) {
|
||||
this.userInfo = res.data
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
this.getDataList()
|
||||
},
|
||||
getType(){
|
||||
api.getBonusType().then(res => {
|
||||
if (res) {
|
||||
this.getBonusTypeList = res.rows
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.index = e.detail.value
|
||||
},
|
||||
bindDateChange(e) {
|
||||
this.query.startDate = e.detail.value
|
||||
},
|
||||
bindDateChange1(e) {
|
||||
this.query.endDate = e.detail.value
|
||||
},
|
||||
getDataList(num) {
|
||||
api.queryBonusHaiFun(this.query,`?pageNum=${num||1}&pageSize=${this.page.pageSize}`).then(res => {
|
||||
if (res) {
|
||||
this.dataList.push(...res.rows)
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.border_s{
|
||||
border-bottom: 1rpx solid #eee;
|
||||
height: 10rpx;
|
||||
}
|
||||
.button{
|
||||
padding: 0 30rpx;
|
||||
/* width: 150rpx; */
|
||||
height: 52rpx;
|
||||
line-height: 52rpx;
|
||||
color: #fff;
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
background: #005BAC;
|
||||
margin: 30rpx 0 0 0;
|
||||
float: right;
|
||||
border-radius: 24rpx;
|
||||
}
|
||||
.type{
|
||||
color: #005BAC !important;
|
||||
}
|
||||
.flex_s{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-bottom: 15rpx;
|
||||
}
|
||||
.data-left{
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.data-right{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-view{
|
||||
/* display: flex; */
|
||||
/* justify-content: space-between; */
|
||||
padding: 30rpx 20rpx 0 20rpx;
|
||||
border-bottom: 20rpx solid #eee;
|
||||
/* border-bottom: 1px solid #eee; */
|
||||
margin:0 ;
|
||||
}
|
||||
.search-list{
|
||||
margin-bottom: 25rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
.search-content{
|
||||
margin-top: 25rpx;
|
||||
}
|
||||
.text_s{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-icon-s{
|
||||
width: 22rpx;
|
||||
height: 22rpx;
|
||||
}
|
||||
.search-icons{
|
||||
width: 47rpx;
|
||||
height: 47rpx;
|
||||
background: #005BAC;
|
||||
border-radius: 50%;
|
||||
margin-left: 20rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 30rpx 20rpx 0 0;
|
||||
}
|
||||
.time1{
|
||||
width: 158rpx;
|
||||
height: 75rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
margin: 0 50rpx 30rpx 50rpx;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
/* margin-bottom: 30rpx; */
|
||||
}
|
||||
.time-text{
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-bottom{
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
display: flex;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.texts{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
/* width:200rpx; */
|
||||
text-align: right;
|
||||
}
|
||||
.select-text{
|
||||
display: flex;
|
||||
margin-right: 20rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
position: relative;
|
||||
}
|
||||
.selIcon{
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
.text-s{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.place{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
}
|
||||
.border-colors{
|
||||
border: none;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
margin-left:30rpx;
|
||||
}
|
||||
page{
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
.search-icon{
|
||||
width: 25rpx;
|
||||
height: 25rpx;
|
||||
position: absolute;
|
||||
left: 30rpx;
|
||||
top: 12rpx;
|
||||
image{
|
||||
|
||||
}
|
||||
}
|
||||
.search-bg{
|
||||
|
||||
}
|
||||
.top{
|
||||
/* height: 200rpx; */
|
||||
background-color: #fff;
|
||||
padding: 20rpx 0 20rpx 0;
|
||||
}
|
||||
.search-tops{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 65rpx;
|
||||
line-height: 65rpx;
|
||||
padding-bottom: 40rpx;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.search-bg{
|
||||
width: 432rpx;
|
||||
height:35rpx;
|
||||
background: #F5F6F8;
|
||||
border-radius: 33rpx;
|
||||
display: flex;
|
||||
position: relative;
|
||||
padding: 20rpx 50rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
</style>
|
|
@ -1,321 +0,0 @@
|
|||
|
||||
<template>
|
||||
<view class="main">
|
||||
<view v-if="userInfo.pkCountry!=1" class="top">
|
||||
<view class="search-bottom">
|
||||
<view class="time-text">{{'查询时间'}}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.startDate" mode="date" @change="bindDateChange">
|
||||
<view v-if="query.startDate!=''" class="uni-input">{{query.startDate}}</view>
|
||||
<view v-else class="uni-input">{{'开始日期'}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="text_s">{{'至'}}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.endDate" mode="date" @change="bindDateChange1">
|
||||
<view v-if="query.endDate!=''" class="uni-input">{{query.endDate}}</view>
|
||||
<view v-else class="uni-input">{{'结束日期'}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="search-icons" @click="submit">
|
||||
<image class="search-icon-s" src="../../static/images/search.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="search-content">
|
||||
<view class="search-list">
|
||||
<view v-for="item in dataList" class="search-view">
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'奖金日期'}}
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.settleDate}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'海粉直推收益'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.hiFunIncome | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'平台服务费'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.serviceSpend | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'实发小计'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.hiFunRealSubtotal | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="border_s">
|
||||
<view class="button" v-if="checkRule==true" @click="urlTap">
|
||||
{{'查看详情'}}
|
||||
</view>
|
||||
</view> -->
|
||||
<view style="clear: both;"></view>
|
||||
<view style="height: 20rpx;background-color: #fff;"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as api from '@/config/login.js'
|
||||
import { setToken } from '@/config/auth.js'
|
||||
import store from '@/store'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
getBonusTypeList:[],
|
||||
index:null,
|
||||
dataList:[],
|
||||
userInfo:[],
|
||||
query:{
|
||||
startDate:'',
|
||||
endDate:'',
|
||||
sourceMemberCode:'',
|
||||
sourceMemberName:'',
|
||||
pkBonusItems: ''
|
||||
},
|
||||
page:{
|
||||
pageNum:1,
|
||||
pageSize:50
|
||||
}
|
||||
}
|
||||
},
|
||||
props:["num","checkRule"],
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
created() {
|
||||
// this.getType()
|
||||
this.userInfo = uni.getStorageSync('User')
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
urlTap() {
|
||||
uni.navigateTo({ url: '/pages/bonusSource/index' })
|
||||
},
|
||||
getInfo(){
|
||||
api.getInfo().then(res => {
|
||||
if (res) {
|
||||
this.userInfo = res.data
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
this.getDataList()
|
||||
},
|
||||
getType(){
|
||||
api.getBonusType().then(res => {
|
||||
if (res) {
|
||||
this.getBonusTypeList = res.rows
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.index = e.detail.value
|
||||
},
|
||||
bindDateChange(e) {
|
||||
this.query.startDate = e.detail.value
|
||||
},
|
||||
bindDateChange1(e) {
|
||||
this.query.endDate = e.detail.value
|
||||
},
|
||||
getDataList(num) {
|
||||
api.queryBonusHiFun(this.query,`?pageNum=${num||1}&pageSize=${this.page.pageSize}`).then(res => {
|
||||
if (res) {
|
||||
this.dataList.push(...res.rows)
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.border_s{
|
||||
border-bottom: 1rpx solid #eee;
|
||||
height: 10rpx;
|
||||
}
|
||||
.button{
|
||||
padding: 0 30rpx;
|
||||
/* width: 150rpx; */
|
||||
height: 52rpx;
|
||||
line-height: 52rpx;
|
||||
color: #fff;
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
background: #005BAC;
|
||||
margin: 30rpx 0 0 0;
|
||||
float: right;
|
||||
border-radius: 24rpx;
|
||||
}
|
||||
.type{
|
||||
color: #005BAC !important;
|
||||
}
|
||||
.flex_s{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-bottom: 15rpx;
|
||||
}
|
||||
.data-left{
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.data-right{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-view{
|
||||
/* display: flex; */
|
||||
/* justify-content: space-between; */
|
||||
padding: 30rpx 20rpx 0 20rpx;
|
||||
border-bottom: 20rpx solid #eee;
|
||||
/* border-bottom: 1px solid #eee; */
|
||||
margin:0 ;
|
||||
}
|
||||
.search-list{
|
||||
margin-bottom: 25rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
.search-content{
|
||||
margin-top: 25rpx;
|
||||
}
|
||||
.text_s{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-icon-s{
|
||||
width: 22rpx;
|
||||
height: 22rpx;
|
||||
}
|
||||
.search-icons{
|
||||
width: 47rpx;
|
||||
height: 47rpx;
|
||||
background: #005BAC;
|
||||
border-radius: 50%;
|
||||
margin-left: 20rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 30rpx 20rpx 0 0;
|
||||
}
|
||||
.time1{
|
||||
width: 158rpx;
|
||||
height: 75rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
margin: 0 50rpx 30rpx 50rpx;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
/* margin-bottom: 30rpx; */
|
||||
}
|
||||
.time-text{
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-bottom{
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
display: flex;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.texts{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
/* width:200rpx; */
|
||||
text-align: right;
|
||||
}
|
||||
.select-text{
|
||||
display: flex;
|
||||
margin-right: 20rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
position: relative;
|
||||
}
|
||||
.selIcon{
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
.text-s{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.place{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
}
|
||||
.border-colors{
|
||||
border: none;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
margin-left:30rpx;
|
||||
}
|
||||
page{
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
.search-icon{
|
||||
width: 25rpx;
|
||||
height: 25rpx;
|
||||
position: absolute;
|
||||
left: 30rpx;
|
||||
top: 12rpx;
|
||||
image{
|
||||
|
||||
}
|
||||
}
|
||||
.search-bg{
|
||||
|
||||
}
|
||||
.top{
|
||||
/* height: 200rpx; */
|
||||
background-color: #fff;
|
||||
padding: 20rpx 0 20rpx 0;
|
||||
}
|
||||
.search-tops{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 65rpx;
|
||||
line-height: 65rpx;
|
||||
padding-bottom: 40rpx;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.search-bg{
|
||||
width: 432rpx;
|
||||
height:35rpx;
|
||||
background: #F5F6F8;
|
||||
border-radius: 33rpx;
|
||||
display: flex;
|
||||
position: relative;
|
||||
padding: 20rpx 50rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
</style>
|
|
@ -1,329 +0,0 @@
|
|||
|
||||
<template>
|
||||
<view class="main">
|
||||
<view v-if="userInfo.pkCountry!=1" class="top">
|
||||
<view class="search-bottom">
|
||||
<view class="time-text">{{'查询时间'}}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.startDate" mode="date" @change="bindDateChange">
|
||||
<view v-if="query.startDate!=''" class="uni-input">{{query.startDate}}</view>
|
||||
<view v-else class="uni-input">{{'开始日期'}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="text_s">{{'至'}}</view>
|
||||
<view class="time1">
|
||||
<picker :value="query.endDate" mode="date" @change="bindDateChange1">
|
||||
<view v-if="query.endDate!=''" class="uni-input">{{query.endDate}}</view>
|
||||
<view v-else class="uni-input">{{'结束日期'}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="search-icons" @click="submit">
|
||||
<image class="search-icon-s" src="../../static/images/search.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="search-content">
|
||||
<view class="search-list">
|
||||
<view v-for="item in dataList" class="search-view">
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'奖金日期'}}
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.settleDate}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'圣宝云代直推收益'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.cloudDirectIncome | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'圣宝云代首购收益'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.cloudRepurIncome | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'平台服务费'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.serviceSpend | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex_s">
|
||||
<view class="data-left">
|
||||
{{'实发小计'}}(¥)
|
||||
</view>
|
||||
<view class="data-right">
|
||||
{{item.cloudRealSubtotal | numberToCurrency}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="border_s">
|
||||
<view class="button" v-if="checkRule==true" @click="urlTap">
|
||||
{{'查看详情'}}
|
||||
</view>
|
||||
</view>
|
||||
<view style="clear: both;"></view>
|
||||
<view style="height: 20rpx;background-color: #fff;"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as api from '@/config/login.js'
|
||||
import { setToken } from '@/config/auth.js'
|
||||
import store from '@/store'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
getBonusTypeList:[],
|
||||
index:null,
|
||||
dataList:[],
|
||||
userInfo:[],
|
||||
query:{
|
||||
startDate:'',
|
||||
endDate:'',
|
||||
sourceMemberCode:'',
|
||||
sourceMemberName:'',
|
||||
pkBonusItems: ''
|
||||
},
|
||||
page:{
|
||||
pageNum:1,
|
||||
pageSize:50
|
||||
}
|
||||
}
|
||||
},
|
||||
props:["num","checkRule"],
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
created() {
|
||||
// this.getType()
|
||||
this.userInfo = uni.getStorageSync('User')
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
urlTap() {
|
||||
uni.navigateTo({ url: '/pages/bonusSource/index' })
|
||||
},
|
||||
getInfo(){
|
||||
api.getInfo().then(res => {
|
||||
if (res) {
|
||||
this.userInfo = res.data
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
this.getDataList()
|
||||
},
|
||||
getType(){
|
||||
api.getBonusType().then(res => {
|
||||
if (res) {
|
||||
this.getBonusTypeList = res.rows
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.index = e.detail.value
|
||||
},
|
||||
bindDateChange(e) {
|
||||
this.query.startDate = e.detail.value
|
||||
},
|
||||
bindDateChange1(e) {
|
||||
this.query.endDate = e.detail.value
|
||||
},
|
||||
getDataList(num) {
|
||||
api.queryBonusCloud(this.query,`?pageNum=${num||1}&pageSize=${this.page.pageSize}`).then(res => {
|
||||
if (res) {
|
||||
this.dataList.push(...res.rows)
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.border_s{
|
||||
border-bottom: 1rpx solid #eee;
|
||||
height: 10rpx;
|
||||
}
|
||||
.button{
|
||||
padding: 0 30rpx;
|
||||
/* width: 150rpx; */
|
||||
height: 52rpx;
|
||||
line-height: 52rpx;
|
||||
color: #fff;
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
background: #005BAC;
|
||||
margin: 30rpx 0 0 0;
|
||||
float: right;
|
||||
border-radius: 24rpx;
|
||||
}
|
||||
.type{
|
||||
color: #005BAC !important;
|
||||
}
|
||||
.flex_s{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-bottom: 15rpx;
|
||||
}
|
||||
.data-left{
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.data-right{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-view{
|
||||
/* display: flex; */
|
||||
/* justify-content: space-between; */
|
||||
padding: 30rpx 20rpx 0 20rpx;
|
||||
border-bottom: 20rpx solid #eee;
|
||||
/* border-bottom: 1px solid #eee; */
|
||||
margin:0 ;
|
||||
}
|
||||
.search-list{
|
||||
margin-bottom: 25rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
.search-content{
|
||||
margin-top: 25rpx;
|
||||
}
|
||||
.text_s{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-icon-s{
|
||||
width: 22rpx;
|
||||
height: 22rpx;
|
||||
}
|
||||
.search-icons{
|
||||
width: 47rpx;
|
||||
height: 47rpx;
|
||||
background: #005BAC;
|
||||
border-radius: 50%;
|
||||
margin-left: 20rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 30rpx 20rpx 0 0;
|
||||
}
|
||||
.time1{
|
||||
width: 158rpx;
|
||||
height: 75rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
margin: 0 50rpx 30rpx 50rpx;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
/* margin-bottom: 30rpx; */
|
||||
}
|
||||
.time-text{
|
||||
color: #999;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.search-bottom{
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
display: flex;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
.texts{
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
/* width:200rpx; */
|
||||
text-align: right;
|
||||
}
|
||||
.select-text{
|
||||
display: flex;
|
||||
margin-right: 20rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
position: relative;
|
||||
}
|
||||
.selIcon{
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
.text-s{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.place{
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
}
|
||||
.border-colors{
|
||||
border: none;
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
margin-left:30rpx;
|
||||
}
|
||||
page{
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
.search-icon{
|
||||
width: 25rpx;
|
||||
height: 25rpx;
|
||||
position: absolute;
|
||||
left: 30rpx;
|
||||
top: 12rpx;
|
||||
image{
|
||||
|
||||
}
|
||||
}
|
||||
.search-bg{
|
||||
|
||||
}
|
||||
.top{
|
||||
/* height: 200rpx; */
|
||||
background-color: #fff;
|
||||
padding: 20rpx 0 20rpx 0;
|
||||
}
|
||||
.search-tops{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 65rpx;
|
||||
line-height: 65rpx;
|
||||
padding-bottom: 40rpx;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.search-bg{
|
||||
width: 432rpx;
|
||||
height:35rpx;
|
||||
background: #F5F6F8;
|
||||
border-radius: 33rpx;
|
||||
display: flex;
|
||||
position: relative;
|
||||
padding: 20rpx 50rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,370 @@
|
|||
<template>
|
||||
<div v-if="popupVisible" class="region-select-overlay">
|
||||
<div class="region-select-popup">
|
||||
<div class="popup-header">
|
||||
<h3 class="popup-title">选择收益区域({{ typeEnumMap[area] }})</h3>
|
||||
</div>
|
||||
<div class="popup-content">
|
||||
<picker-view
|
||||
v-if="popupVisible"
|
||||
class="picker-view"
|
||||
:indicator-style="indicatorStyle"
|
||||
:value="pickerValue"
|
||||
@change="handlePickerChange"
|
||||
>
|
||||
<picker-view-column>
|
||||
<div v-for="p in provinceList" :key="p.id" class="picker-item">
|
||||
{{ p.name }}
|
||||
</div>
|
||||
</picker-view-column>
|
||||
<picker-view-column
|
||||
v-if="cityList.length && ['city', 'county'].includes(this.area)"
|
||||
>
|
||||
<div v-for="c in cityList" :key="c.id" class="picker-item">
|
||||
{{ c.name }}
|
||||
</div>
|
||||
</picker-view-column>
|
||||
<picker-view-column v-if="countyList.length && this.area == 'county'">
|
||||
<div v-for="d in countyList" :key="d.id" class="picker-item">
|
||||
{{ d.name }}
|
||||
</div>
|
||||
</picker-view-column>
|
||||
</picker-view>
|
||||
</div>
|
||||
<div class="popup-footer">
|
||||
<button class="popup-btn popup-confirm" @click="handleConfirm">
|
||||
确认
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getRegionSelect, setRegion, getRegionAreaTree } from '@/config/mine.js'
|
||||
|
||||
export default {
|
||||
name: 'RegionSelect',
|
||||
props: {
|
||||
autoTrigger: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
popupVisible: false,
|
||||
areaTree: [],
|
||||
pickerValue: [0, 0, 0],
|
||||
indicatorStyle: `height: 50px;`,
|
||||
selectedList: [],
|
||||
regionList: [],
|
||||
provinceList: [],
|
||||
cityList: [],
|
||||
countyList: [],
|
||||
area: '',
|
||||
typeMap: {
|
||||
province: 1,
|
||||
city: 2,
|
||||
county: 3,
|
||||
},
|
||||
typeEnumMap: {
|
||||
province: '省',
|
||||
city: '市',
|
||||
county: '区',
|
||||
},
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
if (!this.autoTrigger) {
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
})
|
||||
this.getRegionSelect()
|
||||
.then(selectedList => {
|
||||
this.selectedList = selectedList
|
||||
const area = selectedList.shift()
|
||||
this.open(area)
|
||||
})
|
||||
.catch(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
async getRegionSelect() {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
const res = await getRegionSelect()
|
||||
if (res?.code === 200) {
|
||||
const needSelected = Object.keys(res?.data || {})
|
||||
.filter(key => key !== 'data')
|
||||
.filter(key => res.data[key])
|
||||
.reverse()
|
||||
if (needSelected?.length) {
|
||||
resolve(needSelected)
|
||||
} else {
|
||||
reject(false)
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
reject(false)
|
||||
}
|
||||
})
|
||||
},
|
||||
async open(area) {
|
||||
this.area = area
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
})
|
||||
return new Promise(async (resolve, reject) => {
|
||||
this.popupVisible = true
|
||||
|
||||
await this.loadAreaTree(area)
|
||||
resolve()
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
async loadAreaTree(selectedArea) {
|
||||
try {
|
||||
const res = await getRegionAreaTree({
|
||||
type: this.typeMap[selectedArea],
|
||||
})
|
||||
if (res.code === 200 && res.data) {
|
||||
this.provinceList = res.data.filter(item => item.parent === 0)
|
||||
this.cityList = res.data.filter(item =>
|
||||
this.provinceList.find(province => province.pkId === item.parent)
|
||||
)
|
||||
this.countyList = res.data.filter(item =>
|
||||
this.cityList.find(city => city.pkId === item.parent)
|
||||
)
|
||||
this.getProvinceFilterList()
|
||||
this.getCityFilterList()
|
||||
this.generateRegionTree()
|
||||
return true
|
||||
}
|
||||
return false
|
||||
} catch (error) {
|
||||
console.error('Failed to load area tree:', error)
|
||||
}
|
||||
},
|
||||
generateRegionTree() {
|
||||
this.countyList.forEach(item => {
|
||||
const city = this.cityList.find(city => city.pkId === item.parent)
|
||||
if (city) {
|
||||
if (!city.children) {
|
||||
city.children = [item]
|
||||
} else {
|
||||
city.children.push(item)
|
||||
}
|
||||
}
|
||||
})
|
||||
this.cityList.forEach(item => {
|
||||
const province = this.provinceList.find(
|
||||
province => province.pkId === item.parent
|
||||
)
|
||||
if (province) {
|
||||
if (!province.children) {
|
||||
province.children = [item]
|
||||
} else {
|
||||
province.children.push(item)
|
||||
}
|
||||
}
|
||||
})
|
||||
this.cityList = this.provinceList[this.pickerValue[0]].children
|
||||
this.countyList = this.cityList[this.pickerValue[1]].children
|
||||
},
|
||||
getProvinceFilterList() {
|
||||
if (!this.cityList.length) {
|
||||
this.provinceList = []
|
||||
}
|
||||
this.provinceList = this.provinceList.filter(
|
||||
item => !!this.cityList.find(city => city.parent === item.pkId)
|
||||
)
|
||||
},
|
||||
getCityFilterList() {
|
||||
if (!this.countyList.length) {
|
||||
this.cityList = []
|
||||
}
|
||||
this.cityList = this.cityList.filter(
|
||||
item => !!this.countyList.find(county => county.parent === item.pkId)
|
||||
)
|
||||
},
|
||||
handlePickerChange(e) {
|
||||
const [pIndex, cIndex] = e.detail.value
|
||||
const oldPIndex = this.pickerValue[0]
|
||||
const oldCIndex = this.pickerValue[1]
|
||||
if (oldPIndex !== pIndex) {
|
||||
this.cityList = this.provinceList[pIndex].children
|
||||
this.countyList = this.cityList[0].children
|
||||
this.$set(this.pickerValue, 1, 0)
|
||||
this.$set(this.pickerValue, 2, 0)
|
||||
} else if (oldCIndex !== cIndex) {
|
||||
this.countyList = this.cityList[cIndex].children
|
||||
this.$set(this.pickerValue, 2, 0)
|
||||
}
|
||||
this.pickerValue = e.detail.value
|
||||
},
|
||||
handleClose() {
|
||||
this.popupVisible = false
|
||||
},
|
||||
async handleConfirm() {
|
||||
const [pIndex, cIndex, dIndex] = this.pickerValue
|
||||
const province = this.provinceList[pIndex]
|
||||
const city = this.cityList[cIndex]
|
||||
const county = this.countyList[dIndex]
|
||||
|
||||
try {
|
||||
const params = {
|
||||
type: this.typeMap[this.area],
|
||||
province: province.pkId,
|
||||
city: 0,
|
||||
county: 0,
|
||||
}
|
||||
if (this.area == 'city') {
|
||||
params.city = city.pkId
|
||||
} else if (this.area == 'county') {
|
||||
params.city = city.pkId
|
||||
params.county = county.pkId
|
||||
}
|
||||
const res = await setRegion(params)
|
||||
if (res.code === 200) {
|
||||
this.handleClose()
|
||||
if (this.selectedList.length) {
|
||||
this.area = this.selectedList.shift()
|
||||
this.pickerValue = [0, 0, 0]
|
||||
this.open(this.area)
|
||||
} else {
|
||||
this.$emit('success')
|
||||
}
|
||||
} else {
|
||||
throw new Error(res.message || 'Failed to set region')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to set region:', error)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.region-select-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 1000;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.region-select-popup {
|
||||
width: 90%;
|
||||
/* max-width: 680rpx; */
|
||||
background-color: white;
|
||||
border-radius: 24rpx;
|
||||
animation: scale-up 0.3s ease-out;
|
||||
max-height: 80vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4rpx 24rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.popup-header {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 30rpx;
|
||||
border-bottom: 1rpx solid #f5f5f5;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.popup-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #1c1c1e;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.popup-btn {
|
||||
border: none;
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
overflow: hidden;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.picker-view {
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
}
|
||||
|
||||
.picker-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 50px;
|
||||
font-size: 24rpx;
|
||||
color: #666;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.popup-footer {
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
padding: 24rpx;
|
||||
gap: 24rpx;
|
||||
background-color: #f7f7f7;
|
||||
border-top: 1rpx solid #efefef;
|
||||
}
|
||||
|
||||
.popup-footer .popup-btn {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
padding: 14rpx 0;
|
||||
font-size: 28rpx;
|
||||
border-radius: 40rpx;
|
||||
font-weight: 500;
|
||||
transition:
|
||||
transform 0.1s ease,
|
||||
box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.popup-footer .popup-btn:active {
|
||||
transform: scale(0.97);
|
||||
}
|
||||
|
||||
.popup-footer .popup-cancel {
|
||||
background-color: #eee;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.popup-footer .popup-confirm {
|
||||
background: linear-gradient(135deg, #007aff, #0056b3);
|
||||
color: white;
|
||||
box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.25);
|
||||
}
|
||||
|
||||
@keyframes scale-up {
|
||||
from {
|
||||
transform: scale(0.8);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -60,14 +60,6 @@ export const queryBonusFirst = (data, data1) =>
|
|||
export const queryBonusRepurchase = (data, data1) =>
|
||||
http.post('/bonus/api/bonus/query-bonus-repurchase/' + data1, data)
|
||||
|
||||
//嗨粉收益
|
||||
export const queryBonusHiFun = (data, data1) =>
|
||||
http.post('/bonus/api/bonus/query-bonus-hi-fun' + data1, data)
|
||||
|
||||
//云代收益
|
||||
export const queryBonusCloud = (data, data1) =>
|
||||
http.post('/bonus/api/bonus/query-bonus-cloud/' + data1, data)
|
||||
|
||||
//复购券收益
|
||||
export const queryBonusCoupon = (data, data1) =>
|
||||
http.post('/bonus/api/bonus/query-bonus-coupon/' + data1, data)
|
||||
|
@ -76,10 +68,6 @@ export const queryBonusCoupon = (data, data1) =>
|
|||
export const queryBonusMaker = (data, data1) =>
|
||||
http.post('/bonus/api/bonus/query-bonus-maker/' + data1, data)
|
||||
|
||||
//海粉收益
|
||||
export const queryBonusHaiFun = (data, data1) =>
|
||||
http.post('/bonus/api/bonus/query-bonus-hai-fun/' + data1, data)
|
||||
|
||||
//获取奖金收益类型
|
||||
export const getBonusType = params =>
|
||||
http.get('/system/api/bd-bonus-items/list', { params })
|
||||
|
@ -144,7 +132,3 @@ export const getNoticeDetail = params =>
|
|||
//校验服务有效期
|
||||
export const agreement_expire = params =>
|
||||
http.get('/member/api/member/agreement_expire', { params })
|
||||
|
||||
//创客空间收益
|
||||
export const markBonus = params =>
|
||||
http.post('/bonus/api/bonus/query-mark-bonus-detail', params)
|
||||
|
|
|
@ -30,3 +30,16 @@ export const getRefundList = params =>
|
|||
// 退款列表接口(别名)
|
||||
export const refundList = params =>
|
||||
http.get('/sale/api/my-order/refund-list', { params })
|
||||
|
||||
// 获取是否能区域选择的资格
|
||||
export const getRegionSelect = () => {
|
||||
return http.get('/member/api/member/get-region')
|
||||
}
|
||||
|
||||
// 设置区域
|
||||
export const setRegion = data =>
|
||||
http.post('/member/api/member/set-region', data)
|
||||
|
||||
// 获取可选择区域
|
||||
export const getRegionAreaTree = params =>
|
||||
http.get('/member/api/member/get-region-list', { params })
|
||||
|
|
|
@ -19,7 +19,7 @@ module.exports = vm => {
|
|||
|
||||
//#ifdef DEV_SERVER
|
||||
console.log('DEV_SERVER')
|
||||
config.baseURL = 'https://t-app.beida666.com/prod-api'
|
||||
config.baseURL = 'http://192.168.0.86:8080'
|
||||
//#endif
|
||||
|
||||
//#ifdef QA_SERVER
|
||||
|
|
|
@ -492,6 +492,13 @@
|
|||
"navigationBarBackgroundColor": "#fff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/region/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收益区域",
|
||||
"navigationBarBackgroundColor": "#fff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/balance/transDetail",
|
||||
"style": {
|
||||
|
|
|
@ -155,6 +155,7 @@
|
|||
></u-modal>
|
||||
</div>
|
||||
</view>
|
||||
<RegionSelect v-if="userInfo.memberCode != 'BD68880628'" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
@ -171,6 +172,8 @@ import znNewsPopup from '@/components/znNewsPopup.vue'
|
|||
import areaProductList from '@/components/area-product-list/index.vue'
|
||||
import { formatCurrency } from '@/util/index.js'
|
||||
import { mapGetters } from 'vuex'
|
||||
import RegionSelect from '@/components/region-select/index.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
noticePopup,
|
||||
|
@ -178,6 +181,7 @@ export default {
|
|||
'cl-tabbar': clTabbar,
|
||||
getTree,
|
||||
areaProductList,
|
||||
RegionSelect,
|
||||
},
|
||||
filters: {
|
||||
seles(value) {
|
||||
|
|
|
@ -341,6 +341,9 @@
|
|||
</u-button>
|
||||
</view>
|
||||
</u-popup>
|
||||
<RegionSelect
|
||||
v-if="Object.keys(userInfo).length && userInfo.memberCode != 'BD68880628'"
|
||||
/>
|
||||
<!-- <talentList :drShow="drShow" @closeShow="closeShow"></talentList> -->
|
||||
</view>
|
||||
</template>
|
||||
|
@ -350,10 +353,12 @@ import clTabbar from '@/components/cl-tabbar.vue'
|
|||
import * as min from '@/config/balance.js'
|
||||
import * as api from '@/config/login.js'
|
||||
import { getMemberBalance } from '@/config/mine.js'
|
||||
// import talentList from "@/components/talentList.vue";
|
||||
import RegionSelect from '@/components/region-select/index.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'cl-tabbar': clTabbar,
|
||||
RegionSelect,
|
||||
// talentList,
|
||||
},
|
||||
data() {
|
||||
|
@ -479,6 +484,13 @@ export default {
|
|||
menuKey: '',
|
||||
ifshow: false,
|
||||
},
|
||||
{
|
||||
url: '/pages/mine/region/index',
|
||||
name: '收益区域',
|
||||
imgurl: '../../static/images/region-area.svg',
|
||||
menuKey: '',
|
||||
ifshow: false,
|
||||
},
|
||||
// {
|
||||
// url: "2",
|
||||
// name: "达人榜单",
|
||||
|
@ -712,7 +724,7 @@ export default {
|
|||
getInfo() {
|
||||
api.getInfo().then(res => {
|
||||
if (res) {
|
||||
this.userInfo = res.data
|
||||
this.userInfo = res.data || {}
|
||||
if (this.userInfo.memberCode == 'BD68880628') {
|
||||
this.ifSpecial = true
|
||||
this.otherMenuList = [
|
||||
|
@ -861,6 +873,7 @@ export default {
|
|||
//达人榜单
|
||||
this.drShow = true
|
||||
} else {
|
||||
console.log(url, 'url?')
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
})
|
||||
|
|
|
@ -0,0 +1,330 @@
|
|||
<template>
|
||||
<view class="region-container">
|
||||
<!-- 收益区域列表 -->
|
||||
<view class="region-list">
|
||||
<!-- 省级区域 -->
|
||||
<view v-if="shouldShowProvince" class="region-item">
|
||||
<view class="region-card">
|
||||
<view class="region-header">
|
||||
<text class="region-level">省级区域</text>
|
||||
</view>
|
||||
<view v-if="selectedData.provinceData" class="region-content">
|
||||
<text class="region-name">{{
|
||||
selectedData.provinceData.provinceName
|
||||
}}</text>
|
||||
</view>
|
||||
<view v-if="unSelected.includes('province')" class="region-action">
|
||||
<button class="select-btn" @click="selectProvinceRegion">
|
||||
选择省级收益区域
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 市级区域 -->
|
||||
<view v-if="shouldShowCity" class="region-item">
|
||||
<view class="region-card">
|
||||
<view class="region-header">
|
||||
<text class="region-level">市级区域</text>
|
||||
</view>
|
||||
<view v-if="selectedData.cityData" class="region-content">
|
||||
<text class="region-name">{{
|
||||
selectedData.cityData.provinceName
|
||||
}}</text>
|
||||
<text class="region-separator">·</text>
|
||||
<text class="region-name">{{
|
||||
selectedData.cityData.cityName
|
||||
}}</text>
|
||||
</view>
|
||||
<view v-if="unSelected.includes('city')" class="region-action">
|
||||
<button class="select-btn" @click="selectCityRegion">
|
||||
选择市级收益区域
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 区县级区域 -->
|
||||
<view v-if="shouldShowCounty" class="region-item">
|
||||
<view class="region-card">
|
||||
<view class="region-header">
|
||||
<text class="region-level">区县级区域</text>
|
||||
</view>
|
||||
<view v-if="selectedData.countyData" class="region-content">
|
||||
<text class="region-name">{{
|
||||
selectedData.countyData.provinceName
|
||||
}}</text>
|
||||
<text class="region-separator">·</text>
|
||||
<text class="region-name">{{
|
||||
selectedData.countyData.cityName
|
||||
}}</text>
|
||||
<text class="region-separator">·</text>
|
||||
<text class="region-name">{{
|
||||
selectedData.countyData.countyName
|
||||
}}</text>
|
||||
</view>
|
||||
<view v-if="unSelected.includes('county')" class="region-action">
|
||||
<button class="select-btn" @click="selectCountyRegion">
|
||||
选择区县收益区域
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 空状态 -->
|
||||
<view
|
||||
v-if="!shouldShowProvince && !shouldShowCity && !shouldShowCounty"
|
||||
class="empty-state"
|
||||
>
|
||||
<text class="empty-text">暂无收益区域数据</text>
|
||||
</view>
|
||||
<RegionSelect
|
||||
@success="successHandle"
|
||||
:autoTrigger="false"
|
||||
ref="regionSelect"
|
||||
/>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getRegionSelect } from '@/config/mine.js'
|
||||
import RegionSelect from '@/components/region-select/index.vue'
|
||||
|
||||
export default {
|
||||
name: 'RegionPage',
|
||||
components: {
|
||||
RegionSelect,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
unSelected: [],
|
||||
selectedData: {},
|
||||
rawData: {}, // 保存原始接口数据
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 是否显示省级区域:有数据或者需要选择
|
||||
shouldShowProvince() {
|
||||
return (
|
||||
this.selectedData.provinceData || this.unSelected.includes('province')
|
||||
)
|
||||
},
|
||||
// 是否显示市级区域:有数据或者需要选择
|
||||
shouldShowCity() {
|
||||
return this.selectedData.cityData || this.unSelected.includes('city')
|
||||
},
|
||||
// 是否显示区县级区域:有数据或者需要选择
|
||||
shouldShowCounty() {
|
||||
return this.selectedData.countyData || this.unSelected.includes('county')
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
this.getRegionSelect()
|
||||
},
|
||||
methods: {
|
||||
async getRegionSelect() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
})
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
const res = await getRegionSelect()
|
||||
if (res?.code === 200) {
|
||||
this.rawData = res.data || {}
|
||||
// 需要选择的区域(字段为true的)
|
||||
const unSelected = Object.keys(res?.data || {})
|
||||
.filter(key => key !== 'data')
|
||||
.filter(key => res.data[key] === true)
|
||||
this.unSelected = unSelected
|
||||
this.selectedData = res.data?.data || {}
|
||||
resolve()
|
||||
}
|
||||
} catch (error) {
|
||||
reject(false)
|
||||
} finally {
|
||||
uni.hideLoading()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 选择省级收益区域
|
||||
selectProvinceRegion() {
|
||||
this.$refs.regionSelect.open('province')
|
||||
},
|
||||
// 选择市级收益区域
|
||||
selectCityRegion() {
|
||||
this.$refs.regionSelect.open('city')
|
||||
},
|
||||
// 选择区县收益区域
|
||||
selectCountyRegion() {
|
||||
this.$refs.regionSelect.open('county')
|
||||
},
|
||||
successHandle(data) {
|
||||
this.getRegionSelect()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.region-container {
|
||||
min-height: 100vh;
|
||||
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
|
||||
padding: 15rpx;
|
||||
}
|
||||
|
||||
.region-list {
|
||||
padding: 0 15rpx;
|
||||
}
|
||||
|
||||
.region-item {
|
||||
margin-bottom: 15rpx;
|
||||
|
||||
.region-card {
|
||||
background: #ffffff;
|
||||
border-radius: 20rpx;
|
||||
padding: 20rpx;
|
||||
box-shadow: 0 8rpx 30rpx rgba(0, 91, 172, 0.1);
|
||||
border: 2rpx solid rgba(0, 91, 172, 0.1);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 12rpx 40rpx rgba(0, 91, 172, 0.15);
|
||||
transform: translateY(-4rpx);
|
||||
}
|
||||
}
|
||||
|
||||
.region-header {
|
||||
text-align: center;
|
||||
padding: 15rpx 0 20rpx 0;
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 100rpx;
|
||||
height: 4rpx;
|
||||
background: linear-gradient(135deg, #005bac 0%, #0071d9 100%);
|
||||
border-radius: 2rpx;
|
||||
}
|
||||
|
||||
.region-level {
|
||||
font-size: 32rpx;
|
||||
color: #005bac;
|
||||
font-weight: bold;
|
||||
letter-spacing: 1rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.region-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 15rpx;
|
||||
// margin-top: 10rpx;
|
||||
padding: 10rpx 0;
|
||||
|
||||
.region-name {
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.region-separator {
|
||||
margin: 0 10rpx;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
.region-action {
|
||||
margin-top: 16rpx;
|
||||
.select-btn {
|
||||
width: 100%;
|
||||
height: 70rpx;
|
||||
background: linear-gradient(135deg, #005bac 0%, #0071d9 100%);
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
border-radius: 35rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 6rpx 20rpx rgba(0, 91, 172, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:active {
|
||||
transform: scale(0.98);
|
||||
box-shadow: 0 4rpx 15rpx rgba(0, 91, 172, 0.4);
|
||||
}
|
||||
|
||||
&::after {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.empty-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 60rpx 40rpx;
|
||||
|
||||
.empty-text {
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
/* 响应式设计 */
|
||||
@media screen and (max-width: 750rpx) {
|
||||
.region-container {
|
||||
padding: 10rpx;
|
||||
}
|
||||
|
||||
.region-list {
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
|
||||
.region-item {
|
||||
margin-bottom: 12rpx;
|
||||
|
||||
.region-card {
|
||||
padding: 18rpx;
|
||||
}
|
||||
|
||||
.region-header {
|
||||
padding: 12rpx 0 15rpx 0;
|
||||
|
||||
.region-level {
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.region-content {
|
||||
padding: 8rpx 0;
|
||||
margin-bottom: 12rpx;
|
||||
|
||||
.region-name {
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.region-separator {
|
||||
font-size: 22rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.region-action .select-btn {
|
||||
height: 65rpx;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1753348164758" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4496" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256"><path d="M331.585353 377.917166H139.330795a27.99979 27.99979 0 0 0-27.487794 23.039827l-43.199676 236.798224 438.71671 55.039587c-73.27945-93.823296-151.262866-211.838411-175.774682-314.877638zM864.157359 737.562468l104.319217 13.087902-12.351907-67.679492-9.503929-52.159609a1838.994208 1838.994208 0 0 1-82.463381 106.751199zM814.173734 795.770032a2044.304668 2044.304668 0 0 1-40.671695 44.479666l-23.263826 24.543816-46.463651 49.087632-46.495652-49.087632-23.263825-24.575816a2105.904206 2105.904206 0 0 1-67.903491-75.551433l-246.782149-30.975768L400.416837 1023.99232h584.411617a28.127789 28.127789 0 0 0 27.455794-33.27975l-31.743762-174.078695zM251.649953 725.178561L57.123412 700.794744 4.227808 990.71257A28.159789 28.159789 0 0 0 31.683602 1023.99232h302.269733l-81.919385-293.213801a29.887776 29.887776 0 0 1-0.383997-5.599958zM703.774562 438.396712a127.99904 127.99904 0 1 0-127.99904-127.99904 128.159039 128.159039 0 0 0 127.99904 127.99904z m0-191.99856a63.99952 63.99952 0 1 1-63.99952 63.99952 64.06352 64.06352 0 0 1 63.99952-63.99952z" fill="#fb3123" p-id="4497"></path><path d="M703.774562 820.793844l23.231825-24.575816c30.015775-31.679762 293.245801-314.65364 293.245801-479.740402a316.477626 316.477626 0 1 0-632.955253 0c0 165.086762 263.230026 448.02864 293.213801 479.740402z m0-756.794324a252.798104 252.798104 0 0 1 252.478106 252.478106c0 107.775192-165.086762 313.405649-252.478106 410.524921-87.423344-97.119272-252.478106-302.749729-252.478107-410.524921A252.766104 252.766104 0 0 1 703.774562 63.99952z" fill="#fb3123" p-id="4498"></path></svg>
|
After Width: | Height: | Size: 1.9 KiB |
Loading…
Reference in New Issue