feat:数字积分加枚举

This commit is contained in:
2026-05-22 11:31:00 +08:00
parent 2a92567835
commit 5512e17b94
23 changed files with 1553 additions and 1497 deletions
+1 -1
View File
@@ -128,7 +128,7 @@ export default {
color: #000;
}
.text-zu1 {
.text-gray {
color: #333;
}
+11 -11
View File
@@ -14,7 +14,7 @@
<scroll-view :scroll-x="true" class="address-select-view">
<view class="address-select-view-scroll">
<view class="select-box" @click="onSelectItrm(item,index)" v-for="(item,index) in selectList" :key="index">
<text class="text-28 text-zu1" :style="{color:index == curSelect ? '#7934F6' : '#333',
<text class="text-28 text-gray" :style="{color:index == curSelect ? '#7934F6' : '#333',
'white-space':'nowrap',}">{{item.name}}</text>
<view class="select-line" v-if="index == curSelect"></view>
</view>
@@ -23,21 +23,21 @@
</scroll-view>
<scroll-view :scroll-y="true" class="address-bottom-list" :scroll-into-view="scrollId">
<view class="address-data-view" v-for="(item,index) in dataList" :key="index" :id="item.zi">
<text class="text-32 text-zu1 text-bold">{{item.zi}}</text>
<text class="text-32 text-gray text-bold">{{item.zi}}</text>
<view class="address-data-data" @click="onItem(item,xItem)" v-for="(xItem,xIndex) in item.data" :key="xIndex">
<text class="text-32 text-zu1 ">{{xItem.name}}</text>
<text class="text-32 text-gray ">{{xItem.name}}</text>
</view>
</view>
</scroll-view>
<view class="right-zi-view" v-if="dataList.length">
<view class="zi-box" v-for="(item,index) in dataList" @click="onMao(item.zi)" :key="index">
<text class="text-24 text-zu1">{{item.zi}}</text>
<text class="text-24 text-gray">{{item.zi}}</text>
</view>
</view>
</view>
</up-popup>
</template>
</up-popup>
</template>
<script>
import Func from '/utils/func'
import MyBtn from '@/components/common/my-btn.vue'
@@ -94,9 +94,9 @@
this.$emit('itemSelect',item,xItem);
}
}
}
</script>
}
</script>
<style lang="scss" scoped>
.address-popup-view{
width:100vw;
@@ -193,5 +193,5 @@
padding: 0 32rpx;
box-sizing: border-box;
}
}
}
</style>
+3 -3
View File
@@ -3,12 +3,12 @@
<view class="down-panel">
<view class="flex-r-lr mt-24">
<view></view>
<text class="text-zu1 text-32">{{title}}</text>
<text class="text-gray text-32">{{title}}</text>
<image src="https://static.tbmall.xin/static/new/close.png" @click.stop="onCancel" class="close-img"></image>
</view>
<text class="text-zu1 text-48 mt-88">{{articleTitle}}</text>
<text class="text-gray text-48 mt-88">{{articleTitle}}</text>
<view class="content-text mt-48">
<text class="text-28 text-zu1">
<text class="text-28 text-gray">
{{contentText}}
</text>
</view>
+1 -1
View File
@@ -16,7 +16,7 @@
</view>
<text class="text-32 text-zi text-bold" style="margin-top:16rpx">¥<text class="text-44">{{dataObj.minPrice}}</text>
</text>
<text class="text-32 text-zu1 text-overflow1" style="margin-top:16rpx">{{dataObj.name}}</text>
<text class="text-32 text-gray text-overflow1" style="margin-top:16rpx">{{dataObj.name}}</text>
<MyBtn text="查看详情" wd="100%" br="44rpx" @ok="onOk" style="margin-top:24rpx"></MyBtn>
</view>
</up-popup>
@@ -19,14 +19,14 @@
<image src="https://static.tbmall.xin/static/new/icon_zy.png" class="icon-img"></image>
<text class="text-20 text-zi">注:所有数据均截止到进入页面的时间,返回再进入页面数据会更新。</text>
</view>
<text class="text-32 text-zu1" style="margin-top:40rpx;font-weight: 500;">用户信息</text>
<text class="text-32 text-gray" style="margin-top:40rpx;font-weight: 500;">用户信息</text>
<view class="bottom-view">
<view class="bottom-box" v-for="(item,index) in dataList" :key="index">
<view class="bottom-top">
<!-- <image src="/https://static.tbmall.xin/static/new/tab.png"></image> -->
<image :src="item.userUrl"></image>
<view class="bottom-top-right">
<text class="text-32 text-zu1" style="font-weight: 500;">{{item.userName}}
<text class="text-32 text-gray" style="font-weight: 500;">{{item.userName}}
<text class="text-28 text-fu">({{item.gradeName}})</text>
</text>
<text class="text-26 text-fu1">ID:{{item.userId}}
@@ -36,11 +36,11 @@
</view>
<view class="bottom-bottom-panel">
<view class="bottom-bottom-box" style="border-right: 2rpx solid #F5F5F5;">
<text class="text-36 text-bold text-zu1">{{item.teamPerformance.teamAmount}}</text>
<text class="text-36 text-bold text-gray">{{item.teamPerformance.teamAmount}}</text>
<text class="text-24 text-fu1">订单金额</text>
</view>
<view class="bottom-bottom-box">
<text class="text-36 text-bold text-zu1">{{item.teamPerformance.teamCount}}</text>
<text class="text-36 text-bold text-gray">{{item.teamPerformance.teamCount}}</text>
<text class="text-24 text-fu1">团队人数</text>
</view>
</view>
File diff suppressed because it is too large Load Diff
+6 -1
View File
@@ -30,6 +30,11 @@
}}</view>
</view>
<view class="bottom_item" v-if="item.categoty == 'vcoin'">
<view class="bottom_item_amount">{{ item.bonusAmount || 0 }}</view>
<view class="bottom_item_title">分红余额</view>
</view>
<view class="bottom_item" @click.stop="onTip(vIndex)">
<view class="bottom_item_lock">{{ item.lockAmount || 0 }}</view>
<view class="bottom_item_title">{{ item.categoty === "raffle" ? "不可用次数" : "不可用余额" }}
@@ -151,7 +156,7 @@ export default {
"&curId=" +
item.curId +
"&preId=" +
item.preId,
item.preId + "&bonusId=" + item.bonusId,
});
},
// 查询余额
@@ -31,15 +31,15 @@
<view class="icon-top-view" v-if="form.category == 'expend' || form.category == 'balance'">
<view class="top-view">
<view class="top-left-view">
<text class="text-36 text-zu1 text-bold">{{headerData[source[0].key]}}</text>
<text class="text-36 text-gray text-bold">{{headerData[source[0].key]}}</text>
<text class="text-24 text-fu1">{{source[0].name}}</text>
<text class="text-36 text-zu1 text-bold" style="margin-top:40rpx">{{headerData[source[2].key]}}</text>
<text class="text-36 text-gray text-bold" style="margin-top:40rpx">{{headerData[source[2].key]}}</text>
<text class="text-24 text-fu1">{{source[2].name}}</text>
</view>
<view class="top-left-view" style="border-width: 0;">
<text class="text-36 text-zu1 text-bold">{{headerData[source[1].key]}}</text>
<text class="text-36 text-gray text-bold">{{headerData[source[1].key]}}</text>
<text class="text-24 text-fu1">{{source[1].name}}</text>
<text class="text-36 text-zu1 text-bold" style="margin-top:40rpx">{{headerData[source[3].key]}}</text>
<text class="text-36 text-gray text-bold" style="margin-top:40rpx">{{headerData[source[3].key]}}</text>
<text class="text-24 text-fu1">{{source[3].name}}</text>
</view>
</view>
@@ -47,11 +47,11 @@
<view class="icon-top-view" style="height:178rpx;min-height:178rpx;margin-top:24rpx" v-if="form.category == 'vcoin'">
<view class="top-view">
<view class="top-left-view">
<text class="text-36 text-zu1 text-bold">{{headerData[source[0].key]}}</text>
<text class="text-36 text-gray text-bold">{{headerData[source[0].key]}}</text>
<text class="text-24 text-fu1">{{source[0].name}}</text>
</view>
<view class="top-left-view" style="border-width: 0;">
<text class="text-36 text-zu1 text-bold">{{headerData[source[1].key]}}</text>
<text class="text-36 text-gray text-bold">{{headerData[source[1].key]}}</text>
<text class="text-24 text-fu1">{{source[1].name}}</text>
</view>
</view>
@@ -109,9 +109,7 @@ export default {
data() {
return {
infoList: [
],
infoList: [],
source: [],
headerData: {},
selInfo: "cur",
@@ -125,6 +123,7 @@ export default {
lockId: 0,
curId: 0,
preId: 0,
bonusId: 0,
}
},
onLoad(option) {
@@ -135,6 +134,7 @@ export default {
const lockId = option.lockId;
const curId = option.curId;
const preId = option.preId;
const bonusId = option.bonusId;
// 分红金额 balance
@@ -186,6 +186,10 @@ export default {
name: "锁定账户",
key: "lockAmount"
},
{
name: "分红",
key: "bonusAmount"
},
// {
// name: "预存款账户",
@@ -297,6 +301,9 @@ export default {
if (preId && preId !== 'null') {
this.preId = preId;
}
if (bonusId && bonusId !== 'null') {
this.bonusId = bonusId;
}
// this.onGetAcctFlowList();
@@ -370,9 +377,6 @@ export default {
selectInfo(item = null) {
// if(item == null){
// item.key = 'cur'
// }
this.orderList = [];
this.form.page = 1;
this.selInfo = item.key;
@@ -387,6 +391,9 @@ export default {
if (item.key === "pre") {
id = this.preId;
}
if (item.key === "bonusAmount") {
id = this.bonusId;
}
this.form.id = id;
this.loadData();
@@ -169,7 +169,7 @@
<view class="tui-list">
<view class="tui-box" :key="index" v-for="(item, index) in tuiList">
<image :src="`/static/new/tui_${index}.png`"></image>
<text class="text-24 text-zu1">{{ item }}</text>
<text class="text-24 text-gray">{{ item }}</text>
</view>
<!-- tuiList -->
</view>
+3 -3
View File
@@ -4,12 +4,12 @@
<Header :title="topText" bgColor="rgba(0,0,0,0)" />
<view class="setting-view">
<view class="mid-view">
<text class="text-zu1 text-32" v-if="type == 1">注:请与当前登录微信信息一致</text>
<text class="text-zu1 text-32 mt-24">{{type == 0 ? '支付宝账号' : '微信账号'}}</text>
<text class="text-gray text-32" v-if="type == 1">注:请与当前登录微信信息一致</text>
<text class="text-gray text-32 mt-24">{{type == 0 ? '支付宝账号' : '微信账号'}}</text>
<view class="input-view">
<up-input :placeholder="`请输入${type == 0 ? '支付宝' : '微信'}账号`" border="surround" v-model="account" :customStyle="inputCss"></up-input>
</view>
<text class="text-zu1 text-32 mt-48">{{type == 0 ? '支付宝姓名' : '微信姓名'}}</text>
<text class="text-gray text-32 mt-48">{{type == 0 ? '支付宝姓名' : '微信姓名'}}</text>
<view class="input-view">
<up-input :placeholder="`请输入${type == 0 ? '支付宝' : '微信真实'}姓名`" border="surround" v-model="name" :customStyle="inputCss"></up-input>
</view>
@@ -9,7 +9,7 @@
v-else
></image>
<view class="shop-mid-view-one" v-if="dataItem.name != 'WALLET'">
<text class="text-32 text-zu1 text-overflow">{{ dataItem.account }}</text>
<text class="text-32 text-gray text-overflow">{{ dataItem.account }}</text>
</view>
<view class="shop-mid-view" v-else>
<text class="text-30 text-fu1 text-overflow">{{ address }}</text>
@@ -2,11 +2,11 @@
<view class="shop-item-view" >
<image :src="type == 2 ? 'https://static.tbmall.xin/static/new/zfb.png' : 'https://static.tbmall.xin/static/new/wx.png'" ></image>
<view class="show-item-left">
<text class="text-32 text-zu1">{{itemData.name}}</text>
<text class="text-32 text-gray">{{itemData.name}}</text>
<text class="text-26 text-fu1">账号:{{itemData.account}}</text>
</view>
<view class="item-right-btn" @click="onBtn">
<text class="text-zu1 text-24">解绑</text>
<text class="text-gray text-24">解绑</text>
</view>
</view>
</template>
@@ -10,7 +10,7 @@
<view class="item-mid-list" v-for="(item,index) in data" :key="item.id">
<image :src="type == 1 ? 'https://static.tbmall.xin/static/new/zfb.png' : 'https://static.tbmall.xin/static/new/wx.png'" ></image>
<view class="show-item-left">
<text class="text-32 text-zu1">{{item.name}}</text>
<text class="text-32 text-gray">{{item.name}}</text>
<text class="text-26 text-fu1">账号:{{item.account}}</text>
</view>
<u-radio-group v-model="itemSelect" style="position: absolute;right:28rpx">
@@ -18,7 +18,7 @@
style="min-width: 88rpx; heihgt: 88rpx"
></image>
<view class="item-mid-li">
<text class="text-32 text-zu1">券商登记地址</text>
<text class="text-32 text-gray">券商登记地址</text>
<text class="text-28 text-fu">{{ item.addressOne }}</text>
</view>
</view>
@@ -9,7 +9,7 @@
<view class="select-box" @click="onOk(0)">
<image src="https://static.tbmall.xin/static/new/shu_0.png"></image>
<view class="select-box-one">
<text class="text-32 text-zu1">券商地址登记</text>
<text class="text-32 text-gray">券商地址登记</text>
<text class="text-26 text-fu1">通过券商兑换</text>
</view>
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
@@ -17,7 +17,7 @@
<!-- <view class="select-box" @click="onOk(1)">
<image src="https://static.tbmall.xin/static/new/shu_1.png"></image>
<view class="select-box-one">
<text class="text-32 text-zu1">alpha数字积分</text>
<text class="text-32 text-gray">alpha数字积分</text>
<text class="text-26 text-fu1">通过邮箱兑换</text>
</view>
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
+2 -2
View File
@@ -4,11 +4,11 @@
<Header title="绑定区块链地址" bgColor="rgba(0,0,0,0)" />
<view class="setting-view">
<view class="mid-view">
<text class="text-zu1 text-32 mt-24">地址</text>
<text class="text-gray text-32 mt-24">地址</text>
<view class="input-view">
<up-input placeholder="请输入地址" border="surround" v-model="account" :customStyle="inputCss"></up-input>
</view>
<text class="text-zu1 text-32 mt-48">主网络</text>
<text class="text-gray text-32 mt-48">主网络</text>
<view class="input-view">
<up-input placeholder="请选择主网络" border="surround" v-model="name" :customStyle="inputCss"></up-input>
</view>
+6 -6
View File
@@ -18,38 +18,38 @@
</view>
</view>
<view class="mid-view">
<text class="text-zu1 text-32">{{type == 0 ? '提现' : '充值'}}方式</text>
<text class="text-gray text-32">{{type == 0 ? '提现' : '充值'}}方式</text>
<view class="item-view" @click="onSelect('0')" v-if="!isWeb || type != 0">
<image src="https://static.tbmall.xin/static/new/wx.png"></image>
<text class="text-zu1 text-32 " style="margin-left:20rpx;">微信</text>
<text class="text-gray text-32 " style="margin-left:20rpx;">微信</text>
<view class="right-icon-view" v-if="type == 1">
<u-radio-group v-model="curSelect">
<u-radio name="0" activeColor="#7934F6"></u-radio>
</u-radio-group>
</view>
<view class="right-icon-view" v-else>
<text class="text-32 text-zu1" style="margin-right:12rpx" v-if="selectVal && curSelect == '0'">{{selectVal.name + '/' + selectVal.account}}</text>
<text class="text-32 text-gray" style="margin-right:12rpx" v-if="selectVal && curSelect == '0'">{{selectVal.name + '/' + selectVal.account}}</text>
<u-icon size="14" name="arrow-right" color="#333" ></u-icon>
</view>
</view>
<view class="item-view" @click="onSelect('1')" style="border-width: 0;" >
<image src="https://static.tbmall.xin/static/new/zfb.png"></image>
<text class="text-zu1 text-32 " style="margin-left:20rpx;">支付宝</text>
<text class="text-gray text-32 " style="margin-left:20rpx;">支付宝</text>
<view class="right-icon-view" v-if="type == 1">
<u-radio-group v-model="curSelect">
<u-radio name="1" activeColor="#7934F6"></u-radio>
</u-radio-group>
</view>
<view class="right-icon-view" v-else>
<text class="text-32 text-zu1" style="margin-right:12rpx" v-if="selectVal && curSelect == '1'">{{selectVal.name + '/' + selectVal.account}}</text>
<text class="text-32 text-gray" style="margin-right:12rpx" v-if="selectVal && curSelect == '1'">{{selectVal.name + '/' + selectVal.account}}</text>
<u-icon size="14" name="arrow-right" color="#333" ></u-icon>
</view>
</view>
</view>
<view class="mid-view">
<view class="flex-r-lr">
<text class="text-zu1 text-32">{{type == 0 ? '提现' : '充值'}}金额</text>
<text class="text-gray text-32">{{type == 0 ? '提现' : '充值'}}金额</text>
<text class="text-fu1 text-28" v-if="type == 0" style="font-weight:400">每日仅限提现1次</text>
</view>
+13 -13
View File
@@ -18,7 +18,7 @@
<view class="top-line"></view>
<view class="contract-view" v-if="topSelect == 0">
<view class="top-head">
<text class="text-32 text-zu1 text-bold">股权分布</text>
<text class="text-32 text-gray text-bold">股权分布</text>
<text class="text-28 text-fu">51%的股权回馈消费者(免费赠予)。<text v-if="currentUserData?.isNewUser">股权以积分形式发放</text></text>
</view>
<view class="tu-view">
@@ -34,7 +34,7 @@
</view>
<view class="top-line" v-if="currentUserData?.isNewUser"></view>
<view class="top-head" v-if="currentUserData?.isNewUser">
<text class="text-32 text-zu1 text-bold">股权赠予计划</text>
<text class="text-32 text-gray text-bold">股权赠予计划</text>
<text class="text-28 text-fu">51%的股权分五期赠送,前4期每期10%,第五期11%其他分配则为:投资机构,基金会,活动激励,运营团队,推广奖励的集合。</text>
</view>
<view class="tu-view" v-if="currentUserData?.isNewUser">
@@ -47,7 +47,7 @@
:chartData="twoData"/>
</view>
<view class="bottom-view" v-if="currentUserData?.isNewUser">
<text class="text-32 text-zu1 text-bold">免费赠予详细规则</text>
<text class="text-32 text-gray text-bold">免费赠予详细规则</text>
<view class="bottom-head">
<view class="head-one">
<text class="text-24 text-fu">期数</text>
@@ -85,20 +85,20 @@
</view>
</view>
<view class="top-head-1">
<text class="text-32 text-zu1 text-bold">总营收</text>
<text class="text-48 text-zu1 text-bold">¥
<text class="text-64 text-zu1 ">{{curData.totalProfitSharing || 0}}</text>
<text class="text-32 text-gray text-bold">总营收</text>
<text class="text-48 text-gray text-bold">¥
<text class="text-64 text-gray ">{{curData.totalProfitSharing || 0}}</text>
</text>
</view>
<view class="top-head-1" v-if="curTopTwo == 1">
<text class="text-32 text-zu1 text-bold">利润</text>
<text class="text-48 text-zu1 text-bold">¥
<text class="text-64 text-zu1 ">{{curData.profitAmount || 0}}</text>
<text class="text-32 text-gray text-bold">利润</text>
<text class="text-48 text-gray text-bold">¥
<text class="text-64 text-gray ">{{curData.profitAmount || 0}}</text>
</text>
</view>
<view class="top-line"></view>
<view class="top-head">
<text class="text-32 text-zu1 text-bold">商城分配数据</text>
<text class="text-32 text-gray text-bold">商城分配数据</text>
</view>
<view class="tu-view">
<qiun-data-charts
@@ -111,7 +111,7 @@
:chartData="threeData"/>
</view>
<view class="bottom-view">
<text class="text-32 text-zu1 text-bold">分配明细数据</text>
<text class="text-32 text-gray text-bold">分配明细数据</text>
<view class="bottom-head">
<view class="head-one" style="width:278rpx">
<text class="text-24 text-fu">名称</text>
@@ -141,7 +141,7 @@
</view>
<view class="top-line" style="margin-top:20rpx;"></view>
<view class="top-head">
<text class="text-32 text-zu1 text-bold">商城营收数据</text>
<text class="text-32 text-gray text-bold">商城营收数据</text>
</view>
<view class="tab-view-one">
<view v-for="(item,index) in tabOne" :key="index" @click="onOne(index)" :style="{
@@ -172,7 +172,7 @@
</view>
</view>
<view class="top-head">
<text class="text-32 text-zu1 text-bold">已分配总额:{{fiveTotal}}</text>
<text class="text-32 text-gray text-bold">已分配总额:{{fiveTotal}}</text>
</view>
<view class="tu-view-one" style="margin:32rpx 0">
<qiun-data-charts type="area" :ontouch="true" :canvas2d="true" canvasId="scrolllineid1"
+8 -8
View File
@@ -10,11 +10,11 @@
<view class="box-panel" style="padding:0;margin-bottom:30rpx;">
<view class="box-top">
<view class="flex-c-lr" style="align-items: center;">
<text class="text-40 text-bold text-zu1">{{lockedData ? lockedData.selfBuyLocked : 0}}</text>
<text class="text-40 text-bold text-gray">{{lockedData ? lockedData.selfBuyLocked : 0}}</text>
<text class="text-fu1 text-24 text-w-400">自购锁定量(数字积分)</text>
</view>
<view class="flex-c-lr" style="align-items: center;">
<text class="text-40 text-bold text-zu1">{{lockedData ? lockedData.spreadLocked : 0}}</text>
<text class="text-40 text-bold text-gray">{{lockedData ? lockedData.spreadLocked : 0}}</text>
<text class="text-fu1 text-24 text-w-400">推广锁定量(数字积分)</text>
</view>
</view>
@@ -28,7 +28,7 @@
<view class="box-panel" v-if="curTab == 0">
<view class="box-list">
<view class="head-box">
<text class="text-zu1 text-28 text-bold">推广解锁</text>
<text class="text-gray text-28 text-bold">推广解锁</text>
<text class="text-fu1 text-24 text-w-400">获得2贡献值解锁1贡献值对应的数字积分直推奖励。</text>
<image src="https://static.tbmall.xin/static/new/jia_icon.png" class="icon-img" mode=""></image>
</view>
@@ -60,7 +60,7 @@
</view>
<view class="box-list" style="margin-top:24rpx;">
<view class="head-box">
<text class="text-zu1 text-28 text-bold">自购解锁</text>
<text class="text-gray text-28 text-bold">自购解锁</text>
<text class="text-fu1 text-24 text-w-400">您的数字积分奖励将随着推广业绩的提升逐步解锁。</text>
<image src="https://static.tbmall.xin/static/new/jia_icon.png" class="icon-img" mode=""></image>
</view>
@@ -91,11 +91,11 @@
</view>
</view>
<view class="box-panel mt-32 mb-32" v-if="curTab == 0">
<text class="text-zu1 text-28 text-bold" style="font-weight: bold;">数字积分获取说明</text>
<text class="text-gray text-28 text-bold" style="font-weight: bold;">数字积分获取说明</text>
<text class="text-fu text-24" style="margin-top:24rpx">1.商城优选区消费1:1获得贡献值,每消费1元获得1贡献值,次日根据当日商城营收占比获得数字积分。</text>
<text class="text-fu text-24 " style="margin-top:24rpx">2.直推用户消费10:1获得贡献值,直推用户优选区每消费10元您将获得1积分。</text>
<text class="text-fu text-24 " style="margin-top:24rpx">3.积分获得后均为锁定状态。</text>
<text class="text-zu1 text-28 text-bold" style="margin-top:48rpx">数字积分解锁说明</text>
<text class="text-gray text-28 text-bold" style="margin-top:48rpx">数字积分解锁说明</text>
<text class="text-fu text-24 " style="margin-top:24rpx">1.您本人在商城消费获得的积分,每日按1‰自然解锁。</text>
<text class="text-fu text-24 " style="margin-top:24rpx">2.直推用户消费获得的贡献值5:1解锁您本人消费获得的数字积分。</text>
<text class="text-fu text-24 " style="margin-top:24rpx">3.直推获得的奖励,根据您在商城的消费获得的贡献值2:1进行解锁,每获得2贡献值解锁1积分。</text>
@@ -151,11 +151,11 @@
</view>
<view class="dai-mid" style="margin-top:40rpx;">
<text class="text-32 text-fu1">下级:</text>
<text class="text-32 text-zu1">{{item.lowerLevelPhone}}</text>
<text class="text-32 text-gray">{{item.lowerLevelPhone}}</text>
</view>
<view class="dai-mid" style="margin-top:32rpx;">
<text class="text-32 text-fu1">积分奖励总量:</text>
<text class="text-32 text-zu1">{{item.expendAmount}}</text>
<text class="text-32 text-gray">{{item.expendAmount}}</text>
</view>
<view class="dai-progress" style="margin-top:40rpx;">
<u-line-progress :percentage="item.unlockRatio" activeColor="#7934F6" height="16rpx" :showText="true" ></u-line-progress>
+1 -1
View File
@@ -46,7 +46,7 @@
</view>
<view class="bottom-panel">
<view class="bottom-head-view">
<text class="text-32 text-bold text-zu1">股东账户</text>
<text class="text-32 text-bold text-gray">股东账户</text>
</view>
<view class="bottom-list">
<view class="list-box" v-if="dataList.length">
+1 -1
View File
@@ -7,7 +7,7 @@
<view class="top-one" style="margin-top:12rpx">
<u-icon name="email" color="#333" size="20"></u-icon>
<text class="text-24 text-fu text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressName}:`}}</text>
<text class="text-24 text-zu1 text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressNo}`}}</text>
<text class="text-24 text-gray text-space" style="margin-left:10rpx;line-height: 1.4;margin-right:12rpx">{{curData && `${curData.items[0].expressNo}`}}</text>
<up-image src="/static/common/copy.png" width="14" height="14" bgColor="#f1f6ff00"
@click="copyData(curData ? curData.items[0].expressNo :'')"></up-image>
</view>
+246 -246
View File
@@ -1,246 +1,246 @@
<template>
<view class="content">
<TopSafe></TopSafe>
<Header title="设置" />
<view class="setting-view">
<view class="item-list mt-24">
<view class="flex-r-lr item-box" @click="onHead(index)"
v-for="(item,index) in headList" :key="index"
:style="{borderWidth:index == headList.length - 1 ? '0' : '2rpx'}"
>
<text class="text-zu1 text-32">{{item.text}}</text>
<view class="flex-r-e" style="align-items: center;">
<image v-if="item.type == 'img'" :src="item.value" class="ava-img"></image>
<text class="text-zu text-32" v-if="item.type == 'text'">{{item.value}}</text>
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
</view>
</view>
</view>
<view class="item-list mt-24">
<view class="flex-r-lr item-box" @click="onBottom(index)"
v-for="(item,index) in bottomList" :key="index"
:style="{borderWidth:index == bottomList.length - 1 ? '0' : '2rpx'}"
>
<text class="text-zu1 text-32">{{item.text}}</text>
<view class="flex-r-e" style="align-items: center;">
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
</view>
</view>
</view>
<MyBtn class="mt-48" @ok="onOutLogin" text="退出登录"></MyBtn>
</view>
<up-toast ref="uToastRef"></up-toast>
<!-- 腾讯电子签H5 → 集成到UniApp -->
</view>
</template>
<script>
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
import { uploadImage, uploadImg } from '@/api/common.js';
import { IMG_TYPE } from '@/utils/enumUtils.js';
import { BASE_URL, Authorization } from '@/utils/config.js';
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
import Header from '@/components/common/header.vue';
import TopSafe from '@/components/common/top-safe.nvue'
import MyBtn from '@/components/common/my-btn.vue'
import func from '@/utils/func.js';
export default {
components: { Header, TopSafe,MyBtn },
data() {
return {
type: false,
userInfo: null,
headList:[
{text:'头像',type:'img',value:''},
{text:'用户名称',type:'text',value:''},
],
bottomList:[
{text:'账号与安全'},
{text:'我的合同'},
{text:'资质照片'},
{text:'用户协议'},
{text:'隐私协议'},
{text:'售后保障协议'},
{text:'关于我们'},
]
};
},
onShow() {
this.init();
},
onLoad() {
// this.userinfo();
},
methods: {
init() {
this.userinfo()
},
onHead(index){
console.log('index',index)
let that = this;
if(index == 0){
uni.chooseImage({
count: 1, // 默认9,设置图片的数量
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 成功选择图片后
const filePath = res.tempFilePaths[0]; // 获取文件路径
that.uploadFile(filePath);
}
});
}else if(index == 1){
uni.navigateTo({
url:'/pages/rwa_package/setting/set-name'
})
}
},
uploadFile(url) {
uni.showLoading({
title: '图片上传中...',
})
const that = this;
const token = getStorageFun(TOKEN_NAME); // 获取token, 根据实际情况调整获取方式
// 成功则返回文件的本地临时文件路径
uni.uploadFile({
url: BASE_URL + uploadImg, // 替换为你的上传接口URL
filePath: url,
name: 'file',
formData: {
'type': IMG_TYPE.COMMON,
},
header: {
"Authorization": Authorization,
'HSM-AUTH': token ? token : '',
},
success: (uploadFileRes) => {
const data = JSON.parse(uploadFileRes.data);
if (data.bizcode === 100) {
that.setUploadAvatar(data.data.accessUrl);
} else {
uni.showToast({
title: '图片上传失败',
icon: 'none',
mask: true,
duration: 3000,
})
}
},
fail: (uploadFileErr) => {
uni.showToast({
title: '图片上传失败',
icon: 'none',
mask: true,
duration: 3000,
})
},
complete: (res) => {
// 请求完成以后做一些事情
uni.hideLoading();
}
});
},
setUploadAvatar(img){
let params = {
imgUrl:img
}
uploadAvatar(params).then(res=>{
if (res.bizcode === 100) {
this.$refs.uToastRef.show({
type: 'success',
message: "头像设置成功",
});
this.init();
} else {
this.$refs.uToastRef.show({
type: 'error',
message: "头像设置失败",
});
}
})
},
onOutLogin(){
clear();
uni.navigateTo({
url: '/pages/login_package/login/login'
})
},
onBottom(index){
let url = '';
switch(index){
case 0:
url = '/pages/rwa_package/setting/account-safe'
break;
case 1:
url = '/pages/rwa_package/dongjian/index'
break;
case 2:
url = '/pages/rwa_package/setting/zhaopian'
break;
case 3:
url = '/pages/mine_package/mine_user_agreement/mine_user_agreement'
break;
case 4:
url = '/pages/mine_package/mine_privacy_agreement/mine_privacy_agreement'
break;
case 5:
url = '/pages/mine_package/mine_product_agreement/mine_product_agreement'
break;
case 6:
url = '/pages/mine_package/mine_about_us/mine_about_us'
break;
}
if(url){
uni.navigateTo({
url:url
})
}
},
userinfo() {
getUserInfo().then(res => {
if (res.bizcode == 100) {
this.userInfo = res.data;
this.userInfo.avatarUrl = this.userInfo.avatarUrl ? this.userInfo.avatarUrl : 'https://static.tbmall.xin/static/default-avatar.png';
this.headList[0].value = this.userInfo.avatarUrl;
this.userInfo.nickname = this.userInfo.nickname ? this.userInfo.nickname : '暂未设置';
this.headList[1].value = this.userInfo.nickname;
}
})
}
}
}
</script>
<style lang="scss" scoped>
.setting-view {
width: 100%;
height: calc(100% - 88rpx - var(--status-bar-height));
display: flex;
flex-direction: column;
align-items: center;
overflow-y: auto;
padding: 0 32rpx;
box-sizing: border-box;
.item-list{
width:100%;
border-radius: 16rpx;
display: flex;
flex-direction: column;
background-color: #fff;
.item-box{
min-height:108rpx;
padding: 0 32rpx;
box-sizing: border-box;
align-items: center;
border-bottom:solid #EAEAEA;
.ava-img{
width:60rpx;
height:60rpx;
border-radius: 30rpx;
}
}
}
}
</style>
<template>
<view class="content">
<TopSafe></TopSafe>
<Header title="设置" />
<view class="setting-view">
<view class="item-list mt-24">
<view class="flex-r-lr item-box" @click="onHead(index)"
v-for="(item,index) in headList" :key="index"
:style="{borderWidth:index == headList.length - 1 ? '0' : '2rpx'}"
>
<text class="text-zu1 text-32">{{item.text}}</text>
<view class="flex-r-e" style="align-items: center;">
<image v-if="item.type == 'img'" :src="item.value" class="ava-img"></image>
<text class="text-zu text-32" v-if="item.type == 'text'">{{item.value}}</text>
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
</view>
</view>
</view>
<view class="item-list mt-24">
<view class="flex-r-lr item-box" @click="onBottom(index)"
v-for="(item,index) in bottomList" :key="index"
:style="{borderWidth:index == bottomList.length - 1 ? '0' : '2rpx'}"
>
<text class="text-zu1 text-32">{{item.text}}</text>
<view class="flex-r-e" style="align-items: center;">
<u-icon size="16" name="arrow-right" color="#666" style="margin-left:12rpx"></u-icon>
</view>
</view>
</view>
<MyBtn class="mt-48" @ok="onOutLogin" text="退出登录"></MyBtn>
</view>
<up-toast ref="uToastRef"></up-toast>
<!-- 腾讯电子签H5 → 集成到UniApp -->
</view>
</template>
<script>
import { getUserInfo,uploadAvatar } from '@/api/auth.js';
import { uploadImage, uploadImg } from '@/api/common.js';
import { IMG_TYPE } from '@/utils/enumUtils.js';
import { BASE_URL, Authorization } from '@/utils/config.js';
import { getStorageFun, TOKEN_NAME,clear } from '@/utils/auth.js';
import Header from '@/components/common/header.vue';
import TopSafe from '@/components/common/top-safe.nvue'
import MyBtn from '@/components/common/my-btn.vue'
import func from '@/utils/func.js';
export default {
components: { Header, TopSafe,MyBtn },
data() {
return {
type: false,
userInfo: null,
headList:[
{text:'头像',type:'img',value:''},
{text:'用户名称',type:'text',value:''},
],
bottomList:[
{text:'账号与安全'},
{text:'我的合同'},
{text:'资质照片'},
{text:'用户协议'},
{text:'隐私协议'},
{text:'售后保障协议'},
{text:'关于我们'},
]
};
},
onShow() {
this.init();
},
onLoad() {
// this.userinfo();
},
methods: {
init() {
this.userinfo()
},
onHead(index){
console.log('index',index)
let that = this;
if(index == 0){
uni.chooseImage({
count: 1, // 默认9,设置图片的数量
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 成功选择图片后
const filePath = res.tempFilePaths[0]; // 获取文件路径
that.uploadFile(filePath);
}
});
}else if(index == 1){
uni.navigateTo({
url:'/pages/rwa_package/setting/set-name'
})
}
},
uploadFile(url) {
uni.showLoading({
title: '图片上传中...',
})
const that = this;
const token = getStorageFun(TOKEN_NAME); // 获取token, 根据实际情况调整获取方式
// 成功则返回文件的本地临时文件路径
uni.uploadFile({
url: BASE_URL + uploadImg, // 替换为你的上传接口URL
filePath: url,
name: 'file',
formData: {
'type': IMG_TYPE.COMMON,
},
header: {
"Authorization": Authorization,
'HSM-AUTH': token ? token : '',
},
success: (uploadFileRes) => {
const data = JSON.parse(uploadFileRes.data);
if (data.bizcode === 100) {
that.setUploadAvatar(data.data.accessUrl);
} else {
uni.showToast({
title: '图片上传失败',
icon: 'none',
mask: true,
duration: 3000,
})
}
},
fail: (uploadFileErr) => {
uni.showToast({
title: '图片上传失败',
icon: 'none',
mask: true,
duration: 3000,
})
},
complete: (res) => {
// 请求完成以后做一些事情
uni.hideLoading();
}
});
},
setUploadAvatar(img){
let params = {
imgUrl:img
}
uploadAvatar(params).then(res=>{
if (res.bizcode === 100) {
this.$refs.uToastRef.show({
type: 'success',
message: "头像设置成功",
});
this.init();
} else {
this.$refs.uToastRef.show({
type: 'error',
message: "头像设置失败",
});
}
})
},
onOutLogin(){
clear();
uni.navigateTo({
url: '/pages/login_package/login/login'
})
},
onBottom(index){
let url = '';
switch(index){
case 0:
url = '/pages/rwa_package/setting/account-safe'
break;
case 1:
url = '/pages/rwa_package/dongjian/index'
break;
case 2:
url = '/pages/rwa_package/setting/zhaopian'
break;
case 3:
url = '/pages/mine_package/mine_user_agreement/mine_user_agreement'
break;
case 4:
url = '/pages/mine_package/mine_privacy_agreement/mine_privacy_agreement'
break;
case 5:
url = '/pages/mine_package/mine_product_agreement/mine_product_agreement'
break;
case 6:
url = '/pages/mine_package/mine_about_us/mine_about_us'
break;
}
if(url){
uni.navigateTo({
url:url
})
}
},
userinfo() {
getUserInfo().then(res => {
if (res.bizcode == 100) {
this.userInfo = res.data;
this.userInfo.avatarUrl = this.userInfo.avatarUrl ? this.userInfo.avatarUrl : 'https://static.tbmall.xin/static/default-avatar.png';
this.headList[0].value = this.userInfo.avatarUrl;
this.userInfo.nickname = this.userInfo.nickname ? this.userInfo.nickname : '暂未设置';
this.headList[1].value = this.userInfo.nickname;
}
})
}
}
}
</script>
<style lang="scss" scoped>
.setting-view {
width: 100%;
height: calc(100% - 88rpx - var(--status-bar-height));
display: flex;
flex-direction: column;
align-items: center;
overflow-y: auto;
padding: 0 32rpx;
box-sizing: border-box;
.item-list{
width:100%;
border-radius: 16rpx;
display: flex;
flex-direction: column;
background-color: #fff;
.item-box{
min-height:108rpx;
padding: 0 32rpx;
box-sizing: border-box;
align-items: center;
border-bottom:solid #EAEAEA;
.ava-img{
width:60rpx;
height:60rpx;
border-radius: 30rpx;
}
}
}
}
</style>
+44
View File
@@ -261,6 +261,50 @@ export const BALANCE_TYPE = [
key: 25,
value: "加速释放转出"
},
{
key: 26,
value: "下级消费业绩"
},
{
key: 27,
value: "下级退货扣除奖励"
},
{
key: 28,
value: "代理商分润"
},
{
key: 29,
value: "代理商提现"
},
{
key: 30,
value: "代理商分润冻结"
},
{
key: 31,
value: "代理商取消提现"
},
{
key: 32,
value: "代理商TBC奖励"
},
{
key: 33,
value: "退货退款扣除代理商TBC奖励"
},
{
key: 34,
value: "TBC总资金池奖励"
},
{
key: 35,
value: "TBC发展基金资金池奖励"
},
{
key: 36,
value: "平级奖励"
}
]
/**
* 证状证件类型:1-居民身份证,2-护照