合并代码

This commit is contained in:
sx 2025-02-03 20:36:02 +08:00
parent 407f3b0a0f
commit 933dc40ea2
18 changed files with 220 additions and 134 deletions

View File

@ -47,7 +47,6 @@ const login = {
return util.request({
url: '/user/login/resetPassword',
data: param.data,
path: param.path,
method: 'POST',
})
},

View File

@ -52,7 +52,23 @@ const mine = {
})
},
// 实名认证
/**
* 验证盖章后是否实名
* @param {Object} param
*/
isCertification(param) {
return util.request({
url: `/user/isCertification`,
query: param.query,
method: 'POST',
load: true,
})
},
/**
* 实名认证
* @param {Object} param
*/
certification(param) {
return util.request({
url: `/user/info/certification`,

View File

@ -13,6 +13,7 @@ const shop = {
method: 'GET',
})
},
/**
* 商家缴纳押金
* @param {Object} param
@ -20,6 +21,7 @@ const shop = {
depositsPay(param) {
return util.request({
url: `/shopify/appDeposits/depositsPay`,
load: true,
method: 'POST',
})
},
@ -65,6 +67,7 @@ const shop = {
outDepositsPay(param) {
return util.request({
url: `/shopify/appDeposits/outDepositsPay`,
load: true,
method: 'POST',
})
},

View File

@ -5,18 +5,19 @@ const config = {
host: 'http://localhost:5173',
// #endif
// #ifndef H5
host: 'http://91f.xyz:8080',
// host: 'http://6jv6aq.natappfree.cc ',
// host: 'http://91f.xyz:8080',
// host: 'http://192.168.31.61:8080',
host: 'http://192.168.31.41:8080',
// #endif
// 支付方式配置
payType: {
score: {
name: '积分',
img: '/static/score.png',
icon: '/static/score.png',
},
balance: {
name: '余额',
img: '/static/balance.png',
icon: '/static/balance.png',
},
},
// 腾讯im聊天

View File

@ -1477,9 +1477,7 @@ const util = {
reslove(rs.data)
const userinfo = rs.data
// 如果开启了青少年模式
if (userinfo.teenTime) {
// 青少年模式验证 如果到了限制去锁定页
}
if (userinfo.teenTime) getTeenMode(userinfo.teenTime)
// 提交
store.commit('setState', {
key: 'userinfo',
@ -1496,6 +1494,31 @@ const util = {
})
},
// 青少年模式
getTeenMode(teenTime) {
// 当前时间
const currentDate = new Date()
// 当前小时
const currentHour = currentDate.getHours()
// 大于八点 小于22点 当前时间小于设定时间
const result = currentHour >= 8 && currentHour < 22 && currentDate.valueOf() < new Date(teenTime).valueOf()
// 锁定
function lock() {
uni.reLaunch({
url: '/pages/login/lock'
})
}
// 结果
if (result) {
// 设置定时器
setTimeout(() => {
lock()
}, parseInt(new Date(teenTime).valueOf() - currentDate.valueOf()))
} else lock()
},
/**
* 验证登录
* @param {Object} cb 回调函数
@ -1556,7 +1579,7 @@ const util = {
// 验证登录
util.isLogin(() => {
const userinfo = uni.$store.state.userinfo
if (userinfo.userIdCard) {
if (userinfo.isRealName) {
param.success ? param.success(userinfo) : ''
return
}

View File

@ -120,9 +120,10 @@
},
}).then(rs => {
if (rs.code == 200) {
detail.value.isCollect = false
detail.value.collect--
uni.$emit('updateVideo', detail.value)
uni.$emit('updateVideo', {
...detail.value,
...rs.data,
})
//
collectResult.value = false
proxy.$refs.result.open()

View File

@ -140,15 +140,16 @@
// id
videoId: detail.value.id,
// id
collectId: item.id,
folderId: item.id,
}
}).then(rs => {
if (rs.code == 200) {
proxy.$refs.fastCollect.close()
detail.value.isCollect = true
detail.value.collect++
uni.$emit('updateVideo', detail.value)
uni.$emit('updateVideo', {
...detail.value,
...rs.data,
})
return
}
//

View File

@ -170,9 +170,6 @@
//
tapTimer.value = setTimeout(() => {
//
const isLike = props.item.isLike
let a = tapList.length
tapList.length = 0
@ -185,7 +182,7 @@
emit('like', {
likeType: 0,
index: props.index,
isLike: isLike == 0 ? 0 : 1
isLike: props.item.isLike
})
break;
case 3:
@ -193,7 +190,7 @@
emit('like', {
likeType: 1,
index: props.index,
isLike: isLike == 0 ? 3 : 1
isLike: props.item.isLike
})
break;
}
@ -558,9 +555,14 @@
@click="handleLike(index, 0, 0)" @longpress="handlePrivateLike(index)" />
</template>
</view>
<view class="txt mt10">
<!-- 只有公开赞显示点赞数 -->
<view class="txt mt10" v-if="item.isLike && item.likeType == 0">
<text class="text">{{ item.likeCount }}</text>
</view>
<view class="txt mt10" v-else>
<text class="text">点赞</text>
</view>
</view>
</view>
@ -581,7 +583,8 @@
v-if="item.isCollect" />
<image class="wh50" src="@/static/indexCollect.png" mode="aspectFit" v-else />
<view class="txt mt10">
<text class="text">{{ item.collectCount }}</text>
<text class="text">收藏</text>
<!-- <text class="text">{{ item.collectCount }}</text> -->
</view>
</view>
</view>

View File

@ -24,7 +24,7 @@
<template>
<view class="pwd rows mt50 ptb10 plr30">
<view class="item fmid" v-for="(item,index) in 6" :key="index">
<text v-if="modelValue[index] != null">{{modelValue[index]}}</text>
<text v-if="modelValue[index] != null"></text>
</view>
</view>
</template>

View File

@ -689,33 +689,29 @@
}
},
{
"path" : "pages/shop/commodity/history",
"style" :
{
"navigationBarTitleText" : "商品修改历史"
"path": "pages/shop/commodity/history",
"style": {
"navigationBarTitleText": "商品修改历史"
}
},
{
"path" : "pages/shop/store/order",
"style" :
{
"navigationBarTitleText" : "商家订单",
"path": "pages/shop/store/order",
"style": {
"navigationBarTitleText": "商家订单",
"navigationStyle": "custom"
}
},
{
"path" : "pages/mine/setting/sequence",
"style" :
{
"navigationBarTitleText" : "支付顺序",
"path": "pages/mine/setting/sequence",
"style": {
"navigationBarTitleText": "支付顺序",
"navigationBarBackgroundColor": "#fff"
}
},
{
"path" : "pages/shop/commodity/payment",
"style" :
{
"navigationBarTitleText" : "继续付款",
"path": "pages/shop/commodity/payment",
"style": {
"navigationBarTitleText": "继续付款",
"navigationBarBackgroundColor": "#fff"
}
},

View File

@ -211,6 +211,7 @@
})
onHide(() => {
console.log('onHide', current[tabIndex.value], currentVideoRef)
// 暂停视频
if (proxy.$refs[`videoRef${tabIndex.value}`]) {
proxy.$refs[`videoRef${tabIndex.value}`][current[tabIndex.value]].pause()
@ -721,19 +722,20 @@
@touchend="onTouchend($event,index)" @loadmore="item.getMoreList">
<cell class="cell" :style="[{height: viewSize.height + 'px'}]" :ref="`cellRef` + index"
v-for="(secItem,secIndex) in item.listData()" :key="secItem.id" @click.stop>
<template v-if="current[tabIndex] < secIndex + 2 && current[tabIndex] > secIndex - 2">
<view class="pa t0 l0 r0 b0 fmid" :style="{zIndex: 99,}">
<text class="f32 cfff">{{current[tabIndex]}}</text>
<text class="f32 cfff">{{index}}</text>
</view>
<!-- 视频 -->
<indexVideo :ref="'videoRef' + index" :tabIndex="index" :current="current[tabIndex]"
:width="viewSize.width" :height="viewSize.height" :item="secItem" :index="secIndex"
@showTime="handleShowTime" @showComment="handleShowCommentAlt"
@showCollect="handleShowCollectAlt" @showShareFirend="handleShowShareFirend"
@onPlay="handleVideoOnPlay" @onPause="handleVideoOnPause" @like="videoLike"
@longtap="$refs.moreMenuRef.open(secItem)" @showFastCollect="handleShowFastCollect" />
</template>
<!-- <template v-if="current[tabIndex] < secIndex + 2 && current[tabIndex] > secIndex - 2"> -->
<view class="pa t0 l0 r0 b0 fmid" :style="{zIndex: 99,}">
<text class="f32 cfff">{{current[tabIndex]}}</text>
<text class="f32 cfff">{{index}}</text>
</view>
<!-- 视频 -->
<indexVideo :ref="'videoRef' + index" :tabIndex="index" :current="current[tabIndex]"
:width="viewSize.width" :height="viewSize.height" :item="secItem" :index="secIndex"
@showTime="handleShowTime" @showComment="handleShowCommentAlt"
@showCollect="handleShowCollectAlt" @showShareFirend="handleShowShareFirend"
@onPlay="handleVideoOnPlay" @onPause="handleVideoOnPause" @like="videoLike"
@longtap="$refs.moreMenuRef.open(secItem)" @showFastCollect="handleShowFastCollect" />
<!-- </template> -->
</cell>
</list>
</view>

View File

@ -14,54 +14,59 @@
import notice from '@/components/login/notice'
// api
import api from '@/api/index'
//
import CryptoJS from 'crypto-js';
//
const form = reactive({
// imei
userImei: '',
//
userPhone: '',
phoneNumber: '',
//
userPassword: '',
password: '',
//
verifyCode: '',
})
//
const rePwd = ref('')
//
const cache = ref('')
//
const read = ref(false)
//
function handleLogin() {
const data = {
...form
}
//
if (!form.userPhone) {
if (!data.phoneNumber) {
util.alert('请输入手机号')
return
}
if (!cache.value) {
if (!data.verifyCode) {
util.alert('请输入验证码')
return
}
if (!form.userPassword) {
if (!data.password) {
util.alert('请输入密码')
return
}
if (form.userPassword !== rePwd.value) {
if (data.password !== rePwd.value) {
util.alert('两次输入密码不一致')
return
}
data.password = CryptoJS.MD5(data.password).toString()
// imei
if (!form.userImei) {
if (!data.userImei) {
const info = uni.getSystemInfoSync()
//
form.userImei = info.deviceId
data.userImei = info.deviceId
}
//
api.login.resetPassword({
data: form,
path: [cache.value],
data,
}).then(rs => {
if (rs.code == 200) {
util.alert({
@ -94,19 +99,19 @@
<view class="title mtb30">忘记密码</view>
<view class="inputBox mtb30 ptb10 plr30">
<input type="text" v-model="form.userPhone" placeholder="请输入手机号" />
<input type="text" v-model="form.phoneNumber" placeholder="请输入手机号" />
</view>
<view class="inputBox rows mtb30 ptb10 plr30">
<input type="text" v-model="cache" placeholder="请输入验证码" class="f1" />
<input type="text" v-model="form.verifyCode" placeholder="请输入验证码" class="f1" />
<view class="getCode btn sm plr20">
<getCode event="reset_password" :phone="form.userPhone" />
<getCode event="reset_password" :phone="form.phoneNumber" />
</view>
</view>
<view class="inputBox mtb30 ptb10 plr30">
<input type="text" v-model="form.userPassword" placeholder="请输入密码" />
<input type="text" v-model="form.password" placeholder="请输入密码" />
</view>
<view class="inputBox mtb30 ptb10 plr30">

View File

@ -43,32 +43,51 @@
})
//
const format_idCard = computed(() => {
let result = userinfo.value.idCard || ''
if (result) result = result.slice(0, 1) + '*'.repeat(userinfo.value.idCard.length - 2) + result.slice(-
let result = userinfo.value.userIdCard || ''
if (result) result = result.slice(0, 1) + '*'.repeat(userinfo.value.userIdCard.length - 2) + result.slice(-
1)
return result
})
//
function startLive() {
//
liveModule.startLive({
openSound: true,
signKey: 'HISP1YFG44LQ29W0',
},
result => {
console.log('startLive', result)
if (result.errorCode == 0) {
faceImage.value = result.liveImage
} else if (result.errorCode == 1 && result.errorMessage == '活体检测未通过') {
util.alert({
title: '系统提示',
content: '检测失败请重试',
showCancel: false
//
if (!form.idCard) {
util.alert('身份证号不能为空')
return
}
api.mine.isCertification({
query: {
userIdCard: form.idCard
}
}).then(rs => {
if (rs.code === 200) {
//
liveModule.startLive({
openSound: true,
signKey: 'HISP1YFG44LQ29W0',
},
result => {
console.log('startLive', result)
if (result.errorCode == 0) {
faceImage.value = result.liveImage
} else if (result.errorCode == 1 && result.errorMessage == '活体检测未通过') {
util.alert({
title: '系统提示',
content: '检测失败请重试',
showCancel: false
})
}
// this.resultText = result.errorMessage;
})
}
// this.resultText = result.errorMessage;
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}
//
@ -125,7 +144,7 @@
<image class="authImg" src="/static/mineAuth.png" mode="aspectFill" />
<view class="mt30 tac c666 f30">
<view class="">{{userinfo.name}}</view>
<view class="">{{userinfo.userRealName}}</view>
<view class="mt50">{{format_idCard}}</view>
</view>
</view>
@ -186,7 +205,7 @@
.key {
width: 200rpx;
}
.value {
flex: 1;
font-size: 28rpx;

View File

@ -33,7 +33,7 @@
rePwd: '',
})
//
const formKey = reactive('pwd')
const formKey = ref('pwd')
//
const userinfo = computed(() => {
let result = store.state.userinfo
@ -56,6 +56,7 @@
util.alert('二级密码不能为空')
}
mode.value = 'rePwd'
formKey.value = 'rePwd'
}
//
@ -76,6 +77,10 @@
content: '两次输入密码不一致',
showCancel: false
})
//
form.pwd = ''
form.rePwd = ''
mode.value = 'set'
return
}
@ -139,14 +144,14 @@
* @param {Object} val
*/
function KeyInfo(val) {
//
if (form[formKey.value].length >= 6) return
//
if (val.keyCode === 8) {
//
form[formKey.value] = form[formKey.value].slice(0, -1)
// passwordArr.splice(val.index + 1, 1)
return
}
//
if (form[formKey.value].length >= 6) return
// .
else if (val.keyCode == 190) {
// .
@ -167,7 +172,7 @@
<codeInput v-model:modelValue="form.pwd" />
</view>
<view class="btn lg black mtb50 plr50" @click="handleSubmit">下一步</view>
<view class="btn lg black mtb50 plr50" @click="handleNext">下一步</view>
</view>
<view class="container ver mt10p" v-if="mode === 'rePwd'">
@ -175,7 +180,7 @@
<view class="content mt50 c666 f32">请再次输入刚才设置的二级密码</view>
<view class="pwd">
<codeInput v-model:modelValue="form.repwd" />
<codeInput v-model:modelValue="form.rePwd" />
</view>
<view class="btn lg black mtb50 plr50" @click="handleSubmit">确认</view>
@ -192,6 +197,7 @@
</view>
</view>
<!-- 安全键盘 -->
<cc-defineKeyboard ref="CodeKeyboard" passwrdType="pay" @KeyInfo="KeyInfo" />
</template>

View File

@ -1,17 +1,5 @@
<template>
<view class="app">
<!-- 提示 -->
<view class="title mtb30 mlr30 c333 f32 b">按住图标拖动</view>
<!-- 拖拽 -->
<HM-dragSorts ref="dragSorts" :list="list" :listHeight="90" />
<view class="footer plr30 bfff shadow">
<view class="btn lg black" @click="handleSubmit">保存</view>
</view>
</view>
</template>
<script setup>
//
import {
onMounted,
ref
@ -35,10 +23,8 @@
if (res.code == 200) {
//
list.value = res.data.map(node => {
node.name = {
'balance': '余额',
'score': '积分',
} [node.paymentMethod]
node.icon = util.config.payType[node.paymentMethod].icon
node.name = util.config.payType[node.paymentMethod].name
return node
})
return
@ -72,6 +58,19 @@
}
</script>
<template>
<view class="app">
<!-- 提示 -->
<view class="title mtb30 mlr30 c333 f32 b">按住图标拖动</view>
<!-- 拖拽 -->
<HM-dragSorts ref="dragSorts" :list="list" :listHeight="90" />
<view class="footer plr30 bfff shadow">
<view class="btn lg black" @click="handleSubmit">保存</view>
</view>
</view>
</template>
<style lang="scss" scoped>
//
</style>

View File

@ -65,7 +65,7 @@
onReady(() => {
//
callPwd('depositsPay')
// callPwd('depositsPay')
})
//
@ -354,14 +354,19 @@
* @param {Object} key 后续方法key
*/
function callPwd(key) {
pwdCb.value = {
//
'depositsPay': depositsPay,
// 退
'outDepositsPay': outDepositsPay,
} [key]
//
proxy.$refs.payPwdRef.open()
util.isAuth({
success: () => {
pwdCb.value = {
//
'depositsPay': depositsPay,
// 退
'outDepositsPay': outDepositsPay,
} [key]
console.log('pwdCb', pwdCb.value)
//
proxy.$refs.payPwdRef.open()
}
})
}
//
@ -389,7 +394,7 @@
<view class="footer plr30 bfff shadow">
<!-- 未缴纳押金 -->
<template v-if="mode.code == 0">
<view class="btn black" @click="$refs.payPwdRef.open()">缴纳押金</view>
<view class="btn black" @click="callPwd('depositsPay')">缴纳押金</view>
</template>
<template v-else>
<view class="rows">

View File

@ -100,7 +100,7 @@ npm install crypto-js --save-dev
短信宝
https://console.smsbao.com/#/general/log/mt
bcmeta
3216547@A
3216547@A91a
证书网址
@ -124,14 +124,6 @@ https://mastergo.com/goto/DPd3TfDa?page_id=M&file=140247496805863
HelloWorld123!
设计文档
https://docs.qq.com/sheet/DWVJQeUdnTVR2a0xp?tab=BB08J2
测试推荐码
exercita
UAZTMZ
bilibili扒视频网站
https://snapany.com/zh/bilibili
@ -424,4 +416,18 @@ likeType
商品评论
点赞
收藏
青少年模式
闹钟
有效读秒
任务读秒
商品上传
购买流程
商家和会员之间进行沟通
购买卷轴榴莲果树释放
榴莲果兑换展播量
评论集合 查看他人评论消耗榴莲果

View File

@ -4,8 +4,9 @@ import {
import uni from '@dcloudio/vite-plugin-uni';
//
let target = 'http://91f.xyz:8080'
// let target = 'http://6jv6aq.natappfree.cc '
// let target = 'http://91f.xyz:8080'
// let target = 'http://192.168.31.41:8080'
let target = 'http://192.168.31.61:8080'
export default defineConfig({
plugins: [uni()],