update
This commit is contained in:
@@ -341,6 +341,27 @@ const system = {
|
||||
data: data
|
||||
});
|
||||
},
|
||||
createQrcode: async (data) => {
|
||||
return request({
|
||||
method: MethodsENUM.POST,
|
||||
url: "/index/createQrcode",
|
||||
data: data
|
||||
});
|
||||
},
|
||||
getMyTop: async (data) => {
|
||||
return request({
|
||||
method: MethodsENUM.POST,
|
||||
url: "/user/getMyTop",
|
||||
data: data
|
||||
});
|
||||
},
|
||||
myTeamList: async (data) => {
|
||||
return request({
|
||||
method: MethodsENUM.POST,
|
||||
url: "/user/myTeamList",
|
||||
data: data
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
export default system;
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
<script setup>
|
||||
import {onMounted, reactive} from "vue";
|
||||
import {reactive, watch} from "vue";
|
||||
import XModal from "./XModal.vue";
|
||||
import XQrCode from "./XQrCode.vue";
|
||||
import Api from "../api/index.js";
|
||||
|
||||
const show = defineModel('show');
|
||||
const detail = reactive({});
|
||||
|
||||
onMounted(() => {
|
||||
Api.system.getQrcode(1).then(({data}) => {
|
||||
watch(
|
||||
() => show.value,
|
||||
(val) => {
|
||||
if (val) Api.system.getQrcode(1).then(({data}) => {
|
||||
Object.assign(detail, data);
|
||||
});
|
||||
});
|
||||
},
|
||||
)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
<script setup>
|
||||
import {onMounted} from "vue";
|
||||
import {watch, ref} from "vue";
|
||||
import XModal from "./XModal.vue";
|
||||
import XQrCode from "./XQrCode.vue";
|
||||
import Api from "../api/index.js";
|
||||
|
||||
const show = defineModel('show');
|
||||
const qrCode = ref(null);
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
});
|
||||
watch(
|
||||
() => show.value,
|
||||
(val) => {
|
||||
if (val) Api.system.createQrcode().then(({data}) => {
|
||||
qrCode.value = data.url;
|
||||
})
|
||||
}
|
||||
)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -23,7 +29,8 @@ onMounted(() => {
|
||||
|
||||
<view class="title">绑定</view>
|
||||
<view class="!mt-[24rpx] w-[320rpx] !mx-auto aspect-square">
|
||||
<x-qr-code size="320rpx" :qrSize="180" content="公众号"></x-qr-code>
|
||||
<image v-if="qrCode" class="!size-full" :src="qrCode"></image>
|
||||
<tui-loading v-else type="row"></tui-loading>
|
||||
</view>
|
||||
<view class="desc !mt-[24rpx]">截图保存后,使用微信扫码并关注</view>
|
||||
</view>
|
||||
|
||||
@@ -9,13 +9,25 @@ import {reactive, ref} from "vue";
|
||||
import XFilterItem from "../../components/XFilterItem.vue";
|
||||
import XRadioGroup from "../../components/XRadioGroup.vue";
|
||||
import XRadio from "../../components/XRadio.vue";
|
||||
import useTableQuery from "../../hooks/useTableQuery.js";
|
||||
import Api from "../../api/index.js";
|
||||
|
||||
const isVague = ref(false);
|
||||
const showFilter = ref(false);
|
||||
const isSearch = ref(false);
|
||||
const po = reactive({});
|
||||
const vo = reactive({});
|
||||
const sumPo = reactive({
|
||||
type: 0,
|
||||
});
|
||||
|
||||
const {loading, pagination, initFetchData} = useTableQuery({
|
||||
api: Api.system.myTeamList,
|
||||
parameter: po,
|
||||
callback: (data) => {
|
||||
Object.assign(vo, data);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -101,28 +113,28 @@ const sumPo = reactive({
|
||||
</view>
|
||||
|
||||
<view class="p-[20rpx] !flex flex-col gap-[20rpx]">
|
||||
<view v-for="item in 20" class="rounded-[8rpx] bg-[#fff] p-[24rpx] flex-grow">
|
||||
<view v-for="v in vo.rows" class="rounded-[8rpx] bg-[#fff] p-[24rpx] flex-grow">
|
||||
<view :class="['!flex gap-[18rpx]', isVague?'vague':'']">
|
||||
<image class="!size-[88rpx] rounded-[16rpx]" :src="Avatar" mode="aspectFill"></image>
|
||||
<image class="!size-[88rpx] rounded-[16rpx]" :src="v.avatar" mode="aspectFill"></image>
|
||||
<view class="flex-grow h-full !flex flex-col justify-between gap-[14rpx]">
|
||||
<view class="!flex justify-between items-center">
|
||||
<view class="test-28r">一只哈里路</view>
|
||||
<view class="text-[#86909C] test-24r">2024-01-26 加入</view>
|
||||
<view class="test-28r">{{ v.nickname }}</view>
|
||||
<view class="text-[#86909C] test-24r">{{ v.createtime }} 加入</view>
|
||||
</view>
|
||||
<view class="!flex flex-wrap">
|
||||
<view class="py-[3rpx] px-[8rpx] test-20r bg-[#F2F3F5]">id:53379</view>
|
||||
<view class="py-[3rpx] px-[8rpx] test-20r bg-[#F2F3F5]">id:{{ v.uid }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="!flex gap-[22rpx] !mt-[20rpx]">
|
||||
<view class="!flex items-center py-[10rpx] px-[20rpx] bg-[#E8F3FF] flex-grow test-24r">
|
||||
<view>收益:</view>
|
||||
<view class="text-[var(--primary-color)]">245.14</view>
|
||||
<view class="text-[var(--primary-color)]">{{ Number(v.income).toFixed(2) }}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="['!flex items-center py-[10rpx] px-[20rpx] bg-[#E8F3FF] flex-grow test-24r', isVague?'vague':'']">
|
||||
<view>收益:</view>
|
||||
<view class="text-[var(--primary-color)]">245.14</view>
|
||||
<view>奖励:</view>
|
||||
<view class="text-[var(--primary-color)]">{{ Number(v.reward).toFixed(2) }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -5,15 +5,19 @@ import BD3 from "../../static/icons/bd3.png";
|
||||
import BD4 from "../../static/icons/bd4.png";
|
||||
import BDH from "../../static/icons/bdh.png";
|
||||
import WBDICON from "../../static/icons/缺省图.png";
|
||||
import YBDICON from "../../static/icons/已绑定.png";
|
||||
import XNav from "../../components/XNav.vue";
|
||||
import BindMsgModal from "../../components/BindMsgModal.vue";
|
||||
import {useUserStore} from "../../pinia/UserStore/index.js";
|
||||
|
||||
const UserStore = useUserStore();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<!--消息推送-->
|
||||
<x-nav></x-nav>
|
||||
|
||||
<view class="!flex flex-col items-center !mt-[128rpx]">
|
||||
<view v-if="!UserStore.userInfo.openid" class="!flex flex-col items-center !mt-[128rpx]">
|
||||
<image class="!size-[260rpx]" mode="aspectFill" :src="WBDICON"></image>
|
||||
<view class="!mt-[-70rpx] relative z-10">暂未绑定</view>
|
||||
<view class="text-[#86909C] test-28r">当前消息推送无法使用,将影响您收益!</view>
|
||||
@@ -24,6 +28,17 @@ import BindMsgModal from "../../components/BindMsgModal.vue";
|
||||
</bind-msg-modal>
|
||||
</view>
|
||||
|
||||
<view v-else class="!flex flex-col items-center !mt-[128rpx]">
|
||||
<image class="!size-[260rpx]" mode="aspectFill" :src="YBDICON"></image>
|
||||
<view class="!mt-[-70rpx] relative z-10">已绑定</view>
|
||||
<view class="text-[#86909C] test-28r">{{ UserStore.userInfo.mobile }}可正常接收消息</view>
|
||||
|
||||
<bind-msg-modal>
|
||||
<view class="!mt-[80rpx] rounded-[4rpx] bg-[var(--primary-color)] text-[#fff] py-[10rpx] px-[32rpx]">重新绑定
|
||||
</view>
|
||||
</bind-msg-modal>
|
||||
</view>
|
||||
|
||||
<view class="btm h-[50vh] !flex flex-col items-center px-[40rpx] !mx-[20rpx]">
|
||||
<image class="!w-[300rpx] !mt-[40rpx] !mb-[40rpx]" mode="widthFix" :src="BDH"></image>
|
||||
<view class="!flex items-center bg-[#fff] p-[28rpx] w-full rounded-[16rpx] gap-[28rpx]">
|
||||
|
||||
@@ -1,13 +1,29 @@
|
||||
<script setup>
|
||||
import Avatar from '../../../static/images/Avatar.png'
|
||||
import {onMounted, reactive} from "vue";
|
||||
import Api from "../../../api/index.js";
|
||||
|
||||
const detail = reactive({});
|
||||
|
||||
onMounted(() => {
|
||||
Api.system.getMyTop().then(({data}) => {
|
||||
Object.assign(detail, data);
|
||||
});
|
||||
});
|
||||
|
||||
const callPhone = () => {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: detail.mobile,
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<view class="p-[20rpx] bg-[#F2F3F5] rounded-[16rpx] !mt-[40rpx] !flex items-center">
|
||||
<image class="!size-[64rpx]" mode="aspectFill" :src="Avatar"></image>
|
||||
<view class="test-24r !ml-[24rpx]">Adam</view>
|
||||
<view class="p-[20rpx] bg-[#F2F3F5] rounded-[16rpx] !mt-[40rpx] !flex items-center" v-if="detail.id">
|
||||
<image class="!size-[64rpx]" mode="aspectFill" :src="detail.avatar"></image>
|
||||
<view class="test-24r !ml-[24rpx]">{{ detail.nickname }}</view>
|
||||
|
||||
<view
|
||||
@click="callPhone"
|
||||
class="px-[20rpx] py-[7rpx] test-22r text-[#fff] rounded-full bg-[var(--primary-color)] !flex items-center justify-center !ml-auto">
|
||||
联系TA
|
||||
</view>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script setup>
|
||||
import {defineAsyncComponent, onMounted, ref} from 'vue';
|
||||
import {defineAsyncComponent, onMounted, ref, reactive} from 'vue';
|
||||
import ICON1 from '../../static/icons/icon_提现记录.png';
|
||||
import ICON2 from '../../static/icons/icon_变动记录.png';
|
||||
import ICON3 from '../../static/icons/icon_我的钱包.png';
|
||||
@@ -13,6 +13,7 @@ import XNav from "../../components/XNav.vue";
|
||||
import CreditScore from "../../components/CreditScore.vue";
|
||||
import {toPage} from "../../utils/uils.js";
|
||||
import {useUserStore} from "../../pinia/UserStore/index.js";
|
||||
import AddCustomerServiceModal from "../../components/AddCustomerServiceModal.vue";
|
||||
|
||||
// #ifdef APP-PLUS
|
||||
// #endif
|
||||
@@ -43,6 +44,9 @@ const tabs = [
|
||||
]
|
||||
|
||||
const UserStore = useUserStore();
|
||||
const state = reactive({
|
||||
showAddCustomer: false,
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
UserStore.getUserInfo();
|
||||
@@ -150,7 +154,7 @@ onMounted(() => {
|
||||
<image class="!size-[84rpx]" mode="aspectFill" :src="ICON5"></image>
|
||||
<view class="test-24r">账号管理</view>
|
||||
</view>
|
||||
<view class="!flex items-center flex-col justify-center gap-[12rpx]">
|
||||
<view class="!flex items-center flex-col justify-center gap-[12rpx]" @click="state.showAddCustomer=true">
|
||||
<image class="!size-[84rpx]" mode="aspectFill" :src="ICON6"></image>
|
||||
<view class="test-24r">联系客服</view>
|
||||
</view>
|
||||
@@ -161,6 +165,8 @@ onMounted(() => {
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<add-customer-service-modal v-model:show="state.showAddCustomer"></add-customer-service-modal>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
BIN
src/static/icons/已绑定.png
Normal file
BIN
src/static/icons/已绑定.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Reference in New Issue
Block a user