5.28
|
@ -0,0 +1,263 @@
|
|||
<template>
|
||||
<view class="captcha-container" ref="container">
|
||||
<view class="font-title">请通过滑块验证</view>
|
||||
<view class="captcha-image" style="position: relative; width: 100%; height: 400rpx; overflow: hidden;">
|
||||
<image :src="bgImage" class="bg-image" mode="widthFix" @load="init" />
|
||||
<view class="overlay" :style="{width: containerWidth + 'rpx', height: containerHeight + 'rpx'}">
|
||||
<view class="hole" :style="{
|
||||
top: originY + 'rpx',
|
||||
left: originX + 'rpx',
|
||||
width: pieceSize + 'rpx',
|
||||
height: pieceSize + 'rpx',
|
||||
clipPath: clipPath,
|
||||
transform: 'translate(-50%, -50%)',
|
||||
backgroundColor: 'rgba(0,0,0,0.3)'
|
||||
}"></view>
|
||||
|
||||
<view class="piece" :style="{
|
||||
top: originY + 'rpx',
|
||||
left: offsetX + 'rpx',
|
||||
width: pieceSize + 'rpx',
|
||||
height: pieceSize + 'rpx',
|
||||
backgroundImage: `url(${bgImage})`,
|
||||
backgroundSize: containerWidth + 'rpx ' + containerHeight + 'rpx',
|
||||
backgroundPosition: `-${originX-30}rpx -${originY-45}rpx`,
|
||||
clipPath: clipPath,
|
||||
transform: 'translate(-50%, -50%)'
|
||||
}"></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="slider-bar">
|
||||
<view class="slider-button" ref="btn" @touchstart.prevent="onStart" @mousedown.prevent="onStart"
|
||||
:style="{ left: offsetX + 'rpx', maxWidth: (containerWidth - pieceSize) + 'rpx' }"></view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
onBeforeUnmount
|
||||
} from 'vue';
|
||||
import {
|
||||
onLoad
|
||||
} from '@dcloudio/uni-app';
|
||||
|
||||
import img0 from '@/static/login/0.png'
|
||||
import img1 from '@/static/login/1.png'
|
||||
import img2 from '@/static/login/2.png'
|
||||
import img3 from '@/static/login/3.png'
|
||||
|
||||
const pieceSizePx = 50;
|
||||
const pieceSize = pieceSizePx * 2;
|
||||
const tolerance = 20;
|
||||
|
||||
const container = ref(null);
|
||||
const btn = ref(null);
|
||||
|
||||
const containerWidthPx = 200;
|
||||
const containerHeightPx = 300;
|
||||
|
||||
const containerWidth = ref(containerWidthPx * 2);
|
||||
const containerHeight = ref(containerHeightPx * 2);
|
||||
|
||||
const originX = ref(0);
|
||||
const originY = ref(0);
|
||||
const offsetX = ref(0);
|
||||
const dragging = ref(false);
|
||||
const startX = ref(0);
|
||||
|
||||
function getPuzzlePiecePath(size) {
|
||||
const s = size;
|
||||
return `
|
||||
M${10*2} 0
|
||||
h${s / 3 - 10*2}
|
||||
a${10*2} ${10*2} 0 0 1 0 ${20*2}
|
||||
h${s / 3}
|
||||
a${10*2} ${10*2} 0 0 0 0 -${20*2}
|
||||
h${s / 3 - 10*2}
|
||||
v${s / 3 - 10*2}
|
||||
a${10*2} ${10*2} 0 0 1 -${20*2} 0
|
||||
v${s / 3}
|
||||
a${10*2} ${10*2} 0 0 0 ${20*2} 0
|
||||
v${s / 3 - 10*2}
|
||||
h-${s / 3 - 10*2}
|
||||
a${10*2} ${10*2} 0 0 1 0 -${20*2}
|
||||
h-${s / 3}
|
||||
a${10*2} ${10*2} 0 0 0 0 ${20*2}
|
||||
h-${s / 3 - 10*2}
|
||||
z
|
||||
`;
|
||||
}
|
||||
|
||||
const clipPath = `path('${getPuzzlePiecePath(pieceSize)}')`;
|
||||
|
||||
function init() {
|
||||
uni.createSelectorQuery()
|
||||
.in(container.value)
|
||||
.select('.bg-image')
|
||||
.boundingClientRect(data => {
|
||||
if (!data) {
|
||||
console.error('无法获取.bg-image尺寸');
|
||||
return;
|
||||
}
|
||||
console.log('图片宽高:', data.width, data.height); // 加这个调试!
|
||||
|
||||
containerWidth.value = data.width * 2;
|
||||
containerHeight.value = data.height * 2;
|
||||
|
||||
originX.value = Math.random() * (containerWidth.value - pieceSize * 2) + pieceSize;
|
||||
originY.value = containerHeight.value / 2;
|
||||
offsetX.value = 0;
|
||||
|
||||
console.log('originX:', originX.value, 'originY:', originY.value);
|
||||
})
|
||||
.exec();
|
||||
}
|
||||
|
||||
function onStart(e) {
|
||||
dragging.value = true;
|
||||
startX.value = e.touches ? e.touches[0].clientX * 2 : e.clientX * 2;
|
||||
window.addEventListener('mousemove', onMove);
|
||||
window.addEventListener('mouseup', onEnd);
|
||||
window.addEventListener('touchmove', onMove);
|
||||
window.addEventListener('touchend', onEnd);
|
||||
}
|
||||
|
||||
function onMove(e) {
|
||||
if (!dragging.value) return;
|
||||
const clientX = e.touches ? e.touches[0].clientX * 2 : e.clientX * 2;
|
||||
let dx = clientX - startX.value;
|
||||
dx = Math.max(0, Math.min(dx, containerWidth.value - pieceSize));
|
||||
offsetX.value = dx;
|
||||
}
|
||||
const uToast = ref(null)
|
||||
|
||||
|
||||
function onEnd() {
|
||||
dragging.value = false;
|
||||
window.removeEventListener('mousemove', onMove);
|
||||
window.removeEventListener('mouseup', onEnd);
|
||||
window.removeEventListener('touchmove', onMove);
|
||||
window.removeEventListener('touchend', onEnd);
|
||||
|
||||
if (Math.abs(offsetX.value - originX.value) < tolerance) {
|
||||
console.log('验证成功');
|
||||
} else {
|
||||
offsetX.value = 0;
|
||||
uni.showToast({
|
||||
title: '验证失败',
|
||||
icon: 'none', // 不显示图标(提示信息)
|
||||
duration: 2000 // 显示时长(毫秒)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const bgImage = ref("");
|
||||
onLoad(() => {
|
||||
let randomInt = Math.floor(Math.random() * 4);
|
||||
const bgImageMap = [img0, img1, img2, img3];
|
||||
bgImage.value = bgImageMap[randomInt];
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('mousemove', onMove);
|
||||
window.removeEventListener('mouseup', onEnd);
|
||||
window.removeEventListener('touchmove', onMove);
|
||||
window.removeEventListener('touchend', onEnd);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.captcha-container {
|
||||
/* margin: 20rpx auto; */
|
||||
user-select: none;
|
||||
background-color: #fff;
|
||||
width: 600rpx;
|
||||
height: 800rpx;
|
||||
margin: 0 auto;
|
||||
z-index: 999;
|
||||
border-radius: 30rpx;
|
||||
overflow: hidden;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
|
||||
.captcha-image {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.bg-image {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
/* margin-top: 30rpx; */
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 100;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.hole,
|
||||
.piece {
|
||||
position: absolute;
|
||||
z-index: 101;
|
||||
border-radius: 5rpx;
|
||||
box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.hole {
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.piece {
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
cursor: grab;
|
||||
}
|
||||
|
||||
.slider-bar {
|
||||
position: relative;
|
||||
height: 160rpx;
|
||||
margin-top: 0rpx;
|
||||
background: #eee;
|
||||
border-radius: 80rpx;
|
||||
width: 600rpx;
|
||||
}
|
||||
|
||||
.slider-button {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
background: #fff;
|
||||
border-radius: 60rpx;
|
||||
box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.2);
|
||||
transition: background 0.3s;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.slider-button.success {
|
||||
background: #4caf50;
|
||||
}
|
||||
|
||||
.font-title {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 80rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
}
|
||||
</style>
|
|
@ -19,7 +19,6 @@ export function useWeChatAuth() {
|
|||
`&scope=${scope}` +
|
||||
`&state=${state}` +
|
||||
`#wechat_redirect`;
|
||||
// console.log("????",scope)
|
||||
|
||||
window.location.href = url;
|
||||
}
|
||||
|
|
2
main.js
|
@ -3,6 +3,8 @@ import uView from './uni_modules/vk-uview-ui';
|
|||
// #ifndef VUE3
|
||||
import Vue from 'vue'
|
||||
import './uni.promisify.adaptor'
|
||||
import uView from './uni_modules/vk-uview-ui';
|
||||
Vue.use(uView);
|
||||
Vue.config.productionTip = false
|
||||
App.mpType = 'app'
|
||||
const app = new Vue({
|
||||
|
|
20
pages.json
|
@ -1,29 +1,41 @@
|
|||
{
|
||||
"pages": [
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"path": "pages/login/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/phonebumber",
|
||||
"path": "pages/login/phonebumber",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/code",
|
||||
"path": "pages/login/code",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/callback",
|
||||
"path": "pages/login/callback",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/login/protocol",
|
||||
"style": {
|
||||
"navigationBarTitleText": "护理单元使用条款"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "首页"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/map/index",
|
||||
"style": {
|
||||
|
|
|
@ -1,151 +0,0 @@
|
|||
<template>
|
||||
<view class="callback-container">
|
||||
回调成功{{ceshi.name}}{{ceshi.openid}}
|
||||
<!-- <text v-if="!userInfo">授权中...</text>
|
||||
<view v-else>
|
||||
<text>OpenID: {{ openid }}</text>
|
||||
<text v-if="userInfo.nickname">昵称: {{ userInfo.nickname }}</text>
|
||||
<image v-if="userInfo.headimgurl" :src="userInfo.headimgurl" class="avatar" />
|
||||
</view> -->
|
||||
<view v-for="(item,index) in jigouArray" :key="index">
|
||||
<view style="font-size: 30rpx;margin-top: 10rpx;font-weight: 700;" @click="jigouClick(item)">
|
||||
{{item.departName}}
|
||||
</view>
|
||||
<image style="width: 60rpx;height: 60rpx;" :src="`https://www.focusnu.com/nursing-unit/sys/common/static/${item.picUrl}`" />
|
||||
</view>
|
||||
<view v-for="(item,index) in secondArray" :key="index" @click="jumpto">
|
||||
<view style="font-size: 30rpx;margin-top: 10rpx;font-weight: 700;">
|
||||
{{item.nuName}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { useWeChatAuth } from '@/compontent/useWeChatAuth.js';
|
||||
import request from '@/request/index.js';
|
||||
import { reactive,ref } from 'vue';
|
||||
|
||||
const { fetchUserInfo, openid, userInfo } = useWeChatAuth();
|
||||
|
||||
const ceshi = reactive({
|
||||
name:"",
|
||||
openid:"",
|
||||
})
|
||||
const jumpto = () =>{
|
||||
console.log("???")
|
||||
uni.navigateTo({
|
||||
url: "/pages/pay/index"
|
||||
});
|
||||
}
|
||||
const getOpenId = (code) =>{
|
||||
const url = `https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(code)}`;
|
||||
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
console.log("✅ 获取用户信息成功:", data);
|
||||
ceshi.name = data.nickname
|
||||
ceshi.openid = data.openid
|
||||
uni.setStorage({
|
||||
key: 'openid',
|
||||
data: {
|
||||
openid: data.openid,
|
||||
}
|
||||
});
|
||||
getUserMessage()
|
||||
|
||||
})
|
||||
.catch(err => {
|
||||
console.error("❌ 获取用户信息失败:", err);
|
||||
});
|
||||
}
|
||||
const getUserMessage = () =>{
|
||||
const url = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(ceshi.openid)}&wechatName=${encodeURIComponent(ceshi.name)}`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
console.log("个人信息打印",data)
|
||||
getjigou()
|
||||
} )
|
||||
}
|
||||
const jigouArray = ref([]);
|
||||
const getjigou = () =>{
|
||||
const url = `https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
jigouArray.value = [...data]
|
||||
console.log("机构打印",jigouArray.value)
|
||||
} )
|
||||
}
|
||||
const secondArray = ref([]);
|
||||
const jigouClick = (element) =>{
|
||||
const url = `${element.serverUrl}/h5Api/nuBaseInfo/list`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
secondArray.value = [...data.result]
|
||||
} )
|
||||
uni.setStorage({
|
||||
key: 'serverUrl',
|
||||
data: {
|
||||
url: element.serverUrl,
|
||||
}
|
||||
});
|
||||
const urlpost = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo`;
|
||||
const payload = {
|
||||
openId: ceshi.openid,
|
||||
serverUrl: element.serverUrl
|
||||
};
|
||||
console.log("???/",payload)
|
||||
fetch(urlpost, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
// secondArray.value = [...data.result];
|
||||
console.log("???",data)
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('请求失败:', err);
|
||||
});
|
||||
}
|
||||
onLoad(() => {
|
||||
const href = window.location.href;
|
||||
const queryString = href.split('?')[1]?.split('#')[0]; // 提取 ? 和 # 之间的参数
|
||||
const query = {};
|
||||
|
||||
if (queryString) {
|
||||
queryString.split('&').forEach(pair => {
|
||||
const [key, value] = pair.split('=');
|
||||
query[key] = decodeURIComponent(value);
|
||||
});
|
||||
}
|
||||
|
||||
console.log('解析到的 query 参数:', query);
|
||||
|
||||
if (query.code) {
|
||||
getOpenId(query.code)
|
||||
|
||||
// 调用你的方法,比如 fetchUserInfo(query.code)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.callback-container {
|
||||
padding: 24px;
|
||||
}
|
||||
.avatar {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 40px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
</style>
|
|
@ -1,282 +0,0 @@
|
|||
<template>
|
||||
<view class="login-container">
|
||||
<view class="title">
|
||||
<image class="title-imge" src="/static/index/nu.png" />
|
||||
<view class="title-font">
|
||||
<view class="">您好,</view>
|
||||
<view class="">欢迎使用nu护理单元~</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="photo-imge" src="/static/index/bgc.png" />
|
||||
<image class="old-imge" src="/static/index/old.png" />
|
||||
<view class="under-container">
|
||||
<view class="under-container-title">
|
||||
<view class="code-title">
|
||||
请输入验证码
|
||||
</view>
|
||||
<view class="code-number">
|
||||
验证码已发送至{{ phonenumber }}
|
||||
</view>
|
||||
<!-- <view class="under-container-input">
|
||||
<view class="input-left">+86</view>
|
||||
<input type="number" style="width: 600rpx;" maxlength="11" placeholder="请输入手机号" @input="isRight" />
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="captcha-container">
|
||||
<view class="captcha-box">
|
||||
<view v-for="(digit, index) in captcha" :key="index" class="captcha-item">
|
||||
<input v-model="captcha[index]" class="captcha-input" type="number" maxlength="1"
|
||||
:placeholder="index < 3 ? '' : ' '" @input="handleInput(index)"
|
||||
@keydown="handleKeydown(index, $event)" :focus="focusedIndex === index" />
|
||||
</view>
|
||||
</view>
|
||||
<!-- 触发钩子 -->
|
||||
<!-- <button class="submit-btn" @click="submitCaptcha">提交验证码</button> -->
|
||||
</view>
|
||||
<view style="width: 100%;">
|
||||
<view class="right-blue">
|
||||
重新发送
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="under-container-title">
|
||||
请输入验证码
|
||||
</view>
|
||||
<view class="button-blue" v-show="canClick" @click="loginIt">
|
||||
获得验证码
|
||||
</view>
|
||||
<view class="button-gray" v-show="!canClick">
|
||||
获得验证码
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
nextTick,
|
||||
reactive,
|
||||
ref
|
||||
} from 'vue';
|
||||
import {
|
||||
onLoad
|
||||
} from '@dcloudio/uni-app';
|
||||
|
||||
const phonenumber = ref("")
|
||||
const captcha = ref(['', '', '', '']); // 用来存储4个小方块的验证码输入
|
||||
const focusedIndex = ref(0); // 当前聚焦的小方块索引
|
||||
|
||||
// 输入框输入时的处理函数
|
||||
const handleInput = (index) => {
|
||||
if (captcha.value[index]) {
|
||||
if (index < 3) {
|
||||
focusedIndex.value = index + 1; // 输入后自动聚焦到下一个小方块
|
||||
}
|
||||
}
|
||||
let isFour = true;
|
||||
captcha.value.forEach(number=>{
|
||||
if(!number){
|
||||
isFour = false;
|
||||
}
|
||||
})
|
||||
nextTick(()=>{
|
||||
if(isFour){
|
||||
submitCaptcha()
|
||||
}
|
||||
|
||||
})
|
||||
};
|
||||
|
||||
// 处理删除键
|
||||
const handleKeydown = (index, event) => {
|
||||
if (event.key === 'Backspace' && !captcha.value[index]) {
|
||||
if (index > 0) {
|
||||
focusedIndex.value = index - 1; // 如果当前小方块为空,则聚焦到前一个小方块
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 提交验证码
|
||||
const submitCaptcha = () => {
|
||||
const code = captcha.value.join('');
|
||||
if (code.length === 4) {
|
||||
console.log('提交验证码:', code);
|
||||
// 执行验证码提交的逻辑
|
||||
} else {
|
||||
console.log('验证码未输入完整');
|
||||
}
|
||||
};
|
||||
|
||||
onLoad((options) => {
|
||||
// console.log(options.phonenumber); // 获取传递的参数
|
||||
phonenumber.value = options.phonenumber
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.login-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
background-color: rgb(239, 241, 252);
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
margin-top: 120rpx;
|
||||
align-items: center;
|
||||
|
||||
.title-imge {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
|
||||
.title-font {
|
||||
font-size: 35rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
.photo-imge {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
|
||||
.old-imge {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 550rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
|
||||
.under-container {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 680rpx;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// align-items: center;
|
||||
color: #5A607F;
|
||||
|
||||
.radio-circle {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.under-container-title {
|
||||
// display: flex;
|
||||
margin-top: 50rpx;
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 25rpx;
|
||||
font-weight: 500;
|
||||
width: 100%;
|
||||
|
||||
.code-title {
|
||||
margin-left: 80rpx;
|
||||
font-size: 33rpx;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.code-number {
|
||||
margin-left: 80rpx;
|
||||
font-size: 28rpx;
|
||||
// color: black;
|
||||
// font-weight: 500;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.captcha-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.captcha-box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.captcha-item {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.captcha-input {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
border-radius: 20rpx;
|
||||
font-size: 28rpx;
|
||||
text-align: center;
|
||||
margin-right: 40rpx;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.captcha-input:focus {
|
||||
border-color: #00C9FF;
|
||||
}
|
||||
|
||||
.submit-btn {
|
||||
padding: 10rpx 20rpx;
|
||||
background-color: #00C9FF;
|
||||
color: white;
|
||||
border-radius: 43rpx;
|
||||
font-size: 28rpx;
|
||||
margin-top: 20rpx;
|
||||
width: 80%;
|
||||
text-align: center;
|
||||
}
|
||||
.right-blue{
|
||||
float: right;
|
||||
color: #0083FF;
|
||||
margin-right: 80rpx;
|
||||
}
|
||||
</style>
|
|
@ -1,30 +1,14 @@
|
|||
<template>
|
||||
<view class="login-container">
|
||||
<view class="title">
|
||||
<image class="title-imge" src="/static/index/nu.png" />
|
||||
<view class="title-font">
|
||||
<view class="">您好,</view>
|
||||
<view class="">欢迎使用nu护理单元~</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="photo-imge" src="/static/index/bgc.png" />
|
||||
<image class="old-imge" src="/static/index/old.png" />
|
||||
<view class="under-container">
|
||||
<view class="under-container-title">
|
||||
<div v-show="isFadingOut" class="bubble">
|
||||
请勾选同意该协议
|
||||
</div>
|
||||
<view :class="isTarget ? 'radio-circle-target' : 'radio-circle'" @click="isTarget = !isTarget"></view>
|
||||
<view class="radio-circle-font" @click="isTarget = !isTarget">登录代表您已同意</view>
|
||||
<view class="radio-circle-blue">
|
||||
《法律条款与隐私政策》
|
||||
<!-- 底部的栏,为啥这样写,是因为要做左右拉动 -->
|
||||
<view class="botton-view">
|
||||
<view v-for="(item,index) in itemArray" class="array-father">
|
||||
<view :class="itemTarget===index ? `bottom-button-target` : `bottom-button`" @click="itemTarget=index">
|
||||
<view class="">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="button-blue" @click="loginIt">
|
||||
一键登录
|
||||
</view>
|
||||
<view class="button-white" @click="yanzhengma">
|
||||
手机登录/注册
|
||||
<view v-show="itemTarget===index" class="blue-heng"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -35,220 +19,62 @@
|
|||
reactive,
|
||||
ref
|
||||
} from 'vue';
|
||||
import {
|
||||
useWeChatAuth
|
||||
} from '@/compontent/useWeChatAuth.js';
|
||||
|
||||
const isTarget = ref(false);
|
||||
const isFadingOut = ref(false);
|
||||
const {
|
||||
login
|
||||
} = useWeChatAuth();
|
||||
|
||||
let timerId = null; // 用来保存定时器ID
|
||||
|
||||
const loginIt = () => {
|
||||
// 清除上次的定时器,避免定时器重复触发
|
||||
if (timerId) {
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
|
||||
if (!isTarget.value) {
|
||||
isFadingOut.value = true;
|
||||
timerId = setTimeout(() => {
|
||||
isFadingOut.value = false;
|
||||
}, 1000); // 500ms后恢复显示
|
||||
} else {
|
||||
login();
|
||||
}
|
||||
};
|
||||
const yanzhengma = () => {
|
||||
if (timerId) {
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
|
||||
if (!isTarget.value) {
|
||||
isFadingOut.value = true;
|
||||
timerId = setTimeout(() => {
|
||||
isFadingOut.value = false;
|
||||
}, 1000); // 500ms后恢复显示
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: "/pages/index/phonebumber"
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
const itemArray = ["NU", "动态", "我的"];
|
||||
const itemTarget = ref(0);
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.login-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: rgb(239, 241, 252);
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
margin-top: 120rpx;
|
||||
align-items: center;
|
||||
|
||||
.title-imge {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
|
||||
.title-font {
|
||||
font-size: 35rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
.photo-imge {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
|
||||
.old-imge {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 550rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
|
||||
.under-container {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 680rpx;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.radio-circle {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.under-container-title {
|
||||
.array-father {
|
||||
width: 33%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.botton-view {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 200rpx;
|
||||
width: 100%;
|
||||
// background-color: greenyellow;
|
||||
display: flex;
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 30rpx;
|
||||
align-items: center;
|
||||
font-size: 25rpx;
|
||||
justify-content: space-between;
|
||||
font-weight: 500;
|
||||
|
||||
.radio-circle-blue {
|
||||
color: #0083FF;
|
||||
margin-top: 3rpx;
|
||||
|
||||
.bottom-button {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.radio-circle-font {
|
||||
color: #5A607F;
|
||||
margin-left: 18rpx;
|
||||
margin-top: 3rpx;
|
||||
.bottom-button-target {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: rgb(42, 133, 235);
|
||||
}
|
||||
}
|
||||
|
||||
.button-blue {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.button-white {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
color: #5A607F;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
}
|
||||
|
||||
.bubble {
|
||||
transition: opacity 1s ease-out;
|
||||
position: absolute;
|
||||
left: 25rpx;
|
||||
top: -5rpx;
|
||||
background-color: black;
|
||||
color: white;
|
||||
padding: 10rpx;
|
||||
border-radius: 10rpx;
|
||||
font-size: 23rpx;
|
||||
box-shadow: 2rpx 2rpx 5rpx rgba(0, 0, 0, 0.2);
|
||||
pointer-events: none;
|
||||
opacity: 1;
|
||||
/* 初始为可见 */
|
||||
}
|
||||
|
||||
.bubble::after {
|
||||
transition: opacity 1s ease-out;
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: -8rpx;
|
||||
border-left: 10rpx solid transparent;
|
||||
border-right: 10rpx solid transparent;
|
||||
border-top: 10rpx solid black;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
/* 隐藏气泡 */
|
||||
.bubble.hidden {
|
||||
opacity: 0;
|
||||
.blue-heng {
|
||||
height: 6rpx;
|
||||
width: 150rpx;
|
||||
background-color: rgb(42, 133, 235);
|
||||
position: absolute;
|
||||
bottom: 55rpx;
|
||||
left: 50%;
|
||||
/* 左边缘到父容器左边的距离占父宽度 50% */
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,199 @@
|
|||
<template>
|
||||
<view class="callback-container">
|
||||
回调成功{{ceshi.name}}{{ceshi.openid}}
|
||||
<!-- {{look}} -->
|
||||
<!-- <text v-if="!userInfo">授权中...</text>
|
||||
<view v-else>
|
||||
<text>OpenID: {{ openid }}</text>
|
||||
<text v-if="userInfo.nickname">昵称: {{ userInfo.nickname }}</text>
|
||||
<image v-if="userInfo.headimgurl" :src="userInfo.headimgurl" class="avatar" />
|
||||
</view> -->
|
||||
<view v-for="(item,index) in jigouArray" :key="index">
|
||||
<view style="font-size: 30rpx;margin-top: 10rpx;font-weight: 700;" @click="jigouClick(item)">
|
||||
{{item.departName}}
|
||||
</view>
|
||||
<image style="width: 60rpx;height: 60rpx;"
|
||||
:src="`https://www.focusnu.com/nursing-unit/sys/common/static/${item.picUrl}`" />
|
||||
</view>
|
||||
<view v-for="(item,index) in secondArray" :key="index" @click="jumpto">
|
||||
<view style="font-size: 30rpx;margin-top: 10rpx;font-weight: 700;">
|
||||
{{item.nuName}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
onLoad
|
||||
} from '@dcloudio/uni-app';
|
||||
import {
|
||||
useWeChatAuth
|
||||
} from '@/compontent/useWeChatAuth.js';
|
||||
import request from '@/request/index.js';
|
||||
import {
|
||||
reactive,
|
||||
ref
|
||||
} from 'vue';
|
||||
|
||||
const {
|
||||
fetchUserInfo,
|
||||
openid,
|
||||
userInfo
|
||||
} = useWeChatAuth();
|
||||
|
||||
const ceshi = reactive({
|
||||
name: "",
|
||||
openid: "",
|
||||
accessToken: ""
|
||||
})
|
||||
const jumpto = () => {
|
||||
console.log("???")
|
||||
uni.navigateTo({
|
||||
url: "/pages/pay/index"
|
||||
});
|
||||
}
|
||||
const getOpenId = (code) => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(code)}`;
|
||||
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
console.log("✅ 获取用户信息成功:", data);
|
||||
ceshi.name = data.data.nickname
|
||||
ceshi.openid = data.data.openid
|
||||
ceshi.accessToken = data.accessToken
|
||||
uni.setStorage({
|
||||
key: 'openid',
|
||||
data: {
|
||||
openid: data.data.openid,
|
||||
accessToken: data.accessToken,
|
||||
}
|
||||
});
|
||||
getUserMessage()
|
||||
|
||||
})
|
||||
.catch(err => {
|
||||
console.error("❌ 获取用户信息失败:", err);
|
||||
});
|
||||
}
|
||||
// const serve = ref("")
|
||||
const look = ref("")
|
||||
const getUserMessage = () => {
|
||||
const url =
|
||||
`https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(ceshi.openid)}&wechatName=${encodeURIComponent(ceshi.name)}`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
console.log("个人信息打印", data)
|
||||
// serve.value = data.result.serverUrl
|
||||
|
||||
const urlpost = `${data.result.serverUrl}/weiXinPay/getUserInfo`;
|
||||
const payload = {
|
||||
openid: ceshi.openid,
|
||||
access_token: ceshi.accessToken,
|
||||
// serverUrl: serve.value
|
||||
};
|
||||
console.log("???/", payload)
|
||||
fetch(urlpost, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
// secondArray.value = [...data.result];
|
||||
look.value = data
|
||||
console.log("!!!!!!!!!!!!!!!!!!!!!!!", data)
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('请求失败:', err);
|
||||
});
|
||||
|
||||
|
||||
getjigou()
|
||||
})
|
||||
|
||||
}
|
||||
const jigouArray = ref([]);
|
||||
const getjigou = () => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
jigouArray.value = [...data]
|
||||
console.log("机构打印", jigouArray.value)
|
||||
})
|
||||
}
|
||||
const secondArray = ref([]);
|
||||
const jigouClick = (element) => {
|
||||
const url = `${element.serverUrl}/h5Api/nuBaseInfo/list`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
secondArray.value = [...data.result]
|
||||
})
|
||||
uni.setStorage({
|
||||
key: 'serverUrl',
|
||||
data: {
|
||||
url: element.serverUrl,
|
||||
}
|
||||
});
|
||||
const urlpost = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo`;
|
||||
const payload = {
|
||||
openId: ceshi.openid,
|
||||
serverUrl: element.serverUrl
|
||||
};
|
||||
console.log("???/", payload)
|
||||
fetch(urlpost, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
// secondArray.value = [...data.result];
|
||||
console.log("???", data)
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('请求失败:', err);
|
||||
});
|
||||
}
|
||||
onLoad(() => {
|
||||
const href = window.location.href;
|
||||
const queryString = href.split('?')[1]?.split('#')[0]; // 提取 ? 和 # 之间的参数
|
||||
const query = {};
|
||||
|
||||
if (queryString) {
|
||||
queryString.split('&').forEach(pair => {
|
||||
const [key, value] = pair.split('=');
|
||||
query[key] = decodeURIComponent(value);
|
||||
});
|
||||
}
|
||||
|
||||
console.log('解析到的 query 参数:', query);
|
||||
|
||||
if (query.code) {
|
||||
getOpenId(query.code)
|
||||
|
||||
// 调用你的方法,比如 fetchUserInfo(query.code)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.callback-container {
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 40px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,459 @@
|
|||
<template>
|
||||
<view class="login-container">
|
||||
<view class="title">
|
||||
<image class="title-imge" src="/static/index/nu.png" />
|
||||
<view class="title-font">
|
||||
<view class="">您好,</view>
|
||||
<view class="">欢迎使用护理单元~</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="photo-imge" src="/static/index/bgc.png" />
|
||||
<image class="old-imge" src="/static/index/old.png" />
|
||||
<view class="under-container">
|
||||
<view class="under-container-title">
|
||||
<view class="code-title">
|
||||
请输入验证码
|
||||
</view>
|
||||
<view class="code-number">
|
||||
验证码已发送至{{ phonenumber }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="captcha-container">
|
||||
<view class="captcha-box">
|
||||
<view v-for="(digit, index) in captcha" :key="index" class="captcha-item">
|
||||
<input v-model="captcha[index]" class="captcha-input" type="number" maxlength="1"
|
||||
:placeholder="index < 3 ? '' : ' '" @input="handleInput(index)"
|
||||
@keydown="handleKeydown(index, $event)" :focus="focusedIndex === index" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="under-view">
|
||||
|
||||
<view class="right-blue" v-show="!countdown">
|
||||
重新发送
|
||||
</view>
|
||||
<view class="right-white" v-show="countdown">
|
||||
{{countdown}}S后重新发送
|
||||
</view>
|
||||
<view class="right-black" @click="isFadingOut=true">
|
||||
收不到验证码
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 遮罩 -->
|
||||
<transition name="fade">
|
||||
<view v-if="isFadingOut" class="overlay" @click="closeModal" :style="{ backgroundColor: maskColor }" />
|
||||
</transition>
|
||||
|
||||
<!-- 底部弹窗 -->
|
||||
<transition name="slide-up">
|
||||
<view v-if="isFadingOut" class="modal">
|
||||
<view class="modal-title">收不到验证码</view>
|
||||
<view class="model-p">
|
||||
<view class="text-view" style="font-weight: 600;">手机号可正常使用:</view>
|
||||
<view class="text-view">1 是否输错手机号</view>
|
||||
<view class="text-view">2 手机是否设置短信拦截/欠费/信号不好</view>
|
||||
<view class="text-view">3 手机内存是否满了</view>
|
||||
<view class="text-view">4 手机卡是否为物联卡,而非SIM卡</view>
|
||||
</view>
|
||||
</view>
|
||||
</transition>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
nextTick,
|
||||
reactive,
|
||||
ref,
|
||||
onUnmounted
|
||||
} from 'vue';
|
||||
import {
|
||||
onLoad
|
||||
} from '@dcloudio/uni-app';
|
||||
|
||||
const phonenumber = ref("")
|
||||
const captcha = ref(['', '', '', '']); // 用来存储4个小方块的验证码输入
|
||||
const focusedIndex = ref(0); // 当前聚焦的小方块索引
|
||||
const isFadingOut = ref(false);
|
||||
// 遮罩色,rgba 可调透明度
|
||||
const maskColor = ref('rgba(0, 0, 0, 0.5)')
|
||||
|
||||
function closeModal() {
|
||||
isFadingOut.value = false
|
||||
}
|
||||
// 输入框输入时的处理函数
|
||||
const handleInput = (index) => {
|
||||
if (captcha.value[index]) {
|
||||
if (index < 3) {
|
||||
focusedIndex.value = index + 1; // 输入后自动聚焦到下一个小方块
|
||||
}
|
||||
}
|
||||
let isFour = true;
|
||||
captcha.value.forEach(number=>{
|
||||
if(!number){
|
||||
isFour = false;
|
||||
}
|
||||
})
|
||||
nextTick(()=>{
|
||||
if(isFour){
|
||||
submitCaptcha()
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
// 处理删除键
|
||||
const handleKeydown = (index, event) => {
|
||||
if (event.key === 'Backspace' && !captcha.value[index]) {
|
||||
if (index > 0) {
|
||||
focusedIndex.value = index - 1; // 如果当前小方块为空,则聚焦到前一个小方块
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 提交验证码
|
||||
const submitCaptcha = () => {
|
||||
const code = captcha.value.join('');
|
||||
if (code.length === 4) {
|
||||
console.log('提交验证码:', code);
|
||||
uni.reLaunch({
|
||||
url: `/pages/index/index`
|
||||
});
|
||||
|
||||
// 执行验证码提交的逻辑
|
||||
} else {
|
||||
console.log('验证码未输入完整');
|
||||
}
|
||||
};
|
||||
|
||||
const getcode = () =>{
|
||||
// uni.getStorage({
|
||||
// key: 'serverUrl',
|
||||
// success: (res) => {
|
||||
// // res.data 就是你存进去的对象 { url: '...' }
|
||||
// const { url } = res.data;
|
||||
// console.log('取到的 serverUrl:', url);
|
||||
// const url = `${url}/h5Api/nuBaseInfo/list`;
|
||||
// fetch(url)
|
||||
// .then(res => res.json())
|
||||
// .then(data => {
|
||||
// secondArray.value = [...data.result]
|
||||
// })
|
||||
// // 后续逻辑…
|
||||
// },
|
||||
// fail: (err) => {
|
||||
// console.error('取 serverUrl 失败', err);
|
||||
// }
|
||||
// });
|
||||
const url = `https://www.focusnu.com/nursing-unit/sys/randomImage/${Date.now()}`;
|
||||
fetch(url)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
console.log("code测试",data)
|
||||
})
|
||||
}
|
||||
|
||||
// 新增:倒计时相关
|
||||
const countdown = ref(60);
|
||||
let timerId = null;
|
||||
// 页面卸载时清除定时器
|
||||
onUnmounted(() => {
|
||||
if (timerId) {
|
||||
clearInterval(timerId);
|
||||
}
|
||||
});
|
||||
|
||||
onLoad((options) => {
|
||||
phonenumber.value = options.phonenumber;
|
||||
getcode()
|
||||
|
||||
|
||||
// 倒计时逻辑
|
||||
countdown.value = 60;
|
||||
timerId = setInterval(() => {
|
||||
if (countdown.value > 0) {
|
||||
countdown.value--;
|
||||
} else {
|
||||
clearInterval(timerId);
|
||||
timerId = null;
|
||||
}
|
||||
}, 1000);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.login-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: rgb(239, 241, 252);
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
|
||||
.title-imge {
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
|
||||
.title-font {
|
||||
font-size: 35rpx;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.photo-imge {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
|
||||
.old-imge {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
|
||||
.under-container {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #5A607F;
|
||||
|
||||
.radio-circle {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.under-container-title {
|
||||
margin-top: 50rpx;
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 25rpx;
|
||||
font-weight: 500;
|
||||
width: 100%;
|
||||
|
||||
.code-title {
|
||||
margin-left: 80rpx;
|
||||
font-size: 35rpx;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.code-number {
|
||||
margin-left: 80rpx;
|
||||
font-size: 28rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.captcha-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.captcha-box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.captcha-item {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.captcha-input {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
border: 3rpx solid #C0C5D9;
|
||||
border-radius: 30rpx;
|
||||
font-size: 50rpx;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
margin-right: 40rpx;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.captcha-input:focus {
|
||||
border-color: #00C9FF;
|
||||
}
|
||||
|
||||
.right-blue{
|
||||
// float: right;
|
||||
color: #0083FF;
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.right-white{
|
||||
color: rgb(194,198,211);
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.right-black{
|
||||
// float: right;
|
||||
// color: #0083FF;
|
||||
margin-right: 80rpx;
|
||||
color: black;
|
||||
}
|
||||
.under-view{
|
||||
width: 100%;
|
||||
margin-top: 10rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
/* 遮罩 */
|
||||
.overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 998;
|
||||
}
|
||||
|
||||
/* 弹窗 */
|
||||
.modal {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
z-index: 999;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.modal-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
margin: 50rpx 0;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.model-p {
|
||||
padding: 0 50rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.model-down {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 0 50rpx;
|
||||
margin-top: 40rpx;
|
||||
|
||||
.model-white {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
border: 5rpx solid rgb(0, 141, 255);
|
||||
color: rgb(0, 141, 255);
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.model-blue {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 动画:遮罩淡入淡出 */
|
||||
.fade-enter-active,
|
||||
.fade-leave-active {
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
|
||||
.fade-enter-from,
|
||||
.fade-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.fade-enter-to,
|
||||
.fade-leave-from {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 动画:弹窗上滑 */
|
||||
.slide-up-enter-active,
|
||||
.slide-up-leave-active {
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
.slide-up-enter-from,
|
||||
.slide-up-leave-to {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
|
||||
.slide-up-enter-to,
|
||||
.slide-up-leave-from {
|
||||
transform: translateY(0);
|
||||
}
|
||||
.text-view{
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,333 @@
|
|||
<template>
|
||||
<view class="login-container">
|
||||
<view class="title">
|
||||
<image class="title-imge" src="/static/index/nu.png" />
|
||||
<view class="title-font">
|
||||
<view class="">您好,</view>
|
||||
<view class="">欢迎使用护理单元~</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="photo-imge" src="/static/index/bgc.png" />
|
||||
<image class="old-imge" src="/static/index/old.png" />
|
||||
<view class="under-container">
|
||||
<view class="under-container-title">
|
||||
<view :class="isTarget ? 'radio-circle-target' : 'radio-circle'" @click="isTarget = !isTarget"></view>
|
||||
<view style="margin-left: 17rpx;" class="radio-circle-font" @click="isTarget = !isTarget">同意</view>
|
||||
<view class="radio-circle-blue" @click="jumpToPro">
|
||||
《护理单元使用条款》
|
||||
</view>
|
||||
<view class="radio-circle-font" @click="isTarget = !isTarget">并授权NU获取本机号码</view>
|
||||
</view>
|
||||
<view class="button-blue" @click="loginIt">
|
||||
一键登录
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 遮罩 -->
|
||||
<transition name="fade">
|
||||
<view v-if="isFadingOut" class="overlay" @click="closeModal" :style="{ backgroundColor: maskColor }" />
|
||||
</transition>
|
||||
|
||||
<!-- 底部弹窗 -->
|
||||
<transition name="slide-up">
|
||||
<view v-if="isFadingOut" class="modal">
|
||||
<view class="modal-title">服务协议及隐私保护</view>
|
||||
<view class="model-p">
|
||||
<text>  为了更好地保障您的合法权益,请阅读并同意以下协议</text>
|
||||
<text style="color: rgb(0,141,255);" @click="jumpToPro" >《护理单元使用条款》</text>
|
||||
<text>,同意后将自动登录。</text>
|
||||
</view>
|
||||
<view class="model-down">
|
||||
<view class="model-white" @click="closeModal">
|
||||
不同意
|
||||
</view>
|
||||
<view class="model-blue" @click="closeModal();isTarget=true">
|
||||
同意
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</transition>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
reactive,
|
||||
ref
|
||||
} from 'vue';
|
||||
import {
|
||||
useWeChatAuth
|
||||
} from '@/compontent/useWeChatAuth.js';
|
||||
|
||||
const isTarget = ref(false);
|
||||
const isFadingOut = ref(false);
|
||||
const {
|
||||
login
|
||||
} = useWeChatAuth();
|
||||
|
||||
// 遮罩色,rgba 可调透明度
|
||||
const maskColor = ref('rgba(0, 0, 0, 0.5)')
|
||||
|
||||
function closeModal() {
|
||||
isFadingOut.value = false
|
||||
}
|
||||
|
||||
const loginIt = () => {
|
||||
|
||||
if (!isTarget.value) {
|
||||
isFadingOut.value = true;
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: "/pages/login/phonebumber"
|
||||
});
|
||||
// login();
|
||||
}
|
||||
};
|
||||
const jumpToPro = () =>{
|
||||
console.log("????")
|
||||
uni.navigateTo({
|
||||
url: "/pages/login/protocol"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.login-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: rgb(239, 241, 252);
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
|
||||
.title-imge {
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
|
||||
.title-font {
|
||||
font-size: 35rpx;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.photo-imge {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
|
||||
.old-imge {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
|
||||
.under-container {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.radio-circle {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.radio-circle-target::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.under-container-title {
|
||||
display: flex;
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 40rpx;
|
||||
align-items: center;
|
||||
font-size: 25rpx;
|
||||
font-weight: 500;
|
||||
|
||||
.radio-circle-blue {
|
||||
color: #0083FF;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
|
||||
.radio-circle-font {
|
||||
color: #5A607F;
|
||||
// margin-left: 18rpx;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.button-blue {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
// .button-white {
|
||||
// width: 80%;
|
||||
// display: flex;
|
||||
// justify-content: center;
|
||||
// align-items: center;
|
||||
// height: 100rpx;
|
||||
// border-radius: 43rpx;
|
||||
// color: #5A607F;
|
||||
// font-size: 33rpx;
|
||||
// margin-bottom: 30rpx;
|
||||
// border: 2rpx solid #C0C5D9;
|
||||
// }
|
||||
|
||||
/* 遮罩 */
|
||||
.overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 998;
|
||||
}
|
||||
|
||||
/* 弹窗 */
|
||||
.modal {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
z-index: 999;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.modal-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
margin: 50rpx 0;
|
||||
}
|
||||
|
||||
.model-p {
|
||||
padding: 0 50rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.model-down {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 0 50rpx;
|
||||
margin-top: 40rpx;
|
||||
|
||||
.model-white {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
border: 5rpx solid rgb(0, 141, 255);
|
||||
color: rgb(0, 141, 255);
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.model-blue {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 动画:遮罩淡入淡出 */
|
||||
.fade-enter-active,
|
||||
.fade-leave-active {
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
|
||||
.fade-enter-from,
|
||||
.fade-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.fade-enter-to,
|
||||
.fade-leave-from {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 动画:弹窗上滑 */
|
||||
.slide-up-enter-active,
|
||||
.slide-up-leave-active {
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
.slide-up-enter-from,
|
||||
.slide-up-leave-to {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
|
||||
.slide-up-enter-to,
|
||||
.slide-up-leave-from {
|
||||
transform: translateY(0);
|
||||
}
|
||||
</style>
|
|
@ -4,7 +4,7 @@
|
|||
<image class="title-imge" src="/static/index/nu.png" />
|
||||
<view class="title-font">
|
||||
<view class="">您好,</view>
|
||||
<view class="">欢迎使用nu护理单元~</view>
|
||||
<view class="">欢迎使用护理单元~</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="photo-imge" src="/static/index/bgc.png" />
|
||||
|
@ -13,9 +13,13 @@
|
|||
<view class="under-container-title">
|
||||
<view class="under-container-input">
|
||||
<view class="input-left">+86</view>
|
||||
<input type="number" style="width: 600rpx;" maxlength="11" placeholder="请输入手机号" @input="isRight" />
|
||||
<input type="number" style="width: 600rpx;font-size: 33rpx;" maxlength="11" placeholder="请输入绑定手机号"
|
||||
@input="isRight" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="button-blue" @click="huakuaiOpen = true">
|
||||
滑块校验
|
||||
</view>
|
||||
<view class="button-blue" v-show="canClick" @click="jumpto">
|
||||
获得验证码
|
||||
</view>
|
||||
|
@ -23,6 +27,11 @@
|
|||
获得验证码
|
||||
</view>
|
||||
</view>
|
||||
<view class="bg-mask" v-if="huakuaiOpen" @click="huakuaiOpen=false" >
|
||||
<huakuai @click.stop />
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
@ -32,27 +41,30 @@
|
|||
ref
|
||||
} from 'vue';
|
||||
|
||||
import huakuai from "@/compontent/public/huakuai.vue"
|
||||
|
||||
const jumpto = () =>{
|
||||
const huakuaiOpen = ref(false);
|
||||
|
||||
const jumpto = () => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/index/code?phonenumber=${phonenumber.value}`
|
||||
url: `/pages/login/code?phonenumber=${phonenumber.value}`
|
||||
});
|
||||
}
|
||||
//检测是不是11位手机号
|
||||
function is11DigitNumber(value) {
|
||||
return /^\d{11}$/.test(value.toString());
|
||||
return /^\d{11}$/.test(value.toString());
|
||||
}
|
||||
const phonenumber = ref("");
|
||||
const canClick = ref(false);
|
||||
const isRight = (res) =>{
|
||||
console.log("????",res.detail.value)
|
||||
if(is11DigitNumber(res.detail.value)){
|
||||
const isRight = (res) => {
|
||||
console.log("????", res.detail.value)
|
||||
if (is11DigitNumber(res.detail.value)) {
|
||||
phonenumber.value = res.detail.value
|
||||
canClick.value = true;
|
||||
}else{
|
||||
} else {
|
||||
canClick.value = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -60,26 +72,26 @@
|
|||
.login-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: rgb(239, 241, 252);
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
margin-top: 120rpx;
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
|
||||
.title-imge {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
margin-right: 30rpx;
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
|
||||
.title-font {
|
||||
font-size: 35rpx;
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,19 +105,18 @@
|
|||
|
||||
.old-imge {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 550rpx;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
|
||||
.under-container {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 680rpx;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
|
@ -151,12 +162,13 @@
|
|||
.under-container-title {
|
||||
display: flex;
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 30rpx;
|
||||
margin-bottom: 60rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 25rpx;
|
||||
font-weight: 500;
|
||||
width: 100%;
|
||||
|
||||
.radio-circle-blue {
|
||||
color: #0083FF;
|
||||
margin-top: 3rpx;
|
||||
|
@ -167,7 +179,8 @@
|
|||
margin-left: 18rpx;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
.under-container-input{
|
||||
|
||||
.under-container-input {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
@ -176,7 +189,8 @@
|
|||
color: #5A607F;
|
||||
font-size: 33rpx;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
.input-left{
|
||||
|
||||
.input-left {
|
||||
margin: 0 30rpx;
|
||||
}
|
||||
}
|
||||
|
@ -189,7 +203,7 @@
|
|||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
background-color: rgb(188,188,188);
|
||||
background-color: rgb(188, 188, 188);
|
||||
color: #fff;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
|
@ -207,6 +221,7 @@
|
|||
margin-bottom: 30rpx;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
}
|
||||
|
||||
.button-blue {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
|
@ -219,6 +234,7 @@
|
|||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.bubble {
|
||||
transition: opacity 1s ease-out;
|
||||
position: absolute;
|
||||
|
@ -252,4 +268,17 @@
|
|||
opacity: 0;
|
||||
}
|
||||
|
||||
.bg-mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
backdrop-filter: blur(5rpx);
|
||||
z-index: 998;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,87 @@
|
|||
<template>
|
||||
<view class="font-father">
|
||||
<view class="font-title">
|
||||
护理单元隐私条款
|
||||
</view>
|
||||
<view class="">
|
||||
<p>  本《护理单元隐私条款》(以下简称“本条款”)为用户在登录并使用本护理单元(包括网站、App及相关服务)时必须共同遵守的法律协议。请您在使用本护理单元前,认真阅读并充分理解本条款全部内容,如您不同意本条款任何内容,请勿登录或使用本护理单元。</p>
|
||||
<br />
|
||||
<p>一、总则</p>
|
||||
<p>1.1 本护理单元由[公司名称](以下简称“本平台”)提供维护,具有独立运营权。</p>
|
||||
<p>1.2 用户是指注册、登录并使用本护理单元的机构、医护人员及相关人员,您在注册或登录时提交的信息应真实、准确、完整,并对其真实性负责。</p>
|
||||
<p>1.3 本条款构成用户与本平台之间关于护理单元使用的完整协议,除本条款外,用户与本平台可能不另行签署其他协议。</p>
|
||||
<br />
|
||||
<p>二、服务内容</p>
|
||||
<p>2.1 本平台为用户提供以下主要服务:</p>
|
||||
<p>a) 护理计划制定与管理;</p>
|
||||
<p>b) 病人信息记录与查询;</p>
|
||||
<p>c) 护理任务分派与跟踪;</p>
|
||||
<p>d) 护理质量考核与评估;</p>
|
||||
<p>e) 其他相关护理支持服务。</p>
|
||||
<p>2.2 本平台可根据业务发展和技术需求,不时调整、本条款所描述的服务内容并在平台界面或其他适当位置予以公告。</p>
|
||||
<br />
|
||||
<p>三、用户权利与义务</p>
|
||||
<p>3.1 用户有权按照本条款、平台规则及法律法规的相关规定,使用本平台提供的各项服务。</p>
|
||||
<p>3.2 用户应按照本平台要求,妥善保管登录账户及密码,不得将账户转借、转让或泄露给他人。如因账户外泄导致的任何损失,由用户自行承担。</p>
|
||||
<p>3.3 用户在使用本平台时,应遵守国家法律法规及行业规范,不得利用本平台从事下列行为:</p>
|
||||
<p>a) 侵犯他人合法权益的行为;</p>
|
||||
<p>b) 发布或传播违法、淫秽、暴力或其他不良信息;</p>
|
||||
<p>c) 非法获取、使用或披露他人隐私信息;</p>
|
||||
<p>d) 利用本平台实施任何违法或不当行为。</p>
|
||||
<p>3.4 用户保证对上传、发布至本平台的所有资料及信息拥有合法权利。如因用户发布的信息引发任何纠纷或法律责任,与本平台无关,概由用户自行承担。</p>
|
||||
<br />
|
||||
<p>四、隐私与数据保护</p>
|
||||
<p>4.1 本平台依法收集、使用、存储和保护用户的个人信息与病人健康信息,并采取合理的技术和管理措施,防止信息泄露、损毁或被非法访问。</p>
|
||||
<p>4.2 未经用户同意,本平台不会向任何第三方披露用户个人信息,但法律法规另有规定或司法机关、行政机关依职权要求的除外。</p>
|
||||
<p>4.3 用户同意本平台在执行业务过程中,对用户及病人信息进行处理与统计,并用于优化服务、产品研发及内部管理等用途。</p>
|
||||
<br />
|
||||
<p>五、使用规范</p>
|
||||
<p>5.1 用户应在具备相应资格或授权的前提下使用本平台的专业护理模块。</p>
|
||||
<p>5.2 平台仅为辅助工具,用户在实际护理过程中,应结合临床实际情况及专业判断,不得完全依赖平台数据而忽视专业判断。</p>
|
||||
<p>5.3 用户应合理使用系统资源,不得恶意攻击、干扰或破坏本平台的正常运行。</p>
|
||||
<br />
|
||||
<p>六、免责声明</p>
|
||||
<p>6.1 本平台对因本款项原因导致的服务中断、延迟或数据丢失不承担责任,但将尽最大努力恢复服务并减少损失。</p>
|
||||
<p>6.2 本平台对因技术故障、停电、通讯线路中断、第三方服务故障、不可抗力等原因导致的服务中断或其他问题不承担责任。</p>
|
||||
<p>6.3 本平台对用户因使用本平台服务而产生的任何间接、附带、特殊或惩罚性损害赔偿不承担责任。</p>
|
||||
<br />
|
||||
<p>七、知识产权</p>
|
||||
<p>7.1 本平台及其所提供服务中的所有内容(包括文字、图片、图表、界面设计、程序等)的著作权、专利权、 商标权益及其他知识产权,均归本平台或相关权利人所有。</p>
|
||||
<p>7.2 未经本平台事先书面许可,用户不得擅自复制、改编、发布、传播或以其他方式使用上述内容。</p>
|
||||
<br />
|
||||
<p>八、协议变更与终止</p>
|
||||
<p>8.1 本平台有权根据业务发展需要,不时修订本条款并在平台界面或其他适当位置予以公告。修订后的条款自公告之日起生效。</p>
|
||||
<p>8.2 如用户不接受修订后的条款,应停止使用本平台。如继续使用,视为接受修订后的条款。</p>
|
||||
<p>8.3 本平台有权在用户严重违反本条款或法律法规的情况下,暂停或终止向该用户提供服务,并保留追究其法律责任的权利。</p>
|
||||
<br />
|
||||
<p>九、争议解决</p>
|
||||
<p>9.1 本条款的解释、效力及纠纷解决,适用中华人民共和国法律。</p>
|
||||
<p>9.2 因本条款或因使用本平台服务产生的任何争议,双方应友好协商解决;协商不成时,任一方可向本平台所在地有管辖权的人民法院提起诉讼。</p>
|
||||
<br />
|
||||
<p>十、其他</p>
|
||||
<p>10.1 如本条款某一条款被有权机关认定为无效或不可执行,不影响其他条款的有效性。</p>
|
||||
<p>10.2 本条款自用户在登录界面点击“同意”并登录成功之日起生效。</p>
|
||||
<br />
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.font-father{
|
||||
width: 100%;
|
||||
// height: 100vh;
|
||||
padding: 0 50rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
.font-title{
|
||||
font-size: 35rpx;
|
||||
font-weight: 700;
|
||||
margin: 20rpx 0;
|
||||
}
|
||||
}
|
||||
</style>
|
After Width: | Height: | Size: 598 KiB |
After Width: | Height: | Size: 592 KiB |
After Width: | Height: | Size: 537 KiB |
After Width: | Height: | Size: 796 KiB |
After Width: | Height: | Size: 940 KiB |
After Width: | Height: | Size: 733 KiB |
|
@ -0,0 +1 @@
|
|||
.callback-container[data-v-4644647c]{padding:24px}.avatar[data-v-4644647c]{width:80px;height:80px;border-radius:40px;margin-top:12px}
|
|
@ -1 +0,0 @@
|
|||
.callback-container[data-v-0b73e663]{padding:24px}.avatar[data-v-0b73e663]{width:80px;height:80px;border-radius:40px;margin-top:12px}
|
|
@ -1 +0,0 @@
|
|||
.login-container[data-v-b906b8c8]{display:flex;flex-direction:column;align-items:center;height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-b906b8c8]{display:flex;margin-top:3.75rem;align-items:center}.login-container .title .title-imge[data-v-b906b8c8]{width:3.4375rem;height:3.4375rem;margin-right:.9375rem}.login-container .title .title-font[data-v-b906b8c8]{font-size:1.09375rem;font-weight:500}.login-container .photo-imge[data-v-b906b8c8]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-b906b8c8]{position:absolute;left:50%;transform:translate(-50%,-50%);top:17.1875rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-b906b8c8]{position:absolute;left:0;bottom:0;width:100%;height:21.25rem;background-color:#fff;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;color:#5a607f}.login-container .under-container .radio-circle[data-v-b906b8c8],.login-container .under-container .radio-circle-target[data-v-b906b8c8]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.login-container .under-container .radio-circle-target[data-v-b906b8c8]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.9375rem;height:.9375rem;background-color:#00c9ff;border-radius:50%}.under-container-title[data-v-b906b8c8]{margin-top:1.5625rem;margin-bottom:.625rem;font-size:.78125rem;font-weight:500;width:100%}.under-container-title .code-title[data-v-b906b8c8]{margin-left:2.5rem;font-size:1.03125rem;color:#000;font-weight:500;margin-bottom:.625rem}.under-container-title .code-number[data-v-b906b8c8]{margin-left:2.5rem;font-size:.875rem;margin-bottom:.625rem}.captcha-container[data-v-b906b8c8]{display:flex;flex-direction:column;align-items:center}.captcha-box[data-v-b906b8c8]{display:flex;justify-content:space-between;margin-bottom:.625rem}.captcha-item[data-v-b906b8c8]{display:flex;justify-content:center;align-items:center}.captcha-input[data-v-b906b8c8]{width:3.4375rem;height:3.4375rem;border:.0625rem solid #C0C5D9;border-radius:.625rem;font-size:.875rem;text-align:center;margin-right:1.25rem;outline:none}.captcha-input[data-v-b906b8c8]:focus{border-color:#00c9ff}.submit-btn[data-v-b906b8c8]{padding:.3125rem .625rem;background-color:#00c9ff;color:#fff;border-radius:1.34375rem;font-size:.875rem;margin-top:.625rem;width:80%;text-align:center}.right-blue[data-v-b906b8c8]{float:right;color:#0083ff;margin-right:2.5rem}
|
|
@ -0,0 +1 @@
|
|||
.login-container[data-v-edc97756]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-edc97756]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-edc97756]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-edc97756]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-edc97756]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-edc97756]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-edc97756]{position:fixed;left:0;bottom:0;width:100%;height:45vh;background-color:#fff;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;color:#5a607f}.login-container .under-container .radio-circle[data-v-edc97756],.login-container .under-container .radio-circle-target[data-v-edc97756]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.login-container .under-container .radio-circle-target[data-v-edc97756]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.9375rem;height:.9375rem;background-color:#00c9ff;border-radius:50%}.under-container-title[data-v-edc97756]{margin-top:1.5625rem;margin-bottom:.625rem;font-size:.78125rem;font-weight:500;width:100%}.under-container-title .code-title[data-v-edc97756]{margin-left:2.5rem;font-size:1.09375rem;color:#000;font-weight:500;margin-bottom:.625rem}.under-container-title .code-number[data-v-edc97756]{margin-left:2.5rem;font-size:.875rem;margin-bottom:.625rem}.captcha-container[data-v-edc97756]{display:flex;flex-direction:column;align-items:center;margin-top:.625rem}.captcha-box[data-v-edc97756]{display:flex;justify-content:space-between;margin-bottom:.625rem}.captcha-item[data-v-edc97756]{display:flex;justify-content:center;align-items:center}.captcha-input[data-v-edc97756]{width:3.4375rem;height:3.4375rem;border:.09375rem solid #C0C5D9;border-radius:.9375rem;font-size:1.5625rem;font-weight:700;text-align:center;margin-right:1.25rem;outline:none}.captcha-input[data-v-edc97756]:focus{border-color:#00c9ff}.right-blue[data-v-edc97756]{color:#0083ff;margin-left:1.875rem}.right-white[data-v-edc97756]{color:#c2c6d3;margin-left:1.875rem}.right-black[data-v-edc97756]{margin-right:2.5rem;color:#000}.under-view[data-v-edc97756]{width:100%;margin-top:.3125rem;display:flex;justify-content:space-between}.overlay[data-v-edc97756]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:998}.modal[data-v-edc97756]{position:fixed;bottom:0;left:0;background-color:#fff;z-index:999;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;width:100%;height:15.625rem;display:flex;flex-direction:column;align-items:center}.modal .modal-title[data-v-edc97756]{font-size:1rem;font-weight:700;margin:1.5625rem 0 .9375rem}.modal .model-p[data-v-edc97756]{padding:0 1.5625rem;width:100%;font-size:.9375rem}.modal .model-down[data-v-edc97756]{display:flex;width:100%;justify-content:space-between;padding:0 1.5625rem;margin-top:1.25rem}.modal .model-down .model-white[data-v-edc97756]{border-radius:1.5625rem;width:9.375rem;height:2.96875rem;border:.15625rem solid #008dff;color:#008dff;font-size:1.09375rem;display:flex;justify-content:center;align-items:center}.modal .model-down .model-blue[data-v-edc97756]{border-radius:1.5625rem;width:9.375rem;height:2.96875rem;background:linear-gradient(to right,#00c9ff,#0076ff);color:#fff;font-size:1.09375rem;display:flex;justify-content:center;align-items:center}.fade-enter-active[data-v-edc97756],.fade-leave-active[data-v-edc97756]{transition:opacity .3s}.fade-enter-from[data-v-edc97756],.fade-leave-to[data-v-edc97756]{opacity:0}.fade-enter-to[data-v-edc97756],.fade-leave-from[data-v-edc97756]{opacity:1}.slide-up-enter-active[data-v-edc97756],.slide-up-leave-active[data-v-edc97756]{transition:transform .3s}.slide-up-enter-from[data-v-edc97756],.slide-up-leave-to[data-v-edc97756]{transform:translateY(100%)}.slide-up-enter-to[data-v-edc97756],.slide-up-leave-from[data-v-edc97756]{transform:translateY(0)}.text-view[data-v-edc97756]{margin-bottom:.625rem}
|
|
@ -1 +0,0 @@
|
|||
.login-container[data-v-00b697a2]{display:flex;flex-direction:column;align-items:center;height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-00b697a2]{display:flex;margin-top:3.75rem;align-items:center}.login-container .title .title-imge[data-v-00b697a2]{width:3.4375rem;height:3.4375rem;margin-right:.9375rem}.login-container .title .title-font[data-v-00b697a2]{font-size:1.09375rem;font-weight:500}.login-container .photo-imge[data-v-00b697a2]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-00b697a2]{position:absolute;left:50%;transform:translate(-50%,-50%);top:17.1875rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-00b697a2]{position:absolute;left:0;bottom:0;width:100%;height:21.25rem;background-color:#fff;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center}.login-container .under-container .radio-circle[data-v-00b697a2],.login-container .under-container .radio-circle-target[data-v-00b697a2]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.login-container .under-container .radio-circle-target[data-v-00b697a2]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.9375rem;height:.9375rem;background-color:#00c9ff;border-radius:50%}.under-container-title[data-v-00b697a2]{display:flex;margin-top:1.875rem;margin-bottom:.9375rem;align-items:center;font-size:.78125rem;font-weight:500}.under-container-title .radio-circle-blue[data-v-00b697a2]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-00b697a2]{color:#5a607f;margin-left:.5625rem;margin-top:.09375rem}.button-blue[data-v-00b697a2]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;background:linear-gradient(to right,#00c9ff,#0076ff);color:#fff;font-size:1.03125rem;margin-bottom:.9375rem}.button-white[data-v-00b697a2]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;color:#5a607f;font-size:1.03125rem;margin-bottom:.9375rem;border:.0625rem solid #C0C5D9}.bubble[data-v-00b697a2]{transition:opacity 1s ease-out;position:absolute;left:.78125rem;top:-.15625rem;background-color:#000;color:#fff;padding:.3125rem;border-radius:.3125rem;font-size:.71875rem;box-shadow:.0625rem .0625rem .15625rem rgba(0,0,0,.2);pointer-events:none;opacity:1}.bubble[data-v-00b697a2]:after{transition:opacity 1s ease-out;content:"";position:absolute;left:50%;bottom:-.25rem;border-left:.3125rem solid transparent;border-right:.3125rem solid transparent;border-top:.3125rem solid black;transform:translate(-50%)}.bubble.hidden[data-v-00b697a2]{opacity:0}
|
|
@ -0,0 +1 @@
|
|||
.login-container[data-v-8017333f]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-8017333f]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-8017333f]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-8017333f]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-8017333f]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-8017333f]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-8017333f]{position:fixed;left:0;bottom:0;width:100%;height:45vh;background-color:#fff;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center}.login-container .under-container .radio-circle[data-v-8017333f],.login-container .under-container .radio-circle-target[data-v-8017333f]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.login-container .under-container .radio-circle-target[data-v-8017333f]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.9375rem;height:.9375rem;background-color:#00c9ff;border-radius:50%}.under-container-title[data-v-8017333f]{display:flex;margin-top:1.875rem;margin-bottom:1.25rem;align-items:center;font-size:.78125rem;font-weight:500}.under-container-title .radio-circle-blue[data-v-8017333f]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-8017333f]{color:#5a607f;margin-top:.09375rem}.button-blue[data-v-8017333f]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;background:linear-gradient(to right,#00c9ff,#0076ff);color:#fff;font-size:1.03125rem;margin-bottom:.9375rem}.overlay[data-v-8017333f]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:998}.modal[data-v-8017333f]{position:fixed;bottom:0;left:0;background-color:#fff;z-index:999;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;width:100%;height:15.625rem;display:flex;flex-direction:column;align-items:center}.modal .modal-title[data-v-8017333f]{font-size:1rem;font-weight:700;margin:1.5625rem 0}.modal .model-p[data-v-8017333f]{padding:0 1.5625rem;width:100%;font-size:.9375rem}.modal .model-down[data-v-8017333f]{display:flex;width:100%;justify-content:space-between;padding:0 1.5625rem;margin-top:1.25rem}.modal .model-down .model-white[data-v-8017333f]{border-radius:1.5625rem;width:9.375rem;height:2.96875rem;border:.15625rem solid #008dff;color:#008dff;font-size:1.09375rem;display:flex;justify-content:center;align-items:center}.modal .model-down .model-blue[data-v-8017333f]{border-radius:1.5625rem;width:9.375rem;height:2.96875rem;background:linear-gradient(to right,#00c9ff,#0076ff);color:#fff;font-size:1.09375rem;display:flex;justify-content:center;align-items:center}.fade-enter-active[data-v-8017333f],.fade-leave-active[data-v-8017333f]{transition:opacity .3s}.fade-enter-from[data-v-8017333f],.fade-leave-to[data-v-8017333f]{opacity:0}.fade-enter-to[data-v-8017333f],.fade-leave-from[data-v-8017333f]{opacity:1}.slide-up-enter-active[data-v-8017333f],.slide-up-leave-active[data-v-8017333f]{transition:transform .3s}.slide-up-enter-from[data-v-8017333f],.slide-up-leave-to[data-v-8017333f]{transform:translateY(100%)}.slide-up-enter-to[data-v-8017333f],.slide-up-leave-from[data-v-8017333f]{transform:translateY(0)}
|
|
@ -0,0 +1 @@
|
|||
.login-container[data-v-0ae6d08b]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.array-father[data-v-0ae6d08b]{width:33%;position:relative}.botton-view[data-v-0ae6d08b]{position:fixed;bottom:0;left:0;height:6.25rem;width:100%;display:flex;justify-content:space-between;font-weight:500}.botton-view .bottom-button[data-v-0ae6d08b]{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.botton-view .bottom-button-target[data-v-0ae6d08b]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#2a85eb}.botton-view .blue-heng[data-v-0ae6d08b]{height:.1875rem;width:4.6875rem;background-color:#2a85eb;position:absolute;bottom:1.71875rem;left:50%;transform:translate(-50%)}
|
|
@ -1 +0,0 @@
|
|||
import{l as e,r as n,c as o,w as s,s as t,i as a,o as i,b as r,t as c,h as l,j as u,F as p,a as d,f as h,g as f}from"./index-BwwWwpov.js";import{o as m}from"./uni-app.es.CdisLe7k.js";import{u as w}from"./useWeChatAuth.BbPcLRMD.js";import{_ as g}from"./_plugin-vue_export-helper.BCo6x5W8.js";const y=g({__name:"callback",setup(g){w();const y=e({name:"",openid:""}),v=()=>{console.log("???"),h({url:"/pages/pay/index"})},I=()=>{const e=`https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(y.openid)}&wechatName=${encodeURIComponent(y.name)}`;fetch(e).then((e=>e.json())).then((e=>{console.log("个人信息打印",e),_()}))},x=n([]),_=()=>{fetch("https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList").then((e=>e.json())).then((e=>{x.value=[...e],console.log("机构打印",x.value)}))},j=n([]);return m((()=>{var e;const n=null==(e=window.location.href.split("?")[1])?void 0:e.split("#")[0],o={};n&&n.split("&").forEach((e=>{const[n,s]=e.split("=");o[n]=decodeURIComponent(s)})),console.log("解析到的 query 参数:",o),o.code&&(e=>{const n=`https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(e)}`;fetch(n).then((e=>e.json())).then((e=>{console.log("✅ 获取用户信息成功:",e),y.name=e.nickname,y.openid=e.openid,t({key:"openid",data:{openid:e.openid}}),I()})).catch((e=>{console.error("❌ 获取用户信息失败:",e)}))})(o.code)})),(e,n)=>{const h=a,m=f;return i(),o(h,{class:"callback-container"},{default:s((()=>[r(" 回调成功"+c(y.name)+c(y.openid)+" ",1),(i(!0),l(p,null,u(x.value,((e,n)=>(i(),o(h,{key:n},{default:s((()=>[d(h,{style:{"font-size":"30rpx","margin-top":"10rpx","font-weight":"700"},onClick:n=>(e=>{const n=`${e.serverUrl}/h5Api/nuBaseInfo/list`;fetch(n).then((e=>e.json())).then((e=>{j.value=[...e.result]})),t({key:"serverUrl",data:{url:e.serverUrl}});const o={openId:y.openid,serverUrl:e.serverUrl};console.log("???/",o),fetch("https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then((e=>e.json())).then((e=>{console.log("???",e)})).catch((e=>{console.error("请求失败:",e)}))})(e)},{default:s((()=>[r(c(e.departName),1)])),_:2},1032,["onClick"]),d(m,{style:{width:"60rpx",height:"60rpx"},src:`https://www.focusnu.com/nursing-unit/sys/common/static/${e.picUrl}`},null,8,["src"])])),_:2},1024)))),128)),(i(!0),l(p,null,u(j.value,((e,n)=>(i(),o(h,{key:n,onClick:v},{default:s((()=>[d(h,{style:{"font-size":"30rpx","margin-top":"10rpx","font-weight":"700"}},{default:s((()=>[r(c(e.nuName),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1})}}},[["__scopeId","data-v-0b73e663"]]);export{y as default};
|
|
@ -1 +0,0 @@
|
|||
import{r as a,c as e,w as l,i as s,o as t,a as o,b as c,t as u,h as n,j as d,F as r,g as p,k as i,I as f}from"./index-BwwWwpov.js";import{_,a as m,b as h}from"./old.CKixGO1Z.js";import{o as v}from"./uni-app.es.CdisLe7k.js";import{_ as g}from"./_plugin-vue_export-helper.BCo6x5W8.js";const b=g({__name:"code",setup(g){const b=a(""),j=a(["","","",""]),y=a(0),x=()=>{const a=j.value.join("");4===a.length?console.log("提交验证码:",a):console.log("验证码未输入完整")};return v((a=>{b.value=a.phonenumber})),(a,v)=>{const g=p,k=s,w=f;return t(),e(k,{class:"login-container"},{default:l((()=>[o(k,{class:"title"},{default:l((()=>[o(g,{class:"title-imge",src:_}),o(k,{class:"title-font"},{default:l((()=>[o(k,{class:""},{default:l((()=>[c("您好,")])),_:1}),o(k,{class:""},{default:l((()=>[c("欢迎使用nu护理单元~")])),_:1})])),_:1})])),_:1}),o(g,{class:"photo-imge",src:m}),o(g,{class:"old-imge",src:h}),o(k,{class:"under-container"},{default:l((()=>[o(k,{class:"under-container-title"},{default:l((()=>[o(k,{class:"code-title"},{default:l((()=>[c(" 请输入验证码 ")])),_:1}),o(k,{class:"code-number"},{default:l((()=>[c(" 验证码已发送至"+u(b.value),1)])),_:1})])),_:1}),o(k,{class:"captcha-container"},{default:l((()=>[o(k,{class:"captcha-box"},{default:l((()=>[(t(!0),n(r,null,d(j.value,((a,s)=>(t(),e(k,{key:s,class:"captcha-item"},{default:l((()=>[o(w,{modelValue:j.value[s],"onUpdate:modelValue":a=>j.value[s]=a,class:"captcha-input",type:"number",maxlength:"1",placeholder:s<3?"":" ",onInput:a=>(a=>{j.value[a]&&a<3&&(y.value=a+1);let e=!0;j.value.forEach((a=>{a||(e=!1)})),i((()=>{e&&x()}))})(s),onKeydown:a=>((a,e)=>{"Backspace"!==e.key||j.value[a]||a>0&&(y.value=a-1)})(s,a),focus:y.value===s},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput","onKeydown","focus"])])),_:2},1024)))),128))])),_:1})])),_:1}),o(k,{style:{width:"100%"}},{default:l((()=>[o(k,{class:"right-blue"},{default:l((()=>[c(" 重新发送 ")])),_:1})])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-b906b8c8"]]);export{b as default};
|
|
@ -0,0 +1 @@
|
|||
import{r as a,c as s,w as t,i as e,o as l,a as o,q as n,s as u,F as r,n as c,b as _,t as d,m as i,v as f}from"./index-DVIfOFfO.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const m=b({__name:"index",setup(b){const m=["NU","动态","我的"],p=a(0);return(a,b)=>{const v=e;return l(),s(v,{class:"login-container"},{default:t((()=>[o(v,{class:"botton-view"},{default:t((()=>[(l(),n(r,null,u(m,((a,s)=>o(v,{class:"array-father"},{default:t((()=>[o(v,{class:c(p.value===s?"bottom-button-target":"bottom-button"),onClick:a=>p.value=s},{default:t((()=>[o(v,{class:""},{default:t((()=>[_(d(a),1)])),_:2},1024)])),_:2},1032,["class","onClick"]),i(o(v,{class:"blue-heng"},null,512),[[f,p.value===s]])])),_:2},1024))),64))])),_:1})])),_:1})}}},[["__scopeId","data-v-0ae6d08b"]]);export{m as default};
|
|
@ -1 +0,0 @@
|
|||
import{r as a,c as e,w as l,i as s,o as t,a as u,b as c,d as o,v as i,e as r,n,f as d,g as f}from"./index-BwwWwpov.js";import{_,a as m,b as v}from"./old.CKixGO1Z.js";import{u as p}from"./useWeChatAuth.BbPcLRMD.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const g=b({__name:"index",setup(b){const g=a(!1),h=a(!1),{login:x}=p();let C=null;const j=()=>{C&&clearTimeout(C),g.value?x():(h.value=!0,C=setTimeout((()=>{h.value=!1}),1e3))},k=()=>{C&&clearTimeout(C),g.value?d({url:"/pages/index/phonebumber"}):(h.value=!0,C=setTimeout((()=>{h.value=!1}),1e3))};return(a,d)=>{const p=f,b=s;return t(),e(b,{class:"login-container"},{default:l((()=>[u(b,{class:"title"},{default:l((()=>[u(p,{class:"title-imge",src:_}),u(b,{class:"title-font"},{default:l((()=>[u(b,{class:""},{default:l((()=>[c("您好,")])),_:1}),u(b,{class:""},{default:l((()=>[c("欢迎使用nu护理单元~")])),_:1})])),_:1})])),_:1}),u(p,{class:"photo-imge",src:m}),u(p,{class:"old-imge",src:v}),u(b,{class:"under-container"},{default:l((()=>[u(b,{class:"under-container-title"},{default:l((()=>[o(r("div",{class:"bubble"}," 请勾选同意该协议 ",512),[[i,h.value]]),u(b,{class:n(g.value?"radio-circle-target":"radio-circle"),onClick:d[0]||(d[0]=a=>g.value=!g.value)},null,8,["class"]),u(b,{class:"radio-circle-font",onClick:d[1]||(d[1]=a=>g.value=!g.value)},{default:l((()=>[c("登录代表您已同意")])),_:1}),u(b,{class:"radio-circle-blue"},{default:l((()=>[c(" 《法律条款与隐私政策》 ")])),_:1})])),_:1}),u(b,{class:"button-blue",onClick:j},{default:l((()=>[c(" 一键登录 ")])),_:1}),u(b,{class:"button-white",onClick:k},{default:l((()=>[c(" 手机登录/注册 ")])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-00b697a2"]]);export{g as default};
|
|
@ -1 +0,0 @@
|
|||
import{r as a,c as e,w as s,i as t,o as l,a as u,b as n,d as o,v as r,f as c,g as d,I as i}from"./index-BwwWwpov.js";import{_ as p,a as _,b as f}from"./old.CKixGO1Z.js";import{_ as m}from"./_plugin-vue_export-helper.BCo6x5W8.js";const v=m({__name:"phonebumber",setup(m){const v=()=>{c({url:`/pages/index/code?phonenumber=${g.value}`})};const g=a(""),b=a(!1),h=a=>{var e;console.log("????",a.detail.value),e=a.detail.value,/^\d{11}$/.test(e.toString())?(g.value=a.detail.value,b.value=!0):b.value=!1};return(a,c)=>{const m=d,g=t,x=i;return l(),e(g,{class:"login-container"},{default:s((()=>[u(g,{class:"title"},{default:s((()=>[u(m,{class:"title-imge",src:p}),u(g,{class:"title-font"},{default:s((()=>[u(g,{class:""},{default:s((()=>[n("您好,")])),_:1}),u(g,{class:""},{default:s((()=>[n("欢迎使用nu护理单元~")])),_:1})])),_:1})])),_:1}),u(m,{class:"photo-imge",src:_}),u(m,{class:"old-imge",src:f}),u(g,{class:"under-container"},{default:s((()=>[u(g,{class:"under-container-title"},{default:s((()=>[u(g,{class:"under-container-input"},{default:s((()=>[u(g,{class:"input-left"},{default:s((()=>[n("+86")])),_:1}),u(x,{type:"number",style:{width:"600rpx"},maxlength:"11",placeholder:"请输入手机号",onInput:h})])),_:1})])),_:1}),o(u(g,{class:"button-blue",onClick:v},{default:s((()=>[n(" 获得验证码 ")])),_:1},512),[[r,b.value]]),o(u(g,{class:"button-gray"},{default:s((()=>[n(" 获得验证码 ")])),_:1},512),[[r,!b.value]])])),_:1})])),_:1})}}},[["__scopeId","data-v-506393aa"]]);export{v as default};
|
|
@ -0,0 +1 @@
|
|||
import{y as e,r as n,c as o,w as s,z as t,i as a,o as c,b as i,t as r,q as l,s as p,F as u,a as d,f as h,g as f}from"./index-DVIfOFfO.js";import{o as m}from"./uni-app.es.DNqITeUz.js";import{u as g}from"./useWeChatAuth.s7uh5--2.js";import{_ as w}from"./_plugin-vue_export-helper.BCo6x5W8.js";const y=w({__name:"callback",setup(w){g();const y=e({name:"",openid:"",accessToken:""}),v=()=>{console.log("???"),h({url:"/pages/pay/index"})},k=n(""),I=()=>{const e=`https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(y.openid)}&wechatName=${encodeURIComponent(y.name)}`;fetch(e).then((e=>e.json())).then((e=>{console.log("个人信息打印",e);const n=`${e.result.serverUrl}/weiXinPay/getUserInfo`,o={openid:y.openid,access_token:y.accessToken};console.log("???/",o),fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then((e=>e.json())).then((e=>{k.value=e,console.log("!!!!!!!!!!!!!!!!!!!!!!!",e)})).catch((e=>{console.error("请求失败:",e)})),j()}))},_=n([]),j=()=>{fetch("https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList").then((e=>e.json())).then((e=>{_.value=[...e],console.log("机构打印",_.value)}))},x=n([]);return m((()=>{var e;const n=null==(e=window.location.href.split("?")[1])?void 0:e.split("#")[0],o={};n&&n.split("&").forEach((e=>{const[n,s]=e.split("=");o[n]=decodeURIComponent(s)})),console.log("解析到的 query 参数:",o),o.code&&(e=>{const n=`https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(e)}`;fetch(n).then((e=>e.json())).then((e=>{console.log("✅ 获取用户信息成功:",e),y.name=e.data.nickname,y.openid=e.data.openid,y.accessToken=e.accessToken,t({key:"openid",data:{openid:e.data.openid,accessToken:e.accessToken}}),I()})).catch((e=>{console.error("❌ 获取用户信息失败:",e)}))})(o.code)})),(e,n)=>{const h=a,m=f;return c(),o(h,{class:"callback-container"},{default:s((()=>[i(" 回调成功"+r(y.name)+r(y.openid)+" ",1),(c(!0),l(u,null,p(_.value,((e,n)=>(c(),o(h,{key:n},{default:s((()=>[d(h,{style:{"font-size":"30rpx","margin-top":"10rpx","font-weight":"700"},onClick:n=>(e=>{const n=`${e.serverUrl}/h5Api/nuBaseInfo/list`;fetch(n).then((e=>e.json())).then((e=>{x.value=[...e.result]})),t({key:"serverUrl",data:{url:e.serverUrl}});const o={openId:y.openid,serverUrl:e.serverUrl};console.log("???/",o),fetch("https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}).then((e=>e.json())).then((e=>{console.log("???",e)})).catch((e=>{console.error("请求失败:",e)}))})(e)},{default:s((()=>[i(r(e.departName),1)])),_:2},1032,["onClick"]),d(m,{style:{width:"60rpx",height:"60rpx"},src:`https://www.focusnu.com/nursing-unit/sys/common/static/${e.picUrl}`},null,8,["src"])])),_:2},1024)))),128)),(c(!0),l(u,null,p(x.value,((e,n)=>(c(),o(h,{key:n,onClick:v},{default:s((()=>[d(h,{style:{"font-size":"30rpx","margin-top":"10rpx","font-weight":"700"}},{default:s((()=>[i(r(e.nuName),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1})}}},[["__scopeId","data-v-4644647c"]]);export{y as default};
|
|
@ -0,0 +1 @@
|
|||
import{r as e,p as a,c as l,w as s,i as t,o as u,a as c,b as o,t as n,q as d,s as r,F as i,m as f,v,d as _,e as p,T as m,g as h,u as g,I as w,x}from"./index-DVIfOFfO.js";import{_ as y,a as b,b as k}from"./old.CKixGO1Z.js";import{o as I}from"./uni-app.es.DNqITeUz.js";import{_ as j}from"./_plugin-vue_export-helper.BCo6x5W8.js";const V=j({__name:"code",setup(j){const V=e(""),C=e(["","","",""]),K=e(0),S=e(!1),U=e("rgba(0, 0, 0, 0.5)");function q(){S.value=!1}const B=()=>{const e=C.value.join("");4===e.length?(console.log("提交验证码:",e),x({url:"/pages/index/index"})):console.log("验证码未输入完整")},D=e(60);let E=null;return a((()=>{E&&clearInterval(E)})),I((e=>{V.value=e.phonenumber,(()=>{const e=`https://www.focusnu.com/nursing-unit/sys/randomImage/${Date.now()}`;fetch(e).then((e=>e.json())).then((e=>{console.log("code测试",e)}))})(),D.value=60,E=setInterval((()=>{D.value>0?D.value--:(clearInterval(E),E=null)}),1e3)})),(e,a)=>{const x=h,I=t,j=w;return u(),l(I,{class:"login-container"},{default:s((()=>[c(I,{class:"title"},{default:s((()=>[c(x,{class:"title-imge",src:y}),c(I,{class:"title-font"},{default:s((()=>[c(I,{class:""},{default:s((()=>[o("您好,")])),_:1}),c(I,{class:""},{default:s((()=>[o("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),c(x,{class:"photo-imge",src:b}),c(x,{class:"old-imge",src:k}),c(I,{class:"under-container"},{default:s((()=>[c(I,{class:"under-container-title"},{default:s((()=>[c(I,{class:"code-title"},{default:s((()=>[o(" 请输入验证码 ")])),_:1}),c(I,{class:"code-number"},{default:s((()=>[o(" 验证码已发送至"+n(V.value),1)])),_:1})])),_:1}),c(I,{class:"captcha-container"},{default:s((()=>[c(I,{class:"captcha-box"},{default:s((()=>[(u(!0),d(i,null,r(C.value,((e,a)=>(u(),l(I,{key:a,class:"captcha-item"},{default:s((()=>[c(j,{modelValue:C.value[a],"onUpdate:modelValue":e=>C.value[a]=e,class:"captcha-input",type:"number",maxlength:"1",placeholder:a<3?"":" ",onInput:e=>(e=>{C.value[e]&&e<3&&(K.value=e+1);let a=!0;C.value.forEach((e=>{e||(a=!1)})),g((()=>{a&&B()}))})(a),onKeydown:e=>((e,a)=>{"Backspace"!==a.key||C.value[e]||e>0&&(K.value=e-1)})(a,e),focus:K.value===a},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput","onKeydown","focus"])])),_:2},1024)))),128))])),_:1})])),_:1}),c(I,{class:"under-view"},{default:s((()=>[f(c(I,{class:"right-blue"},{default:s((()=>[o(" 重新发送 ")])),_:1},512),[[v,!D.value]]),f(c(I,{class:"right-white"},{default:s((()=>[o(n(D.value)+"S后重新发送 ",1)])),_:1},512),[[v,D.value]]),c(I,{class:"right-black",onClick:a[0]||(a[0]=e=>S.value=!0)},{default:s((()=>[o(" 收不到验证码 ")])),_:1})])),_:1})])),_:1}),c(m,{name:"fade"},{default:s((()=>[S.value?(u(),l(I,{key:0,class:"overlay",onClick:q,style:_({backgroundColor:U.value})},null,8,["style"])):p("",!0)])),_:1}),c(m,{name:"slide-up"},{default:s((()=>[S.value?(u(),l(I,{key:0,class:"modal"},{default:s((()=>[c(I,{class:"modal-title"},{default:s((()=>[o("收不到验证码")])),_:1}),c(I,{class:"model-p"},{default:s((()=>[c(I,{class:"text-view",style:{"font-weight":"600"}},{default:s((()=>[o("手机号可正常使用:")])),_:1}),c(I,{class:"text-view"},{default:s((()=>[o("1 是否输错手机号")])),_:1}),c(I,{class:"text-view"},{default:s((()=>[o("2 手机是否设置短信拦截/欠费/信号不好")])),_:1}),c(I,{class:"text-view"},{default:s((()=>[o("3 手机内存是否满了")])),_:1}),c(I,{class:"text-view"},{default:s((()=>[o("4 手机卡是否为物联卡,而非SIM卡")])),_:1})])),_:1})])),_:1})):p("",!0)])),_:1})])),_:1})}}},[["__scopeId","data-v-edc97756"]]);export{V as default};
|
|
@ -0,0 +1 @@
|
|||
import{r as l,c as a,w as e,i as s,o as t,a as o,b as c,n as u,d as n,e as d,T as r,f as i,g as f,h as _}from"./index-DVIfOFfO.js";import{_ as m,a as p,b as v}from"./old.CKixGO1Z.js";import{u as g}from"./useWeChatAuth.s7uh5--2.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const k=b({__name:"index",setup(b){const k=l(!1),C=l(!1);g();const h=l("rgba(0, 0, 0, 0.5)");function y(){C.value=!1}const x=()=>{k.value?i({url:"/pages/login/phonebumber"}):C.value=!0},j=()=>{console.log("????"),i({url:"/pages/login/protocol"})};return(l,i)=>{const g=f,b=s,w=_;return t(),a(b,{class:"login-container"},{default:e((()=>[o(b,{class:"title"},{default:e((()=>[o(g,{class:"title-imge",src:m}),o(b,{class:"title-font"},{default:e((()=>[o(b,{class:""},{default:e((()=>[c("您好,")])),_:1}),o(b,{class:""},{default:e((()=>[c("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),o(g,{class:"photo-imge",src:p}),o(g,{class:"old-imge",src:v}),o(b,{class:"under-container"},{default:e((()=>[o(b,{class:"under-container-title"},{default:e((()=>[o(b,{class:u(k.value?"radio-circle-target":"radio-circle"),onClick:i[0]||(i[0]=l=>k.value=!k.value)},null,8,["class"]),o(b,{style:{"margin-left":"17rpx"},class:"radio-circle-font",onClick:i[1]||(i[1]=l=>k.value=!k.value)},{default:e((()=>[c("同意")])),_:1}),o(b,{class:"radio-circle-blue",onClick:j},{default:e((()=>[c(" 《护理单元使用条款》 ")])),_:1}),o(b,{class:"radio-circle-font",onClick:i[2]||(i[2]=l=>k.value=!k.value)},{default:e((()=>[c("并授权NU获取本机号码")])),_:1})])),_:1}),o(b,{class:"button-blue",onClick:x},{default:e((()=>[c(" 一键登录 ")])),_:1})])),_:1}),o(r,{name:"fade"},{default:e((()=>[C.value?(t(),a(b,{key:0,class:"overlay",onClick:y,style:n({backgroundColor:h.value})},null,8,["style"])):d("",!0)])),_:1}),o(r,{name:"slide-up"},{default:e((()=>[C.value?(t(),a(b,{key:0,class:"modal"},{default:e((()=>[o(b,{class:"modal-title"},{default:e((()=>[c("服务协议及隐私保护")])),_:1}),o(b,{class:"model-p"},{default:e((()=>[o(w,null,{default:e((()=>[c(" 为了更好地保障您的合法权益,请阅读并同意以下协议")])),_:1}),o(w,{style:{color:"rgb(0,141,255)"},onClick:j},{default:e((()=>[c("《护理单元使用条款》")])),_:1}),o(w,null,{default:e((()=>[c(",同意后将自动登录。")])),_:1})])),_:1}),o(b,{class:"model-down"},{default:e((()=>[o(b,{class:"model-white",onClick:y},{default:e((()=>[c(" 不同意 ")])),_:1}),o(b,{class:"model-blue",onClick:i[3]||(i[3]=l=>{y(),k.value=!0})},{default:e((()=>[c(" 同意 ")])),_:1})])),_:1})])),_:1})):d("",!0)])),_:1})])),_:1})}}},[["__scopeId","data-v-8017333f"]]);export{k as default};
|
|
@ -0,0 +1 @@
|
|||
import{r as e,j as a,o as t,c as l,w as n,a as s,d as o,k as u,l as r,g as i,i as c,b as v,m as d,v as h,e as p,f as m,I as f}from"./index-DVIfOFfO.js";import{_ as g,a as w,b as _}from"./old.CKixGO1Z.js";import{o as x}from"./uni-app.es.DNqITeUz.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const y="/wechat/thd/assets/1-BjS2h1iy.png",$=b({__name:"huakuai",setup(v){const d=100,h=e(null),p=e(null),m=e(400),f=e(600),g=e(0),w=e(0),_=e(0),b=e(!1),$=e(0);const k=`path('${L=d,`\n M20 0\n h${L/3-20}\n a20 20 0 0 1 0 40\n h${L/3}\n a20 20 0 0 0 0 -40\n h${L/3-20}\n v${L/3-20}\n a20 20 0 0 1 -40 0\n v${L/3}\n a20 20 0 0 0 40 0\n v${L/3-20}\n h-${L/3-20}\n a20 20 0 0 1 0 -40\n h-${L/3}\n a20 20 0 0 0 0 40\n h-${L/3-20}\n z\n `}')`;var L;function E(){r().in(h.value).select(".bg-image").boundingClientRect((e=>{e?(console.log("图片宽高:",e.width,e.height),m.value=2*e.width,f.value=2*e.height,g.value=Math.random()*(m.value-200)+d,w.value=f.value/2,_.value=0,console.log("originX:",g.value,"originY:",w.value)):console.error("无法获取.bg-image尺寸")})).exec()}function C(e){b.value=!0,$.value=e.touches?2*e.touches[0].clientX:2*e.clientX,window.addEventListener("mousemove",M),window.addEventListener("mouseup",j),window.addEventListener("touchmove",M),window.addEventListener("touchend",j)}function M(e){if(!b.value)return;let a=(e.touches?2*e.touches[0].clientX:2*e.clientX)-$.value;a=Math.max(0,Math.min(a,m.value-d)),_.value=a}function j(){b.value=!1,window.removeEventListener("mousemove",M),window.removeEventListener("mouseup",j),window.removeEventListener("touchmove",M),window.removeEventListener("touchend",j),Math.abs(_.value-g.value)<20?console.log("验证成功"):_.value=0}const I=e("");return x((()=>{let e=Math.floor(4*Math.random());const a=["/wechat/thd/assets/0-DC0meffC.png",y,y,y];I.value=a[e]})),a((()=>{window.removeEventListener("mousemove",M),window.removeEventListener("mouseup",j),window.removeEventListener("touchmove",M),window.removeEventListener("touchend",j)})),(e,a)=>{const r=i,v=c;return t(),l(v,{class:"captcha-container",ref_key:"container",ref:h},{default:n((()=>[s(v,{class:"captcha-image",style:{position:"relative",width:"100%",height:"400rpx",overflow:"hidden"}},{default:n((()=>[s(r,{src:I.value,class:"bg-image",mode:"widthFix",onLoad:E},null,8,["src"]),s(v,{class:"overlay",style:o({width:m.value+"rpx",height:f.value+"rpx"})},{default:n((()=>[s(v,{class:"hole",style:o({top:w.value+"rpx",left:g.value+"rpx",width:"100rpx",height:"100rpx",clipPath:k,transform:"translate(-50%, -50%)",backgroundColor:"rgba(0,0,0,0.3)"})},null,8,["style"]),s(v,{class:"piece",style:o({top:w.value+"rpx",left:_.value+"rpx",width:"100rpx",height:"100rpx",backgroundImage:`url(${I.value})`,backgroundSize:m.value+"rpx "+f.value+"rpx",backgroundPosition:`-${g.value}rpx -${w.value}rpx`,clipPath:k,transform:"translate(-50%, -50%)"})},null,8,["style"])])),_:1},8,["style"])])),_:1}),s(v,{class:"slider-bar"},{default:n((()=>[s(v,{class:"slider-button",ref_key:"btn",ref:p,onTouchstart:u(C,["prevent"]),onMousedown:u(C,["prevent"]),style:o({left:_.value+"rpx",maxWidth:m.value-d+"rpx"})},null,8,["style"])])),_:1})])),_:1},512)}}},[["__scopeId","data-v-9fb232f4"]]),k=b({__name:"phonebumber",setup(a){const o=e(!1),r=()=>{m({url:`/pages/login/code?phonenumber=${x.value}`})};const x=e(""),b=e(!1),y=e=>{var a;console.log("????",e.detail.value),a=e.detail.value,/^\d{11}$/.test(a.toString())?(x.value=e.detail.value,b.value=!0):b.value=!1};return(e,a)=>{const m=i,x=c,k=f;return t(),l(x,{class:"login-container"},{default:n((()=>[s(x,{class:"title"},{default:n((()=>[s(m,{class:"title-imge",src:g}),s(x,{class:"title-font"},{default:n((()=>[s(x,{class:""},{default:n((()=>[v("您好,")])),_:1}),s(x,{class:""},{default:n((()=>[v("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),s(m,{class:"photo-imge",src:w}),s(m,{class:"old-imge",src:_}),s(x,{class:"under-container"},{default:n((()=>[s(x,{class:"under-container-title"},{default:n((()=>[s(x,{class:"under-container-input"},{default:n((()=>[s(x,{class:"input-left"},{default:n((()=>[v("+86")])),_:1}),s(k,{type:"number",style:{width:"600rpx","font-size":"33rpx"},maxlength:"11",placeholder:"请输入绑定手机号",onInput:y})])),_:1})])),_:1}),s(x,{class:"button-blue",onClick:a[0]||(a[0]=e=>o.value=!0)},{default:n((()=>[v(" 滑块校验 ")])),_:1}),d(s(x,{class:"button-blue",onClick:r},{default:n((()=>[v(" 获得验证码 ")])),_:1},512),[[h,b.value]]),d(s(x,{class:"button-gray"},{default:n((()=>[v(" 获得验证码 ")])),_:1},512),[[h,!b.value]])])),_:1}),o.value?(t(),l(x,{key:0,class:"bg-mask",onClick:a[2]||(a[2]=e=>o.value=!1)},{default:n((()=>[s($,{onClick:a[1]||(a[1]=u((()=>{}),["stop"]))})])),_:1})):p("",!0)])),_:1})}}},[["__scopeId","data-v-a00813dc"]]);export{k as default};
|
|
@ -1,4 +1,4 @@
|
|||
import{r as t,u as e,h as n,e as i,o as r}from"./index-BwwWwpov.js";import{_ as a}from"./_plugin-vue_export-helper.BCo6x5W8.js";
|
||||
import{r as t,E as e,q as n,D as i,o as r}from"./index-DVIfOFfO.js";import{_ as a}from"./_plugin-vue_export-helper.BCo6x5W8.js";
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2010-2025 Three.js Authors
|
|
@ -1 +1 @@
|
|||
import{r as e,h as a,e as n,a as t,w as o,t as s,x as l,y as i,I as d,z as p,o as u,b as c}from"./index-BwwWwpov.js";import{_ as r}from"./_plugin-vue_export-helper.BCo6x5W8.js";const v=r({__name:"index",setup(r){const v=e(""),g=e(!1),y=e("");e({timeStamp:"1747983532",package:"prepay_id=wx23145806465232c82870c59d2d41cf0000",paySign:"0pUqj2JZ77BYchyJuthQyP4yRfqhjvwag78Q4IMnIyQ3/OQP6OyJreZfmj0GFSEMrRsKAHIdBBM7tVnot0aaRhI5qwSOWpzyvJCkYa4eqPgqlV4XYVMqE3zeB/Cx4C9bv4poMXnaGlfFPdkhMYbUcdtsw4gBXXhqUx//9x7eu9cOERRzLquM8Z8rewRpar/kkVKSCV6h8pX19kRj+KEkK5LZB8IUIG995g1lsVFOqdO4mVFBJ1wZCkwJczgVI+jdNGgnR2lpdjwIpJFm+5Hm0y9SwR0UFvgkm95NrmY+Sruty/Zf8ekQwF4+atubW8CE6i8wm2zZpMEnnfS4WFwAwg==",appId:"wx8fc3e4305d2fbf0b",signType:"RSA",nonceStr:"DxpF2uIMl0VM7vPOG7pWnPHk2Dvi3V7K"});const m=()=>{const e=`${w.value}/weiXinPay/native`,a={title:"测试",openId:S.value,amountPrice:v.value};console.log("???/",a),fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then((e=>e.json())).then((e=>{!function(e){const a=()=>{window.WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},(function(e){g.value=!1,"get_brand_wcpay_request:ok"===e.err_msg?y.value="支付成功":y.value="支付失败或取消"}))};void 0===window.WeixinJSBridge?document.addEventListener("WeixinJSBridgeReady",a,!1):a()}(e)})).catch((e=>{console.error("请求失败:",e)}))},w=e(""),S=e("");function f(){v.value&&(g.value=!0,y.value="拉起微信支付...",i({key:"serverUrl",success:function(e){console.log("读取缓存:",e.data.url),w.value=e.data.url}}),i({key:"openid",success:function(e){console.log("读取缓存:",e.data.openid),S.value=e.data.openid}}),m())}return(e,i)=>{const r=d,m=p;return u(),a("div",{class:"container"},[n("div",{class:"input-group"},[t(r,{type:"number",modelValue:v.value,"onUpdate:modelValue":i[0]||(i[0]=e=>v.value=e),placeholder:"请输入金额",class:"amount-input"},null,8,["modelValue"]),t(m,{onClick:f,disabled:g.value||!v.value,class:"pay-btn"},{default:o((()=>[c(" 支付 ")])),_:1},8,["disabled"])]),y.value?(u(),a("div",{key:0,class:"status-group"},[n("p",null,s(y.value),1)])):l("",!0)])}}},[["__scopeId","data-v-8d52c10e"]]);export{v as default};
|
||||
import{r as e,q as a,D as n,a as t,w as o,t as s,e as l,G as i,I as d,H as p,o as u,b as c}from"./index-DVIfOFfO.js";import{_ as r}from"./_plugin-vue_export-helper.BCo6x5W8.js";const v=r({__name:"index",setup(r){const v=e(""),g=e(!1),m=e("");e({timeStamp:"1747983532",package:"prepay_id=wx23145806465232c82870c59d2d41cf0000",paySign:"0pUqj2JZ77BYchyJuthQyP4yRfqhjvwag78Q4IMnIyQ3/OQP6OyJreZfmj0GFSEMrRsKAHIdBBM7tVnot0aaRhI5qwSOWpzyvJCkYa4eqPgqlV4XYVMqE3zeB/Cx4C9bv4poMXnaGlfFPdkhMYbUcdtsw4gBXXhqUx//9x7eu9cOERRzLquM8Z8rewRpar/kkVKSCV6h8pX19kRj+KEkK5LZB8IUIG995g1lsVFOqdO4mVFBJ1wZCkwJczgVI+jdNGgnR2lpdjwIpJFm+5Hm0y9SwR0UFvgkm95NrmY+Sruty/Zf8ekQwF4+atubW8CE6i8wm2zZpMEnnfS4WFwAwg==",appId:"wx8fc3e4305d2fbf0b",signType:"RSA",nonceStr:"DxpF2uIMl0VM7vPOG7pWnPHk2Dvi3V7K"});const y=()=>{const e=`${w.value}/weiXinPay/native`,a={title:"测试",openId:S.value,amountPrice:v.value};console.log("???/",a),fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then((e=>e.json())).then((e=>{!function(e){const a=()=>{window.WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},(function(e){g.value=!1,"get_brand_wcpay_request:ok"===e.err_msg?m.value="支付成功":m.value="支付失败或取消"}))};void 0===window.WeixinJSBridge?document.addEventListener("WeixinJSBridgeReady",a,!1):a()}(e)})).catch((e=>{console.error("请求失败:",e)}))},w=e(""),S=e("");function f(){v.value&&(g.value=!0,m.value="拉起微信支付...",i({key:"serverUrl",success:function(e){console.log("读取缓存:",e.data.url),w.value=e.data.url}}),i({key:"openid",success:function(e){console.log("读取缓存:",e.data.openid),S.value=e.data.openid}}),y())}return(e,i)=>{const r=d,y=p;return u(),a("div",{class:"container"},[n("div",{class:"input-group"},[t(r,{type:"number",modelValue:v.value,"onUpdate:modelValue":i[0]||(i[0]=e=>v.value=e),placeholder:"请输入金额",class:"amount-input"},null,8,["modelValue"]),t(y,{onClick:f,disabled:g.value||!v.value,class:"pay-btn"},{default:o((()=>[c(" 支付 ")])),_:1},8,["disabled"])]),m.value?(u(),a("div",{key:0,class:"status-group"},[n("p",null,s(m.value),1)])):l("",!0)])}}},[["__scopeId","data-v-8d52c10e"]]);export{v as default};
|
|
@ -0,0 +1 @@
|
|||
.captcha-container[data-v-9fb232f4]{-webkit-user-select:none;user-select:none;background-color:#fff;width:18.75rem;height:18.75rem;margin:0 auto;z-index:999;border-radius:.9375rem;overflow:hidden}.captcha-image[data-v-9fb232f4]{position:relative;overflow:hidden}.bg-image[data-v-9fb232f4]{position:relative;z-index:1;display:block;width:100%;height:100%}.overlay[data-v-9fb232f4]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;pointer-events:none}.hole[data-v-9fb232f4],.piece[data-v-9fb232f4]{position:absolute;z-index:101;border-radius:.15625rem;box-shadow:0 0 .1875rem rgba(0,0,0,.4)}.hole[data-v-9fb232f4]{background-color:rgba(0,0,0,.3)}.piece[data-v-9fb232f4]{background-repeat:no-repeat;background-size:cover;cursor:grab}.slider-bar[data-v-9fb232f4]{position:relative;height:5rem;margin-top:0;background:#eee;border-radius:2.5rem;width:18.75rem}.slider-button[data-v-9fb232f4]{position:absolute;top:.625rem;width:3.75rem;height:3.75rem;background:#fff;border-radius:1.875rem;box-shadow:0 0 .625rem rgba(0,0,0,.2);transition:background .3s;-webkit-user-select:none;user-select:none}.slider-button.success[data-v-9fb232f4]{background:#4caf50}.login-container[data-v-a00813dc]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-a00813dc]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-a00813dc]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-a00813dc]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-a00813dc]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-a00813dc]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-a00813dc]{position:fixed;left:0;bottom:0;width:100%;height:45vh;background-color:#fff;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center}.login-container .under-container .radio-circle[data-v-a00813dc],.login-container .under-container .radio-circle-target[data-v-a00813dc]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.login-container .under-container .radio-circle-target[data-v-a00813dc]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.9375rem;height:.9375rem;background-color:#00c9ff;border-radius:50%}.under-container-title[data-v-a00813dc]{display:flex;margin-top:1.875rem;margin-bottom:1.875rem;align-items:center;justify-content:center;font-size:.78125rem;font-weight:500;width:100%}.under-container-title .radio-circle-blue[data-v-a00813dc]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-a00813dc]{color:#5a607f;margin-left:.5625rem;margin-top:.09375rem}.under-container-title .under-container-input[data-v-a00813dc]{width:80%;display:flex;align-items:center;height:3.125rem;border-radius:1.34375rem;color:#5a607f;font-size:1.03125rem;border:.0625rem solid #C0C5D9}.under-container-title .under-container-input .input-left[data-v-a00813dc]{margin:0 .9375rem}.button-gray[data-v-a00813dc]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;background-color:#bcbcbc;color:#fff;font-size:1.03125rem;margin-bottom:.9375rem}.button-white[data-v-a00813dc]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;color:#5a607f;font-size:1.03125rem;margin-bottom:.9375rem;border:.0625rem solid #C0C5D9}.button-blue[data-v-a00813dc]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;background:linear-gradient(to right,#00c9ff,#0076ff);color:#fff;font-size:1.03125rem;margin-bottom:.9375rem}.bubble[data-v-a00813dc]{transition:opacity 1s ease-out;position:absolute;left:.78125rem;top:-.15625rem;background-color:#000;color:#fff;padding:.3125rem;border-radius:.3125rem;font-size:.71875rem;box-shadow:.0625rem .0625rem .15625rem rgba(0,0,0,.2);pointer-events:none;opacity:1}.bubble[data-v-a00813dc]:after{transition:opacity 1s ease-out;content:"";position:absolute;left:50%;bottom:-.25rem;border-left:.3125rem solid transparent;border-right:.3125rem solid transparent;border-top:.3125rem solid black;transform:translate(-50%)}.bubble.hidden[data-v-a00813dc]{opacity:0}.bg-mask[data-v-a00813dc]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.3);-webkit-backdrop-filter:blur(.15625rem);backdrop-filter:blur(.15625rem);z-index:998;display:flex;justify-content:center;align-items:center}
|
|
@ -1 +0,0 @@
|
|||
.login-container[data-v-506393aa]{display:flex;flex-direction:column;align-items:center;height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-506393aa]{display:flex;margin-top:3.75rem;align-items:center}.login-container .title .title-imge[data-v-506393aa]{width:3.4375rem;height:3.4375rem;margin-right:.9375rem}.login-container .title .title-font[data-v-506393aa]{font-size:1.09375rem;font-weight:500}.login-container .photo-imge[data-v-506393aa]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-506393aa]{position:absolute;left:50%;transform:translate(-50%,-50%);top:17.1875rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-506393aa]{position:absolute;left:0;bottom:0;width:100%;height:21.25rem;background-color:#fff;border-top-left-radius:1.5625rem;border-top-right-radius:1.5625rem;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center}.login-container .under-container .radio-circle[data-v-506393aa],.login-container .under-container .radio-circle-target[data-v-506393aa]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.login-container .under-container .radio-circle-target[data-v-506393aa]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.9375rem;height:.9375rem;background-color:#00c9ff;border-radius:50%}.under-container-title[data-v-506393aa]{display:flex;margin-top:1.875rem;margin-bottom:.9375rem;align-items:center;justify-content:center;font-size:.78125rem;font-weight:500;width:100%}.under-container-title .radio-circle-blue[data-v-506393aa]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-506393aa]{color:#5a607f;margin-left:.5625rem;margin-top:.09375rem}.under-container-title .under-container-input[data-v-506393aa]{width:80%;display:flex;align-items:center;height:3.125rem;border-radius:1.34375rem;color:#5a607f;font-size:1.03125rem;border:.0625rem solid #C0C5D9}.under-container-title .under-container-input .input-left[data-v-506393aa]{margin:0 .9375rem}.button-gray[data-v-506393aa]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;background-color:#bcbcbc;color:#fff;font-size:1.03125rem;margin-bottom:.9375rem}.button-white[data-v-506393aa]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;color:#5a607f;font-size:1.03125rem;margin-bottom:.9375rem;border:.0625rem solid #C0C5D9}.button-blue[data-v-506393aa]{width:80%;display:flex;justify-content:center;align-items:center;height:3.125rem;border-radius:1.34375rem;background:linear-gradient(to right,#00c9ff,#0076ff);color:#fff;font-size:1.03125rem;margin-bottom:.9375rem}.bubble[data-v-506393aa]{transition:opacity 1s ease-out;position:absolute;left:.78125rem;top:-.15625rem;background-color:#000;color:#fff;padding:.3125rem;border-radius:.3125rem;font-size:.71875rem;box-shadow:.0625rem .0625rem .15625rem rgba(0,0,0,.2);pointer-events:none;opacity:1}.bubble[data-v-506393aa]:after{transition:opacity 1s ease-out;content:"";position:absolute;left:50%;bottom:-.25rem;border-left:.3125rem solid transparent;border-right:.3125rem solid transparent;border-top:.3125rem solid black;transform:translate(-50%)}.bubble.hidden[data-v-506393aa]{opacity:0}
|
|
@ -0,0 +1 @@
|
|||
.font-father[data-v-c417cc79]{width:100%;padding:0 1.5625rem;display:flex;justify-content:center;align-items:center;flex-direction:column}.font-father .font-title[data-v-c417cc79]{font-size:1.09375rem;font-weight:700;margin:.625rem 0}
|
|
@ -1 +0,0 @@
|
|||
import{m as s,p as a,q as o,O as m}from"./index-BwwWwpov.js";const p=(m=>(p,r=o())=>{!s&&a(m,p,r)})(m);export{p as o};
|
|
@ -0,0 +1 @@
|
|||
import{A as s,B as a,C as o,O as r}from"./index-DVIfOFfO.js";const t=(r=>(t,e=o())=>{!s&&a(r,t,e)})(r);export{t as o};
|
|
@ -1 +1 @@
|
|||
import{r as e}from"./index-BwwWwpov.js";const o=encodeURIComponent("https://www.focusnu.com/wechat/thd/#/pages/index/callback");function n(){return e(""),e(""),e(null),{login:function(e="snsapi_userinfo",n=""){const t=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8fc3e4305d2fbf0b&redirect_uri=${o}&response_type=code&scope=${e}&state=${n}#wechat_redirect`;window.location.href=t}}}export{n as u};
|
||||
import{r as e}from"./index-DVIfOFfO.js";const o=encodeURIComponent("https://www.focusnu.com/wechat/thd/#/pages/index/callback");function n(){return e(""),e(""),e(null),{login:function(e="snsapi_userinfo",n=""){const t=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8fc3e4305d2fbf0b&redirect_uri=${o}&response_type=code&scope=${e}&state=${n}#wechat_redirect`;window.location.href=t}}}export{n as u};
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<link rel="stylesheet" href="/wechat/thd/assets/uni.1d16bcf0.css">
|
||||
<link rel="stylesheet" href="/wechat/thd/assets/uni.60c8949f.css">
|
||||
|
||||
<meta charset="UTF-8" />
|
||||
<script>
|
||||
|
@ -14,7 +14,7 @@
|
|||
<title>测试</title>
|
||||
<!--preload-links-->
|
||||
<!--app-context-->
|
||||
<script type="module" crossorigin src="/wechat/thd/assets/index-BwwWwpov.js"></script>
|
||||
<script type="module" crossorigin src="/wechat/thd/assets/index-DVIfOFfO.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/wechat/thd/assets/index-S414rAV1.css">
|
||||
</head>
|
||||
<body>
|
||||
|
|
After Width: | Height: | Size: 940 KiB |
After Width: | Height: | Size: 733 KiB |
After Width: | Height: | Size: 730 KiB |
After Width: | Height: | Size: 1.0 MiB |
1
unpackage/dist/dev/.sourcemap/mp-weixin-devtools/compontent/useWeChatAuth.js.map
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"names":["APPID","REDIRECT_URI","encodeURIComponent","useWeChatAuth","common_vendor","ref","login","scope","arguments","length","undefined","state","url","concat","window","location","href"],"sources":["useWeChatAuth.js"],"sourcesContent":["// src/composables/useWeChatAuth.js\nimport { ref } from 'vue';\nimport request from '@/request/index.js';\n\nconst APPID = 'wx8fc3e4305d2fbf0b';\nconst REDIRECT_URI = encodeURIComponent('https://www.focusnu.com/wechat/thd/#/pages/index/callback');\n\nexport function useWeChatAuth() {\n const code = ref('');\n const openid = ref('');\n const userInfo = ref(null);\n\n function login(scope = 'snsapi_userinfo', state = '') {\n const url =\n `https://open.weixin.qq.com/connect/oauth2/authorize` +\n `?appid=${APPID}` +\n `&redirect_uri=${REDIRECT_URI}` +\n `&response_type=code` +\n `&scope=${scope}` +\n `&state=${state}` +\n `#wechat_redirect`;\r\n\t\n window.location.href = url;\n }\n\n\n return { login };\n}"],"mappings":";;;;AAIA,IAAMA,KAAA,GAAQ;AACd,IAAMC,YAAA,GAAeC,kBAAA,CAAmB,2DAA2D;AAE5F,SAASC,cAAA,EAAgB;EACjBC,aAAA,CAAAC,GAAA,CAAI,EAAE;EACJD,aAAA,CAAAC,GAAA,CAAI,EAAE;EACJD,aAAA,CAAAC,GAAA,CAAI,IAAI;EAEzB,SAASC,MAAA,EAA6C;IAAA,IAAvCC,KAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAQ;IAAA,IAAmBG,KAAA,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAQ;IAChD,IAAMI,GAAA,gEAAAC,MAAA,CAEMb,KAAK,oBAAAa,MAAA,CACEZ,YAAY,gCAAAY,MAAA,CAEnBN,KAAK,aAAAM,MAAA,CACLF,KAAK;IAGjBG,MAAA,CAAOC,QAAA,CAASC,IAAA,GAAOJ,GAAA;EACxB;EAGD,OAAO;IAAEN,KAAA,EAAAA;EAAK;AAChB","ignoreList":[]}
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t/*每个页面公共css */\r\n\t@import \"./uni_modules/vk-uview-ui/index.scss\";\r\n</style>\n","import App from './App'\r\nimport uView from './uni_modules/vk-uview-ui';\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\t...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport {\r\n\tcreateSSRApp\r\n} from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\t// 使用 uView UI\r\n\tapp.use(uView)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}\r\n// #endif"],"names":["uni","createSSRApp","App","uView"],"mappings":";;;;;;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACMM,SAAS,YAAY;AAC3B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAE5B,MAAI,IAAIC,iCAAK;AACb,SAAO;AAAA,IACN;AAAA,EACA;AACF;;;"}
|
||||
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t/*每个页面公共css */\r\n\t@import \"./uni_modules/vk-uview-ui/index.scss\";\r\n</style>\n","import App from './App'\r\nimport uView from './uni_modules/vk-uview-ui';\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nimport uView from './uni_modules/vk-uview-ui';\nVue.use(uView);\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\t...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport {\r\n\tcreateSSRApp\r\n} from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\t// 使用 uView UI\r\n\tapp.use(uView)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}\r\n// #endif"],"names":["uni","createSSRApp","App","uView"],"mappings":";;;;;;;;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACQM,SAAS,YAAY;AAC3B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAE5B,MAAI,IAAIC,iCAAK;AACb,SAAO;AAAA,IACN;AAAA,EACA;AACF;;;"}
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"assets.js","sources":["static/index/nu.png","static/index/bgc.png","static/index/old.png"],"sourcesContent":["export default \"__VITE_ASSET__e7faca07__\"","export default \"__VITE_ASSET__12a7a67c__\"","export default \"__VITE_ASSET__a6c3231b__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;"}
|
||||
{"version":3,"file":"assets.js","sources":["static/index/nu.png","static/index/bgc.png","static/index/old.png","static/login/0.png","static/login/1.png","static/login/2.png","static/login/3.png"],"sourcesContent":["export default \"__VITE_ASSET__e7faca07__\"","export default \"__VITE_ASSET__12a7a67c__\"","export default \"__VITE_ASSET__a6c3231b__\"","export default \"__VITE_ASSET__40aa7e44__\"","export default \"__VITE_ASSET__ae8e3dba__\"","export default \"__VITE_ASSET__75e1826f__\"","export default \"__VITE_ASSET__0c2bc10b__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;;;;;;;;"}
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"useWeChatAuth.js","sources":["compontent/useWeChatAuth.js"],"sourcesContent":["// src/composables/useWeChatAuth.js\nimport { ref } from 'vue';\nimport request from '@/request/index.js';\n\nconst APPID = 'wx8fc3e4305d2fbf0b';\nconst REDIRECT_URI = encodeURIComponent('https://www.focusnu.com/wechat/thd/#/pages/index/callback');\n\nexport function useWeChatAuth() {\n const code = ref('');\n const openid = ref('');\n const userInfo = ref(null);\n\n function login(scope = 'snsapi_userinfo', state = '') {\n const url =\n `https://open.weixin.qq.com/connect/oauth2/authorize` +\n `?appid=${APPID}` +\n `&redirect_uri=${REDIRECT_URI}` +\n `&response_type=code` +\n `&scope=${scope}` +\n `&state=${state}` +\n `#wechat_redirect`;\r\n\t// console.log(\"????\",scope)\r\n\t\n window.location.href = url;\n }\n\n\n return { login };\n}"],"names":["ref"],"mappings":";;AAIA,MAAM,QAAQ;AACd,MAAM,eAAe,mBAAmB,2DAA2D;AAE5F,SAAS,gBAAgB;AACjBA,gBAAAA,IAAI,EAAE;AACJA,gBAAAA,IAAI,EAAE;AACJA,gBAAAA,IAAI,IAAI;AAEzB,WAAS,MAAM,QAAQ,mBAAmB,QAAQ,IAAI;AACpD,UAAM,MACJ,6DACU,KAAK,iBACE,YAAY,6BAEnB,KAAK,UACL,KAAK;AAIjB,WAAO,SAAS,OAAO;AAAA,EACxB;AAGD,SAAO,EAAE,MAAK;AAChB;;"}
|
||||
{"version":3,"file":"useWeChatAuth.js","sources":["compontent/useWeChatAuth.js"],"sourcesContent":["// src/composables/useWeChatAuth.js\nimport { ref } from 'vue';\nimport request from '@/request/index.js';\n\nconst APPID = 'wx8fc3e4305d2fbf0b';\nconst REDIRECT_URI = encodeURIComponent('https://www.focusnu.com/wechat/thd/#/pages/index/callback');\n\nexport function useWeChatAuth() {\n const code = ref('');\n const openid = ref('');\n const userInfo = ref(null);\n\n function login(scope = 'snsapi_userinfo', state = '') {\n const url =\n `https://open.weixin.qq.com/connect/oauth2/authorize` +\n `?appid=${APPID}` +\n `&redirect_uri=${REDIRECT_URI}` +\n `&response_type=code` +\n `&scope=${scope}` +\n `&state=${state}` +\n `#wechat_redirect`;\r\n\t\n window.location.href = url;\n }\n\n\n return { login };\n}"],"names":["ref"],"mappings":";;AAIA,MAAM,QAAQ;AACd,MAAM,eAAe,mBAAmB,2DAA2D;AAE5F,SAAS,gBAAgB;AACjBA,gBAAAA,IAAI,EAAE;AACJA,gBAAAA,IAAI,EAAE;AACJA,gBAAAA,IAAI,IAAI;AAEzB,WAAS,MAAM,QAAQ,mBAAmB,QAAQ,IAAI;AACpD,UAAM,MACJ,6DACU,KAAK,iBACE,YAAY,6BAEnB,KAAK,UACL,KAAK;AAGjB,WAAO,SAAS,OAAO;AAAA,EACxB;AAGD,SAAO,EAAE,MAAK;AAChB;;"}
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"protocol.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vcHJvdG9jb2wudnVl"],"sourcesContent":["import MiniProgramPage from 'D:/officialAccount/pages/login/protocol.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;AACA,GAAG,WAAW,eAAe;"}
|
|
@ -3,10 +3,12 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|||
const common_vendor = require("./common/vendor.js");
|
||||
const uni_modules_vkUviewUi_index = require("./uni_modules/vk-uview-ui/index.js");
|
||||
if (!Math) {
|
||||
"./pages/login/index.js";
|
||||
"./pages/login/phonebumber.js";
|
||||
"./pages/login/code.js";
|
||||
"./pages/login/callback.js";
|
||||
"./pages/login/protocol.js";
|
||||
"./pages/index/index.js";
|
||||
"./pages/index/phonebumber.js";
|
||||
"./pages/index/code.js";
|
||||
"./pages/index/callback.js";
|
||||
"./pages/map/index.js";
|
||||
"./pages/pay/index.js";
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"pages": [
|
||||
"pages/login/index",
|
||||
"pages/login/phonebumber",
|
||||
"pages/login/code",
|
||||
"pages/login/callback",
|
||||
"pages/login/protocol",
|
||||
"pages/index/index",
|
||||
"pages/index/phonebumber",
|
||||
"pages/index/code",
|
||||
"pages/index/callback",
|
||||
"pages/map/index",
|
||||
"pages/pay/index"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,15 @@
|
|||
const _imports_0 = "/static/index/nu.png";
|
||||
const _imports_1 = "/static/index/bgc.png";
|
||||
const _imports_2 = "/static/index/old.png";
|
||||
const img0 = "/static/login/0.png";
|
||||
const img1 = "/static/login/1.png";
|
||||
const img2 = "/static/login/2.png";
|
||||
const img3 = "/static/login/3.png";
|
||||
exports._imports_0 = _imports_0;
|
||||
exports._imports_1 = _imports_1;
|
||||
exports._imports_2 = _imports_2;
|
||||
exports.img0 = img0;
|
||||
exports.img1 = img1;
|
||||
exports.img2 = img2;
|
||||
exports.img3 = img3;
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map
|
||||
|
|
|
@ -1303,6 +1303,9 @@ function isReadonly(value) {
|
|||
function isShallow(value) {
|
||||
return !!(value && value["__v_isShallow"]);
|
||||
}
|
||||
function isProxy(value) {
|
||||
return isReactive(value) || isReadonly(value);
|
||||
}
|
||||
function toRaw(observed) {
|
||||
const raw = observed && observed["__v_raw"];
|
||||
return raw ? toRaw(raw) : observed;
|
||||
|
@ -2094,6 +2097,47 @@ function setCurrentRenderingInstance(instance) {
|
|||
instance && instance.type.__scopeId || null;
|
||||
return prev;
|
||||
}
|
||||
const COMPONENTS = "components";
|
||||
function resolveComponent(name, maybeSelfReference) {
|
||||
return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
|
||||
}
|
||||
function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
|
||||
const instance = currentRenderingInstance || currentInstance;
|
||||
if (instance) {
|
||||
const Component2 = instance.type;
|
||||
if (type === COMPONENTS) {
|
||||
const selfName = getComponentName(
|
||||
Component2,
|
||||
false
|
||||
);
|
||||
if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
|
||||
return Component2;
|
||||
}
|
||||
}
|
||||
const res = (
|
||||
// local registration
|
||||
// check instance[type] first which is resolved for options API
|
||||
resolve(instance[type] || Component2[type], name) || // global registration
|
||||
resolve(instance.appContext[type], name)
|
||||
);
|
||||
if (!res && maybeSelfReference) {
|
||||
return Component2;
|
||||
}
|
||||
if (warnMissing && !res) {
|
||||
const extra = type === COMPONENTS ? `
|
||||
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
|
||||
warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
|
||||
}
|
||||
return res;
|
||||
} else {
|
||||
warn$1(
|
||||
`resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
|
||||
);
|
||||
}
|
||||
}
|
||||
function resolve(registry, name) {
|
||||
return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
|
||||
}
|
||||
const INITIAL_WATCHER_VALUE = {};
|
||||
function watch(source, cb, options) {
|
||||
if (!isFunction(cb)) {
|
||||
|
@ -3704,6 +3748,12 @@ const Static = Symbol.for("v-stc");
|
|||
function isVNode(value) {
|
||||
return value ? value.__v_isVNode === true : false;
|
||||
}
|
||||
const InternalObjectKey = `__vInternal`;
|
||||
function guardReactiveProps(props) {
|
||||
if (!props)
|
||||
return null;
|
||||
return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;
|
||||
}
|
||||
const emptyAppContext = createAppContext();
|
||||
let uid = 0;
|
||||
function createComponentInstance(vnode, parent, suspense) {
|
||||
|
@ -4942,6 +4992,11 @@ function initApp(app) {
|
|||
}
|
||||
}
|
||||
const propsCaches = /* @__PURE__ */ Object.create(null);
|
||||
function renderProps(props) {
|
||||
const { uid: uid2, __counter } = getCurrentInstance();
|
||||
const propsId = (propsCaches[uid2] || (propsCaches[uid2] = [])).push(guardReactiveProps(props)) - 1;
|
||||
return uid2 + "," + propsId + "," + __counter;
|
||||
}
|
||||
function pruneComponentPropsCache(uid2) {
|
||||
delete propsCaches[uid2];
|
||||
}
|
||||
|
@ -5113,6 +5168,7 @@ const f = (source, renderItem) => vFor(source, renderItem);
|
|||
const e = (target, ...sources) => extend(target, ...sources);
|
||||
const n = (value) => normalizeClass(value);
|
||||
const t = (val) => toDisplayString(val);
|
||||
const p = (props) => renderProps(props);
|
||||
function createApp$1(rootComponent, rootProps = null) {
|
||||
rootComponent && (rootComponent.mpType = "app");
|
||||
return createVueApp(rootComponent, rootProps).use(plugin);
|
||||
|
@ -5434,8 +5490,8 @@ function promisify$1(name, fn) {
|
|||
if (hasCallback(args)) {
|
||||
return wrapperReturnValue(name, invokeApi(name, fn, args, rest));
|
||||
}
|
||||
return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
|
||||
invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest);
|
||||
return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => {
|
||||
invokeApi(name, fn, extend(args, { success: resolve2, fail: reject }), rest);
|
||||
})));
|
||||
};
|
||||
}
|
||||
|
@ -5756,7 +5812,7 @@ function invokeGetPushCidCallbacks(cid2, errMsg) {
|
|||
getPushCidCallbacks.length = 0;
|
||||
}
|
||||
const API_GET_PUSH_CLIENT_ID = "getPushClientId";
|
||||
const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => {
|
||||
const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve: resolve2, reject }) => {
|
||||
Promise.resolve().then(() => {
|
||||
if (typeof enabled === "undefined") {
|
||||
enabled = false;
|
||||
|
@ -5765,7 +5821,7 @@ const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, re
|
|||
}
|
||||
getPushCidCallbacks.push((cid2, errMsg) => {
|
||||
if (cid2) {
|
||||
resolve({ cid: cid2 });
|
||||
resolve2({ cid: cid2 });
|
||||
} else {
|
||||
reject(errMsg);
|
||||
}
|
||||
|
@ -5834,9 +5890,9 @@ function promisify(name, api) {
|
|||
if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) {
|
||||
return wrapperReturnValue(name, invokeApi(name, api, options, rest));
|
||||
}
|
||||
return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
|
||||
return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => {
|
||||
invokeApi(name, api, extend({}, options, {
|
||||
success: resolve,
|
||||
success: resolve2,
|
||||
fail: reject
|
||||
}), rest);
|
||||
})));
|
||||
|
@ -6443,13 +6499,13 @@ function initRuntimeSocket(hosts, port, id) {
|
|||
}
|
||||
const SOCKET_TIMEOUT = 500;
|
||||
function tryConnectSocket(host2, port, id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
return new Promise((resolve2, reject) => {
|
||||
const socket = index.connectSocket({
|
||||
url: `ws://${host2}:${port}/${id}`,
|
||||
multiple: true,
|
||||
// 支付宝小程序 是否开启多实例
|
||||
fail() {
|
||||
resolve(null);
|
||||
resolve2(null);
|
||||
}
|
||||
});
|
||||
const timer = setTimeout(() => {
|
||||
|
@ -6457,19 +6513,19 @@ function tryConnectSocket(host2, port, id) {
|
|||
code: 1006,
|
||||
reason: "connect timeout"
|
||||
});
|
||||
resolve(null);
|
||||
resolve2(null);
|
||||
}, SOCKET_TIMEOUT);
|
||||
socket.onOpen((e2) => {
|
||||
clearTimeout(timer);
|
||||
resolve(socket);
|
||||
resolve2(socket);
|
||||
});
|
||||
socket.onClose((e2) => {
|
||||
clearTimeout(timer);
|
||||
resolve(null);
|
||||
resolve2(null);
|
||||
});
|
||||
socket.onError((e2) => {
|
||||
clearTimeout(timer);
|
||||
resolve(null);
|
||||
resolve2(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -6934,7 +6990,7 @@ function isConsoleWritable() {
|
|||
function initRuntimeSocketService() {
|
||||
const hosts = "192.168.2.24,127.0.0.1";
|
||||
const port = "8090";
|
||||
const id = "mp-weixin_JkT_v2";
|
||||
const id = "mp-weixin_c0fjQb";
|
||||
const lazy = typeof swan !== "undefined";
|
||||
let restoreError = lazy ? () => {
|
||||
} : initOnError();
|
||||
|
@ -9622,7 +9678,7 @@ function warnOnce(message) {
|
|||
index.__f__("warn", "at node_modules/three/build/three.core.js:4054", message);
|
||||
}
|
||||
function probeAsync(gl, sync, interval) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
return new Promise(function(resolve2, reject) {
|
||||
function probe() {
|
||||
switch (gl.clientWaitSync(sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0)) {
|
||||
case gl.WAIT_FAILED:
|
||||
|
@ -9632,7 +9688,7 @@ function probeAsync(gl, sync, interval) {
|
|||
setTimeout(probe, interval);
|
||||
break;
|
||||
default:
|
||||
resolve();
|
||||
resolve2();
|
||||
}
|
||||
}
|
||||
setTimeout(probe, interval);
|
||||
|
@ -14885,16 +14941,16 @@ class Matrix4 {
|
|||
const te = this.elements;
|
||||
const w = 1 / (right - left);
|
||||
const h = 1 / (top - bottom);
|
||||
const p = 1 / (far - near);
|
||||
const p2 = 1 / (far - near);
|
||||
const x = (right + left) * w;
|
||||
const y = (top + bottom) * h;
|
||||
let z, zInv;
|
||||
if (coordinateSystem === WebGLCoordinateSystem) {
|
||||
z = (far + near) * p;
|
||||
zInv = -2 * p;
|
||||
z = (far + near) * p2;
|
||||
zInv = -2 * p2;
|
||||
} else if (coordinateSystem === WebGPUCoordinateSystem) {
|
||||
z = near * p;
|
||||
zInv = -1 * p;
|
||||
z = near * p2;
|
||||
zInv = -1 * p2;
|
||||
} else {
|
||||
throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: " + coordinateSystem);
|
||||
}
|
||||
|
@ -16614,18 +16670,18 @@ class Triangle {
|
|||
* @param {Vector3} target - The target vector that is used to store the method's result.
|
||||
* @return {Vector3} The closest point on the triangle.
|
||||
*/
|
||||
closestPointToPoint(p, target) {
|
||||
closestPointToPoint(p2, target) {
|
||||
const a = this.a, b = this.b, c = this.c;
|
||||
let v, w;
|
||||
_vab.subVectors(b, a);
|
||||
_vac.subVectors(c, a);
|
||||
_vap.subVectors(p, a);
|
||||
_vap.subVectors(p2, a);
|
||||
const d1 = _vab.dot(_vap);
|
||||
const d2 = _vac.dot(_vap);
|
||||
if (d1 <= 0 && d2 <= 0) {
|
||||
return target.copy(a);
|
||||
}
|
||||
_vbp.subVectors(p, b);
|
||||
_vbp.subVectors(p2, b);
|
||||
const d3 = _vab.dot(_vbp);
|
||||
const d4 = _vac.dot(_vbp);
|
||||
if (d3 >= 0 && d4 <= d3) {
|
||||
|
@ -16636,7 +16692,7 @@ class Triangle {
|
|||
v = d1 / (d1 - d3);
|
||||
return target.copy(a).addScaledVector(_vab, v);
|
||||
}
|
||||
_vcp.subVectors(p, c);
|
||||
_vcp.subVectors(p2, c);
|
||||
const d5 = _vab.dot(_vcp);
|
||||
const d6 = _vac.dot(_vcp);
|
||||
if (d6 >= 0 && d5 <= d6) {
|
||||
|
@ -16820,18 +16876,18 @@ const _colorKeywords = {
|
|||
};
|
||||
const _hslA = { h: 0, s: 0, l: 0 };
|
||||
const _hslB = { h: 0, s: 0, l: 0 };
|
||||
function hue2rgb(p, q, t2) {
|
||||
function hue2rgb(p2, q, t2) {
|
||||
if (t2 < 0)
|
||||
t2 += 1;
|
||||
if (t2 > 1)
|
||||
t2 -= 1;
|
||||
if (t2 < 1 / 6)
|
||||
return p + (q - p) * 6 * t2;
|
||||
return p2 + (q - p2) * 6 * t2;
|
||||
if (t2 < 1 / 2)
|
||||
return q;
|
||||
if (t2 < 2 / 3)
|
||||
return p + (q - p) * 6 * (2 / 3 - t2);
|
||||
return p;
|
||||
return p2 + (q - p2) * 6 * (2 / 3 - t2);
|
||||
return p2;
|
||||
}
|
||||
class Color {
|
||||
/**
|
||||
|
@ -16935,11 +16991,11 @@ class Color {
|
|||
if (s === 0) {
|
||||
this.r = this.g = this.b = l;
|
||||
} else {
|
||||
const p = l <= 0.5 ? l * (1 + s) : l + s - l * s;
|
||||
const q = 2 * l - p;
|
||||
this.r = hue2rgb(q, p, h + 1 / 3);
|
||||
this.g = hue2rgb(q, p, h);
|
||||
this.b = hue2rgb(q, p, h - 1 / 3);
|
||||
const p2 = l <= 0.5 ? l * (1 + s) : l + s - l * s;
|
||||
const q = 2 * l - p2;
|
||||
this.r = hue2rgb(q, p2, h + 1 / 3);
|
||||
this.g = hue2rgb(q, p2, h);
|
||||
this.b = hue2rgb(q, p2, h - 1 / 3);
|
||||
}
|
||||
ColorManagement.toWorkingColorSpace(this, colorSpace);
|
||||
return this;
|
||||
|
@ -19589,19 +19645,19 @@ function cloneUniforms(src) {
|
|||
const dst = {};
|
||||
for (const u in src) {
|
||||
dst[u] = {};
|
||||
for (const p in src[u]) {
|
||||
const property = src[u][p];
|
||||
for (const p2 in src[u]) {
|
||||
const property = src[u][p2];
|
||||
if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) {
|
||||
if (property.isRenderTargetTexture) {
|
||||
index.__f__("warn", "at node_modules/three/build/three.core.js:20645", "UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().");
|
||||
dst[u][p] = null;
|
||||
dst[u][p2] = null;
|
||||
} else {
|
||||
dst[u][p] = property.clone();
|
||||
dst[u][p2] = property.clone();
|
||||
}
|
||||
} else if (Array.isArray(property)) {
|
||||
dst[u][p] = property.slice();
|
||||
dst[u][p2] = property.slice();
|
||||
} else {
|
||||
dst[u][p] = property;
|
||||
dst[u][p2] = property;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19611,8 +19667,8 @@ function mergeUniforms(uniforms) {
|
|||
const merged = {};
|
||||
for (let u = 0; u < uniforms.length; u++) {
|
||||
const tmp = cloneUniforms(uniforms[u]);
|
||||
for (const p in tmp) {
|
||||
merged[p] = tmp[p];
|
||||
for (const p2 in tmp) {
|
||||
merged[p2] = tmp[p2];
|
||||
}
|
||||
}
|
||||
return merged;
|
||||
|
@ -26613,8 +26669,8 @@ function WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities,
|
|||
}
|
||||
function acquireProgram(parameters, cacheKey) {
|
||||
let program;
|
||||
for (let p = 0, pl = programs.length; p < pl; p++) {
|
||||
const preexistingProgram = programs[p];
|
||||
for (let p2 = 0, pl = programs.length; p2 < pl; p2++) {
|
||||
const preexistingProgram = programs[p2];
|
||||
if (preexistingProgram.cacheKey === cacheKey) {
|
||||
program = preexistingProgram;
|
||||
++program.usedTimes;
|
||||
|
@ -29461,62 +29517,62 @@ function WebGLTextures(_gl, extensions, state, properties, capabilities, utils,
|
|||
this.useMultisampledRTT = useMultisampledRTT;
|
||||
}
|
||||
function WebGLUtils(gl, extensions) {
|
||||
function convert(p, colorSpace = NoColorSpace) {
|
||||
function convert(p2, colorSpace = NoColorSpace) {
|
||||
let extension;
|
||||
const transfer = ColorManagement.getTransfer(colorSpace);
|
||||
if (p === UnsignedByteType)
|
||||
if (p2 === UnsignedByteType)
|
||||
return gl.UNSIGNED_BYTE;
|
||||
if (p === UnsignedShort4444Type)
|
||||
if (p2 === UnsignedShort4444Type)
|
||||
return gl.UNSIGNED_SHORT_4_4_4_4;
|
||||
if (p === UnsignedShort5551Type)
|
||||
if (p2 === UnsignedShort5551Type)
|
||||
return gl.UNSIGNED_SHORT_5_5_5_1;
|
||||
if (p === UnsignedInt5999Type)
|
||||
if (p2 === UnsignedInt5999Type)
|
||||
return gl.UNSIGNED_INT_5_9_9_9_REV;
|
||||
if (p === ByteType)
|
||||
if (p2 === ByteType)
|
||||
return gl.BYTE;
|
||||
if (p === ShortType)
|
||||
if (p2 === ShortType)
|
||||
return gl.SHORT;
|
||||
if (p === UnsignedShortType)
|
||||
if (p2 === UnsignedShortType)
|
||||
return gl.UNSIGNED_SHORT;
|
||||
if (p === IntType)
|
||||
if (p2 === IntType)
|
||||
return gl.INT;
|
||||
if (p === UnsignedIntType)
|
||||
if (p2 === UnsignedIntType)
|
||||
return gl.UNSIGNED_INT;
|
||||
if (p === FloatType)
|
||||
if (p2 === FloatType)
|
||||
return gl.FLOAT;
|
||||
if (p === HalfFloatType)
|
||||
if (p2 === HalfFloatType)
|
||||
return gl.HALF_FLOAT;
|
||||
if (p === AlphaFormat)
|
||||
if (p2 === AlphaFormat)
|
||||
return gl.ALPHA;
|
||||
if (p === RGBFormat)
|
||||
if (p2 === RGBFormat)
|
||||
return gl.RGB;
|
||||
if (p === RGBAFormat)
|
||||
if (p2 === RGBAFormat)
|
||||
return gl.RGBA;
|
||||
if (p === DepthFormat)
|
||||
if (p2 === DepthFormat)
|
||||
return gl.DEPTH_COMPONENT;
|
||||
if (p === DepthStencilFormat)
|
||||
if (p2 === DepthStencilFormat)
|
||||
return gl.DEPTH_STENCIL;
|
||||
if (p === RedFormat)
|
||||
if (p2 === RedFormat)
|
||||
return gl.RED;
|
||||
if (p === RedIntegerFormat)
|
||||
if (p2 === RedIntegerFormat)
|
||||
return gl.RED_INTEGER;
|
||||
if (p === RGFormat)
|
||||
if (p2 === RGFormat)
|
||||
return gl.RG;
|
||||
if (p === RGIntegerFormat)
|
||||
if (p2 === RGIntegerFormat)
|
||||
return gl.RG_INTEGER;
|
||||
if (p === RGBAIntegerFormat)
|
||||
if (p2 === RGBAIntegerFormat)
|
||||
return gl.RGBA_INTEGER;
|
||||
if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {
|
||||
if (p2 === RGB_S3TC_DXT1_Format || p2 === RGBA_S3TC_DXT1_Format || p2 === RGBA_S3TC_DXT3_Format || p2 === RGBA_S3TC_DXT5_Format) {
|
||||
if (transfer === SRGBTransfer) {
|
||||
extension = extensions.get("WEBGL_compressed_texture_s3tc_srgb");
|
||||
if (extension !== null) {
|
||||
if (p === RGB_S3TC_DXT1_Format)
|
||||
if (p2 === RGB_S3TC_DXT1_Format)
|
||||
return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;
|
||||
if (p === RGBA_S3TC_DXT1_Format)
|
||||
if (p2 === RGBA_S3TC_DXT1_Format)
|
||||
return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
|
||||
if (p === RGBA_S3TC_DXT3_Format)
|
||||
if (p2 === RGBA_S3TC_DXT3_Format)
|
||||
return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
|
||||
if (p === RGBA_S3TC_DXT5_Format)
|
||||
if (p2 === RGBA_S3TC_DXT5_Format)
|
||||
return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
|
||||
} else {
|
||||
return null;
|
||||
|
@ -29524,111 +29580,111 @@ function WebGLUtils(gl, extensions) {
|
|||
} else {
|
||||
extension = extensions.get("WEBGL_compressed_texture_s3tc");
|
||||
if (extension !== null) {
|
||||
if (p === RGB_S3TC_DXT1_Format)
|
||||
if (p2 === RGB_S3TC_DXT1_Format)
|
||||
return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;
|
||||
if (p === RGBA_S3TC_DXT1_Format)
|
||||
if (p2 === RGBA_S3TC_DXT1_Format)
|
||||
return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
||||
if (p === RGBA_S3TC_DXT3_Format)
|
||||
if (p2 === RGBA_S3TC_DXT3_Format)
|
||||
return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;
|
||||
if (p === RGBA_S3TC_DXT5_Format)
|
||||
if (p2 === RGBA_S3TC_DXT5_Format)
|
||||
return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {
|
||||
if (p2 === RGB_PVRTC_4BPPV1_Format || p2 === RGB_PVRTC_2BPPV1_Format || p2 === RGBA_PVRTC_4BPPV1_Format || p2 === RGBA_PVRTC_2BPPV1_Format) {
|
||||
extension = extensions.get("WEBGL_compressed_texture_pvrtc");
|
||||
if (extension !== null) {
|
||||
if (p === RGB_PVRTC_4BPPV1_Format)
|
||||
if (p2 === RGB_PVRTC_4BPPV1_Format)
|
||||
return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
|
||||
if (p === RGB_PVRTC_2BPPV1_Format)
|
||||
if (p2 === RGB_PVRTC_2BPPV1_Format)
|
||||
return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;
|
||||
if (p === RGBA_PVRTC_4BPPV1_Format)
|
||||
if (p2 === RGBA_PVRTC_4BPPV1_Format)
|
||||
return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
|
||||
if (p === RGBA_PVRTC_2BPPV1_Format)
|
||||
if (p2 === RGBA_PVRTC_2BPPV1_Format)
|
||||
return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
if (p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) {
|
||||
if (p2 === RGB_ETC1_Format || p2 === RGB_ETC2_Format || p2 === RGBA_ETC2_EAC_Format) {
|
||||
extension = extensions.get("WEBGL_compressed_texture_etc");
|
||||
if (extension !== null) {
|
||||
if (p === RGB_ETC1_Format || p === RGB_ETC2_Format)
|
||||
if (p2 === RGB_ETC1_Format || p2 === RGB_ETC2_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;
|
||||
if (p === RGBA_ETC2_EAC_Format)
|
||||
if (p2 === RGBA_ETC2_EAC_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format) {
|
||||
if (p2 === RGBA_ASTC_4x4_Format || p2 === RGBA_ASTC_5x4_Format || p2 === RGBA_ASTC_5x5_Format || p2 === RGBA_ASTC_6x5_Format || p2 === RGBA_ASTC_6x6_Format || p2 === RGBA_ASTC_8x5_Format || p2 === RGBA_ASTC_8x6_Format || p2 === RGBA_ASTC_8x8_Format || p2 === RGBA_ASTC_10x5_Format || p2 === RGBA_ASTC_10x6_Format || p2 === RGBA_ASTC_10x8_Format || p2 === RGBA_ASTC_10x10_Format || p2 === RGBA_ASTC_12x10_Format || p2 === RGBA_ASTC_12x12_Format) {
|
||||
extension = extensions.get("WEBGL_compressed_texture_astc");
|
||||
if (extension !== null) {
|
||||
if (p === RGBA_ASTC_4x4_Format)
|
||||
if (p2 === RGBA_ASTC_4x4_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;
|
||||
if (p === RGBA_ASTC_5x4_Format)
|
||||
if (p2 === RGBA_ASTC_5x4_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;
|
||||
if (p === RGBA_ASTC_5x5_Format)
|
||||
if (p2 === RGBA_ASTC_5x5_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;
|
||||
if (p === RGBA_ASTC_6x5_Format)
|
||||
if (p2 === RGBA_ASTC_6x5_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;
|
||||
if (p === RGBA_ASTC_6x6_Format)
|
||||
if (p2 === RGBA_ASTC_6x6_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;
|
||||
if (p === RGBA_ASTC_8x5_Format)
|
||||
if (p2 === RGBA_ASTC_8x5_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;
|
||||
if (p === RGBA_ASTC_8x6_Format)
|
||||
if (p2 === RGBA_ASTC_8x6_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;
|
||||
if (p === RGBA_ASTC_8x8_Format)
|
||||
if (p2 === RGBA_ASTC_8x8_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;
|
||||
if (p === RGBA_ASTC_10x5_Format)
|
||||
if (p2 === RGBA_ASTC_10x5_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;
|
||||
if (p === RGBA_ASTC_10x6_Format)
|
||||
if (p2 === RGBA_ASTC_10x6_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;
|
||||
if (p === RGBA_ASTC_10x8_Format)
|
||||
if (p2 === RGBA_ASTC_10x8_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;
|
||||
if (p === RGBA_ASTC_10x10_Format)
|
||||
if (p2 === RGBA_ASTC_10x10_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;
|
||||
if (p === RGBA_ASTC_12x10_Format)
|
||||
if (p2 === RGBA_ASTC_12x10_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;
|
||||
if (p === RGBA_ASTC_12x12_Format)
|
||||
if (p2 === RGBA_ASTC_12x12_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
if (p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format) {
|
||||
if (p2 === RGBA_BPTC_Format || p2 === RGB_BPTC_SIGNED_Format || p2 === RGB_BPTC_UNSIGNED_Format) {
|
||||
extension = extensions.get("EXT_texture_compression_bptc");
|
||||
if (extension !== null) {
|
||||
if (p === RGBA_BPTC_Format)
|
||||
if (p2 === RGBA_BPTC_Format)
|
||||
return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;
|
||||
if (p === RGB_BPTC_SIGNED_Format)
|
||||
if (p2 === RGB_BPTC_SIGNED_Format)
|
||||
return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;
|
||||
if (p === RGB_BPTC_UNSIGNED_Format)
|
||||
if (p2 === RGB_BPTC_UNSIGNED_Format)
|
||||
return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
if (p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format) {
|
||||
if (p2 === RED_RGTC1_Format || p2 === SIGNED_RED_RGTC1_Format || p2 === RED_GREEN_RGTC2_Format || p2 === SIGNED_RED_GREEN_RGTC2_Format) {
|
||||
extension = extensions.get("EXT_texture_compression_rgtc");
|
||||
if (extension !== null) {
|
||||
if (p === RGBA_BPTC_Format)
|
||||
if (p2 === RGBA_BPTC_Format)
|
||||
return extension.COMPRESSED_RED_RGTC1_EXT;
|
||||
if (p === SIGNED_RED_RGTC1_Format)
|
||||
if (p2 === SIGNED_RED_RGTC1_Format)
|
||||
return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;
|
||||
if (p === RED_GREEN_RGTC2_Format)
|
||||
if (p2 === RED_GREEN_RGTC2_Format)
|
||||
return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;
|
||||
if (p === SIGNED_RED_GREEN_RGTC2_Format)
|
||||
if (p2 === SIGNED_RED_GREEN_RGTC2_Format)
|
||||
return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
if (p === UnsignedInt248Type)
|
||||
if (p2 === UnsignedInt248Type)
|
||||
return gl.UNSIGNED_INT_24_8;
|
||||
return gl[p] !== void 0 ? gl[p] : null;
|
||||
return gl[p2] !== void 0 ? gl[p2] : null;
|
||||
}
|
||||
return { convert };
|
||||
}
|
||||
|
@ -31255,7 +31311,7 @@ class WebGLRenderer {
|
|||
};
|
||||
this.compileAsync = function(scene, camera, targetScene = null) {
|
||||
const materials2 = this.compile(scene, camera, targetScene);
|
||||
return new Promise((resolve) => {
|
||||
return new Promise((resolve2) => {
|
||||
function checkMaterialsReady() {
|
||||
materials2.forEach(function(material) {
|
||||
const materialProperties = properties.get(material);
|
||||
|
@ -31265,7 +31321,7 @@ class WebGLRenderer {
|
|||
}
|
||||
});
|
||||
if (materials2.size === 0) {
|
||||
resolve(scene);
|
||||
resolve2(scene);
|
||||
return;
|
||||
}
|
||||
setTimeout(checkMaterialsReady, 10);
|
||||
|
@ -33172,10 +33228,14 @@ exports.index = index;
|
|||
exports.n = n;
|
||||
exports.nextTick$1 = nextTick$1;
|
||||
exports.o = o;
|
||||
exports.onBeforeUnmount = onBeforeUnmount;
|
||||
exports.onLoad = onLoad;
|
||||
exports.onMounted = onMounted;
|
||||
exports.onUnmounted = onUnmounted;
|
||||
exports.p = p;
|
||||
exports.reactive = reactive;
|
||||
exports.ref = ref;
|
||||
exports.resolveComponent = resolveComponent;
|
||||
exports.t = t;
|
||||
exports.wx$1 = wx$1;
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const pieceSizePx = 50;
|
||||
const tolerance = 20;
|
||||
const containerWidthPx = 200;
|
||||
const containerHeightPx = 300;
|
||||
const _sfc_main = {
|
||||
__name: "huakuai",
|
||||
setup(__props) {
|
||||
const pieceSize = pieceSizePx * 2;
|
||||
const container = common_vendor.ref(null);
|
||||
common_vendor.ref(null);
|
||||
const containerWidth = common_vendor.ref(containerWidthPx * 2);
|
||||
const containerHeight = common_vendor.ref(containerHeightPx * 2);
|
||||
const originX = common_vendor.ref(0);
|
||||
const originY = common_vendor.ref(0);
|
||||
const offsetX = common_vendor.ref(0);
|
||||
const dragging = common_vendor.ref(false);
|
||||
const startX = common_vendor.ref(0);
|
||||
function getPuzzlePiecePath(size) {
|
||||
const s = size;
|
||||
return `
|
||||
M${10 * 2} 0
|
||||
h${s / 3 - 10 * 2}
|
||||
a${10 * 2} ${10 * 2} 0 0 1 0 ${20 * 2}
|
||||
h${s / 3}
|
||||
a${10 * 2} ${10 * 2} 0 0 0 0 -${20 * 2}
|
||||
h${s / 3 - 10 * 2}
|
||||
v${s / 3 - 10 * 2}
|
||||
a${10 * 2} ${10 * 2} 0 0 1 -${20 * 2} 0
|
||||
v${s / 3}
|
||||
a${10 * 2} ${10 * 2} 0 0 0 ${20 * 2} 0
|
||||
v${s / 3 - 10 * 2}
|
||||
h-${s / 3 - 10 * 2}
|
||||
a${10 * 2} ${10 * 2} 0 0 1 0 -${20 * 2}
|
||||
h-${s / 3}
|
||||
a${10 * 2} ${10 * 2} 0 0 0 0 ${20 * 2}
|
||||
h-${s / 3 - 10 * 2}
|
||||
z
|
||||
`;
|
||||
}
|
||||
const clipPath = `path('${getPuzzlePiecePath(pieceSize)}')`;
|
||||
function init() {
|
||||
common_vendor.index.createSelectorQuery().in(container.value).select(".bg-image").boundingClientRect((data) => {
|
||||
if (!data) {
|
||||
common_vendor.index.__f__("error", "at compontent/public/huakuai.vue:102", "无法获取.bg-image尺寸");
|
||||
return;
|
||||
}
|
||||
common_vendor.index.__f__("log", "at compontent/public/huakuai.vue:105", "图片宽高:", data.width, data.height);
|
||||
containerWidth.value = data.width * 2;
|
||||
containerHeight.value = data.height * 2;
|
||||
originX.value = Math.random() * (containerWidth.value - pieceSize * 2) + pieceSize;
|
||||
originY.value = containerHeight.value / 2;
|
||||
offsetX.value = 0;
|
||||
common_vendor.index.__f__("log", "at compontent/public/huakuai.vue:114", "originX:", originX.value, "originY:", originY.value);
|
||||
}).exec();
|
||||
}
|
||||
function onStart(e) {
|
||||
dragging.value = true;
|
||||
startX.value = e.touches ? e.touches[0].clientX * 2 : e.clientX * 2;
|
||||
window.addEventListener("mousemove", onMove);
|
||||
window.addEventListener("mouseup", onEnd);
|
||||
window.addEventListener("touchmove", onMove);
|
||||
window.addEventListener("touchend", onEnd);
|
||||
}
|
||||
function onMove(e) {
|
||||
if (!dragging.value)
|
||||
return;
|
||||
const clientX = e.touches ? e.touches[0].clientX * 2 : e.clientX * 2;
|
||||
let dx = clientX - startX.value;
|
||||
dx = Math.max(0, Math.min(dx, containerWidth.value - pieceSize));
|
||||
offsetX.value = dx;
|
||||
}
|
||||
common_vendor.ref(null);
|
||||
function onEnd() {
|
||||
dragging.value = false;
|
||||
window.removeEventListener("mousemove", onMove);
|
||||
window.removeEventListener("mouseup", onEnd);
|
||||
window.removeEventListener("touchmove", onMove);
|
||||
window.removeEventListener("touchend", onEnd);
|
||||
if (Math.abs(offsetX.value - originX.value) < tolerance) {
|
||||
common_vendor.index.__f__("log", "at compontent/public/huakuai.vue:146", "验证成功");
|
||||
} else {
|
||||
offsetX.value = 0;
|
||||
common_vendor.index.showToast({
|
||||
title: "验证失败",
|
||||
icon: "none",
|
||||
// 不显示图标(提示信息)
|
||||
duration: 2e3
|
||||
// 显示时长(毫秒)
|
||||
});
|
||||
}
|
||||
}
|
||||
const bgImage = common_vendor.ref("");
|
||||
common_vendor.onLoad(() => {
|
||||
let randomInt = Math.floor(Math.random() * 4);
|
||||
const bgImageMap = [common_assets.img0, common_assets.img1, common_assets.img2, common_assets.img3];
|
||||
bgImage.value = bgImageMap[randomInt];
|
||||
});
|
||||
common_vendor.onBeforeUnmount(() => {
|
||||
window.removeEventListener("mousemove", onMove);
|
||||
window.removeEventListener("mouseup", onEnd);
|
||||
window.removeEventListener("touchmove", onMove);
|
||||
window.removeEventListener("touchend", onEnd);
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
a: bgImage.value,
|
||||
b: common_vendor.o(init),
|
||||
c: originY.value + "rpx",
|
||||
d: originX.value + "rpx",
|
||||
e: pieceSize + "rpx",
|
||||
f: pieceSize + "rpx",
|
||||
g: clipPath,
|
||||
h: originY.value + "rpx",
|
||||
i: offsetX.value + "rpx",
|
||||
j: pieceSize + "rpx",
|
||||
k: pieceSize + "rpx",
|
||||
l: `url(${bgImage.value})`,
|
||||
m: containerWidth.value + "rpx " + containerHeight.value + "rpx",
|
||||
n: `-${originX.value - 30}rpx -${originY.value - 45}rpx`,
|
||||
o: clipPath,
|
||||
p: containerWidth.value + "rpx",
|
||||
q: containerHeight.value + "rpx",
|
||||
r: common_vendor.o(onStart),
|
||||
s: common_vendor.o(onStart),
|
||||
t: offsetX.value + "rpx",
|
||||
v: containerWidth.value - pieceSize + "rpx"
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2ca77e4c"]]);
|
||||
wx.createComponent(Component);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/compontent/public/huakuai.js.map
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="captcha-container data-v-2ca77e4c" ref="container"><view class="font-title data-v-2ca77e4c">请通过滑块验证</view><view class="captcha-image data-v-2ca77e4c" style="position:relative;width:100%;height:400rpx;overflow:hidden"><image src="{{a}}" class="bg-image data-v-2ca77e4c" mode="widthFix" bindload="{{b}}"/><view class="overlay data-v-2ca77e4c" style="{{'width:' + p + ';' + ('height:' + q)}}"><view class="hole data-v-2ca77e4c" style="{{'top:' + c + ';' + ('left:' + d) + ';' + ('width:' + e) + ';' + ('height:' + f) + ';' + ('clip-path:' + g) + ';' + ('transform:' + 'translate(-50%, -50%)') + ';' + ('background-color:' + 'rgba(0,0,0,0.3)')}}"></view><view class="piece data-v-2ca77e4c" style="{{'top:' + h + ';' + ('left:' + i) + ';' + ('width:' + j) + ';' + ('height:' + k) + ';' + ('background-image:' + l) + ';' + ('background-size:' + m) + ';' + ('background-position:' + n) + ';' + ('clip-path:' + o) + ';' + ('transform:' + 'translate(-50%, -50%)')}}"></view></view></view><view class="slider-bar data-v-2ca77e4c"><view class="slider-button data-v-2ca77e4c" ref="btn" catchtouchstart="{{r}}" catchmousedown="{{s}}" style="{{'left:' + t + ';' + ('max-width:' + v)}}"></view></view></view>
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
.captcha-container.data-v-2ca77e4c {
|
||||
/* margin: 20rpx auto; */
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
background-color: #fff;
|
||||
width: 600rpx;
|
||||
height: 800rpx;
|
||||
margin: 0 auto;
|
||||
z-index: 999;
|
||||
border-radius: 30rpx;
|
||||
overflow: hidden;
|
||||
padding: 0 30rpx;
|
||||
}
|
||||
.captcha-image.data-v-2ca77e4c {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.bg-image.data-v-2ca77e4c {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
/* margin-top: 30rpx; */
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.overlay.data-v-2ca77e4c {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 100;
|
||||
pointer-events: none;
|
||||
}
|
||||
.hole.data-v-2ca77e4c,
|
||||
.piece.data-v-2ca77e4c {
|
||||
position: absolute;
|
||||
z-index: 101;
|
||||
border-radius: 5rpx;
|
||||
box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.hole.data-v-2ca77e4c {
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.piece.data-v-2ca77e4c {
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
cursor: grab;
|
||||
}
|
||||
.slider-bar.data-v-2ca77e4c {
|
||||
position: relative;
|
||||
height: 160rpx;
|
||||
margin-top: 0rpx;
|
||||
background: #eee;
|
||||
border-radius: 80rpx;
|
||||
width: 600rpx;
|
||||
}
|
||||
.slider-button.data-v-2ca77e4c {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
background: #fff;
|
||||
border-radius: 60rpx;
|
||||
box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.2);
|
||||
transition: background 0.3s;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.slider-button.success.data-v-2ca77e4c {
|
||||
background: #4caf50;
|
||||
}
|
||||
.font-title.data-v-2ca77e4c {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 80rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
}
|
|
@ -7,10 +7,11 @@ const _sfc_main = {
|
|||
compontent_useWeChatAuth.useWeChatAuth();
|
||||
const ceshi = common_vendor.reactive({
|
||||
name: "",
|
||||
openid: ""
|
||||
openid: "",
|
||||
accessToken: ""
|
||||
});
|
||||
const jumpto = () => {
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:37", "???");
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:51", "???");
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/pay/index"
|
||||
});
|
||||
|
@ -18,24 +19,46 @@ const _sfc_main = {
|
|||
const getOpenId = (code) => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(code)}`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:48", "✅ 获取用户信息成功:", data);
|
||||
ceshi.name = data.nickname;
|
||||
ceshi.openid = data.openid;
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:62", "✅ 获取用户信息成功:", data);
|
||||
ceshi.name = data.data.nickname;
|
||||
ceshi.openid = data.data.openid;
|
||||
ceshi.accessToken = data.accessToken;
|
||||
common_vendor.index.setStorage({
|
||||
key: "openid",
|
||||
data: {
|
||||
openid: data.openid
|
||||
openid: data.data.openid,
|
||||
accessToken: data.accessToken
|
||||
}
|
||||
});
|
||||
getUserMessage();
|
||||
}).catch((err) => {
|
||||
common_vendor.index.__f__("error", "at pages/index/callback.vue:61", "❌ 获取用户信息失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/index/callback.vue:77", "❌ 获取用户信息失败:", err);
|
||||
});
|
||||
};
|
||||
const look = common_vendor.ref("");
|
||||
const getUserMessage = () => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(ceshi.openid)}&wechatName=${encodeURIComponent(ceshi.name)}`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:69", "个人信息打印", data);
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:88", "个人信息打印", data);
|
||||
const urlpost = `${data.result.serverUrl}/weiXinPay/getUserInfo`;
|
||||
const payload = {
|
||||
openid: ceshi.openid,
|
||||
access_token: ceshi.accessToken
|
||||
// serverUrl: serve.value
|
||||
};
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:97", "???/", payload);
|
||||
fetch(urlpost, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
}).then((res) => res.json()).then((data2) => {
|
||||
look.value = data2;
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:109", "!!!!!!!!!!!!!!!!!!!!!!!", data2);
|
||||
}).catch((err) => {
|
||||
common_vendor.index.__f__("error", "at pages/index/callback.vue:112", "请求失败:", err);
|
||||
});
|
||||
getjigou();
|
||||
});
|
||||
};
|
||||
|
@ -44,7 +67,7 @@ const _sfc_main = {
|
|||
const url = `https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
jigouArray.value = [...data];
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:80", "机构打印", jigouArray.value);
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:127", "机构打印", jigouArray.value);
|
||||
});
|
||||
};
|
||||
const secondArray = common_vendor.ref([]);
|
||||
|
@ -64,7 +87,7 @@ const _sfc_main = {
|
|||
openId: ceshi.openid,
|
||||
serverUrl: element.serverUrl
|
||||
};
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:102", "???/", payload);
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:149", "???/", payload);
|
||||
fetch(urlpost, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
|
@ -72,9 +95,9 @@ const _sfc_main = {
|
|||
},
|
||||
body: JSON.stringify(payload)
|
||||
}).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:113", "???", data);
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:160", "???", data);
|
||||
}).catch((err) => {
|
||||
common_vendor.index.__f__("error", "at pages/index/callback.vue:116", "请求失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/index/callback.vue:163", "请求失败:", err);
|
||||
});
|
||||
};
|
||||
common_vendor.onLoad(() => {
|
||||
|
@ -88,7 +111,7 @@ const _sfc_main = {
|
|||
query[key] = decodeURIComponent(value);
|
||||
});
|
||||
}
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:131", "解析到的 query 参数:", query);
|
||||
common_vendor.index.__f__("log", "at pages/index/callback.vue:178", "解析到的 query 参数:", query);
|
||||
if (query.code) {
|
||||
getOpenId(query.code);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
.callback-container.data-v-dd49f168 {
|
||||
padding: 24px;
|
||||
padding: 24px;
|
||||
}
|
||||
.avatar.data-v-dd49f168 {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 40px;
|
||||
margin-top: 12px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 40px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
if (!Array) {
|
||||
const _component_transition = common_vendor.resolveComponent("transition");
|
||||
_component_transition();
|
||||
}
|
||||
const _sfc_main = {
|
||||
__name: "code",
|
||||
setup(__props) {
|
||||
const phonenumber = common_vendor.ref("");
|
||||
const captcha = common_vendor.ref(["", "", "", ""]);
|
||||
const focusedIndex = common_vendor.ref(0);
|
||||
const isFadingOut = common_vendor.ref(false);
|
||||
const maskColor = common_vendor.ref("rgba(0, 0, 0, 0.5)");
|
||||
function closeModal() {
|
||||
isFadingOut.value = false;
|
||||
}
|
||||
const handleInput = (index) => {
|
||||
if (captcha.value[index]) {
|
||||
if (index < 3) {
|
||||
|
@ -35,16 +44,39 @@ const _sfc_main = {
|
|||
const submitCaptcha = () => {
|
||||
const code = captcha.value.join("");
|
||||
if (code.length === 4) {
|
||||
common_vendor.index.__f__("log", "at pages/index/code.vue:103", "提交验证码:", code);
|
||||
common_vendor.index.__f__("log", "at pages/index/code.vue:118", "提交验证码:", code);
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/index/code.vue:106", "验证码未输入完整");
|
||||
common_vendor.index.__f__("log", "at pages/index/code.vue:121", "验证码未输入完整");
|
||||
}
|
||||
};
|
||||
const getcode = () => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/sys/randomImage/${Date.now()}`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/index/code.vue:148", "code测试", data);
|
||||
});
|
||||
};
|
||||
const countdown = common_vendor.ref(60);
|
||||
let timerId = null;
|
||||
common_vendor.onUnmounted(() => {
|
||||
if (timerId) {
|
||||
clearInterval(timerId);
|
||||
}
|
||||
});
|
||||
common_vendor.onLoad((options) => {
|
||||
phonenumber.value = options.phonenumber;
|
||||
getcode();
|
||||
countdown.value = 60;
|
||||
timerId = setInterval(() => {
|
||||
if (countdown.value > 0) {
|
||||
countdown.value--;
|
||||
} else {
|
||||
clearInterval(timerId);
|
||||
timerId = null;
|
||||
}
|
||||
}, 1e3);
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
return common_vendor.e({
|
||||
a: common_assets._imports_0,
|
||||
b: common_assets._imports_1,
|
||||
c: common_assets._imports_2,
|
||||
|
@ -58,8 +90,25 @@ const _sfc_main = {
|
|||
e: captcha.value[index],
|
||||
f: index
|
||||
};
|
||||
}),
|
||||
f: !countdown.value,
|
||||
g: common_vendor.t(countdown.value),
|
||||
h: countdown.value,
|
||||
i: common_vendor.o(($event) => isFadingOut.value = true),
|
||||
j: isFadingOut.value
|
||||
}, isFadingOut.value ? {
|
||||
k: common_vendor.o(closeModal),
|
||||
l: maskColor.value
|
||||
} : {}, {
|
||||
m: common_vendor.p({
|
||||
name: "fade"
|
||||
}),
|
||||
n: isFadingOut.value
|
||||
}, isFadingOut.value ? {} : {}, {
|
||||
o: common_vendor.p({
|
||||
name: "slide-up"
|
||||
})
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1 +1 @@
|
|||
<view class="login-container data-v-7e06bee2"><view class="title data-v-7e06bee2"><image class="title-imge data-v-7e06bee2" src="{{a}}"/><view class="title-font data-v-7e06bee2"><view class=" data-v-7e06bee2">您好,</view><view class=" data-v-7e06bee2">欢迎使用nu护理单元~</view></view></view><image class="photo-imge data-v-7e06bee2" src="{{b}}"/><image class="old-imge data-v-7e06bee2" src="{{c}}"/><view class="under-container data-v-7e06bee2"><view class="under-container-title data-v-7e06bee2"><view class="code-title data-v-7e06bee2"> 请输入验证码 </view><view class="code-number data-v-7e06bee2"> 验证码已发送至{{d}}</view></view><view class="captcha-container data-v-7e06bee2"><view class="captcha-box data-v-7e06bee2"><view wx:for="{{e}}" wx:for-item="digit" wx:key="f" class="captcha-item data-v-7e06bee2"><input class="captcha-input data-v-7e06bee2" type="number" maxlength="1" placeholder="{{digit.a}}" bindinput="{{digit.b}}" bindkeydown="{{digit.c}}" focus="{{digit.d}}" value="{{digit.e}}"/></view></view></view><view class="data-v-7e06bee2" style="width:100%"><view class="right-blue data-v-7e06bee2"> 重新发送 </view></view></view></view>
|
||||
<view class="login-container data-v-7e06bee2"><view class="title data-v-7e06bee2"><image class="title-imge data-v-7e06bee2" src="{{a}}"/><view class="title-font data-v-7e06bee2"><view class=" data-v-7e06bee2">您好,</view><view class=" data-v-7e06bee2">欢迎使用护理单元~</view></view></view><image class="photo-imge data-v-7e06bee2" src="{{b}}"/><image class="old-imge data-v-7e06bee2" src="{{c}}"/><view class="under-container data-v-7e06bee2"><view class="under-container-title data-v-7e06bee2"><view class="code-title data-v-7e06bee2"> 请输入验证码 </view><view class="code-number data-v-7e06bee2"> 验证码已发送至{{d}}</view></view><view class="captcha-container data-v-7e06bee2"><view class="captcha-box data-v-7e06bee2"><view wx:for="{{e}}" wx:for-item="digit" wx:key="f" class="captcha-item data-v-7e06bee2"><input class="captcha-input data-v-7e06bee2" type="number" maxlength="1" placeholder="{{digit.a}}" bindinput="{{digit.b}}" bindkeydown="{{digit.c}}" focus="{{digit.d}}" value="{{digit.e}}"/></view></view></view><view class="under-view data-v-7e06bee2"><view class="right-blue data-v-7e06bee2" hidden="{{!f}}"> 重新发送 </view><view class="right-white data-v-7e06bee2" hidden="{{!h}}">{{g}}S后重新发送 </view><view class="right-black data-v-7e06bee2" bindtap="{{i}}"> 收不到验证码 </view></view></view><transition wx:if="{{m}}" class="data-v-7e06bee2" u-s="{{['d']}}" u-i="7e06bee2-0" bind:__l="__l" u-p="{{m}}"><view wx:if="{{j}}" class="overlay data-v-7e06bee2" bindtap="{{k}}" style="{{'background-color:' + l}}"/></transition><transition wx:if="{{o}}" class="data-v-7e06bee2" u-s="{{['d']}}" u-i="7e06bee2-1" bind:__l="__l" u-p="{{o}}"><view wx:if="{{n}}" class="modal data-v-7e06bee2"><view class="modal-title data-v-7e06bee2">收不到验证码</view><view class="model-p data-v-7e06bee2"><view class="text-view data-v-7e06bee2" style="font-weight:600">手机号可正常使用:</view><view class="text-view data-v-7e06bee2">1 是否输错手机号</view><view class="text-view data-v-7e06bee2">2 手机是否设置短信拦截/欠费/信号不好</view><view class="text-view data-v-7e06bee2">3 手机内存是否满了</view><view class="text-view data-v-7e06bee2">4 手机卡是否为物联卡,而非SIM卡</view></view></view></transition></view>
|
|
@ -26,25 +26,25 @@
|
|||
.login-container.data-v-7e06bee2 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: #eff1fc;
|
||||
position: relative;
|
||||
}
|
||||
.login-container .title.data-v-7e06bee2 {
|
||||
display: flex;
|
||||
margin-top: 120rpx;
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.login-container .title .title-imge.data-v-7e06bee2 {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
margin-right: 30rpx;
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
.login-container .title .title-font.data-v-7e06bee2 {
|
||||
font-size: 35rpx;
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.login-container .photo-imge.data-v-7e06bee2 {
|
||||
position: absolute;
|
||||
|
@ -55,18 +55,17 @@
|
|||
}
|
||||
.login-container .old-imge.data-v-7e06bee2 {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 550rpx;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
.login-container .under-container.data-v-7e06bee2 {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 680rpx;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
|
@ -113,7 +112,7 @@
|
|||
}
|
||||
.under-container-title .code-title.data-v-7e06bee2 {
|
||||
margin-left: 80rpx;
|
||||
font-size: 33rpx;
|
||||
font-size: 35rpx;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20rpx;
|
||||
|
@ -127,6 +126,7 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.captcha-box.data-v-7e06bee2 {
|
||||
display: flex;
|
||||
|
@ -141,9 +141,10 @@
|
|||
.captcha-input.data-v-7e06bee2 {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
border-radius: 20rpx;
|
||||
font-size: 28rpx;
|
||||
border: 3rpx solid #C0C5D9;
|
||||
border-radius: 30rpx;
|
||||
font-size: 50rpx;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
margin-right: 40rpx;
|
||||
outline: none;
|
||||
|
@ -151,18 +152,119 @@
|
|||
.captcha-input.data-v-7e06bee2:focus {
|
||||
border-color: #00C9FF;
|
||||
}
|
||||
.submit-btn.data-v-7e06bee2 {
|
||||
padding: 10rpx 20rpx;
|
||||
background-color: #00C9FF;
|
||||
color: white;
|
||||
border-radius: 43rpx;
|
||||
font-size: 28rpx;
|
||||
margin-top: 20rpx;
|
||||
width: 80%;
|
||||
text-align: center;
|
||||
}
|
||||
.right-blue.data-v-7e06bee2 {
|
||||
float: right;
|
||||
color: #0083FF;
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.right-white.data-v-7e06bee2 {
|
||||
color: #c2c6d3;
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.right-black.data-v-7e06bee2 {
|
||||
margin-right: 80rpx;
|
||||
color: black;
|
||||
}
|
||||
.under-view.data-v-7e06bee2 {
|
||||
width: 100%;
|
||||
margin-top: 10rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
/* 遮罩 */
|
||||
.overlay.data-v-7e06bee2 {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 998;
|
||||
}
|
||||
|
||||
/* 弹窗 */
|
||||
.modal.data-v-7e06bee2 {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
z-index: 999;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.modal .modal-title.data-v-7e06bee2 {
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
margin: 50rpx 0;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.modal .model-p.data-v-7e06bee2 {
|
||||
padding: 0 50rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.modal .model-down.data-v-7e06bee2 {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 0 50rpx;
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.modal .model-down .model-white.data-v-7e06bee2 {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
border: 5rpx solid #008dff;
|
||||
color: #008dff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.modal .model-down .model-blue.data-v-7e06bee2 {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* 动画:遮罩淡入淡出 */
|
||||
.fade-enter-active.data-v-7e06bee2,
|
||||
.fade-leave-active.data-v-7e06bee2 {
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
.fade-enter-from.data-v-7e06bee2,
|
||||
.fade-leave-to.data-v-7e06bee2 {
|
||||
opacity: 0;
|
||||
}
|
||||
.fade-enter-to.data-v-7e06bee2,
|
||||
.fade-leave-from.data-v-7e06bee2 {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 动画:弹窗上滑 */
|
||||
.slide-up-enter-active.data-v-7e06bee2,
|
||||
.slide-up-leave-active.data-v-7e06bee2 {
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
.slide-up-enter-from.data-v-7e06bee2,
|
||||
.slide-up-leave-to.data-v-7e06bee2 {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
.slide-up-enter-to.data-v-7e06bee2,
|
||||
.slide-up-leave-from.data-v-7e06bee2 {
|
||||
transform: translateY(0);
|
||||
}
|
||||
.text-view.data-v-7e06bee2 {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
|
@ -1,55 +1,20 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const compontent_useWeChatAuth = require("../../compontent/useWeChatAuth.js");
|
||||
const _sfc_main = {
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const isTarget = common_vendor.ref(false);
|
||||
const isFadingOut = common_vendor.ref(false);
|
||||
const {
|
||||
login
|
||||
} = compontent_useWeChatAuth.useWeChatAuth();
|
||||
let timerId = null;
|
||||
const loginIt = () => {
|
||||
if (timerId) {
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
if (!isTarget.value) {
|
||||
isFadingOut.value = true;
|
||||
timerId = setTimeout(() => {
|
||||
isFadingOut.value = false;
|
||||
}, 1e3);
|
||||
} else {
|
||||
login();
|
||||
}
|
||||
};
|
||||
const yanzhengma = () => {
|
||||
if (timerId) {
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
if (!isTarget.value) {
|
||||
isFadingOut.value = true;
|
||||
timerId = setTimeout(() => {
|
||||
isFadingOut.value = false;
|
||||
}, 1e3);
|
||||
} else {
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/index/phonebumber"
|
||||
});
|
||||
}
|
||||
};
|
||||
const itemArray = ["NU", "动态", "我的"];
|
||||
const itemTarget = common_vendor.ref(0);
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
a: common_assets._imports_0,
|
||||
b: common_assets._imports_1,
|
||||
c: common_assets._imports_2,
|
||||
d: isFadingOut.value,
|
||||
e: common_vendor.n(isTarget.value ? "radio-circle-target" : "radio-circle"),
|
||||
f: common_vendor.o(($event) => isTarget.value = !isTarget.value),
|
||||
g: common_vendor.o(($event) => isTarget.value = !isTarget.value),
|
||||
h: common_vendor.o(loginIt),
|
||||
i: common_vendor.o(yanzhengma)
|
||||
a: common_vendor.f(itemArray, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item),
|
||||
b: common_vendor.n(itemTarget.value === index ? `bottom-button-target` : `bottom-button`),
|
||||
c: common_vendor.o(($event) => itemTarget.value = index),
|
||||
d: itemTarget.value === index
|
||||
};
|
||||
})
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "登录",
|
||||
"navigationBarTitleText": "首页",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -1 +1 @@
|
|||
<view class="login-container data-v-1cf27b2a"><view class="title data-v-1cf27b2a"><image class="title-imge data-v-1cf27b2a" src="{{a}}"/><view class="title-font data-v-1cf27b2a"><view class=" data-v-1cf27b2a">您好,</view><view class=" data-v-1cf27b2a">欢迎使用nu护理单元~</view></view></view><image class="photo-imge data-v-1cf27b2a" src="{{b}}"/><image class="old-imge data-v-1cf27b2a" src="{{c}}"/><view class="under-container data-v-1cf27b2a"><view class="under-container-title data-v-1cf27b2a"><view hidden="{{!d}}" class="bubble data-v-1cf27b2a"> 请勾选同意该协议 </view><view class="{{['data-v-1cf27b2a', e]}}" bindtap="{{f}}"></view><view class="radio-circle-font data-v-1cf27b2a" bindtap="{{g}}">登录代表您已同意</view><view class="radio-circle-blue data-v-1cf27b2a"> 《法律条款与隐私政策》 </view></view><view class="button-blue data-v-1cf27b2a" bindtap="{{h}}"> 一键登录 </view><view class="button-white data-v-1cf27b2a" bindtap="{{i}}"> 手机登录/注册 </view></view></view>
|
||||
<view class="login-container data-v-1cf27b2a"><view class="botton-view data-v-1cf27b2a"><view wx:for="{{a}}" wx:for-item="item" class="array-father data-v-1cf27b2a"><view class="{{['data-v-1cf27b2a', item.b]}}" bindtap="{{item.c}}"><view class=" data-v-1cf27b2a">{{item.a}}</view></view><view hidden="{{!item.d}}" class="blue-heng data-v-1cf27b2a"></view></view></view></view>
|
|
@ -26,153 +26,47 @@
|
|||
.login-container.data-v-1cf27b2a {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: #eff1fc;
|
||||
position: relative;
|
||||
}
|
||||
.login-container .title.data-v-1cf27b2a {
|
||||
display: flex;
|
||||
margin-top: 120rpx;
|
||||
align-items: center;
|
||||
.array-father.data-v-1cf27b2a {
|
||||
width: 33%;
|
||||
position: relative;
|
||||
}
|
||||
.login-container .title .title-imge.data-v-1cf27b2a {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.login-container .title .title-font.data-v-1cf27b2a {
|
||||
font-size: 35rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
.login-container .photo-imge.data-v-1cf27b2a {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
.login-container .old-imge.data-v-1cf27b2a {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 550rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
.login-container .under-container.data-v-1cf27b2a {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
.botton-view.data-v-1cf27b2a {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 200rpx;
|
||||
width: 100%;
|
||||
height: 680rpx;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.login-container .under-container .radio-circle.data-v-1cf27b2a {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
.login-container .under-container .radio-circle-target.data-v-1cf27b2a {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
.login-container .under-container .radio-circle-target.data-v-1cf27b2a::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.under-container-title.data-v-1cf27b2a {
|
||||
display: flex;
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 30rpx;
|
||||
align-items: center;
|
||||
font-size: 25rpx;
|
||||
justify-content: space-between;
|
||||
font-weight: 500;
|
||||
}
|
||||
.under-container-title .radio-circle-blue.data-v-1cf27b2a {
|
||||
color: #0083FF;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
.under-container-title .radio-circle-font.data-v-1cf27b2a {
|
||||
color: #5A607F;
|
||||
margin-left: 18rpx;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
.button-blue.data-v-1cf27b2a {
|
||||
width: 80%;
|
||||
.botton-view .bottom-button.data-v-1cf27b2a {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.button-white.data-v-1cf27b2a {
|
||||
width: 80%;
|
||||
.botton-view .bottom-button-target.data-v-1cf27b2a {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
color: #5A607F;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
color: #2a85eb;
|
||||
}
|
||||
.bubble.data-v-1cf27b2a {
|
||||
transition: opacity 1s ease-out;
|
||||
position: absolute;
|
||||
left: 25rpx;
|
||||
top: -5rpx;
|
||||
background-color: black;
|
||||
color: white;
|
||||
padding: 10rpx;
|
||||
border-radius: 10rpx;
|
||||
font-size: 23rpx;
|
||||
box-shadow: 2rpx 2rpx 5rpx rgba(0, 0, 0, 0.2);
|
||||
pointer-events: none;
|
||||
opacity: 1;
|
||||
/* 初始为可见 */
|
||||
}
|
||||
.bubble.data-v-1cf27b2a::after {
|
||||
transition: opacity 1s ease-out;
|
||||
content: "";
|
||||
.botton-view .blue-heng.data-v-1cf27b2a {
|
||||
height: 6rpx;
|
||||
width: 150rpx;
|
||||
background-color: #2a85eb;
|
||||
position: absolute;
|
||||
bottom: 55rpx;
|
||||
left: 50%;
|
||||
bottom: -8rpx;
|
||||
border-left: 10rpx solid transparent;
|
||||
border-right: 10rpx solid transparent;
|
||||
border-top: 10rpx solid black;
|
||||
/* 左边缘到父容器左边的距离占父宽度 50% */
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
/* 隐藏气泡 */
|
||||
.bubble.hidden.data-v-1cf27b2a {
|
||||
opacity: 0;
|
||||
}
|
|
@ -15,7 +15,7 @@ const _sfc_main = {
|
|||
const phonenumber = common_vendor.ref("");
|
||||
const canClick = common_vendor.ref(false);
|
||||
const isRight = (res) => {
|
||||
common_vendor.index.__f__("log", "at pages/index/phonebumber.vue:48", "????", res.detail.value);
|
||||
common_vendor.index.__f__("log", "at pages/index/phonebumber.vue:49", "????", res.detail.value);
|
||||
if (is11DigitNumber(res.detail.value)) {
|
||||
phonenumber.value = res.detail.value;
|
||||
canClick.value = true;
|
||||
|
|
|
@ -1 +1 @@
|
|||
<view class="login-container data-v-5d75f7c6"><view class="title data-v-5d75f7c6"><image class="title-imge data-v-5d75f7c6" src="{{a}}"/><view class="title-font data-v-5d75f7c6"><view class=" data-v-5d75f7c6">您好,</view><view class=" data-v-5d75f7c6">欢迎使用nu护理单元~</view></view></view><image class="photo-imge data-v-5d75f7c6" src="{{b}}"/><image class="old-imge data-v-5d75f7c6" src="{{c}}"/><view class="under-container data-v-5d75f7c6"><view class="under-container-title data-v-5d75f7c6"><view class="under-container-input data-v-5d75f7c6"><view class="input-left data-v-5d75f7c6">+86</view><input class="data-v-5d75f7c6" type="number" style="width:600rpx" maxlength="11" placeholder="请输入手机号" bindinput="{{d}}"/></view></view><view class="button-blue data-v-5d75f7c6" hidden="{{!e}}" bindtap="{{f}}"> 获得验证码 </view><view class="button-gray data-v-5d75f7c6" hidden="{{!g}}"> 获得验证码 </view></view></view>
|
||||
<view class="login-container data-v-5d75f7c6"><view class="title data-v-5d75f7c6"><image class="title-imge data-v-5d75f7c6" src="{{a}}"/><view class="title-font data-v-5d75f7c6"><view class=" data-v-5d75f7c6">您好,</view><view class=" data-v-5d75f7c6">欢迎使用护理单元~</view></view></view><image class="photo-imge data-v-5d75f7c6" src="{{b}}"/><image class="old-imge data-v-5d75f7c6" src="{{c}}"/><view class="under-container data-v-5d75f7c6"><view class="under-container-title data-v-5d75f7c6"><view class="under-container-input data-v-5d75f7c6"><view class="input-left data-v-5d75f7c6">+86</view><input class="data-v-5d75f7c6" type="number" style="width:600rpx;font-size:33rpx" maxlength="11" placeholder="请输入绑定手机号" bindinput="{{d}}"/></view></view><view class="button-blue data-v-5d75f7c6" hidden="{{!e}}" bindtap="{{f}}"> 获得验证码 </view><view class="button-gray data-v-5d75f7c6" hidden="{{!g}}"> 获得验证码 </view></view></view>
|
|
@ -26,25 +26,25 @@
|
|||
.login-container.data-v-5d75f7c6 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: #eff1fc;
|
||||
position: relative;
|
||||
}
|
||||
.login-container .title.data-v-5d75f7c6 {
|
||||
display: flex;
|
||||
margin-top: 120rpx;
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.login-container .title .title-imge.data-v-5d75f7c6 {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
margin-right: 30rpx;
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
.login-container .title .title-font.data-v-5d75f7c6 {
|
||||
font-size: 35rpx;
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.login-container .photo-imge.data-v-5d75f7c6 {
|
||||
position: absolute;
|
||||
|
@ -55,18 +55,17 @@
|
|||
}
|
||||
.login-container .old-imge.data-v-5d75f7c6 {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 550rpx;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
.login-container .under-container.data-v-5d75f7c6 {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 680rpx;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
|
@ -107,7 +106,7 @@
|
|||
.under-container-title.data-v-5d75f7c6 {
|
||||
display: flex;
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 30rpx;
|
||||
margin-bottom: 60rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 25rpx;
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const compontent_useWeChatAuth = require("../../compontent/useWeChatAuth.js");
|
||||
const _sfc_main = {
|
||||
__name: "callback",
|
||||
setup(__props) {
|
||||
compontent_useWeChatAuth.useWeChatAuth();
|
||||
const ceshi = common_vendor.reactive({
|
||||
name: "",
|
||||
openid: "",
|
||||
accessToken: ""
|
||||
});
|
||||
const jumpto = () => {
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:51", "???");
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/pay/index"
|
||||
});
|
||||
};
|
||||
const getOpenId = (code) => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(code)}`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:62", "✅ 获取用户信息成功:", data);
|
||||
ceshi.name = data.data.nickname;
|
||||
ceshi.openid = data.data.openid;
|
||||
ceshi.accessToken = data.accessToken;
|
||||
common_vendor.index.setStorage({
|
||||
key: "openid",
|
||||
data: {
|
||||
openid: data.data.openid,
|
||||
accessToken: data.accessToken
|
||||
}
|
||||
});
|
||||
getUserMessage();
|
||||
}).catch((err) => {
|
||||
common_vendor.index.__f__("error", "at pages/login/callback.vue:77", "❌ 获取用户信息失败:", err);
|
||||
});
|
||||
};
|
||||
const look = common_vendor.ref("");
|
||||
const getUserMessage = () => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(ceshi.openid)}&wechatName=${encodeURIComponent(ceshi.name)}`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:88", "个人信息打印", data);
|
||||
const urlpost = `${data.result.serverUrl}/weiXinPay/getUserInfo`;
|
||||
const payload = {
|
||||
openid: ceshi.openid,
|
||||
access_token: ceshi.accessToken
|
||||
// serverUrl: serve.value
|
||||
};
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:97", "???/", payload);
|
||||
fetch(urlpost, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
}).then((res) => res.json()).then((data2) => {
|
||||
look.value = data2;
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:109", "!!!!!!!!!!!!!!!!!!!!!!!", data2);
|
||||
}).catch((err) => {
|
||||
common_vendor.index.__f__("error", "at pages/login/callback.vue:112", "请求失败:", err);
|
||||
});
|
||||
getjigou();
|
||||
});
|
||||
};
|
||||
const jigouArray = common_vendor.ref([]);
|
||||
const getjigou = () => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
jigouArray.value = [...data];
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:127", "机构打印", jigouArray.value);
|
||||
});
|
||||
};
|
||||
const secondArray = common_vendor.ref([]);
|
||||
const jigouClick = (element) => {
|
||||
const url = `${element.serverUrl}/h5Api/nuBaseInfo/list`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
secondArray.value = [...data.result];
|
||||
});
|
||||
common_vendor.index.setStorage({
|
||||
key: "serverUrl",
|
||||
data: {
|
||||
url: element.serverUrl
|
||||
}
|
||||
});
|
||||
const urlpost = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo`;
|
||||
const payload = {
|
||||
openId: ceshi.openid,
|
||||
serverUrl: element.serverUrl
|
||||
};
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:149", "???/", payload);
|
||||
fetch(urlpost, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
}).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:160", "???", data);
|
||||
}).catch((err) => {
|
||||
common_vendor.index.__f__("error", "at pages/login/callback.vue:163", "请求失败:", err);
|
||||
});
|
||||
};
|
||||
common_vendor.onLoad(() => {
|
||||
var _a;
|
||||
const href = window.location.href;
|
||||
const queryString = (_a = href.split("?")[1]) == null ? void 0 : _a.split("#")[0];
|
||||
const query = {};
|
||||
if (queryString) {
|
||||
queryString.split("&").forEach((pair) => {
|
||||
const [key, value] = pair.split("=");
|
||||
query[key] = decodeURIComponent(value);
|
||||
});
|
||||
}
|
||||
common_vendor.index.__f__("log", "at pages/login/callback.vue:178", "解析到的 query 参数:", query);
|
||||
if (query.code) {
|
||||
getOpenId(query.code);
|
||||
}
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
a: common_vendor.t(ceshi.name),
|
||||
b: common_vendor.t(ceshi.openid),
|
||||
c: common_vendor.f(jigouArray.value, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.departName),
|
||||
b: common_vendor.o(($event) => jigouClick(item), index),
|
||||
c: `https://www.focusnu.com/nursing-unit/sys/common/static/${item.picUrl}`,
|
||||
d: index
|
||||
};
|
||||
}),
|
||||
d: common_vendor.f(secondArray.value, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.nuName),
|
||||
b: index,
|
||||
c: common_vendor.o(jumpto, index)
|
||||
};
|
||||
})
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-47aa4dce"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/callback.js.map
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "登录",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="callback-container data-v-47aa4dce"> 回调成功{{a}}{{b}} <view wx:for="{{c}}" wx:for-item="item" wx:key="d" class="data-v-47aa4dce"><view class="data-v-47aa4dce" style="font-size:30rpx;margin-top:10rpx;font-weight:700" bindtap="{{item.b}}">{{item.a}}</view><image class="data-v-47aa4dce" style="width:60rpx;height:60rpx" src="{{item.c}}"/></view><view wx:for="{{d}}" wx:for-item="item" wx:key="b" class="data-v-47aa4dce" bindtap="{{item.c}}"><view class="data-v-47aa4dce" style="font-size:30rpx;margin-top:10rpx;font-weight:700">{{item.a}}</view></view></view>
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
.callback-container.data-v-47aa4dce {
|
||||
padding: 24px;
|
||||
}
|
||||
.avatar.data-v-47aa4dce {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 40px;
|
||||
margin-top: 12px;
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
if (!Array) {
|
||||
const _component_transition = common_vendor.resolveComponent("transition");
|
||||
_component_transition();
|
||||
}
|
||||
const _sfc_main = {
|
||||
__name: "code",
|
||||
setup(__props) {
|
||||
const phonenumber = common_vendor.ref("");
|
||||
const captcha = common_vendor.ref(["", "", "", ""]);
|
||||
const focusedIndex = common_vendor.ref(0);
|
||||
const isFadingOut = common_vendor.ref(false);
|
||||
const maskColor = common_vendor.ref("rgba(0, 0, 0, 0.5)");
|
||||
function closeModal() {
|
||||
isFadingOut.value = false;
|
||||
}
|
||||
const handleInput = (index) => {
|
||||
if (captcha.value[index]) {
|
||||
if (index < 3) {
|
||||
focusedIndex.value = index + 1;
|
||||
}
|
||||
}
|
||||
let isFour = true;
|
||||
captcha.value.forEach((number) => {
|
||||
if (!number) {
|
||||
isFour = false;
|
||||
}
|
||||
});
|
||||
common_vendor.nextTick$1(() => {
|
||||
if (isFour) {
|
||||
submitCaptcha();
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleKeydown = (index, event) => {
|
||||
if (event.key === "Backspace" && !captcha.value[index]) {
|
||||
if (index > 0) {
|
||||
focusedIndex.value = index - 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
const submitCaptcha = () => {
|
||||
const code = captcha.value.join("");
|
||||
if (code.length === 4) {
|
||||
common_vendor.index.__f__("log", "at pages/login/code.vue:118", "提交验证码:", code);
|
||||
common_vendor.index.reLaunch({
|
||||
url: `/pages/index/index`
|
||||
});
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/login/code.vue:125", "验证码未输入完整");
|
||||
}
|
||||
};
|
||||
const getcode = () => {
|
||||
const url = `https://www.focusnu.com/nursing-unit/sys/randomImage/${Date.now()}`;
|
||||
fetch(url).then((res) => res.json()).then((data) => {
|
||||
common_vendor.index.__f__("log", "at pages/login/code.vue:152", "code测试", data);
|
||||
});
|
||||
};
|
||||
const countdown = common_vendor.ref(60);
|
||||
let timerId = null;
|
||||
common_vendor.onUnmounted(() => {
|
||||
if (timerId) {
|
||||
clearInterval(timerId);
|
||||
}
|
||||
});
|
||||
common_vendor.onLoad((options) => {
|
||||
phonenumber.value = options.phonenumber;
|
||||
getcode();
|
||||
countdown.value = 60;
|
||||
timerId = setInterval(() => {
|
||||
if (countdown.value > 0) {
|
||||
countdown.value--;
|
||||
} else {
|
||||
clearInterval(timerId);
|
||||
timerId = null;
|
||||
}
|
||||
}, 1e3);
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_assets._imports_0,
|
||||
b: common_assets._imports_1,
|
||||
c: common_assets._imports_2,
|
||||
d: common_vendor.t(phonenumber.value),
|
||||
e: common_vendor.f(captcha.value, (digit, index, i0) => {
|
||||
return {
|
||||
a: index < 3 ? "" : " ",
|
||||
b: common_vendor.o([($event) => captcha.value[index] = $event.detail.value, index, ($event) => handleInput(index), index], index),
|
||||
c: common_vendor.o(($event) => handleKeydown(index, $event), index),
|
||||
d: focusedIndex.value === index,
|
||||
e: captcha.value[index],
|
||||
f: index
|
||||
};
|
||||
}),
|
||||
f: !countdown.value,
|
||||
g: common_vendor.t(countdown.value),
|
||||
h: countdown.value,
|
||||
i: common_vendor.o(($event) => isFadingOut.value = true),
|
||||
j: isFadingOut.value
|
||||
}, isFadingOut.value ? {
|
||||
k: common_vendor.o(closeModal),
|
||||
l: maskColor.value
|
||||
} : {}, {
|
||||
m: common_vendor.p({
|
||||
name: "fade"
|
||||
}),
|
||||
n: isFadingOut.value
|
||||
}, isFadingOut.value ? {} : {}, {
|
||||
o: common_vendor.p({
|
||||
name: "slide-up"
|
||||
})
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-7f72106f"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/code.js.map
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "登录",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="login-container data-v-7f72106f"><view class="title data-v-7f72106f"><image class="title-imge data-v-7f72106f" src="{{a}}"/><view class="title-font data-v-7f72106f"><view class=" data-v-7f72106f">您好,</view><view class=" data-v-7f72106f">欢迎使用护理单元~</view></view></view><image class="photo-imge data-v-7f72106f" src="{{b}}"/><image class="old-imge data-v-7f72106f" src="{{c}}"/><view class="under-container data-v-7f72106f"><view class="under-container-title data-v-7f72106f"><view class="code-title data-v-7f72106f"> 请输入验证码 </view><view class="code-number data-v-7f72106f"> 验证码已发送至{{d}}</view></view><view class="captcha-container data-v-7f72106f"><view class="captcha-box data-v-7f72106f"><view wx:for="{{e}}" wx:for-item="digit" wx:key="f" class="captcha-item data-v-7f72106f"><input class="captcha-input data-v-7f72106f" type="number" maxlength="1" placeholder="{{digit.a}}" bindinput="{{digit.b}}" bindkeydown="{{digit.c}}" focus="{{digit.d}}" value="{{digit.e}}"/></view></view></view><view class="under-view data-v-7f72106f"><view class="right-blue data-v-7f72106f" hidden="{{!f}}"> 重新发送 </view><view class="right-white data-v-7f72106f" hidden="{{!h}}">{{g}}S后重新发送 </view><view class="right-black data-v-7f72106f" bindtap="{{i}}"> 收不到验证码 </view></view></view><transition wx:if="{{m}}" class="data-v-7f72106f" u-s="{{['d']}}" u-i="7f72106f-0" bind:__l="__l" u-p="{{m}}"><view wx:if="{{j}}" class="overlay data-v-7f72106f" bindtap="{{k}}" style="{{'background-color:' + l}}"/></transition><transition wx:if="{{o}}" class="data-v-7f72106f" u-s="{{['d']}}" u-i="7f72106f-1" bind:__l="__l" u-p="{{o}}"><view wx:if="{{n}}" class="modal data-v-7f72106f"><view class="modal-title data-v-7f72106f">收不到验证码</view><view class="model-p data-v-7f72106f"><view class="text-view data-v-7f72106f" style="font-weight:600">手机号可正常使用:</view><view class="text-view data-v-7f72106f">1 是否输错手机号</view><view class="text-view data-v-7f72106f">2 手机是否设置短信拦截/欠费/信号不好</view><view class="text-view data-v-7f72106f">3 手机内存是否满了</view><view class="text-view data-v-7f72106f">4 手机卡是否为物联卡,而非SIM卡</view></view></view></transition></view>
|
|
@ -0,0 +1,270 @@
|
|||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.login-container.data-v-7f72106f {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: #eff1fc;
|
||||
position: relative;
|
||||
}
|
||||
.login-container .title.data-v-7f72106f {
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.login-container .title .title-imge.data-v-7f72106f {
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
.login-container .title .title-font.data-v-7f72106f {
|
||||
font-size: 35rpx;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.login-container .photo-imge.data-v-7f72106f {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
.login-container .old-imge.data-v-7f72106f {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
.login-container .under-container.data-v-7f72106f {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #5A607F;
|
||||
}
|
||||
.login-container .under-container .radio-circle.data-v-7f72106f {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
.login-container .under-container .radio-circle-target.data-v-7f72106f {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
.login-container .under-container .radio-circle-target.data-v-7f72106f::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.under-container-title.data-v-7f72106f {
|
||||
margin-top: 50rpx;
|
||||
margin-bottom: 20rpx;
|
||||
font-size: 25rpx;
|
||||
font-weight: 500;
|
||||
width: 100%;
|
||||
}
|
||||
.under-container-title .code-title.data-v-7f72106f {
|
||||
margin-left: 80rpx;
|
||||
font-size: 35rpx;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.under-container-title .code-number.data-v-7f72106f {
|
||||
margin-left: 80rpx;
|
||||
font-size: 28rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.captcha-container.data-v-7f72106f {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.captcha-box.data-v-7f72106f {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.captcha-item.data-v-7f72106f {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.captcha-input.data-v-7f72106f {
|
||||
width: 110rpx;
|
||||
height: 110rpx;
|
||||
border: 3rpx solid #C0C5D9;
|
||||
border-radius: 30rpx;
|
||||
font-size: 50rpx;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
margin-right: 40rpx;
|
||||
outline: none;
|
||||
}
|
||||
.captcha-input.data-v-7f72106f:focus {
|
||||
border-color: #00C9FF;
|
||||
}
|
||||
.right-blue.data-v-7f72106f {
|
||||
color: #0083FF;
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.right-white.data-v-7f72106f {
|
||||
color: #c2c6d3;
|
||||
margin-left: 60rpx;
|
||||
}
|
||||
.right-black.data-v-7f72106f {
|
||||
margin-right: 80rpx;
|
||||
color: black;
|
||||
}
|
||||
.under-view.data-v-7f72106f {
|
||||
width: 100%;
|
||||
margin-top: 10rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
/* 遮罩 */
|
||||
.overlay.data-v-7f72106f {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 998;
|
||||
}
|
||||
|
||||
/* 弹窗 */
|
||||
.modal.data-v-7f72106f {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
z-index: 999;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.modal .modal-title.data-v-7f72106f {
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
margin: 50rpx 0;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.modal .model-p.data-v-7f72106f {
|
||||
padding: 0 50rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.modal .model-down.data-v-7f72106f {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 0 50rpx;
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.modal .model-down .model-white.data-v-7f72106f {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
border: 5rpx solid #008dff;
|
||||
color: #008dff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.modal .model-down .model-blue.data-v-7f72106f {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* 动画:遮罩淡入淡出 */
|
||||
.fade-enter-active.data-v-7f72106f,
|
||||
.fade-leave-active.data-v-7f72106f {
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
.fade-enter-from.data-v-7f72106f,
|
||||
.fade-leave-to.data-v-7f72106f {
|
||||
opacity: 0;
|
||||
}
|
||||
.fade-enter-to.data-v-7f72106f,
|
||||
.fade-leave-from.data-v-7f72106f {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 动画:弹窗上滑 */
|
||||
.slide-up-enter-active.data-v-7f72106f,
|
||||
.slide-up-leave-active.data-v-7f72106f {
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
.slide-up-enter-from.data-v-7f72106f,
|
||||
.slide-up-leave-to.data-v-7f72106f {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
.slide-up-enter-to.data-v-7f72106f,
|
||||
.slide-up-leave-from.data-v-7f72106f {
|
||||
transform: translateY(0);
|
||||
}
|
||||
.text-view.data-v-7f72106f {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const compontent_useWeChatAuth = require("../../compontent/useWeChatAuth.js");
|
||||
if (!Array) {
|
||||
const _component_transition = common_vendor.resolveComponent("transition");
|
||||
_component_transition();
|
||||
}
|
||||
const _sfc_main = {
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const isTarget = common_vendor.ref(false);
|
||||
const isFadingOut = common_vendor.ref(false);
|
||||
compontent_useWeChatAuth.useWeChatAuth();
|
||||
const maskColor = common_vendor.ref("rgba(0, 0, 0, 0.5)");
|
||||
function closeModal() {
|
||||
isFadingOut.value = false;
|
||||
}
|
||||
const loginIt = () => {
|
||||
if (!isTarget.value) {
|
||||
isFadingOut.value = true;
|
||||
} else {
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/login/phonebumber"
|
||||
});
|
||||
}
|
||||
};
|
||||
const jumpToPro = () => {
|
||||
common_vendor.index.__f__("log", "at pages/login/index.vue:87", "????");
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/login/protocol"
|
||||
});
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_assets._imports_0,
|
||||
b: common_assets._imports_1,
|
||||
c: common_assets._imports_2,
|
||||
d: common_vendor.n(isTarget.value ? "radio-circle-target" : "radio-circle"),
|
||||
e: common_vendor.o(($event) => isTarget.value = !isTarget.value),
|
||||
f: common_vendor.o(($event) => isTarget.value = !isTarget.value),
|
||||
g: common_vendor.o(jumpToPro),
|
||||
h: common_vendor.o(($event) => isTarget.value = !isTarget.value),
|
||||
i: common_vendor.o(loginIt),
|
||||
j: isFadingOut.value
|
||||
}, isFadingOut.value ? {
|
||||
k: common_vendor.o(closeModal),
|
||||
l: maskColor.value
|
||||
} : {}, {
|
||||
m: common_vendor.p({
|
||||
name: "fade"
|
||||
}),
|
||||
n: isFadingOut.value
|
||||
}, isFadingOut.value ? {
|
||||
o: common_vendor.o(jumpToPro),
|
||||
p: common_vendor.o(closeModal),
|
||||
q: common_vendor.o(($event) => {
|
||||
closeModal();
|
||||
isTarget.value = true;
|
||||
})
|
||||
} : {}, {
|
||||
r: common_vendor.p({
|
||||
name: "slide-up"
|
||||
})
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d08ef7d4"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/index.js.map
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"navigationBarTitleText": "登录",
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="login-container data-v-d08ef7d4"><view class="title data-v-d08ef7d4"><image class="title-imge data-v-d08ef7d4" src="{{a}}"/><view class="title-font data-v-d08ef7d4"><view class=" data-v-d08ef7d4">您好,</view><view class=" data-v-d08ef7d4">欢迎使用护理单元~</view></view></view><image class="photo-imge data-v-d08ef7d4" src="{{b}}"/><image class="old-imge data-v-d08ef7d4" src="{{c}}"/><view class="under-container data-v-d08ef7d4"><view class="under-container-title data-v-d08ef7d4"><view class="{{['data-v-d08ef7d4', d]}}" bindtap="{{e}}"></view><view style="margin-left:17rpx" class="radio-circle-font data-v-d08ef7d4" bindtap="{{f}}">同意</view><view class="radio-circle-blue data-v-d08ef7d4" bindtap="{{g}}"> 《护理单元使用条款》 </view><view class="radio-circle-font data-v-d08ef7d4" bindtap="{{h}}">并授权NU获取本机号码</view></view><view class="button-blue data-v-d08ef7d4" bindtap="{{i}}"> 一键登录 </view></view><transition wx:if="{{m}}" class="data-v-d08ef7d4" u-s="{{['d']}}" u-i="d08ef7d4-0" bind:__l="__l" u-p="{{m}}"><view wx:if="{{j}}" class="overlay data-v-d08ef7d4" bindtap="{{k}}" style="{{'background-color:' + l}}"/></transition><transition wx:if="{{r}}" class="data-v-d08ef7d4" u-s="{{['d']}}" u-i="d08ef7d4-1" bind:__l="__l" u-p="{{r}}"><view wx:if="{{n}}" class="modal data-v-d08ef7d4"><view class="modal-title data-v-d08ef7d4">服务协议及隐私保护</view><view class="model-p data-v-d08ef7d4"><text class="data-v-d08ef7d4"> 为了更好地保障您的合法权益,请阅读并同意以下协议</text><text class="data-v-d08ef7d4" style="color:rgb(0,141,255)" bindtap="{{o}}">《护理单元使用条款》</text><text class="data-v-d08ef7d4">,同意后将自动登录。</text></view><view class="model-down data-v-d08ef7d4"><view class="model-white data-v-d08ef7d4" bindtap="{{p}}"> 不同意 </view><view class="model-blue data-v-d08ef7d4" bindtap="{{q}}"> 同意 </view></view></view></transition></view>
|
|
@ -0,0 +1,227 @@
|
|||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.login-container.data-v-d08ef7d4 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
background-color: #eff1fc;
|
||||
position: relative;
|
||||
}
|
||||
.login-container .title.data-v-d08ef7d4 {
|
||||
margin-top: 70rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.login-container .title .title-imge.data-v-d08ef7d4 {
|
||||
width: 100rpx;
|
||||
height: 105rpx;
|
||||
margin-left: 100rpx;
|
||||
}
|
||||
.login-container .title .title-font.data-v-d08ef7d4 {
|
||||
font-size: 35rpx;
|
||||
font-weight: 600;
|
||||
margin-left: 105rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.login-container .photo-imge.data-v-d08ef7d4 {
|
||||
position: absolute;
|
||||
top: 120rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 1100rpx;
|
||||
}
|
||||
.login-container .old-imge.data-v-d08ef7d4 {
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 400rpx;
|
||||
width: 400rpx;
|
||||
height: 400rpx;
|
||||
}
|
||||
.login-container .under-container.data-v-d08ef7d4 {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 45vh;
|
||||
background-color: #fff;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.login-container .under-container .radio-circle.data-v-d08ef7d4 {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
.login-container .under-container .radio-circle-target.data-v-d08ef7d4 {
|
||||
position: relative;
|
||||
margin-top: 2rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
border: 2rpx solid #C0C5D9;
|
||||
background-color: transparent;
|
||||
}
|
||||
.login-container .under-container .radio-circle-target.data-v-d08ef7d4::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-color: #00C9FF;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.under-container-title.data-v-d08ef7d4 {
|
||||
display: flex;
|
||||
margin-top: 60rpx;
|
||||
margin-bottom: 40rpx;
|
||||
align-items: center;
|
||||
font-size: 25rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
.under-container-title .radio-circle-blue.data-v-d08ef7d4 {
|
||||
color: #0083FF;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
.under-container-title .radio-circle-font.data-v-d08ef7d4 {
|
||||
color: #5A607F;
|
||||
margin-top: 3rpx;
|
||||
}
|
||||
.button-blue.data-v-d08ef7d4 {
|
||||
width: 80%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100rpx;
|
||||
border-radius: 43rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 33rpx;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
/* 遮罩 */
|
||||
.overlay.data-v-d08ef7d4 {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 998;
|
||||
}
|
||||
|
||||
/* 弹窗 */
|
||||
.modal.data-v-d08ef7d4 {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
z-index: 999;
|
||||
border-top-left-radius: 50rpx;
|
||||
border-top-right-radius: 50rpx;
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.modal .modal-title.data-v-d08ef7d4 {
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
margin: 50rpx 0;
|
||||
}
|
||||
.modal .model-p.data-v-d08ef7d4 {
|
||||
padding: 0 50rpx;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.modal .model-down.data-v-d08ef7d4 {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 0 50rpx;
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.modal .model-down .model-white.data-v-d08ef7d4 {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
border: 5rpx solid #008dff;
|
||||
color: #008dff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.modal .model-down .model-blue.data-v-d08ef7d4 {
|
||||
border-radius: 50rpx;
|
||||
width: 300rpx;
|
||||
height: 95rpx;
|
||||
background: linear-gradient(to right, #00C9FF, #0076FF);
|
||||
color: #fff;
|
||||
font-size: 35rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* 动画:遮罩淡入淡出 */
|
||||
.fade-enter-active.data-v-d08ef7d4,
|
||||
.fade-leave-active.data-v-d08ef7d4 {
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
.fade-enter-from.data-v-d08ef7d4,
|
||||
.fade-leave-to.data-v-d08ef7d4 {
|
||||
opacity: 0;
|
||||
}
|
||||
.fade-enter-to.data-v-d08ef7d4,
|
||||
.fade-leave-from.data-v-d08ef7d4 {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 动画:弹窗上滑 */
|
||||
.slide-up-enter-active.data-v-d08ef7d4,
|
||||
.slide-up-leave-active.data-v-d08ef7d4 {
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
.slide-up-enter-from.data-v-d08ef7d4,
|
||||
.slide-up-leave-to.data-v-d08ef7d4 {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
.slide-up-enter-to.data-v-d08ef7d4,
|
||||
.slide-up-leave-from.data-v-d08ef7d4 {
|
||||
transform: translateY(0);
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
if (!Math) {
|
||||
huakuai();
|
||||
}
|
||||
const huakuai = () => "../../compontent/public/huakuai.js";
|
||||
const _sfc_main = {
|
||||
__name: "phonebumber",
|
||||
setup(__props) {
|
||||
const huakuaiOpen = common_vendor.ref(false);
|
||||
const jumpto = () => {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/login/code?phonenumber=${phonenumber.value}`
|
||||
});
|
||||
};
|
||||
function is11DigitNumber(value) {
|
||||
return /^\d{11}$/.test(value.toString());
|
||||
}
|
||||
const phonenumber = common_vendor.ref("");
|
||||
const canClick = common_vendor.ref(false);
|
||||
const isRight = (res) => {
|
||||
common_vendor.index.__f__("log", "at pages/login/phonebumber.vue:60", "????", res.detail.value);
|
||||
if (is11DigitNumber(res.detail.value)) {
|
||||
phonenumber.value = res.detail.value;
|
||||
canClick.value = true;
|
||||
} else {
|
||||
canClick.value = false;
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_assets._imports_0,
|
||||
b: common_assets._imports_1,
|
||||
c: common_assets._imports_2,
|
||||
d: common_vendor.o(isRight),
|
||||
e: common_vendor.o(($event) => huakuaiOpen.value = true),
|
||||
f: canClick.value,
|
||||
g: common_vendor.o(jumpto),
|
||||
h: !canClick.value,
|
||||
i: huakuaiOpen.value
|
||||
}, huakuaiOpen.value ? {
|
||||
j: common_vendor.o(() => {
|
||||
}),
|
||||
k: common_vendor.o(($event) => huakuaiOpen.value = false)
|
||||
} : {});
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-94511ff7"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/phonebumber.js.map
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"navigationBarTitleText": "登录",
|
||||
"usingComponents": {
|
||||
"huakuai": "../../compontent/public/huakuai"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="login-container data-v-94511ff7"><view class="title data-v-94511ff7"><image class="title-imge data-v-94511ff7" src="{{a}}"/><view class="title-font data-v-94511ff7"><view class=" data-v-94511ff7">您好,</view><view class=" data-v-94511ff7">欢迎使用护理单元~</view></view></view><image class="photo-imge data-v-94511ff7" src="{{b}}"/><image class="old-imge data-v-94511ff7" src="{{c}}"/><view class="under-container data-v-94511ff7"><view class="under-container-title data-v-94511ff7"><view class="under-container-input data-v-94511ff7"><view class="input-left data-v-94511ff7">+86</view><input class="data-v-94511ff7" type="number" style="width:600rpx;font-size:33rpx" maxlength="11" placeholder="请输入绑定手机号" bindinput="{{d}}"/></view></view><view class="button-blue data-v-94511ff7" bindtap="{{e}}"> 滑块校验 </view><view class="button-blue data-v-94511ff7" hidden="{{!f}}" bindtap="{{g}}"> 获得验证码 </view><view class="button-gray data-v-94511ff7" hidden="{{!h}}"> 获得验证码 </view></view><view wx:if="{{i}}" class="bg-mask data-v-94511ff7" bindtap="{{k}}"><huakuai class="data-v-94511ff7" catchclick="{{j}}" u-i="94511ff7-0" bind:__l="__l"/></view></view>
|