完成了登录模块

This commit is contained in:
2025-05-19 09:08:33 +08:00
parent 7c934ded5f
commit 3fe9c3c209
20 changed files with 364 additions and 208 deletions

View File

@ -1,72 +1,141 @@
Page({
const { baseUrl } = require('../../../request');
/**
* 页面的初始数据
*/
Page({
data: {
items: [null, null, null],
items_1: [null, null, null],
items_2: [null, null, null],
activeTab: 0
projectDetail: {},
notificationList: [],
settlementDetailList: [],
promoCodeList: [],
activeTab: 0,
id: null,
showPromoPop: false,
currentQrcode: '',
currentPromoLink: ''
},
onLoad(options) {
const id = options.id;
this.setData({ id });
},
// 每次页面展示都刷新含navigateBack返回时
onShow() {
// 防止id为null
if (this.data.id) {
this.fetchProjectDetail(this.data.id);
}
},
fetchProjectDetail(id) {
const token = wx.getStorageSync('token');
wx.request({
url: baseUrl + '/project/query/id', // 替换为你的接口地址
method: 'POST',
header: {
Authorization: token
},
data: {
id
},
success: (res) => {
if (res.data.code === 1) {
const detail = res.data.data || {};
this.setData({
projectDetail: detail,
notificationList: detail.projectNotificationVOList || [],
settlementDetailList: detail.projectAllDetailVOList || [],
promoCodeList: detail.promoCodeApplyVOList || []
});
} else {
wx.showToast({
title: res.data.message || '数据获取失败',
icon: 'none'
});
}
},
fail: () => {
wx.showToast({
title: '网络错误',
icon: 'none'
});
}
});
},
switchTab(e) {
const idx = +e.currentTarget.dataset.index;
this.setData({ activeTab: idx });
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// “开码记录”跳tab
goToPromoTab() {
this.setData({ activeTab: 1 });
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
// “新增推广码”跳转
addPromoCode() {
const id = this.data.id;
const promoCodeDesc = this.data.projectDetail.applyPromoCodeDesc || '';
// encodeURIComponent 防止有特殊字符
wx.navigateTo({
url: `/pages/projectModule/applyCode/applyCode?id=${id}&desc=${encodeURIComponent(promoCodeDesc)}&mode=add`
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// “结算明细”跳转
goToSettlementDetail() {
wx.navigateTo({
url: '/pages/settlementDetail/settlementDetail' // 替换为你的页面路径
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
// 推广码-查看资料
goToPromoMaterial(e) {
const id = e.currentTarget.dataset.id; // 项目id
const name = e.currentTarget.dataset.name; // 业务员姓名
const phone = e.currentTarget.dataset.phone; // 业务员手机号
const promoCodeDesc = this.data.projectDetail.applyPromoCodeDesc || '';
wx.navigateTo({
url: `/pages/projectModule/applyCode/applyCode?id=${id}&desc=${encodeURIComponent(promoCodeDesc)}&mode=view&name=${encodeURIComponent(name)}&phone=${encodeURIComponent(phone)}`
});
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
// 弹出作业码弹窗
onShowPromoPop(e) {
const qrcode = e.currentTarget.dataset.qrcode;
const link = e.currentTarget.dataset.link;
this.setData({
showPromoPop: true,
currentQrcode: qrcode,
currentPromoLink: link
});
},
// 关闭弹窗
onClosePromoPop() {
this.setData({ showPromoPop: false });
},
// 复制推广码
copyPromoCode(e) {
const code = e.currentTarget.dataset.code;
wx.setClipboardData({
data: code,
success: function () {
wx.showToast({
title: '复制成功',
icon: 'success'
});
}
});
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
goToNotificationDetail(e) {
const id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/projectModule/projectNotice/projectNotice?id=${id}` // 路径请根据你的项目实际调整
});
}
})
});

View File

@ -1,3 +1,5 @@
{
"usingComponents": {}
"usingComponents": {
"promo-pop": "../promoPop/promoPop"
}
}

View File

@ -3,13 +3,13 @@
<view class="flex-row items-center">
<image
class="shrink-0 image"
src="https://ide.code.fun/api/image?token=6827630f4ae84d00122fd0c8&name=8eafcf3d54491c51c90f97a31451bc70.png"
src="{{projectDetail.projectImage}}"
/>
<view class="flex-col flex-1 group_1 ml-20">
<text class="self-start font text">美团省钱包</text>
<text class="self-start font text">{{projectDetail.projectName}}</text>
<view class="flex-row items-center self-stretch mt-7">
<text class="flex-1 font_2 text_2">不限制推广方式、不限美团新老用户,要求美团闪购新用户或...</text>
<view class="flex-row items-center shrink-0 section ml-13">
<text class="flex-1 font_2 text_2">{{projectDetail.projectDescription}}</text>
<view class="flex-row items-center shrink-0 section ml-13" bindtap="goToSettlementDetail">
<image
class="shrink-0 image_2"
src="https://ide.code.fun/api/image?token=6827630f4ae84d00122fd0c8&name=454188c52cef0841952f46f00fe340b4.png"
@ -19,7 +19,7 @@
</view>
<view class="self-start group_2 mt-7">
<text class="font_2 text_4">最高价</text>
<text class="font_4 text_5">¥7</text>
<text class="font_4 text_5">¥{{projectDetail.projectPrice}}</text>
</view>
</view>
</view>
@ -40,6 +40,7 @@
</view>
</view>
<view class="flex-col group_6 ">
<!-- 项目详情tab -->
<view wx:if="{{ activeTab === 0 }}" class="flex-col section_3">
<view class="flex-row items-center">
<image
@ -50,20 +51,20 @@
</view>
<view class="flex-col mt-13">
<view
class="flex-row justify-center items-center relative list-item_1 mt-18"
wx:for="{{items}}"
wx:for-item="item"
wx:for-index="index"
wx:key="index"
class="flex-row justify-center items-center relative list-item_1 mt-8"
wx:for="{{notificationList}}"
wx:key="id"
bindtap="goToNotificationDetail"
data-id="{{item.id}}"
>
<view class="flex-col justify-start items-center text-wrapper pos">
<text class="font_3 text_9">最新</text>
</view>
<text class="font_6 text_10">美团省钱包-春季活动价格上调通知~</text>
<text class="font_6 text_10">{{item.notificationTitle}}</text>
</view>
</view>
</view>
<view wx:if="{{ activeTab === 0 }}" class="flex-col section_4">
<view wx:if="{{ activeTab === 0 }}" class="flex-col section_4">
<view class="flex-row items-center">
<image
class="image_4"
@ -79,51 +80,48 @@
<view class="flex-col group_8">
<view
class="flex-row justify-between items-center section_6"
wx:for="{{items_1}}"
wx:for-item="item"
wx:for-index="index"
wx:key="index"
wx:for="{{settlementDetailList}}"
wx:key="id"
>
<text class="font_7 text_12">3.6元购买30元券包</text>
<text class="font_4 text_13">0.30</text>
<text class="font_7 text_12">{{item.projectDetailName}}</text>
<text class="font_4 text_13">{{item.projectSettlementPrice}}</text>
</view>
</view>
</view>
</view>
<view wx:if="{{ activeTab === 0 }}" class="flex-col list">
<!-- 结算说明/项目说明/项目流程,图标已补充 -->
<view wx:if="{{ activeTab === 0 }}" class="flex-col list">
<view class="flex-col relative section_7">
<text class="self-start font_5 text_15">结算说明</text>
<view class="self-stretch section_8 view_2"></view>
<image
class="image_5 pos_4"
src="https://ide.code.fun/api/image?token=6827630f4ae84d00122fd0c8&name=3e6eb5208e8ac55c7b94af5272899bbb.png"
/>
<rich-text class="self-stretch section_8 view_2" nodes="{{projectDetail.settlementDesc}}"></rich-text>
</view>
<view class="flex-col relative section_1 mt-21">
<text class="self-start font_5 text_1">项目说明</text>
<view class="self-stretch section_8"></view>
<image
class="image_5 pos_5"
src="https://ide.code.fun/api/image?token=6827630f4ae84d00122fd0c8&name=3e6eb5208e8ac55c7b94af5272899bbb.png"
/>
<rich-text class="self-stretch section_8" nodes="{{projectDetail.projectDesc}}"></rich-text>
</view>
<view class="flex-col relative section_1 mt-21">
<text class="self-start font_5 text_1">项目说明</text>
<view class="self-stretch section_8"></view>
<text class="self-start font_5 text_1">项目流程</text>
<image
class="image_5 pos_6"
src="https://ide.code.fun/api/image?token=6827630f4ae84d00122fd0c8&name=3e6eb5208e8ac55c7b94af5272899bbb.png"
/>
<rich-text class="self-stretch section_8" nodes="{{projectDetail.projectFlow}}"></rich-text>
</view>
</view>
<view wx:if="{{ activeTab === 1 }}"
class="flex-col list_2">
<!-- 我的推广码tab -->
<view wx:if="{{ activeTab === 1 }}" class="flex-col list_2">
<view
class="flex-col relative list-item_2 mt-18"
wx:for="{{items_2}}"
wx:for-item="item"
wx:for-index="index"
wx:key="index"
wx:for="{{promoCodeList}}"
wx:key="id"
>
<view class="flex-col justify-start items-start text-wrapper_2">
<text class="font_8 text_16">审核通过</text>
@ -131,24 +129,32 @@
<view class="flex-col group_13">
<view class="flex-row justify-between items-center self-stretch">
<view class="flex-col group_9">
<text class="self-stretch font_9">业务员:陈新知 15888610253</text>
<text class="self-start font_10 text_17">绑定日期:2025-05-16 19:09</text>
<text class="self-stretch font_9">业务员:{{item.salespersonName}} {{item.salespersonPhone}}</text>
<text class="self-start font_10 text_17">绑定日期:{{item.createTime}}</text>
<view class="flex-row items-center self-stretch group_11">
<text class="font_11 text_18">推广码id:ykhlshy118</text>
<text class="font_12 text_19 ml-5">复制</text>
<text class="font_11 text_18">推广码id:{{item.promoCodeInfoKey}}</text>
<text class="font_12 text_19 ml-5" bindtap="copyPromoCode" data-code="{{item.promoCodeInfoKey}}">复制</text>
</view>
</view>
<image
class="image_6"
src="https://ide.code.fun/api/image?token=6827630f4ae84d00122fd0c8&name=104fd70b7b2ec03ffa2797e80a16a13a.png"
/>
src="https://img.picui.cn/free/2025/05/18/6829ff0fb5ed6.png"
bindtap="onShowPromoPop"
data-qrcode="{{item.promoCodeImage}}"
data-link="{{item.promoCodeLink}}"
/>
</view>
<text class="self-end font_13 text_27">查看推广码</text>
<text class="self-end font_13 text_27" bindtap="onShowPromoPop"
data-qrcode="{{item.promoCodeImage}}"
data-link="{{item.promoCodeLink}}"
>查看推广码</text>
<view class="flex-row self-stretch group_12">
<view class="flex-col justify-start items-center text-wrapper_3">
<view class="flex-col justify-start items-center text-wrapper_3" bindtap="goToSettlementDetail">
<text class="font_14 text_21">结算明细</text>
</view>
<view class="flex-col justify-start items-center text-wrapper_4 ml-12">
<view class="flex-col justify-start items-center text-wrapper_4 ml-12" bindtap="goToPromoMaterial" data-id="{{item.projectId}}"
data-name="{{item.salespersonName}}"
data-phone="{{item.salespersonPhone}}">
<text class="font_15 text_22">查看资料</text>
</view>
</view>
@ -159,7 +165,15 @@
</view>
</view>
<view class="flex-row mt-57 foot-bottom">
<view class="flex-col justify-start items-center text-wrapper_5"><text class="font_5 text_23">开码记录</text></view>
<view class="flex-col justify-start items-center text-wrapper_6"><text class="font_5 text_24">新增推广码</text></view>
<view class="flex-col justify-start items-center text-wrapper_5" bindtap="goToPromoTab"><text class="font_5 text_23">开码记录</text></view>
<view class="flex-col justify-start items-center text-wrapper_6" bindtap="addPromoCode"><text class="font_5 text_24">新增推广码</text></view>
</view>
</view>
</view>
<promo-pop
show="{{showPromoPop}}"
qrcode="{{currentQrcode}}"
link="{{currentPromoLink}}"
close-icon="https://ide.code.fun/api/image?token=6829dc904ae84d00122fe075&name=f319b81f1964ad8f099a67a770941d6a.png"
bind:close="onClosePromoPop"
/>

View File

@ -140,7 +140,7 @@
line-height: 25.88rpx;
}
.list-item_1 {
padding: 7.07rpx 0 5.94rpx;
padding: 17.07rpx 0 15.94rpx;
}
.list-item_1:first-child {
margin-top: 0;
@ -169,6 +169,7 @@
.text_10 {
font-size: 26.25rpx;
line-height: 24.49rpx;
margin-left: -30%;
}
.section_4 {
margin-top: 41.25rpx;
@ -230,8 +231,6 @@
margin-right: 2.14rpx;
margin-top: 35.92rpx;
background-color: #ffffff00;
height: 538.13rpx;
border: solid 1.88rpx #000000;
}
.view_2 {
margin-top: 35.94rpx;
@ -298,6 +297,7 @@
width: 310.05rpx;
}
.font_9 {
width: 400rpx;
font-size: 24.38rpx;
font-family: Times New Roman;
line-height: 30rpx;
@ -311,7 +311,7 @@
}
.text_17 {
margin-top: 20.66rpx;
width: 279.38rpx;
width: 400.38rpx;
}
.group_11 {
margin-top: 8.55rpx;
@ -347,9 +347,11 @@
}
.text_27 {
margin-right: 25.74rpx;
position: absolute;
bottom: 15%;
}
.group_12 {
margin-top: 4.59rpx;
margin-top: 24.59rpx;
}
.text-wrapper_3 {
padding: 0;