feat(hjf): 伞下积分奖励开关、隐藏会员码、资产与排队页跳转及样式
- 后台排队配置:伞下积分奖励开关及 API - PointsRewardServices:仅对 depth>0 祖先应用伞下开关,直推逻辑不变 - 会员模板隐藏会员码;资产页积分明细跳转与背景/渐变 - 排队状态页链接参数与样式对齐;移除误提交 pro_v3.5.1_副本 全量副本 Made-with: Cursor
This commit is contained in:
@@ -11,10 +11,14 @@ export function queueOrderList(data) {
|
||||
}
|
||||
export const queueOrderListApi = queueOrderList;
|
||||
|
||||
// 以下接口已被 CRMEB 分销设置页覆盖,保留空壳
|
||||
export function queueConfig() { return Promise.resolve({ status: 200, data: {} }); }
|
||||
export function queueConfig() {
|
||||
return request({ url: 'hjf/queue/config', method: 'get' });
|
||||
}
|
||||
export const queueConfigGetApi = queueConfig;
|
||||
export function queueConfigSave(data) { return Promise.resolve({ status: 200, data: {} }); }
|
||||
|
||||
export function queueConfigSave(data) {
|
||||
return request({ url: 'hjf/queue/config', method: 'post', data });
|
||||
}
|
||||
export const queueConfigSaveApi = queueConfigSave;
|
||||
export function queueFinanceList(data) {
|
||||
return request({ url: 'agent/brokerage_record', method: 'get', params: data });
|
||||
|
||||
@@ -48,6 +48,17 @@
|
||||
<span class="form-tip">关闭后新订单不再加入公排队列</span>
|
||||
</FormItem>
|
||||
|
||||
<FormItem label="伞下积分奖励:">
|
||||
<i-switch
|
||||
v-model="formData.umbrella_reward_enable"
|
||||
size="large"
|
||||
>
|
||||
<span slot="open">启用</span>
|
||||
<span slot="close">停用</span>
|
||||
</i-switch>
|
||||
<span class="form-tip">开启后报单订单触发伞下(级差)积分奖励,默认关闭</span>
|
||||
</FormItem>
|
||||
|
||||
<FormItem>
|
||||
<Button
|
||||
type="primary"
|
||||
@@ -74,7 +85,8 @@ export default {
|
||||
formData: {
|
||||
trigger_multiple: 4,
|
||||
refund_cycle: 30,
|
||||
enabled: true
|
||||
enabled: true,
|
||||
umbrella_reward_enable: false
|
||||
},
|
||||
originalData: {},
|
||||
formRules: {
|
||||
@@ -103,7 +115,8 @@ export default {
|
||||
this.formData = {
|
||||
trigger_multiple: res.data.trigger_multiple,
|
||||
refund_cycle: res.data.refund_cycle,
|
||||
enabled: !!res.data.enabled
|
||||
enabled: !!res.data.enabled,
|
||||
umbrella_reward_enable: !!res.data.umbrella_reward_enable
|
||||
};
|
||||
this.originalData = { ...this.formData };
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<view class="progress-ring" :style="ringStyle">
|
||||
<view class="progress-ring-inner">
|
||||
<text class="progress-text">{{ cycleCurrent }}/{{ cycleTotal }}</text>
|
||||
<text class="progress-subtext">本周期</text>
|
||||
<!-- <text class="progress-subtext">本周期</text> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -131,7 +131,7 @@ export default {
|
||||
}
|
||||
|
||||
.progress-text {
|
||||
font-size: 32rpx;
|
||||
font-size: 42rpx;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
line-height: 1.1;
|
||||
@@ -160,7 +160,7 @@ export default {
|
||||
min-width: 100rpx;
|
||||
|
||||
&--active {
|
||||
background: var(--view-theme, #e93323);
|
||||
background:#000000;
|
||||
|
||||
.cycle-rate-item__pos,
|
||||
.cycle-rate-item__rate {
|
||||
@@ -204,11 +204,11 @@ export default {
|
||||
align-items: center;
|
||||
margin-top: 16rpx;
|
||||
font-size: 24rpx;
|
||||
color: #666;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.progress-value {
|
||||
font-weight: 600;
|
||||
color: var(--view-theme);
|
||||
// color: var(--view-theme);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -223,11 +223,8 @@
|
||||
"domain" : "",
|
||||
"sdkConfigs" : {
|
||||
"maps" : {
|
||||
"qqmap" : {
|
||||
"key" : "7TLBZ-WKSWN-23LF7-SITZ5-S44SJ-2BBG4"
|
||||
},
|
||||
"tencent" : {
|
||||
"key" : "NCWBZ-JZCE4-3CUUB-FO4F3-JQZMO-YQFV2"
|
||||
"key" : "5NYBZ-32BK3-IOZ3F-R7KYE-WJ2PQ-CLBRB"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="hjf-assets-page" :style="colorStyle">
|
||||
<!-- #ifdef MP -->
|
||||
<NavBar titleText="我的资产" :iconColor="iconColor" :textColor="iconColor" showBack :isScrolling="isScrolling"></NavBar>
|
||||
<!-- #ifdef MP || APP-PLUS -->
|
||||
<NavBar titleText="我的资产" :iconColor="iconColor" :textColor="iconColor" :isScrolling="isScrolling" showBack></NavBar>
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="assets-wrapper">
|
||||
@@ -119,9 +119,7 @@
|
||||
<script>
|
||||
import { getAssetsOverview } from '@/api/hjfAssets.js';
|
||||
import colors from '@/mixins/color.js';
|
||||
// #ifdef MP
|
||||
import NavBar from '@/components/NavBar.vue';
|
||||
// #endif
|
||||
|
||||
export default {
|
||||
name: 'AssetsIndex',
|
||||
@@ -129,15 +127,15 @@ export default {
|
||||
mixins: [colors],
|
||||
|
||||
components: {
|
||||
// #ifdef MP
|
||||
NavBar,
|
||||
// #endif
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
iconColor: '#FFFFFF',
|
||||
// #ifdef MP || APP-PLUS
|
||||
iconColor: '#000000',
|
||||
isScrolling: false,
|
||||
// #endif
|
||||
assetsInfo: null,
|
||||
loading: false
|
||||
};
|
||||
@@ -175,15 +173,18 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
// #ifdef MP
|
||||
onPageScroll(e) {
|
||||
uni.$emit('scroll');
|
||||
if (e.scrollTop > 50) {
|
||||
this.isScrolling = true;
|
||||
this.iconColor = '#333333';
|
||||
} else {
|
||||
this.iconColor = '#000000';
|
||||
} else if (e.scrollTop < 50) {
|
||||
this.isScrolling = false;
|
||||
this.iconColor = '#FFFFFF';
|
||||
}
|
||||
},
|
||||
// #endif
|
||||
|
||||
methods: {
|
||||
fetchAssetsOverview() {
|
||||
@@ -203,7 +204,7 @@ export default {
|
||||
},
|
||||
|
||||
goPointsDetail() {
|
||||
uni.navigateTo({ url: '/pages/assets/points_detail' });
|
||||
uni.navigateTo({ url: '/pages/users/user_integral_detail/index' });
|
||||
},
|
||||
|
||||
goCashDetail() {
|
||||
@@ -220,12 +221,12 @@ export default {
|
||||
<style scoped lang="scss">
|
||||
.hjf-assets-page {
|
||||
min-height: 100vh;
|
||||
background-color: #db5d02;
|
||||
background-color: #f4f5f7;
|
||||
padding-bottom: 60rpx;
|
||||
}
|
||||
|
||||
.assets-wrapper {
|
||||
background: linear-gradient(180deg, var(--view-theme, #e93323) 0%, var(--view-gradient, #f76b1c) 50%, #f4f5f7 100%);
|
||||
// background: linear-gradient(180deg, rgba(233, 51, 35, 0.18) 0%, rgba(247, 107, 28, 0.08) 45%, #f4f5f7 75%);
|
||||
padding-bottom: 4rpx;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="brokerage-page" :style="colorStyle">
|
||||
<!-- #ifdef MP -->
|
||||
<NavBar titleText="佣金状态" :iconColor="iconColor" :textColor="iconColor" showBack :isScrolling="isScrolling"></NavBar>
|
||||
<!-- #ifdef MP || APP-PLUS -->
|
||||
<NavBar titleText="佣金状态" :iconColor="iconColor" :textColor="iconColor" :isScrolling="isScrolling" showBack></NavBar>
|
||||
<!-- #endif -->
|
||||
<!-- 顶部渐变区域 -->
|
||||
<view class="header-gradient">
|
||||
@@ -91,9 +91,7 @@ import HjfRefundNotice from '@/components/HjfRefundNotice.vue';
|
||||
import emptyPage from '@/components/emptyPage.vue';
|
||||
import colors from '@/mixins/color.js';
|
||||
import { spreadOrder } from '@/api/user.js';
|
||||
// #ifdef MP
|
||||
import NavBar from '@/components/NavBar.vue';
|
||||
// #endif
|
||||
|
||||
export default {
|
||||
name: 'BrokerageStatus',
|
||||
@@ -102,15 +100,15 @@ export default {
|
||||
HjfQueueProgress,
|
||||
HjfRefundNotice,
|
||||
emptyPage,
|
||||
// #ifdef MP
|
||||
NavBar,
|
||||
// #endif
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
iconColor: '#FFFFFF',
|
||||
// #ifdef MP || APP-PLUS
|
||||
iconColor: '#000000',
|
||||
isScrolling: false,
|
||||
// #endif
|
||||
progressData: {},
|
||||
records: [],
|
||||
loading: false,
|
||||
@@ -123,15 +121,18 @@ export default {
|
||||
};
|
||||
},
|
||||
|
||||
// #ifdef MP
|
||||
onPageScroll(e) {
|
||||
uni.$emit('scroll');
|
||||
if (e.scrollTop > 50) {
|
||||
this.isScrolling = true;
|
||||
this.iconColor = '#333333';
|
||||
} else {
|
||||
this.iconColor = '#000000';
|
||||
} else if (e.scrollTop < 50) {
|
||||
this.isScrolling = false;
|
||||
this.iconColor = '#FFFFFF';
|
||||
}
|
||||
},
|
||||
// #endif
|
||||
|
||||
onLoad() {
|
||||
this.loadProgress();
|
||||
@@ -183,12 +184,11 @@ export default {
|
||||
<style scoped lang="scss">
|
||||
.brokerage-page {
|
||||
min-height: 100vh;
|
||||
background: #db5d02;
|
||||
background: #f4f5f7;
|
||||
padding-bottom: 60rpx;
|
||||
}
|
||||
|
||||
.header-gradient {
|
||||
background: linear-gradient(90deg, var(--view-theme) 0%, var(--view-gradient) 100%);
|
||||
padding: 40rpx 30rpx 56rpx;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
@@ -205,14 +205,14 @@ export default {
|
||||
.header-card {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background: rgba(255,255,255,0.14);
|
||||
border-radius: 28rpx;
|
||||
background: linear-gradient(90deg, var(--view-theme) 0%, var(--view-gradient) 100%);
|
||||
border-radius: 32rpx;
|
||||
padding: 36rpx 32rpx;
|
||||
}
|
||||
.header-card__label { font-size: 26rpx; color: rgba(255,255,255,0.8); margin-bottom: 8rpx; }
|
||||
.header-card__amount { display: flex; align-items: baseline; margin-bottom: 28rpx; }
|
||||
.header-card__currency { font-size: 36rpx; color: #fff; font-weight: 600; margin-right: 4rpx; }
|
||||
.header-card__value { font-size: 72rpx; font-weight: 700; color: #fff; line-height: 1; }
|
||||
.header-card__value { font-size: 48rpx; font-weight: 700; color: #fff; line-height: 1; }
|
||||
|
||||
.records-section {
|
||||
margin: -16rpx 20rpx 0;
|
||||
@@ -263,10 +263,10 @@ export default {
|
||||
.record-item__left { display: flex; align-items: center; gap: 20rpx; }
|
||||
.record-item__avatar-wrap { width: 76rpx; height: 76rpx; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
|
||||
.record-item__avatar { width: 100%; height: 100%; }
|
||||
.record-item__name { font-size: 28rpx; color: #333; font-weight: 500; display: block; }
|
||||
.record-item__name { font-size: 28rpx; color: #333; display: block; }
|
||||
.record-item__time { font-size: 22rpx; color: #999; display: block; margin-top: 6rpx; }
|
||||
.record-item__right { text-align: right; }
|
||||
.record-item__amount { font-size: 34rpx; font-weight: 700; color: #e93323; display: block; }
|
||||
.record-item__amount { font-size: 30rpx; display: block; }
|
||||
.record-item__type { font-size: 22rpx; color: #aaa; display: block; margin-top: 4rpx; }
|
||||
|
||||
.load-more { padding: 32rpx 0 20rpx; text-align: center; }
|
||||
|
||||
@@ -65,7 +65,7 @@ export default {
|
||||
|
||||
</view>
|
||||
<view class="text--w111-fff">
|
||||
<text class="iconfont icon-a-ic_QRcode fs-40" @tap="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text v-if="false" class="iconfont icon-a-ic_QRcode fs-40" @tap="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text class="iconfont icon-a-ic_setup1 fs-40 mx-32" @tap="intoPage('/pages/users/user_set/index')"></text>
|
||||
<text class="iconfont icon-ic_message3 fs-40 relative" @tap="intoPage('/pages/users/message_center/index')">
|
||||
<text v-if="userInfo.service_num" class="number">{{ userInfo.service_num >= 100 ? '99+' : userInfo.service_num }}</text>
|
||||
|
||||
@@ -51,7 +51,7 @@ export default {
|
||||
<view class="phone" v-else>{{ perShowType ? 'ID:' + userInfo.uid : userInfo.phone }}</view>
|
||||
</template>
|
||||
</view>
|
||||
<text class="iconfont icon-a-ic_QRcode set-icon fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text v-if="false" class="iconfont icon-a-ic_QRcode set-icon fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text class="iconfont icon-a-ic_setup1 set-icon fs-40 mx-34" @click="intoPage('/pages/users/user_set/index')"></text>
|
||||
<text class="iconfont icon-ic_message3 set-icon fs-40" @click="intoPage('/pages/users/message_center/index')">
|
||||
<text v-if="userInfo.service_num" class="number">{{ userInfo.service_num >= 100 ? '99+' : userInfo.service_num }}</text>
|
||||
|
||||
@@ -70,7 +70,7 @@ export default {
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<text class="iconfont icon-a-ic_QRcode fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text v-if="false" class="iconfont icon-a-ic_QRcode fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text class="iconfont icon-a-ic_setup1 fs-40 mx-34" @click="intoPage('/pages/users/user_set/index')"></text>
|
||||
<text class="iconfont icon-ic_message3 fs-40" @click="intoPage('/pages/users/message_center/index')">
|
||||
<text v-if="userInfo.service_num" class="number">{{ userInfo.service_num >= 100 ? '99+' : userInfo.service_num }}</text>
|
||||
|
||||
@@ -54,7 +54,7 @@ export default {
|
||||
<view class="phone" v-else>{{ perShowType ? 'ID:' + userInfo.uid : userInfo.phone }}</view>
|
||||
</template>
|
||||
</view>
|
||||
<text class="iconfont icon-a-ic_QRcode fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text v-if="false" class="iconfont icon-a-ic_QRcode fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text class="iconfont icon-a-ic_setup1 fs-40 mx-34" @click="intoPage('/pages/users/user_set/index')"></text>
|
||||
<text class="iconfont icon-ic_message3 fs-40" @click="intoPage('/pages/users/message_center/index')">
|
||||
<text v-if="userInfo.service_num" class="number">{{ userInfo.service_num >= 100 ? '99+' : userInfo.service_num }}</text>
|
||||
|
||||
@@ -70,7 +70,7 @@ export default {
|
||||
</template>
|
||||
</view>
|
||||
<view>
|
||||
<text class="iconfont icon-a-ic_QRcode fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text v-if="false" class="iconfont icon-a-ic_QRcode fs-40" @click="tapQrCode"><text class="tips">会员码</text></text>
|
||||
<text class="iconfont icon-a-ic_setup1 fs-40 mx-34" @click="intoPage('/pages/users/user_set/index')"></text>
|
||||
<text class="iconfont icon-ic_message3 fs-40" @click="intoPage('/pages/users/message_center/index')">
|
||||
<text v-if="userInfo.service_num" class="number">{{ userInfo.service_num >= 100 ? '99+' : userInfo.service_num }}</text>
|
||||
|
||||
@@ -203,16 +203,6 @@
|
||||
img: 'spread_yq.png',
|
||||
name: '邀请好友',
|
||||
jump_type: 5
|
||||
},
|
||||
{
|
||||
img: 'spread_dj.png',
|
||||
name: '分销等级',
|
||||
jump_type: 10
|
||||
},
|
||||
{
|
||||
img: 'spread_sm.png',
|
||||
name: '分销说明',
|
||||
jump_type: 11
|
||||
}
|
||||
],
|
||||
// 代理商列表
|
||||
|
||||
Reference in New Issue
Block a user