This commit is contained in:
Ling53666 2025-05-15 21:01:14 +08:00
parent 9b8553930b
commit 7c371623eb
35 changed files with 620 additions and 401 deletions

19
app.js
View File

@ -1,19 +1,6 @@
// app.js
const { checkLogin } = require('./utils/logcheck');
App({
onLaunch() {
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
},
globalData: {
userInfo: null
checkLogin();
}
})
});

View File

@ -1,8 +1,8 @@
{
"pages": [
"pages/jiedan/jiedan",
"pages/logain/logain",
"pages/logs/logs",
"pages/jiedan/jiedan",
"pages/mypage/mypage",
"pages/shop/shop",
"pages/find/find",

View File

@ -25,7 +25,6 @@ text {
.flex-row {
display: flex;
flex-direction: row;
}
.flex-col {

BIN
image/20250515110258.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
image/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

31
miniprogram_npm/futext.js Normal file
View File

@ -0,0 +1,31 @@
// miniprogram_npm/rich-text.js
Component({
/**
* 组件的属性列表
*/
properties: {
settlementDesc: {
type: String,
value: ''
},
xiangmuname: {
type: String,
value: ''
}
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件的方法列表
*/
methods: {
}
})

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1,12 @@
<view class="fenbu">
<view class="xiangqing">
<view class="titlemessgae">
<image style="width: 20px;height: 20px;margin-left: 20rpx;" src="/image/close.png" mode=""/>
<text style="margin-left: 10rpx; color: #ff8d1a;">{{xiangmuname}}</text>
</view>
<view class="richtext">
<rich-text user-select="true" nodes="{{settlementDesc}}"/>
</view>
</view>
</view>

View File

@ -0,0 +1,27 @@
.xiangqing{
width: 95%;
margin-top: 20rpx;
border-radius: 20px;
background-color: #F8F8F8;
}
.titlemessgae{
width: 100%;
height: 50px;
display: flex;
align-items: center;
}
.richtext {
padding: 0rpx 24rpx 24rpx 0rpx;
border-radius: 16rpx;
font-size: 28rpx;
color: #333;
line-height: 1.8;
box-shadow: 0 4rpx 10rpx rgba(0, 0, 0, 0.05);
}
.fenbu{
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}

17
package-lock.json generated Normal file
View File

@ -0,0 +1,17 @@
{
"name": "青橙",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"mp-html": "^2.5.1"
}
},
"node_modules/mp-html": {
"version": "2.5.1",
"resolved": "https://registry.npmmirror.com/mp-html/-/mp-html-2.5.1.tgz",
"integrity": "sha512-7BEH8dnQ89kOIyjdoYni8zcc0QAg+lgEWg0n9or9q2D4l26JNG+KPzHfttDyisC/5S7aPBblpXrFTYQv475w/Q=="
}
}
}

6
package.json Normal file
View File

@ -0,0 +1,6 @@
{
"dependencies": {
"mp-html": "^2.5.1"
}
}

View File

@ -1,4 +1,4 @@
// pages/find/find.js
const { checkLogin } = require('../../utils/logcheck');
Page({
/**
@ -48,7 +48,7 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
checkLogin();
},
/**

View File

@ -1,4 +1,4 @@
// pages/findxiangqing/findxiangqing.js
const { checkLogin } = require('../../utils/logcheck');
Page({
/**
@ -26,7 +26,7 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
checkLogin();
},
/**

View File

@ -1,4 +1,5 @@
import {url} from '../../request'
const { checkLogin } = require('../../utils/logcheck');
Page({
data: {
list:[],
@ -40,6 +41,7 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
checkLogin();
const that = this
wx.getStorage({
key: "logmessage",

View File

@ -4,6 +4,35 @@ Page({
show: true,
morenshow: false,
currentTab: 'code',
countdown: 60, // 设置倒计时时长(秒)
timer: null, // 存储计时器
},
startCountdown() {
this.setData({
isCountingDown: true,
countdown: 60
});
this.data.timer = setInterval(() => {
let count = this.data.countdown;
if (count <= 1) {
clearInterval(this.data.timer);
this.setData({
isCountingDown: false,
countdown: 60
});
} else {
this.setData({
countdown: count - 1
});
}
}, 1000);
},
onUnload() {
// 页面卸载时清除定时器
if (this.data.timer) {
clearInterval(this.data.timer);
}
},
// 初始加载
onShow(){
@ -118,15 +147,14 @@ submit(){
icon: 'success',
duration: 2000
});
wx.setStorage({
key: "logmessage",
data: {
Authorization:res.data.data
},
success() {
console.log("信息存储成功");
}
})
try {
wx.setStorageSync('logmessage', {
Authorization: res.data.data
});
console.log("信息存储成功");
} catch (e) {
console.error("存储失败", e);
}
setTimeout(() => {
that.setmessage();
wx.switchTab({
@ -135,7 +163,7 @@ submit(){
}, 2000);
}else{
wx.showToast({
title: res.data.message,
title: res.data.message||res.data.error,
icon: 'error',
duration: 2000
});
@ -183,7 +211,7 @@ getcode(){
}else{
wx.showToast({
title: res.data.message,
icon: 'success',
icon: 'error',
duration: 2000
});
}
@ -192,6 +220,7 @@ getcode(){
console.error('请求失败', err);
}
});
this.startCountdown();
},
// 验证码登录提交
submityanzhengma(){
@ -230,15 +259,14 @@ submityanzhengma(){
icon: 'success',
duration: 2000
});
wx.setStorage({
key: "logmessage",
data: {
Authorization:res.data.data
},
success() {
console.log("信息存储成功");
}
})
try {
wx.setStorageSync('logmessage', {
Authorization: res.data.data
});
console.log("信息存储成功");
} catch (e) {
console.error("存储失败", e);
}
setTimeout(() => {
_this.setmessage();
wx.switchTab({
@ -247,7 +275,7 @@ submityanzhengma(){
}, 2000);
}else{
wx.showToast({
title: res.data.message,
title: res.data.message||res.data.error,
icon: 'error',
duration: 2000
});
@ -278,19 +306,18 @@ setmessage() {
success(res) {
console.log('查询成功', res);
if (res.data.code==1) {
wx.setStorage({
key: "usermessage",
data: {
nickName:res.data.data.nickName,
phoneNumber:res.data.data.phoneNumber,
userRole:res.data.data.userRole,
invitationCode:res.data.data.invitationCode,
userAvatar:res.data.data.userAvatar
},
success() {
console.log("信息存储成功");
}
})
try {
wx.setStorageSync("usermessage", {
nickName: res.data.data.nickName,
phoneNumber: res.data.data.phoneNumber,
userRole: res.data.data.userRole,
invitationCode: res.data.data.invitationCode,
userAvatar: res.data.data.userAvatar
});
console.log("信息存储成功");
} catch (e) {
console.error("信息存储失败", e);
}
} else {
wx.showToast({
title: res.data.message,

View File

@ -16,7 +16,7 @@
</view>
<view class="flex-row justify-between section mt-21">
<input class="font_4 text_5" bindinput="yanzhengcode" placeholder="请输入验证码" />
<text bind:tap="getcode" class="font_2 text_6">获取验证码</text>
<text bind:tap="{{isCountingDown ? '' : 'getcode'}}"style="color: {{isCountingDown ? '#ccc' : '#ff8d1a'}};" class="font_2 text_6"> {{ isCountingDown ? countdown + '秒后重试' : '获取验证码' }}</text>
</view>
</view>
<view wx:if="{{morenshow==true}}" class="flex-col self-stretch">
@ -38,7 +38,7 @@
</view>
<view class="flex-col self-stretch group_3">
<view class="flex-row items-center self-start">
<radio class="radio" color="#ff8d1a" bind:tap="onAgreeChange"></radio>
<checkbox class="radio" color="#ff8d1a" bind:tap="onAgreeChange" value="cb" />
<text class="shrink-0 font_5 text_9">我已阅读并同意</text>
<text class="font_5 text_10">用户服务协议、隐私政策</text>
</view>

View File

@ -106,9 +106,12 @@
line-height: 26.92rpx;
}
.text_9 {
margin-left: 50.94rpx;
margin-left: 20.94rpx;
color: #000000;
}
.radio{
margin-left: 30rpx;
}
.text_10 {
color: #d43030;
margin-left: 10rpx;

View File

@ -1,4 +1,4 @@
// pages/mingxi/mingxi.js
const { checkLogin } = require('../../utils/logcheck');
Page({
/**
@ -12,7 +12,7 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
checkLogin();
},
/**

View File

@ -1,9 +1,10 @@
const { checkLogin } = require('../../utils/logcheck');
Page({
data: {
userAvatar:'https://tse2-mm.cn.bing.net/th/id/OIP-C.jHUH4s7TQ48X_B-1iozuJgHaHa?w=207&h=207&c=7&r=0&o=5&dpr=1.5&pid=1.7',
nickName:'请登录'
},
myteam(){
@ -19,21 +20,19 @@ Page({
},
onShow() {
console.log("askjda");
const that = this
wx.getStorage({
key: "usermessage",
success(res) {
console.log(res.data,'aslkdjas');
const userInfo = res.data
that.setData({
nickName : userInfo.nickName,
phoneNumber: userInfo.phoneNumber,
invitationCode:userInfo.invitationCode,
userAvatar:userInfo.userAvatar
});
}
})
console.log("页面展示 onShow");
try {
const userInfo = wx.getStorageSync('usermessage');
console.log('用户信息:', userInfo);
this.setData({
nickName: userInfo.nickName || '',
phoneNumber: userInfo.phoneNumber || '',
invitationCode: userInfo.invitationCode || '',
userAvatar: userInfo.userAvatar || 'https://tse2-mm.cn.bing.net/th/id/OIP-C.jHUH4s7TQ48X_B-1iozuJgHaHa?w=207&h=207&c=7&r=0&o=5&dpr=1.5&pid=1.7'
});
} catch (e) {
console.error('读取缓存失败:', e);
}
},
wodejiedan(){
wx.navigateTo({

View File

@ -146,6 +146,39 @@ getcode(){
console.error('请求失败', err);
}
});
this.startCountdown();
},
startCountdown() {
this.setData({
isCountingDown: true,
countdown: 60
});
this.data.timer = setInterval(() => {
let count = this.data.countdown;
if (count <= 1) {
clearInterval(this.data.timer);
this.setData({
isCountingDown: false,
countdown: 60
});
} else {
this.setData({
countdown: count - 1
});
}
}, 1000);
},
onUnload() {
// 页面卸载时清除定时器
if (this.data.timer) {
clearInterval(this.data.timer);
}
},
back(){
wx.navigateTo({
url: '/pages/logain/logain',
})
}
})

View File

@ -10,14 +10,14 @@
<view class="flex-col justify-start items-start text-wrapper_1"><input class="text_1 font_2 text_4" bindinput="phone" placeholder="请输入手机号" /></view>
<view class="flex-row justify-between section mt-20">
<input class="font_2 text_5" bindinput="yanzhengma" placeholder="请输入验证码" />
<text class="font_2 text_6" bind:tap="getcode">获取验证码</text>
<text class="font_2 text_6"style="color: {{isCountingDown ? '#ccc' : '#ff8d1a'}};" bind:tap="{{isCountingDown ? '' : 'getcode'}}"> {{ isCountingDown ? countdown + '秒后重试' : '获取验证码' }}</text>
</view>
<view class="flex-col justify-start items-start text-wrapper_2 mt-20"><input class="text_1 font_2" bindinput="password" password type="text" placeholder="请输入密码" /></view>
<view class="flex-col justify-start items-start text-wrapper_4 mt-20">
<input class="text_1 font_2 text_7" bindinput="passwordagain" password type="text" placeholder="请再次输入密码" />
</view>
</view>
<text class="self-end text_8 mt-16">登陆账号</text>
<text class="self-end text_8 mt-16" bind:tap="back">登陆账号</text>
</view>
</view>
<view class="flex-col justify-start items-center self-stretch text-wrapper_3" bind:tap="subimt">

View File

@ -1,10 +1,11 @@
import {url} from '../../request'
const { checkLogin } = require('../../utils/logcheck');
Page({
data: {
items: [null, null, null,null],
},
onLoad(options) {
checkLogin();
},
onReady() {

View File

@ -1,4 +1,4 @@
// pages/wodetuandui/wodetuandui.js
const { checkLogin } = require('../../utils/logcheck');
Page({
/**
@ -12,7 +12,7 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
checkLogin();
},
/**

View File

@ -1,9 +1,11 @@
import {url} from '../../request'
const { checkLogin } = require('../../utils/logcheck');
Page({
data: {
},
onLoad(options){
checkLogin();
const id = options.id
this.setData({
id:id
@ -47,6 +49,9 @@ Page({
icon: 'sucess',
duration: 2000
})
wx.navigateBack({
delta: 1
})
}else{
wx.showToast({
title: res.data.message,

View File

@ -7,7 +7,9 @@
<input class="flex-col justify-start items-start text-wrapper_1 mt-10 input_1" bindinput="phone" />
</view>
</view>
<view class="flex-col justify-start items-center text-wrapper_2 mt-609" bind:tap="submit">
<text class="text_3">申请资料报备</text>
</view>
<view class="bottoma">
<view class="youbuttonm" bind:tap="jiedan">
<text style="color: white;">申请资料报备</text>
</view>
</view>
</view>

View File

@ -1,8 +1,22 @@
.ml-124 {
margin-left: 238.46rpx;
}
.mt-609 {
margin-top: 1171.15rpx;
.bottoma{
width: 100%;
height: 60px;
display: flex;
position: fixed;
bottom: 0;
left: 0;
z-index: 999;
}
.youbuttonm{
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #ff8d1a;
}
.page {
background-color: #ffffff;

View File

@ -1,4 +1,5 @@
import {url} from '../../request'
const { checkLogin } = require('../../utils/logcheck');
Page({
/**
@ -8,12 +9,9 @@ Page({
projectImage:"",
selected: 'detail',
show:false,
promoCodeApplyVOList:[]
promoCodeApplyVOList:[],
mashow:false
},
/**
* 生命周期函数--监听页面加载
*/
onSelect(e) {
const key = e.currentTarget.dataset.key;
console.log(key,'dianjile');
@ -33,7 +31,13 @@ Page({
url: '/pages/mingxi/mingxi',
})
},
xianshi(){
this.setData({
mashow:true
})
},
onLoad(options) {
checkLogin();
const that = this
const id = options.id
wx.getStorage({
@ -81,6 +85,11 @@ Page({
wx.navigateBack({
delta: 1
})
},
clossma(){
this.setData({
mashow:false
})
}
})

View File

@ -1,4 +1,6 @@
{
"navigationBarTitleText": "项目详情",
"usingComponents": {}
"usingComponents": {
"futext":"/miniprogram_npm/futext"
}
}

View File

@ -1,69 +1,38 @@
<view class="flex-col page">
<view class="mt-34 flex-col group">
<view class="flex-row relative">
<image
class="image_2"
src="{{projectImage}}"
mode="aspectFill"
/>
<text class="self-start font text_2">{{projectName}}</text>
<view class="flex-col justify-start items-start group_2 pos">
<text class="font_2 text_4">{{projectDescription}}</text>
<view class="flex-col justify-start items-center text-wrapper pos_2" bind:tap="mingxi">
<text class="font_2 text_3">结算明细</text>
<view class="maxbox">
<view class="kuang">
<view class="shopimage">
<image class="imagesizeshop" src="{{projectImage}}" mode="aspectFill"/>
</view>
</view>
</view>
<view class="flex-row items-baseline group_3 mt-7">
<text class="text_5">最高价</text>
<text class="text_6 ml-3">¥{{projectPrice}}</text>
</view>
</view>
<view class="mt-34 flex-col">
<view class="flex-col group_4">
<view class="flex-row justify-between self-stretch group_5">
<view>
<text class="font_3 text_7" bindtap="onSelect"
data-key="detail"
class="{{ selected === 'detail' ? 'active' : '' }}" >项目详情</text>
<view wx:if="{{selected=='detail'}}" class="self-start section_2" style="margin-top: 10rpx;"></view>
</view>
<view class="textbox">
<text style="font-size: 16px;margin: 10rpx 0 0 0rpx;">{{projectName}}</text>
<text style="font-size: 12px;color: #585857;margin: 10rpx 0 0 0rpx;">{{projectDescription}}</text>
<view>
<text class="font_3 text_8"
bindtap="onSelect"
data-key="code"
class="{{ selected === 'code' ? 'active' : '' }}" >我的推广码</text>
<view wx:if="{{selected=='code'}}" class="self-start section_2" style="margin-top: 10rpx;"></view>
<text class="text_5">最高价</text>
<text class="text_6 ml-3">¥{{projectPrice}}</text>
</view>
</view>
</view>
<view wx:if="{{selected=='detail'}}" class="flex-col mt-19">
<view class="flex-col group_6">
<view class="mt-18 flex-col section_4">
<text class="self-start font_3 text_100 color" >结算说明:</text>
<view style="margin-top: 30rpx;">
<rich-text nodes="{{settlementDesc}}"></rich-text>
</view>
<view class="mingxi">
<view class="colorkuang" bind:tap="mingxi">
<text style="color: #ffffff;font-size: 12px;">结算明细</text>
</view>
</view>
<view class="mt-18 flex-col section_5">
<text class="self-start font_3 text_12 color">项目说明:</text>
<rich-text style="margin-top: 30rpx;" nodes="{{projectDesc}}"></rich-text>
</view>
<view class="mt-18 flex-col section_6">
<text class="self-start font_3 text_15 color">项目流程:</text>
<rich-text style="margin-top: 30rpx;" nodes="{{projectFlow}}"></rich-text>
</view>
</view>
<view class="mt-18 flex-row">
<view class="flex-col justify-start items-center text-wrapper_2" bind:tap="back">
<text class="font_5 text_16">再想想</text>
</view>
<view class="flex-col justify-start items-center text-wrapper_3" bind:tap="jiedan">
<text class="font_5 text_17">申请推广码</text>
</view>
</view>
<view class="lan">
<view class="zuolan">
<text
bindtap="onSelect"
data-key="detail"
class="{{ selected === 'detail' ? 'active' : '' }}">项目详情</text>
<view wx:if="{{selected=='detail'}}" class="section_2" style="margin-top: 10rpx;"></view>
</view>
<view class="youlan">
<text
bindtap="onSelect"
data-key="code"
class="{{ selected === 'code' ? 'active' : '' }}"
>我的推广码</text>
<view wx:if="{{selected=='code'}}" class="section_2" style="margin-top: 10rpx;"></view>
</view>
</view>
<!-- 无数据部分 -->
@ -71,6 +40,12 @@
<image class="imagesize" src="/image/4ec3ad48669184342e84e3641589c19b.png" mode="aspectFill"/>
<text>暂无数据</text>
</view>
<!-- 项目详情 -->
<view class="xinxibox" wx:if="{{selected=='detail'}}">
<futext xiangmuname="结算说明:" settlementDesc="{{settlementDesc}}"></futext>
<futext xiangmuname="项目说明:" settlementDesc="{{projectDesc}}"></futext>
<futext xiangmuname="项目流程:" settlementDesc="{{projectFlow}}"></futext>
</view>
<!-- 二维码部分 -->
<view class="mabox" wx:if="{{selected == 'code' && promoCodeApplyVOList.length > 0}}">
<view class="messagebox" wx:for="{{promoCodeApplyVOList}}">
@ -92,12 +67,39 @@
</view>
</view>
</view>
<view class="youbox">
<view class="youbox" bind:tap="xianshi">
<image class="imagesize1" src="{{item.projectImage}}" mode="aspectFill"/>
<text style="margin-top: 10rpx;">查看推广码</text>
</view>
</view>
</view>
</view>
<view class="bottoma">
<view class="zuobuttonm" bind:tap="back">
<text style="color: #D43030;">再想想</text>
</view>
<view class="youbuttonm" bind:tap="jiedan">
<text>我要接单</text>
</view>
</view>
<!-- 项目推广码详情 -->
<view class="tanhcuann" wx:if="{{mashow}}">
<view class="renwuma">
<view class="titlema">
<text style="color: #ff8d1a;font-size: 30px;">项目推广码</text>
<text style="margin-top:50rpx; color: #ff8d1a;">引导用户通过扫描此码来完成相应的任务</text>
</view>
<view class="imagebox">
<image class="masize" src="/image/20250515110258.jpg" mode=""/>
</view>
<view class="erweimacopy">
<view class="copy">
<text>复制推广码</text>
</view>
</view>
<view class="closs" bind:tap="clossma">
<image class="closssize" src="/image/close.png" mode=""/>
</view>
</view>
</view>

View File

@ -1,245 +1,6 @@
.ml-123 {
margin-left: 236.54rpx;
}
.mt-7 {
margin-top: 13.46rpx;
}
.ml-3 {
margin-left: 5.77rpx;
}
.mt-19 {
margin-top: 36.54rpx;
}
.mt-3 {
margin-top: 5.77rpx;
}
.page {
background-color: #ffffff;
width: 100%;
overflow-y: auto;
overflow-x: hidden;
height: 100%;
}
.section {
padding: 34.62rpx 23.08rpx;
background-color: #f8f8f8;
}
.image {
width: 34.62rpx;
height: 19.23rpx;
}
.font {
font-size: 25rpx;
font-family: SourceHanSansCN;
line-height: 23.1rpx;
color: #000000;
}
.text {
font-size: 26.92rpx;
line-height: 24.83rpx;
}
.group {
padding-left: 57.69rpx;
padding-right: 25rpx;
}
.image_2 {
width: 103.85rpx;
height: 103.85rpx;
}
.text_2 {
margin-left: 38.46rpx;
margin-top: 11.54rpx;
font-size: 26.92rpx;
line-height: 24.9rpx;
}
.group_2 {
padding-top: 38.46rpx;
width: 526rpx;
}
.pos {
position: absolute;
right: 0;
top: 15.38rpx;
}
.font_2 {
font-size: 23.08rpx;
font-family: SourceHanSansCN;
line-height: 23.1rpx;
}
.text_4 {
color: #00000080;
font-size: 21.15rpx;
line-height: 21.75rpx;
}
.text-wrapper {
padding: 15.38rpx 0;
background-color: #a5d63fcc;
border-radius: 19.23rpx;
width: 126.92rpx;
}
.pos_2 {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.text_3 {
color: #ffffff;
line-height: 21.5rpx;
}
.group_3 {
padding: 0 142.31rpx;
}
.text_5 {
color: #00000080;
font-size: 15.38rpx;
font-family: HarmonyOSSansTC;
line-height: 14.42rpx;
}
.text_6 {
color: #e33c64;
font-size: 17.31rpx;
font-family: SourceHanSansCN;
line-height: 13.13rpx;
}
.group_4 {
padding-left: 138.46rpx;
padding-right: 134.62rpx;
}
.group_5 {
padding-bottom: 11.54rpx;
}
.section_2 {
margin-left: 26.92rpx;
background-color: #ff8d1a;
width: 48.08rpx;
height: 3.85rpx;
}
.group_6 {
padding-left: 32.69rpx;
padding-right: 25rpx;
}
.section_3 {
margin-right: 13.46rpx;
padding: 21.15rpx 25rpx 284.62rpx;
background-color: #f8f8f8;
border-radius: 19.23rpx;
}
.image_3 {
width: 34.62rpx;
height: 38.46rpx;
}
.font_3 {
font-size: 25rpx;
font-family: HarmonyOSSansTC;
line-height: 23.1rpx;
color: #000000;
}
.text_8 {
line-height: 23.56rpx;
}
.text_7 {
color: #ff8d1a;
line-height: 23.06rpx;
}
.text_9 {
line-height: 23.19rpx;
}
.section_4 {
margin-left: 13.46rpx;
padding: 15.38rpx 30.77rpx 36.54rpx;
background-color: #f8f8f8;
border-radius: 19.23rpx;
}
.text_10 {
margin-left: 34.62rpx;
line-height: 23.52rpx;
}
.text_100 {
line-height: 23.52rpx;
}
.font_4 {
font-size: 23.08rpx;
font-family: SourceHanSansCN;
line-height: 26.92rpx;
color: #000000;
}
.text_11 {
line-height: 21.69rpx;
}
.equal-division {
align-self: stretch;
margin: 0 15.38rpx;
}
.image_4 {
flex: 1 1 292.31rpx;
}
.equal-division-item {
height: 403.85rpx;
}
.section_5 {
margin-left: 13.46rpx;
padding: 23.08rpx 26.92rpx 30.77rpx;
background-color: #f8f8f8;
border-radius: 19.23rpx;
}
.text_12 {
margin-left: 0.46rpx;
}
.group_7 {
margin-top: 23.08rpx;
}
.text_13 {
text-indent: 0rpx;
}
.text_14 {
margin-top: 38.46rpx;
}
.section_6 {
margin-left: 13.46rpx;
padding: 30.77rpx 46.15rpx 40.38rpx;
background-color: #f8f8f8;
border-radius: 30.81rpx;
}
.text_15 {
line-height: 22.88rpx;
}
.image_5 {
flex: 1 1 292.31rpx;
}
.image_6 {
margin-left: -7.69rpx;
margin-right: 7.69rpx;
flex: 1 1 292.31rpx;
}
.equal-division_2 {
align-self: stretch;
}
.text-wrapper_2 {
padding: 26.92rpx 0;
flex: 1 1 375rpx;
background-color: #cccccc;
height: 84.62rpx;
}
.font_5 {
font-size: 30.77rpx;
font-family: SourceHanSansCN;
line-height: 26.92rpx;
color: #000000;
}
.text_16 {
line-height: 28.31rpx;
}
.text-wrapper_3 {
padding: 26.92rpx 0;
flex: 1 1 375rpx;
background-color: #ff8d1a;
height: 84.62rpx;
}
.text_17 {
line-height: 28.37rpx;
}
.active {
color: #ff8d1a;
}
@ -264,10 +25,85 @@
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.xinxibox{
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
padding-bottom: 60px;
}
.xiangqing{
width: 95%;
background-color: #cccccc;
margin-top: 20rpx;
border-radius: 20px;
}
.bottoma{
width: 100%;
height: 60px;
background-color: aqua;
display: flex;
position: fixed;
bottom: 0;
left: 0;
z-index: 999;
}
.zuobuttonm{
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: rgb(255, 255, 255);
}
.youbuttonm{
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #ff8d1a;
}
.richtext {
padding: 24rpx;
background-color: #ffffff;
border-radius: 16rpx;
font-size: 28rpx;
color: #333;
line-height: 1.8;
box-shadow: 0 4rpx 10rpx rgba(0, 0, 0, 0.05);
}
/* 去掉 li 的黑点 */
.richtext li {
list-style: none;
padding-left: 0;
margin-left: 0;
}
/* 美化段落和图片 */
.richtext p {
margin-bottom: 16rpx;
}
.richtext img {
max-width: 100%;
border-radius: 8rpx;
margin: 12rpx 0;
}
.richtext h1, .richtext h2, .richtext h3 {
font-weight: bold;
margin: 20rpx 0 12rpx;
}
.titlemessgae{
width: 100%;
height: 50px;
display: flex;
align-items: center;
}
.messagebox{
width: 90%;
height: 200px;
@ -308,4 +144,147 @@
.imagesize1{
width: 100px;
height: 100px;
}
.renwuma{
width: 90%;
height: 80%;
}
.tanhcuann{
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0px;
background-color: rgba(138, 135, 135, 0.5);
}
.titlema{
width: 100%;
height: 30%;
background-color: #ffffff;
border-bottom: 1px solid #a09d9d ;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.imagebox{
width: 100%;
height: 40%;
display: flex;
justify-content: center;
align-items: center;
background-color: #ffffff;
}
.masize{
width: 200px;
height: 200px;
}
.erweimacopy{
width: 100%;
height: 20%;
display: flex;
justify-content: center;
align-items: center;
background-color: #ffffff;
}
.copy{
width: 180px;
height: 40px;
background-color: rgb(17, 17, 240);
border-radius: 20px;
display: flex;
justify-content: center;
align-items: center;
color: #ffffff;
}
.closs{
width: 100%;
height: 10%;
display: flex;
justify-content: center;
align-items: center;
}
.closssize{
width: 80rpx;
height: 80rpx;
}
.maxbox{
width: 100%;
}
.kuang{
width: 100%;
display: flex;
margin-top: 30rpx;
}
.lan{
width: 100%;
height: 60px;
display: flex;
}
.zuolan{
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.youlan{
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.shopimage{
width: 23%;
display: flex;
justify-content: center;
align-items: center;
}
.textbox{
width: 57%;
height: 100%;
display: flex;
flex-direction: column;
}
.mingxi{
width: 20%;
height: 150rpx;
display: flex;
justify-content: center;
align-items: center;
}
.colorkuang{
width: 70px;
height: 30px;
background-color: #A5D63F;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10rpx;
}
.imagesizeshop{
width: 70px;
height: 70px;
border-radius: 20rpx;
}
.text_5 {
color: #585857;
font-size: 20rpx;
}
.text_6 {
color: #e33c64;
font-size: 20rpx;
}
.section_2 {
background-color: #ff8d1a;
width: 100rpx;
height: 4rpx;
}

View File

@ -5,7 +5,8 @@ Page({
* 页面的初始数据
*/
data: {
countdown: 60, // 设置倒计时时长(秒)
timer: null, // 存储计时器
},
name(e){
@ -76,6 +77,34 @@ Page({
console.error('请求失败', err);
}
});
this.startCountdown();
},
startCountdown() {
this.setData({
isCountingDown: true,
countdown: 60
});
this.data.timer = setInterval(() => {
let count = this.data.countdown;
if (count <= 1) {
clearInterval(this.data.timer);
this.setData({
isCountingDown: false,
countdown: 60
});
} else {
this.setData({
countdown: count - 1
});
}
}, 1000);
},
onUnload() {
// 页面卸载时清除定时器
if (this.data.timer) {
clearInterval(this.data.timer);
}
},
// 注册
submit(){
@ -161,6 +190,7 @@ Page({
icon: 'error',
duration: 2000
});
}
},
fail(err) {

View File

@ -13,11 +13,11 @@
<text class="font_2 text_7" bind:tap="getcode">获取验证码</text>
</view>
<view class="flex-col justify-start items-start view_2"><input class="text_3 font_3 text_8" bindinput="code" placeholder="请输入邀请码" /></view>
<view class="flex-col justify-start items-start view_3"><input class="text_3 font_3 text_9" bindinput="password" placeholder="请设置密码" /></view>
<view class="flex-col justify-start items-start view_3"><input class="text_3 font_3 text_9" bindinput="password" password type="text" placeholder="请设置密码" /></view>
</view>
</view>
<view class="flex-row items-center self-start group_2">
<radio class="radio" color="#ff8d1a" bind:tap="onAgreeChange"></radio>
<checkbox class="radio" color="#ff8d1a" bind:tap="onAgreeChange" />
<text class="shrink-0 font_4 text_10">我已阅读并同意</text>
<text class="flex-1 font_4 text_11">青橙用户服务协议、隐私政策</text>
</view>

View File

@ -112,9 +112,12 @@
line-height: 26.92rpx;
}
.text_10 {
margin-left: 35.56rpx;
margin-left: 15.56rpx;
color: #000000;
}
.radio{
margin-left: 30rpx;
}
.text_11 {
color: #d43030;
margin-left: 10rpx;
@ -148,4 +151,4 @@
.imagesize{
width: 150px;
height: 150px;
}
}

View File

@ -1 +1 @@
export const url='http://1.94.237.210:3456';
export const url='http://1.94.237.210:3457';

25
utils/logcheck.js Normal file
View File

@ -0,0 +1,25 @@
function checkLogin() {
try {
const user = wx.getStorageSync('usermessage');
if (!user || (typeof user === 'object' && Object.keys(user).length === 0)) {
wx.showToast({
title: '您未登录请先登录',
icon:'error',
duration:2000
})
setTimeout(() => {
wx.navigateTo({
url: '/pages/logain/logain',
});
}, 2000);
}
} catch (e) {
wx.navigateTo({
url: '/pages/logain/logain',
});
}
}
module.exports = {
checkLogin
};