Compare commits

...

2 Commits

Author SHA1 Message Date
Teng e4dbba6a1d 6.11 2025-06-11 17:33:34 +08:00
Teng 68b362a313 2025.6.9 2025-06-09 17:33:50 +08:00
188 changed files with 5369 additions and 1022 deletions

63
api/main.js Normal file
View File

@ -0,0 +1,63 @@
// src/composables/useWeChatAuth.js
import { ref } from 'vue';
import request from '@/request/index.js';
//解决跨域
export function proxy(res){
return request({
url: `/api/proxy/get?apiUrl=${res.apiUrl}&params=${res.other}`,
method: 'get',
})
}
export const jsonp = function (url, data) {
return new Promise((resolve, reject) => {
// 1.初始化url
let dataString = url.indexOf('?') === -1 ? '?' : '&'
let callbackName = `jsonpCB_${Date.now()}`;
url += `${dataString}`
if (data) {
// 2.有请求参数依次添加到url
for (let k in data) {
url += `&${k}=${data[k]}`
}
}
let scriptNode = document.createElement('script');
scriptNode.src = url;
// 3. callback
window[callbackName] = (result) => {
result ? resolve(result) : reject('没有返回数据');
delete window[callbackName];
document.body.removeChild(scriptNode);
}
// 4. 异常情况
scriptNode.addEventListener('error', () => {
reject('接口返回数据失败');
delete window[callbackName];
document.body.removeChild(scriptNode);
}, false)
// 5. 开始请求
document.body.appendChild(scriptNode)
})
}
//验证码是否正确
// export function checkPhoneCode(data){
// return request({
// url: `/sys/checkPhoneCode`,
// method: 'post',
// data,
// })
// }
// //不知道干啥的
// export function getList(){
// return request({
// url: `/NuBizAdvisoryInfo/nuBizAdvisoryInfo/list`,
// method: 'get',
// })
// }

View File

@ -0,0 +1,248 @@
<template>
<view
class="carousel"
@touchstart="onTouchStart"
@touchmove.prevent="onTouchMove"
@touchend="onTouchEnd"
>
<view
v-for="(img, i) in visibleImages"
:key="img"
class="carousel-item"
:style="itemStyle(i)"
>
<image :src="img" mode="aspectFill" class="carousel-image" />
<view class="font" :style="i==1?{fontWeight:600}:{}" >{{img.includes('0') ? imageName[0] : (img.includes('1') ? imageName[1] : imageName[2])}} </view>
</view>
<view
class="carousel-item"
:style="leftCopyStyle"
key="left-copy"
>
<image :src="leftCopyImage" mode="aspectFill" class="carousel-image" />
</view>
<view
class="carousel-item"
:style="rightCopyStyle"
key="right-copy"
>
<image :src="rightCopyImage" mode="aspectFill" class="carousel-image" />
</view>
</view>
</template>
<script setup>
import { ref, computed,watch } from 'vue';
const emit = defineEmits(['updateCenterIndex'])
const images = ref([
'/static/index/three/0.png',
'/static/index/three/1.png',
'/static/index/three/2.png',
])
const imageName = ref([
"长者入住",
"机构加盟",
"员工入驻",
])
const len = images.value.length
const startX = ref(0)
const position = ref(0)
const isDragging = ref(false)
const enableTransition = ref(false)
const dragDirection = ref(0)
const imageSpacing = 220
const centerIndex = computed(() => {
return mod(Math.floor(position.value), len)
})
const leftIndex = computed(() => mod(centerIndex.value - 1, len))
const rightIndex = computed(() => mod(centerIndex.value + 1, len))
const visibleImages = computed(() => [
images.value[leftIndex.value],
images.value[centerIndex.value],
images.value[rightIndex.value],
])
const leftCopyImage = computed(() => images.value[leftIndex.value])
const rightCopyImage = computed(() => images.value[rightIndex.value])
function mod(n, m) {
return ((n % m) + m) % m
}
function onTouchStart(e) {
if (enableTransition.value) enableTransition.value = false
isDragging.value = true
startX.value = e.touches[0].clientX
dragDirection.value = 0
}
function onTouchMove(e) {
if (!isDragging.value) return
const currentX = e.touches[0].clientX
const delta = currentX - startX.value
dragDirection.value = delta > 0 ? 1 : -1
position.value -= delta / imageSpacing
startX.value = currentX
}
function onTouchEnd() {
if (!isDragging.value) return
isDragging.value = false
enableTransition.value = true
position.value = Math.round(position.value)
}
function itemStyle(i) {
const floorPos = Math.floor(position.value)
const offset = position.value - floorPos // [-1, 1)
const absOff = Math.abs(offset) // 0 1
//
const baseX = (i - 1) * imageSpacing
const translateX = baseX - offset * imageSpacing
// zIndex
let opacity = 0.5
let zIndex = 1
if (i === 1) {
opacity = 1 - 0.5 * absOff
zIndex = 3
} else if ((i === 2 && offset >= 0) || (i === 0 && offset < 0)) {
opacity = 0.5 + 0.5 * absOff
zIndex = 2
}
// absOff scale
let scale = 0.8
if (i === 1) {
// offset 0 1.1offset 1 0.8
scale = 1.1 - 0.3 * absOff
} else if ((i === 2 && offset >= 0) || (i === 0 && offset < 0)) {
// offset 0 0.8offset 1 1.1
scale = 0.8 + 0.3 * absOff
}
return {
transform: `translate(-50%, -50%) translateX(${translateX}rpx) scale(${scale})`,
opacity,
zIndex,
transition: enableTransition.value
? 'transform 0.3s ease, opacity 0.3s ease'
: 'none',
}
}
const leftCopyStyle = computed(() => {
const show = dragDirection.value === 1
const floorPos = Math.floor(position.value)
const offset = position.value - floorPos
const translateX = 2.2 * imageSpacing - offset * imageSpacing
let scale = 0.8
let opacity = 0.5
let zIndex = 2
if (offset < 0) {
const posOffset = -offset
scale = 0.8 + 0.5 * posOffset
opacity = 0.5 + 0.5 * posOffset
}
return {
transform: `translate(-50%, -50%) translateX(${translateX}rpx) scale(${scale})`,
opacity,
zIndex,
pointerEvents: 'none',
position: 'absolute',
top: '40%',
left: '50%',
opacity: show ? 0.5 : 0,
willChange: 'transform, opacity',
transition: enableTransition.value
? 'transform 0.3s ease, opacity 0.3s ease'
: 'none',
}
})
const rightCopyStyle = computed(() => {
const show = dragDirection.value === 1
const floorPos = Math.floor(position.value)
const offset = position.value - floorPos
const translateX = -2.2 * imageSpacing - offset * imageSpacing
let scale = 0.8
let opacity = 0.5
let zIndex = 2
if (offset >= 0) {
scale = 0.8 + 0.5 * offset
opacity = 0.5 + 0.5 * offset
}
return {
transform: `translate(-50%, -50%) translateX(${translateX}rpx) scale(${scale})`,
opacity,
zIndex,
pointerEvents: 'none',
position: 'absolute',
top: '40%',
left: '50%',
opacity: show ? 0.5 : 0,
willChange: 'transform, opacity',
transition: enableTransition.value
? 'transform 0.3s ease, opacity 0.3s ease'
: 'none',
}
})
// 3. centerIndex emit
watch(centerIndex, (newIdx) => {
// console.log("???",newIdx)
emit('updateCenterIndex', newIdx)
})
</script>
<style scoped>
.carousel {
position: relative;
width: 90%;
height: 650rpx;
display: flex;
justify-content: center;
overflow: hidden;
}
.carousel-item {
position: absolute;
width: 300rpx;
height: 450rpx;
top: 40%;
left: 50%;
margin: 0;
backface-visibility: hidden;
will-change: transform, opacity;
}
.carousel-image {
width: 100%;
height: 100%;
border-radius: 12rpx;
user-select: none;
touch-action: pan-y;
pointer-events: none;
}
.font{
width: 100%;
display: flex;
justify-content: center;
margin-top: 20rpx;
}
</style>

View File

@ -9,6 +9,11 @@
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<script
src="https://map.qq.com/api/js?v=2.exp&key=LOLBZ-Z2PKW-JJ6RO-3Y7Z7-BSKWT-DLFNC"
crossorigin="anonymous">
</script>
<title></title>
<!--preload-links-->
<!--app-context-->

View File

@ -70,7 +70,7 @@
},
"vueVersion" : "3",
"h5" : {
"title" : "测试",
"title" : "登录中",
"publicPath" : "/thd/", // /thd/
"router" : {
"base" : "/wechat/thd/" // /thd/

View File

@ -12,6 +12,18 @@
"navigationBarTitleText": "登录"
}
},
{
"path": "pages/login/threeselectone",
"style": {
"navigationBarTitleText": "选择角色"
}
},
{
"path": "pages/login/workjoin",
"style": {
"navigationBarTitleText": "员工入驻"
}
},
{
"path": "pages/login/code",
"style": {
@ -60,12 +72,36 @@
"navigationBarTitleText": "选择护理单元"
}
},
{
"path": "pages/addjigou/where",
"style": {
"navigationBarTitleText": "企业实名认证"
}
},
{
"path": "pages/addjigou/name",
"style": {
"navigationBarTitleText": "企业实名认证"
}
},
{
"path": "pages/addjigou/card",
"style": {
"navigationBarTitleText": "企业实名认证"
}
},
{
"path": "pages/pay/index",
"style": {
"navigationBarTitleText": "支付"
}
},
{
"path": "pages/map/index",
"style": {
"navigationBarTitleText": "选择位置"
}
},
{
"path": "pages/camera/CustomCamera",
"style": {

View File

@ -0,0 +1,20 @@
// src/composables/useWeChatAuth.js
import { ref } from 'vue';
import request from '@/request/index.js';
//新增/编辑机构加盟申请信息
export function changemessage(data){
return request({
url: `/api/orgApplyInfo/save`,
method: 'post',
data,
})
}
//根据手机号获取机构加盟申请信息
export function getMessageList(tel){
return request({
url: `/api/orgApplyInfo/queryAuditInfo?tel=${tel}`,
method: 'get',
})
}

399
pages/addjigou/card.vue Normal file
View File

@ -0,0 +1,399 @@
<template>
<div class="container">
<u-modal v-model="show" :content="content"></u-modal>
<view class="white-content">
<view class="content-title">
<view class="content-weight">营业执照上传</view>
<image class="content-img" src="@/static/index/bian.png" />
</view>
<view class="white-photo" @click="getMessage">
<view class="photo-left">
<view class="photo-weight">营业执照</view>
<view class="photo-font">请上传营业执照</view>
</view>
<view style="position: relative;">
<image class="photo" :src="headImge ? headImge : `/static/index/zhizhao.png`" />
<image v-show="!headImge"
style="position: absolute;top: 50%;left: 50%;width: 70rpx;height: 60rpx;transform: translate(-50%,-50%);"
src="@/static/index/takephoto.png" />
</view>
</view>
<view class="white-message">
<view class="message-title">
<view class="shu"></view>
<view class="message-weight">
确认企业信息
</view>
</view>
<view style="margin-bottom: 20rpx;">
<view v-for="(item,index) in nameArray" :key="index" class="one"
@click="openLook(textArray[index])">
<view class="one-left">{{item}}</view>
<!-- <view class="one-right">{{textArray[index] ? textArray[index] : "自动获取" }}</view> -->
<view class="one-right">{{textArray[index] ? textArray[index] : "自动获取" }}</view>
</view>
</view>
</view>
</view>
<view class="gray-font">
<view class="">注意事项:</view>
<view class="gray-text">
1. 运用企业个体工商户政府事业单位学校组织等账号归属企业
</view>
<view class="gray-text">
2.一个企业信息主体默认可认证1个账号
</view>
<view class="gray-text">
3.所有上传信息均会被妥善保管不会用于其他商业用途或传输给其他第三方
</view>
</view>
<view style="display: flex;width: 100%;">
<view class="finish-button" @click="goBack">
上一步
</view>
<view class="finish-button" @click="next">
下一步
</view>
</view>
</div>
</template>
<script setup>
import {
ref,
reactive
} from 'vue'
import {
onLoad
} from '@dcloudio/uni-app';
import {
base_url
} from '@/request/index.js'
import {
changemessage
} from './api/addjigou.js'
const show = ref(false);
const content = ref("");
const nameArray = ["企业名称", "注册地址", "信用代码", "法人"];
const textArray = reactive(["", "", "", ""]);
//
const tempImagePath = ref('')
//
function getMessage() {
uni.chooseImage({
count: 1,
sourceType: ['camera'],
success: chooseRes => {
tempImagePath.value = chooseRes.tempFilePaths[0]
//
uploadImage(tempImagePath.value)
},
fail: err => {
console.error('拍照失败:', err)
}
})
}
const headImge = ref("");
const backImge = ref("");
//
function uploadImage(filePath) {
uni.showLoading()
uni.uploadFile({
url: `${base_url}/api/ocr/businessLicense`, // POST
filePath,
name: 'file', //
header: {
'X-Access-Token': uni.getStorageSync('token') || '',
},
formData: {},
success: uploadRes => {
if (!JSON.parse(uploadRes.data).success) {
uni.showToast({
title: '识别失败',
icon: 'error'
})
uni.hideLoading()
return
}
console.log("营业执照", JSON.parse(JSON.parse(uploadRes.data).result.data).data)
// if (JSON.parse(JSON.parse(uploadRes.data).result.data).data.face) {
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data;
textArray[0] = father.companyName;
textArray[1] = father.businessAddress;
textArray[2] = father.creditCode;
textArray[3] = father.legalPerson;
headImge.value = filePath;
savephoto(filePath);
uni.hideLoading()
// textArray[4] = father.birthDate;
// textArray[5] = father.address;
// uni.showToast({
// title: '',
// })
//
// uni.hideLoading()
// } else {
// let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data.back.data;
// textArray[6] = father.issueAuthority;
// textArray[7] = father.validPeriod;
// uni.showToast({
// title: '',
// })
// backImge.value = filePath;
// uni.hideLoading()
// }
},
fail: err => {
uni.showToast({
title: '上传出错',
icon: 'error'
})
uni.hideLoading()
}
})
}
const fontphoto = ref("");
const savephoto = (filePath) => {
uni.uploadFile({
url: `${base_url}/sys/common/upload`, // POST
filePath,
name: 'file', //
header: {
'X-Access-Token': uni.getStorageSync('token') || '',
},
formData: {
biz: `temp`
},
success: uploadRes => {
fontphoto.value = JSON.parse(uploadRes.data).message
},
fail: err => {
uni.showToast({
title: '上传出错',
icon: 'error'
})
uni.hideLoading()
}
})
}
const openLook = (res) => {
if (res) {
content.value = res;
show.value = true
}
}
const next = () => {
const allNonEmpty = textArray.every(item => {
// item.trim() !== ''
return item !== '';
});
if (allNonEmpty) {
let pushMessage = {
id: uni.getStorageSync('specicalid') || "",
tel: uni.getStorageSync('tel'),
comName: textArray[0],
comRegisterAddress: textArray[1],
comCreditCode: textArray[2],
comLegalPerson: textArray[3],
comBusinessLicense:fontphoto.value,
}
// console.log("????",pushMessage)
changemessage(pushMessage).then(res => {
if(res.success){
if(res.message==`保存成功!`){
uni.navigateTo({
url: "/pages/addjigou/where"
});
}else{
uni.navigateTo({
url: "/pages/addjigou/where"
});
}
}else{
uni.showToast({
title: res.message,
icon: 'error'
})
}
})
} else {
uni.showToast({
title: '请完善信息',
icon: 'error'
})
}
}
const goBack = () => {
uni.navigateBack()
}
</script>
<style lang="scss" scoped>
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
background-color: rgb(239, 241, 252);
position: relative;
box-shadow: 2rpx 2rpx 4rpx rgba(0, 0, 0, 0.1);
.white-content {
width: 90%;
margin-left: 5%;
margin-top: 30rpx;
// height: 1200rpx;
border-radius: 35rpx;
background-color: rgb(245, 251, 254);
.content-title {
display: flex;
// align-items: center;
height: 100rpx;
position: relative;
.content-weight {
// font-size: 35rpx;
font-weight: 600;
margin-left: 40rpx;
margin-top: 20rpx;
}
.content-img {
position: absolute;
right: 0;
top: 0;
width: 400rpx;
height: 100%;
}
}
}
.white-photo {
width: 90%;
margin-left: 5%;
// margin-top: 30rpx;
height: 300rpx;
border-radius: 35rpx;
background-color: #fff;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
justify-content: space-around;
align-items: center;
display: flex;
.photo {
width: 300rpx;
height: 200rpx;
}
}
.white-message {
width: 90%;
margin-left: 5%;
margin-top: 30rpx;
margin-bottom: 30rpx;
// height: 800rpx;
border-radius: 35rpx;
background-color: #fff;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
justify-content: space-around;
// align-items: center;
display: flex;
flex-direction: column;
.message-title {
width: 100%;
height: 100rpx;
align-items: center;
display: flex;
.shu {
width: 10rpx;
height: 30rpx;
background-color: #0097FF;
border-radius: 10rpx;
margin: 0 20rpx 0 30rpx;
}
.message-weight {
font-size: 30rpx;
// font-weight: 600;
}
}
.one {
width: 90%;
margin-left: 5%;
border-bottom: 1rpx solid #d7d7d7;
height: 90rpx;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10rpx;
.one-left {
margin-left: 10rpx;
}
.one-right {
margin-right: 10rpx;
color: #999999;
overflow: hidden;
/* 隐藏超出内容 */
white-space: nowrap;
/* 不换行 */
text-overflow: ellipsis;
max-width: 300rpx;
}
}
}
}
.photo-left {
.photo-weight {
font-size: 26rpx;
font-weight: 600;
}
.photo-font {
font-size: 23rpx;
margin-top: 10rpx;
}
}
.gray-font {
padding: 30rpx 60rpx;
color: #999999;
}
.finish-button {
display: flex;
justify-content: center;
align-items: center;
width: 45%;
height: 100rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
color: #fff;
background: linear-gradient(to right, #00C9FF, #0076FF);
border-radius: 50rpx;
font-size: 35rpx;
}
.gray-text {
margin: 10rpx 0;
}
</style>

573
pages/addjigou/name.vue Normal file
View File

@ -0,0 +1,573 @@
<template>
<div class="container">
<u-modal v-model="show" :content="content"></u-modal>
<view class="title-back">
<view class="left-father" @click="goBack">
<image class="back-img" src="@/static/index/left.png" />
<view style="font-size: 30rpx;">返回</view>
</view>
<!-- <view :class="!statesTarget? `rightStautes`:statesTarget==1? `rightStautesred`:`rightStautesblue`" @click="shenhe">
{{ states[statesTarget] }}
</view> -->
</view>
<view class="white-content">
<view class="content-title">
<view class="content-weight">身份证上传</view>
<image class="content-img" src="@/static/index/bian.png" />
</view>
<view class="white-photo" @click="getMessage">
<view class="photo-left">
<view class="photo-weight">人像面</view>
<view class="photo-font">请上传身份证人像面</view>
</view>
<view style="position: relative;">
<image class="photo" :src="headImge ? headImge : `/static/index/IDcard.png`" />
<image v-show="!headImge"
style="position: absolute;top: 50%;left: 50%;width: 70rpx;height: 60rpx;transform: translate(-50%,-50%);"
src="@/static/index/takephoto.png" />
</view>
</view>
<view class="white-photo" style="margin-top: 30rpx;" @click="getMessage">
<view class="photo-left">
<view class="photo-weight">国徽面</view>
<view class="photo-font">请上传身份证国徽面</view>
</view>
<view style="position: relative;">
<image class="photo" :src="backImge ? backImge : `/static/index/backIDcard.png`" />
<image v-show="!backImge"
style="position: absolute;top: 50%;left: 50%;width: 70rpx;height: 60rpx;transform: translate(-50%,-50%);"
src="@/static/index/takephoto.png" />
</view>
</view>
<view class="white-message">
<view class="message-title">
<view class="shu"></view>
<view class="message-weight">
确认身份证信息
</view>
</view>
<view style="margin-bottom: 20rpx;">
<view v-for="(item,index) in nameArray" :key="index" class="one"
@click="openLook(textArray[index])">
<view class="one-left">{{item}}</view>
<!-- <view class="one-right">{{textArray[index] ? textArray[index] : "自动获取" }}</view> -->
<view class="one-right">{{textArray[index] ? textArray[index] : "自动获取" }}</view>
</view>
</view>
</view>
</view>
<view class="gray-font">
<view class="">注意事项:</view>
<view style="margin-top: 30rpx;">
同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方</view>
</view>
<view style="display: flex;width: 100%;">
<!-- <view class="finish-button" @click="goBack">
上一步
</view> -->
<view class="finish-button" @click="next">
下一步
</view>
</view>
</div>
</template>
<script setup>
import {
ref,
reactive
} from 'vue'
import {
onLoad
} from '@dcloudio/uni-app';
import {
base_url
} from '@/request/index.js';
import {
changemessage
} from './api/addjigou.js'
const show = ref(false);
const content = ref("");
const nameArray = ["姓名", "性别", "身份证号码", "民族", "出生日期", "住址", "签发机关", "有效期限"];
const textArray = reactive(["", "", "", "", "", "", "", ""]);
const states = ["审核中", "审核未通过", "审核通过"];
const fontphoto = ref("");
const endphoto = ref("");
const statesTarget = ref(0);
const shenhe = () => {
if (statesTarget.value == 2) {
statesTarget.value = 0
} else {
statesTarget.value++
}
}
//
const tempImagePath = ref('')
//
function getMessage() {
// wx.ready(() => {
// wx.chooseAddress({
// success(res) {
// console.log('address', res)
// },
// fail(err) {
// console.error('fail', err)
// }
// })
// })
// 使 UniApp API
uni.chooseImage({
count: 1,
sourceType: ['camera'],
success: chooseRes => {
tempImagePath.value = chooseRes.tempFilePaths[0]
//
uploadImage(tempImagePath.value)
},
fail: err => {
console.error('拍照失败:', err)
}
})
}
const headImge = ref("");
const backImge = ref("");
//
function formatChineseDate(chineseDate) {
return chineseDate.replace(/(\d+)年(\d+)月(\d+)日/, (_, y, m, d) => {
return `${y}.${m}.${d}`;
});
}
function toIsoDate(dateStr) {
return dateStr.replace(
/(\d{2,4})\.(\d{1,2})\.(\d{1,2})/,
(_, y, m, d) => {
//
const mm = m.padStart(2, '0');
const dd = d.padStart(2, '0');
return `${y}-${mm}-${dd}`;
}
);
}
//
function uploadImage(filePath) {
uni.showLoading()
uni.uploadFile({
url: `${base_url}/api/ocr/idCard`, // POST
filePath,
name: 'file', //
header: {
'X-Access-Token': uni.getStorageSync('token') || '',
},
formData: {},
success: uploadRes => {
console.log("token", uni.getStorageSync('token'))
if (!JSON.parse(uploadRes.data).success) {
uni.showToast({
title: '识别失败',
icon: 'error'
})
uni.hideLoading()
return
}
if (JSON.parse(JSON.parse(uploadRes.data).result.data).data.face) {
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data.face.data;
textArray[0] = father.name;
textArray[1] = father.sex;
textArray[2] = father.idNumber;
textArray[3] = father.ethnicity;
textArray[4] = father.birthDate;
textArray[5] = father.address;
uni.showToast({
title: '识别成功',
})
headImge.value = filePath;
savephoto(filePath, 0);
uni.hideLoading()
} else {
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data.back.data;
textArray[6] = father.issueAuthority;
textArray[7] = father.validPeriod;
uni.showToast({
title: '识别成功',
})
backImge.value = filePath;
savephoto(filePath, 1);
uni.hideLoading()
}
},
fail: err => {
uni.showToast({
title: '上传出错',
icon: 'error'
})
uni.hideLoading()
}
})
}
const savephoto = (filePath, type) => {
uni.uploadFile({
url: `${base_url}/sys/common/upload`, // POST
filePath,
name: 'file', //
header: {
'X-Access-Token': uni.getStorageSync('token') || '',
},
formData: {
biz: `temp`
},
success: uploadRes => {
if (!type) {
fontphoto.value = JSON.parse(uploadRes.data).message
} else {
endphoto.value = JSON.parse(uploadRes.data).message
}
},
fail: err => {
uni.showToast({
title: '上传出错',
icon: 'error'
})
uni.hideLoading()
}
})
}
const openLook = (res) => {
if (res) {
content.value = res;
show.value = true
}
}
const next = () => {
const allNonEmpty = textArray.every(item => {
// item.trim() !== ''
return item !== '';
});
if (allNonEmpty) {
const range = textArray[7];
const [start, end] = range.split('-');
let pushMessage = {
id: uni.getStorageSync('specicalid') || "",
tel: uni.getStorageSync('tel'),
name: textArray[0],
sex: textArray[1],
idCard: textArray[2],
national: textArray[3],
birthDate: textArray[4],
idCardAddress: textArray[5],
issuingAuthority: textArray[6],
startTime: start,
endTime: end,
cardZmPath:fontphoto.value,
cardFmPath:endphoto.value
}
// console.log("????",pushMessage)
changemessage(pushMessage).then(res => {
if(res.success){
if(res.message==`保存成功!`){
uni.navigateTo({
url: "/pages/addjigou/card"
});
}else{
uni.setStorageSync('specicalid', res.result.id);
uni.navigateTo({
url: "/pages/addjigou/card"
});
}
}else{
uni.showToast({
title: res.message,
icon: 'error'
})
}
})
} else {
uni.showToast({
title: '请完善信息',
icon: 'error'
})
}
}
// 1. JSSDK
// async function loadWxJSSDK() {
// // if (window.wx) return
// await new Promise(resolve => {
// const script = document.createElement('script')
// script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
// script.onload = resolve
// document.head.appendChild(script)
// getapi()
// })
// }
// const getapi = () => {
// const post = `${uni.getStorageSync('serverUrl')}/weiXinPay/getJsApiInfo`;
// const pay = {
// url: location.href.split('#')[0],
// };
// console.log("????",pay)
// fetch(post, {
// method: 'POST',
// headers: {
// 'Content-Type': 'application/json'
// },
// body: JSON.stringify(pay)
// })
// .then(res => res.json())
// .then(data => {
// // secondArray.value = [...data.result];
// // console.log("???", data)
// wx.config({
// debug: false, // alert
// appId: `wx8fc3e4305d2fbf0b`, //
// timestamp: data.timestamp, //
// nonceStr: data.nonceStr, //
// signature: data.signature, //
// jsApiList: [ // 使 JS
// 'chooseAddress',
// 'getLocation',
// 'openLocation',
// /* */
// ]
// })
// })
// .catch(err => {
// console.error(':', err);
// });
// }
const goBack = () => {
uni.navigateBack()
}
onLoad(() => {
// loadWxJSSDK()
// URL # signature
})
</script>
<style lang="scss" scoped>
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
background-color: rgb(239, 241, 252);
position: relative;
box-shadow: 2rpx 2rpx 4rpx rgba(0, 0, 0, 0.1);
.white-content {
width: 90%;
margin-left: 5%;
// margin-top: 30rpx;
// height: 1200rpx;
border-radius: 35rpx;
background-color: rgb(245, 251, 254);
.content-title {
display: flex;
// align-items: center;
height: 100rpx;
position: relative;
.content-weight {
// font-size: 35rpx;
font-weight: 600;
margin-left: 70rpx;
margin-top: 20rpx;
}
.content-img {
position: absolute;
right: 0;
top: 0;
width: 400rpx;
height: 100%;
}
}
}
.white-photo {
width: 90%;
margin-left: 5%;
// margin-top: 30rpx;
height: 300rpx;
border-radius: 35rpx;
background-color: #fff;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
justify-content: space-around;
align-items: center;
display: flex;
.photo {
width: 300rpx;
height: 200rpx;
}
}
.white-message {
width: 90%;
margin-left: 5%;
margin-top: 30rpx;
margin-bottom: 30rpx;
// height: 800rpx;
border-radius: 35rpx;
background-color: #fff;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
justify-content: space-around;
// align-items: center;
display: flex;
flex-direction: column;
.message-title {
width: 100%;
height: 100rpx;
align-items: center;
display: flex;
.shu {
width: 10rpx;
height: 30rpx;
background-color: #0097FF;
border-radius: 10rpx;
margin: 0 20rpx 0 30rpx;
}
.message-weight {
font-size: 30rpx;
// font-weight: 600;
}
}
.one {
width: 90%;
margin-left: 5%;
border-bottom: 1rpx solid #d7d7d7;
height: 90rpx;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10rpx;
.one-left {
margin-left: 10rpx;
}
.one-right {
margin-right: 10rpx;
color: #999999;
overflow: hidden;
/* 隐藏超出内容 */
white-space: nowrap;
/* 不换行 */
text-overflow: ellipsis;
max-width: 300rpx;
}
}
}
}
.photo-left {
.photo-weight {
font-size: 26rpx;
font-weight: 600;
}
.photo-font {
font-size: 23rpx;
margin-top: 10rpx;
}
}
.gray-font {
padding: 30rpx 60rpx;
color: #999999;
}
.finish-button {
display: flex;
justify-content: center;
align-items: center;
width: 45%;
height: 100rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
color: #fff;
background: linear-gradient(to right, #00C9FF, #0076FF);
border-radius: 50rpx;
font-size: 35rpx;
}
.title-back {
width: 100%;
height: 100rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.left-father {
display: flex;
align-items: center;
.back-img {
width: 50rpx;
height: 50rpx;
margin-left: 40rpx;
margin-right: 5rpx;
}
}
.rightStautes {
width: 170rpx;
height: 62rpx;
border-radius: 60rpx;
background-color: #FF913A;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
margin-right: 30rpx;
}
.rightStautesred {
width: 170rpx;
height: 62rpx;
border-radius: 60rpx;
background: linear-gradient(to right, #FF4A76, #FF553A);
display: flex;
justify-content: center;
align-items: center;
color: #fff;
margin-right: 30rpx;
}
.rightStautesblue {
width: 170rpx;
height: 62rpx;
border-radius: 60rpx;
background: linear-gradient(to right, #00C9FF, #0076FF);
display: flex;
justify-content: center;
align-items: center;
color: #fff;
margin-right: 30rpx;
}
</style>

343
pages/addjigou/where.vue Normal file
View File

@ -0,0 +1,343 @@
<template>
<div class="container">
<u-modal v-model="show" :content="content"></u-modal>
<view class="white-content">
<view class="white-message">
<view>
<view class="one">
<view class="one-left">机构位置</view>
<view class="special">
<view class="one-right"
style="width: 170rpx;justify-content: flex-start;"
@click="openLook(jigouweizhi)">
{{ jigouweizhi ? jigouweizhi : `请选择机构位置` }}
</view>
<image class="one-img" src="@/static/index/norelmap.png" @click="jumpToMap" />
</view>
</view>
</view>
<view>
<view class="one">
<view class="one-left">机构负责人</view>
<input class="one-right" type="text" placeholder="请输入机构负责人姓名" v-model="form.orgLeader" />
</view>
</view>
<view>
<view class="one">
<view class="one-left">机构负责人电话</view>
<input class="one-right" type="number" placeholder="请输入机构负责人电话" v-model="form.orgLeaderPhone" />
</view>
</view>
<view>
<view class="one">
<view class="one-left">楼宇牌号</view>
<input class="one-right" type="text" placeholder="请输入楼宇牌号" v-model="form.orgBuildingNumber" />
</view>
</view>
<view>
<view class="one">
<view class="one-left">房屋性质</view>
<input class="one-right" type="text" placeholder="请输入房屋性质" v-model="form.orgPropertyType" />
</view>
</view>
<view style="margin-bottom: 20rpx;">
<view class="one" style="position: relative;">
<view class="one-left">建筑面积</view>
<input class="one-right" type="number" placeholder="请输入建筑面积" v-model="form.orgBuildingArea" />
<!-- <view class="pingfangmi">
平方米
</view> -->
</view>
</view>
</view>
</view>
<view style="display: flex;width: 100%;">
<view class="finish-button" @click="goBack">
上一步
</view>
<view class="finish-button" @click="next">
确认并提交
</view>
</view>
</div>
</template>
<script setup>
import {
ref,
reactive,
} from 'vue'
import {
onLoad,
onShow
} from '@dcloudio/uni-app';
import {
base_url
} from '@/request/index.js'
import {
changemessage
} from './api/addjigou.js'
const show = ref(false);
const content = ref("");
const jigouweizhi = ref("");
const form = reactive({
orgLeader: "",
orgLeaderPhone: "",
orgBuildingNumber: "",
orgPropertyType: "",
orgBuildingArea: "",
orgAddress: "",
orgCoordinateLo: "",
orgCoordinateLa: "",
id: uni.getStorageSync('specicalid') || "",
tel: uni.getStorageSync('tel'),
})
//
const tempImagePath = ref('')
const headImge = ref("");
const backImge = ref("");
const openLook = (res) => {
if (res) {
content.value = res;
show.value = true
}
}
const next = () => {
const allNonEmpty = form.orgLeader && form.orgLeaderPhone && form.orgBuildingNumber && form.orgPropertyType &&
form.orgBuildingArea && form.orgAddress && form.orgCoordinateLo && form.orgCoordinateLa
if (allNonEmpty) {
changemessage(form).then(res => {
if (res.success) {
if (res.message == `保存成功!`) {
uni.setStorageSync('specicalid', "");
uni.reLaunch({
url: `/pages/login/workjoin?type=1`
});
} else {
uni.setStorageSync('specicalid', res.result.id);
uni.reLaunch({
url: `/pages/login/workjoin?type=1`
});
}
} else {
uni.showToast({
title: res.message,
icon: 'error'
})
}
})
} else {
uni.showToast({
title: '请完善信息',
icon: 'error'
})
}
}
const goBack = () => {
uni.navigateBack()
}
const jumpToMap = () => {
uni.navigateTo({
url: "/pages/map/index"
});
}
onShow(() => {
//
const data = uni.getStorageSync('dingwei')
if (data) {
console.log("data", data)
jigouweizhi.value = data.name
form.orgAddress = data.name
form.orgCoordinateLo = data.lng
form.orgCoordinateLa = data.lat
uni.removeStorageSync('dingwei')
}
})
</script>
<style lang="scss" scoped>
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
background-color: rgb(239, 241, 252);
position: relative;
box-shadow: 2rpx 2rpx 4rpx rgba(0, 0, 0, 0.1);
.white-content {
width: 90%;
margin-left: 5%;
margin-top: 30rpx;
// height: 1200rpx;
border-radius: 35rpx;
background-color: rgb(245, 251, 254);
.content-title {
display: flex;
// align-items: center;
height: 100rpx;
position: relative;
.content-weight {
// font-size: 35rpx;
font-weight: 600;
margin-left: 40rpx;
margin-top: 20rpx;
}
.content-img {
position: absolute;
right: 0;
top: 0;
width: 400rpx;
height: 100%;
}
}
}
.white-photo {
width: 90%;
margin-left: 5%;
// margin-top: 30rpx;
height: 300rpx;
border-radius: 35rpx;
background-color: #fff;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
justify-content: space-around;
align-items: center;
display: flex;
.photo {
width: 300rpx;
height: 200rpx;
}
}
.white-message {
width: 90%;
margin-left: 5%;
margin-top: 30rpx;
margin-bottom: 30rpx;
// height: 800rpx;
border-radius: 35rpx;
background-color: #fff;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
justify-content: space-around;
// align-items: center;
display: flex;
flex-direction: column;
.message-title {
width: 100%;
height: 100rpx;
align-items: center;
display: flex;
.shu {
width: 10rpx;
height: 30rpx;
background-color: #0097FF;
border-radius: 10rpx;
margin: 0 20rpx 0 30rpx;
}
.message-weight {
font-size: 30rpx;
// font-weight: 600;
}
}
.one {
width: 90%;
margin-left: 5%;
border-bottom: 1rpx solid #d7d7d7;
height: 90rpx;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10rpx;
.one-left {
margin-left: 10rpx;
}
.one-right {
// margin-right: 10rpx;
color: #999999;
overflow: hidden;
/* 隐藏超出内容 */
white-space: nowrap;
/* 不换行 */
font-size: 25rpx;
text-overflow: ellipsis;
max-width: 300rpx;
display: flex;
justify-content: flex-end;
}
}
}
}
.photo-left {
.photo-weight {
font-size: 26rpx;
font-weight: 600;
}
.photo-font {
font-size: 23rpx;
margin-top: 10rpx;
}
}
.finish-button {
display: flex;
justify-content: center;
align-items: center;
width: 45%;
height: 100rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
color: #fff;
background: linear-gradient(to right, #00C9FF, #0076FF);
border-radius: 50rpx;
font-size: 35rpx;
}
.one-img {
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 10rpx;
width: 60rpx;
height: 50rpx;
// margin-right: 10rpx;
// margin-left: 35rpx;
}
.pingfangmi {
position: absolute;
top: 50%;
right: 5rpx;
transform: translateY(-50%);
}
.special {
display: flex;
align-items: center;
width: 280rpx;
position: relative;
}
</style>

View File

@ -539,8 +539,8 @@
}
.botton-img {
width: 36rpx;
height: 36rpx;
width: 38rpx;
height: 38rpx;
margin-bottom: 5rpx;
}

View File

@ -1,6 +1,10 @@
<template>
<view class="login-container">
页面跳转中请稍后...
<image class="imge" src="/static/index/nu.png" />
<view class="font">
页面跳转中请稍后...
</view>
<!-- 底部的栏为啥这样写是因为要做左右拉动 -->
<!-- <view class="botton-view">
<view v-for="(item,index) in itemArray" class="array-father">
@ -42,9 +46,7 @@
import {
onLoad
} from '@dcloudio/uni-app';
// import {
// useWeChatAuth
// } from '@/compontent/useWeChatAuth.js';
import { base_url } from '@/request/index.js'
import request from '@/request/index.js';
import {
reactive,
@ -72,7 +74,7 @@
// });
// }
const getOpenId = (code) => {
const url = `https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(code)}`;
const url = `${base_url}/weixin/wechat/callback?code=${encodeURIComponent(code)}`;
fetch(url)
.then(res => res.json())
@ -98,7 +100,7 @@
const look = ref("")
const getUserMessage = () => {
const url =
`https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(ceshi.openid)}`;
`${base_url}/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(ceshi.openid)}`;
fetch(url)
.then(res => res.json())
.then(data => {
@ -106,33 +108,26 @@
uni.setStorageSync('token', data.result.token);
uni.setStorageSync('serverUrl', data.result.serverUrl);
console.log("???token存储",data.result.token)
// uni.getStorageSync('token')
const post = `${data.result.serverUrl}/weiXinPay/getJsApiInfo`;
const pay = {
access_token: ceshi.accessToken,
};
console.log("???/", pay)
fetch(post, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(pay)
})
.then(res => res.json())
.then(data => {
// secondArray.value = [...data.result];
console.log("???调取微信", data)
// const post = `${uni.getStorageSync('serverUrl')}/weiXinPay/getJsApiInfo`;
// const pay = {
// access_token: ceshi.accessToken,
// };
// fetch(post, {
// method: 'POST',
// headers: {
// 'Content-Type': 'application/json'
// },
// body: JSON.stringify(pay)
// })
// .then(res => res.json())
// .then(data => {
// // secondArray.value = [...data.result];
// console.log("???", data)
})
.catch(err => {
console.error('请求失败:', err);
});
// })
// .catch(err => {
// console.error(':', err);
// });
// const urlpost = `${data.result.serverUrl}/weiXinPay/getUserInfo`;
// const payload = {
// openid: ceshi.openid,
@ -163,8 +158,9 @@
});
}else{
uni.redirectTo({
url: `/pages/index/index`
url: `/pages/login/threeselectone`
});
uni.setStorageSync('tel', data.result.tel);
}
getjigou()
})
@ -172,7 +168,7 @@
}
const jigouArray = ref([]);
const getjigou = () => {
const url = `https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList`;
const url = `${base_url}/sys/sysDepart/queryInstitutionsList`;
fetch(url)
.then(res => res.json())
.then(data => {
@ -194,7 +190,7 @@
url: element.serverUrl,
}
});
const urlpost = `https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo`;
const urlpost = `${base_url}/h5Api/nuBizAdvisoryInfo/editNuBizAdvisoryInfo`;
const payload = {
openId: ceshi.openid,
serverUrl: element.serverUrl
@ -255,6 +251,8 @@
width: 100%;
background-color: rgb(239, 241, 252);
position: relative;
justify-content: center;
align-items: center;
}
.array-father {
@ -301,4 +299,14 @@
transform: translateX(-50%);
}
}
.imge{
width: 240rpx;
height: 240rpx;
margin-bottom: 50rpx;
}
.font{
font-weight: 600;
font-size: 35rpx;
// margin-bottom: 100rpx;
}
</style>

View File

@ -170,7 +170,7 @@
}).then(res => {
if (res.success) {
uni.redirectTo({
url: `/pages/index/index`
url: `/pages/login/callback`
});
} else {
uni.showToast({

View File

@ -86,8 +86,9 @@
}
const ceshi = () =>{
uni.navigateTo({
url: "/pages/index/index"
url: "/pages/addjigou/where"
});
}
const ceshiscan = () =>{
uni.navigateTo({

View File

@ -0,0 +1,167 @@
<template>
<view class="login-container">
<view class="title">
<image class="title-imge" src="/static/index/nu.png" @click="ceshi" />
<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">
<three @updateCenterIndex="changePhoto" />
<view class="font-father">
<view class="font">
{{fontArray[itemTarget]}}
</view>
</view>
<view class="button-father" v-show="itemTarget==0">
<view class="button-blue" @click="jumpToindex">
绑定单元
</view>
</view>
<view class="button-father" v-show="itemTarget==2">
<view class="button-blue" style="margin-right: 30rpx;" @click="gotowork(0)">
审核详情
</view>
<view class="button-blue" @click="">
申请入驻
</view>
</view>
<view class="button-father" v-show="itemTarget==1">
<view class="button-blue" style="margin-right: 30rpx;" @click="gotowork(1)">
审核详情
</view>
<view class="button-blue" @click="gotoadd">
申请加盟
</view>
</view>
</view>
</view>
</template>
<script setup>
import {
reactive,
ref
} from 'vue';
import three from "@/compontent/public/photohuadong.vue";
const itemTarget = ref(0);
const fontArray = ["护理院日常护理涵盖生活照料、健康监测、康复护理及心理关怀,为老人提供贴心照护。", "护理员日常为老人提供饮食起居照料、协助康复训练监测健康状况,陪伴交流并做好环境清洁。",
"护理员日常为老人提供饮食起居照料、协助康复训练监测健康状况,陪伴交流并做好环境清洁。"
]
const changePhoto = (index) => {
itemTarget.value = index;
}
const jumpToindex = () => {
uni.redirectTo({
url: `/pages/index/index`
});
}
const gotowork = (number) => {
uni.navigateTo({
url: `/pages/login/workjoin?type=${number}`
});
}
const gotoadd = () => {
uni.navigateTo({
url: `/pages/addjigou/name`
});
}
</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: 75%;
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;
justify-content: center;
}
}
.font-father {
width: 100%;
color: #666666;
justify-content: center;
display: flex;
.font {
width: 60%;
}
}
.button-father {
width: 100%;
margin-top: 80rpx;
display: flex;
justify-content: center;
.button-blue {
width: 40%;
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;
}
}
</style>

245
pages/login/workjoin.vue Normal file
View File

@ -0,0 +1,245 @@
<template>
<view class="login-container">
<image class="photo-imge" src="/static/index/workjoin/bgc.png" />
<image class="old-imge" src="/static/index/workjoin/ren.png" />
<view class="under-container" @touchstart.stop @touchmove.stop @touchend.stop>
<view class="white-card">
<image class="left-img" :src="type=== `1` ? `/static/index/workjoin/man.png` : `/static/index/workjoin/bgcren.png`" />
<view class="card-font">
<view style="font-size: 30rpx;font-weight: 600;margin: 20rpx 0 30rpx 0;">{{type=== `1` ? `机构加盟`:`员工入驻`}}</view>
<view style="color: #666666;font-size: 25rpx;">
护理院日常护理涵盖生活照料健康监测康复护理及心理关怀为老人提供贴心照护
</view>
</view>
</view>
<view class="white-ball" @click="goback">
<image class="ball-imge" src="/static/index/workjoin/x.png" />
</view>
<view class="shu-father">
<view class="shu"></view>
<view class="shu-font">{{ type==="1" ? `机构加盟审核列表` : `员工入驻审核列表` }}</view>
</view>
<view class="under-scroll">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view v-for="(item,index) in workArray" :key="index">
<view class="white-small">
<view style="width: 100%;margin-bottom: 80rpx;font-size: 25rpx;">
{{item.comName}}申请入驻加盟护理单元提交时间:{{item.updateTime}}审核结果:{{item.status==1 ? "审核中" :item.status==2?`审核完成`:`驳回` }}</view>
<view class="button-heng">
<view class="blue-button" v-if="item.status==2">
重新提交
</view>
<view class="white-button">
查看详情
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</template>
<script setup>
import {
reactive,
ref
} from 'vue';
import { onLoad } from '@dcloudio/uni-app'
import { getMessageList } from '@/pages/addjigou/api/addjigou.js'
const type = ref(0)
const workArray = ref([])
// URL
onLoad((options) => {
// options.type URL number
type.value = options.type || ''
if(!type.value){
getMessageList(uni.getStorageSync('tel')).then(res=>{
workArray.value = res.result
})
}
})
const goback = () => {
uni.navigateBack()
}
</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: 0rpx;
left: 0;
width: 100%;
height: 100vh;
}
.old-imge {
position: absolute;
right: 50%;
transform: translateX(50%);
top: 0rpx;
width: 550rpx;
height: 750rpx;
}
.under-container {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
background-color: rgb(236, 238, 244);
box-shadow: 10rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
align-items: center;
z-index: 1;
}
}
.white-card {
margin-top: 30rpx;
width: 94%;
background-color: #fff;
height: 320rpx;
border-radius: 45rpx;
display: flex;
align-items: center;
position: relative;
.left-img {
width: 150rpx;
height: 250rpx;
margin-left: 50rpx;
// margin-top: 35rpx;
}
.card-font {
margin-left: 60rpx;
// margin-top: 50rpx;
width: 380rpx;
}
}
.white-ball {
position: absolute;
right: 60rpx;
top: 60rpx;
width: 75rpx;
height: 75rpx;
border-radius: 50%;
border: 1rpx solid #b1b1b1;
display: flex;
justify-content: center;
align-items: center;
.ball-imge {
width: 30rpx;
height: 30rpx;
}
}
.shu-father {
display: flex;
margin: 30rpx 0;
width: 100%;
.shu {
background: linear-gradient(to bottom, #00C9FF, #0076FF);
margin: 0 5%;
width: 15rpx;
border-radius: 10rpx;
height: 35rpx;
margin-right: 3%;
}
.shu-font {
color: #666666;
}
}
.under-scroll {
width: 100%;
height: calc(100% - 460rpx);
.white-small {
width: 94%;
margin-left: 3%;
background-color: #fff;
border-radius: 30rpx;
padding: 30rpx;
margin-bottom: 30rpx;
font-size: 25rpx;
color: #999999;
position: relative;
}
}
.button-heng {
// width: 100%;
display: flex;
justify-content: flex-end;
position: absolute;
bottom: 30rpx;
right: 0;
.white-button {
width: 180rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
background: linear-gradient(to bottom, #F3F3F5, #DEE4E9);
border-radius: 30rpx;
color: black;
margin-right: 20rpx;
}
.blue-button {
width: 180rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
background: linear-gradient(to right, #00C9FF, #0076FF);
margin-right: 20rpx;
border-radius: 30rpx;
color: #fff;
}
}
</style>

View File

@ -0,0 +1,252 @@
<template>
<view class="container">
<!-- 顶部搜索框 -->
<view class="search-bar">
<input type="text" v-model="keyword" placeholder="搜索地点" @confirm="onSearch" />
<button @click="onSearch">搜索</button>
</view>
<!-- 地图展示区 -->
<view id="map" class="map"></view>
<!-- 搜索结果列表 -->
<view class="result-list" v-if="pois.length">
<view class="poi-item" v-for="(poi, idx) in pois" :key="idx" @click="selectPoi(poi)">
<text class="poi-name">{{ poi.name }}</text>
<text class="poi-address">{{ poi.address }}</text>
</view>
</view>
<!-- 默认提示区 -->
<view class="info" v-else>
<text>请选择或搜索地点</text>
</view>
</view>
</template>
<script setup>
import {
onMounted,
ref
} from 'vue';
import {
useRoute
} from 'vue-router';
//
const route = useRoute();
const defaultLat = Number(route.query.lat) || 39.9042;
const defaultLng = Number(route.query.lng) || 116.4074;
const keyword = ref('');
const pois = ref([]);
let map = null;
let marker = null;
let searchService = null;
function initMap(lat, lng) {
const center = new qq.maps.LatLng(lat, lng);
map = new qq.maps.Map(document.getElementById('map'), {
center,
zoom: 15
});
marker = new qq.maps.Marker({
position: center,
map
});
searchService = new qq.maps.SearchService({
map,
pageCapacity: 10
});
}
// 1. JSSDK
async function loadWxJSSDK() {
if (window.wx) return
await new Promise(resolve => {
const script = document.createElement('script')
script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
script.onload = resolve
document.head.appendChild(script)
getapi()
})
}
const getapi = () => {
const post = `${uni.getStorageSync('serverUrl')}/weiXinPay/getJsApiInfo`;
const pay = {
url: location.href.split('#')[0],
};
console.log("????", pay)
fetch(post, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(pay)
})
.then(res => res.json())
.then(data => {
// secondArray.value = [...data.result];
// console.log("???", data)
wx.config({
debug: false, // alert
appId: `wx8fc3e4305d2fbf0b`, //
timestamp: data.timestamp, //
nonceStr: data.nonceStr, //
signature: data.signature, //
jsApiList: [ // 使 JS
'chooseAddress',
'getLocation',
'openLocation',
/* …根据实际业务增删 */
]
})
})
.catch(err => {
console.error('请求失败:', err);
});
}
// async function locate() {
// // 使 uni.getLocationApp+
// try {
// const res = await new Promise((resolve, reject) => {
// uni.getLocation({
// type: 'gcj02',
// success: resolve,
// fail: reject
// });
// });
// return {
// lat: res.latitude,
// lng: res.longitude
// };
// } catch {
// // H5 使 Geolocation
// if (navigator.geolocation) {
// try {
// const pos = await new Promise((resolve, reject) => {
// navigator.geolocation.getCurrentPosition(resolve, reject, {
// enableHighAccuracy: true
// });
// });
// return {
// lat: pos.coords.latitude,
// lng: pos.coords.longitude
// };
// } catch {
// return null;
// }
// }
// return null;
// }
// }
onMounted(async () => {
// loadWxJSSDK()
// URL # signature
// const loc = await locate();
// if (loc) {
// initMap(loc.lat, loc.lng);
// } else {
// uni.showToast({
// title: '使',
// icon: 'none'
// });
// initMap(defaultLat, defaultLng);
// }
initMap(defaultLat, defaultLng)
});
function onSearch() {
const kw = keyword.value.trim();
if (!kw) {
uni.showToast({
title: '请输入搜索内容',
icon: 'none'
});
return;
}
pois.value = [];
// SearchService.search
searchService.search(kw, (results) => {
if (results && results.length) {
pois.value = results;
} else {
uni.showToast({
title: '未搜索到结果',
icon: 'none'
});
}
});
}
function selectPoi(poi) {
const pos = new qq.maps.LatLng(poi.lat, poi.lng);
map.setCenter(pos);
marker.setPosition(pos);
}
</script>
<style scoped>
.container {
display: flex;
flex-direction: column;
height: 100vh;
}
.search-bar {
display: flex;
padding: 8px;
background: #fff;
}
.search-bar input {
flex: 1;
padding: 6px;
border: 1px solid #ccc;
border-radius: 4px;
}
.search-bar button {
margin-left: 8px;
padding: 6px 12px;
background-color: #1aad19;
color: #fff;
border: none;
border-radius: 4px;
}
.map {
flex: 1;
}
.result-list {
max-height: 200px;
overflow-y: auto;
background: #fff;
}
.poi-item {
padding: 8px;
border-bottom: 1px solid #eee;
}
.poi-name {
font-weight: bold;
}
.poi-address {
font-size: 12px;
color: #666;
}
.info {
padding: 16px;
background: #fff;
text-align: center;
color: #999;
}
</style>

View File

@ -1,291 +1,593 @@
<template>
<div class="container">
<div ref="threeContainer" class="three-container"></div>
</div>
<view class="container">
<!-- 顶部搜索框 -->
<view class="search-bar">
<view class="search-bar-left">
<image class="left-imge" src="/static/index/chahao.png" />
<view style="margin-left: 15rpx;" @click="jumpBack">
取消
</view>
</view>
<!-- <view class="" @click="dingwei">复位</view> -->
<view class="search-bar-right" @click="jumpBackValue" v-show="listTarget!=-1">完成</view>
<view class="search-bar-right-bad" v-show="listTarget==-1">
请选择
</view>
</view>
<!-- 地图展示区 -->
<view id="map" class="map" @touchend.stop.prevent="onMapDragCancel">
<image class="map-dian" src="/static/index/tuding.png" />
</view>
<view class="goback" @click="dingwei">
<image class="goback-imge" src="/static/index/dingwei.png" />
</view>
<!-- 搜索结果列表 -->
<view class="result-list">
<view class="sousuo-bgc" @click="openinput = true;pois=[];listTarget=-1;" v-show="!openinput">
<image class="sousuo-imge" src="/static/index/fangda.png" />
<view class="">搜索地点</view>
</view>
<view class="input-father" v-show="openinput">
<input ref="inputRef" class="input" type="text" v-model="keyword" placeholder="搜索地点" @input="onInput" />
<uview class="input-button" @click="close">取消</uview>
</view>
<!-- <view class="search-bar">
<input type="text" v-model="keyword" placeholder="搜索地点" @confirm="onSearch" />
<button @click="onSearch">搜索</button>
</view> -->
<view class="poi-item">
<view v-for="(poi, idx) in pois" :key="idx" @click="selectPoi(poi,idx)">
<view class="poi-card">
<view class="card-title">{{poi.name}}</view>
<view class="card-text">
{{ poi.juli }} | {{ poi.where }}
</view>
<view class="target" v-if="idx==listTarget">
</view>
</view>
<!-- <text class="poi-name">{{ poi.name }}</text>
<text class="poi-address">{{ poi.address }}</text> -->
</view>
</view>
</view>
<!-- 默认提示区 -->
<!-- <view class="info" v-else>
<text>请选择或搜索地点</text>
</view> -->
</view>
</template>
<script setup>
import {
onMounted,
ref
} from 'vue'
import * as THREE from 'three'
ref,
reactive,
onBeforeUnmount
} from 'vue';
import {
OrbitControls
} from 'three/examples/jsm/controls/OrbitControls.js'
base_url
} from '@/request/index.js';
import {
proxy,
jsonp
} from '@/api/main.js'
const threeContainer = ref(null)
//
const defaultLat = 39.9042;
const defaultLng = 116.4074;
const inputRef = ref(null)
const keyword = ref('');
const pois = ref([]);
const openinput = ref(false);
let map = null;
let marker = null;
//
function initMap(lat, lng) {
const center = new qq.maps.LatLng(lat, lng);
map = new qq.maps.Map(document.getElementById('map'), {
center,
zoom: 15,
zoomControl: false, //
panControl: false, //
mapTypeControl: false //
});
marker = new qq.maps.Marker({
position: center,
map,
});
}
onMounted(() => {
const container = threeContainer.value
const W = container.clientWidth,
H = 400
// Scene, Camera, Renderer
const scene = new THREE.Scene()
scene.background = new THREE.Color(0xf5f5f5)
const camera = new THREE.PerspectiveCamera(60, W / H, 0.1, 1000)
camera.position.set(0, 20, 30)
const renderer = new THREE.WebGLRenderer({
antialias: true
})
renderer.setSize(W, H)
renderer.shadowMap.enabled = true
container.appendChild(renderer.domElement)
// Lights
scene.add(new THREE.AmbientLight(0xffffff, 0.5))
const dirL = new THREE.DirectionalLight(0xffffff, 0.8)
dirL.position.set(-10, 20, 10)
dirL.castShadow = true
scene.add(dirL)
// Floor
const ground = new THREE.Mesh(
new THREE.BoxGeometry(50, 0.02, 50),
new THREE.MeshStandardMaterial({
color: 0xdddddd
})
)
ground.position.y = -0.01
ground.receiveShadow = true
scene.add(ground)
// Materials
const wallMat = new THREE.MeshStandardMaterial({
color: 0xf8f8f8,
roughness: 0.7,
metalness: 0.1,
side: THREE.DoubleSide
})
const lintelMat = new THREE.MeshStandardMaterial({
color: 0xe0e0e0,
roughness: 0.6,
metalness: 0.1
})
const doorMat = new THREE.MeshStandardMaterial({
color: 0x8b4513,
roughness: 0.6,
metalness: 0.2
})
const bedFrameMat = new THREE.MeshStandardMaterial({
color: 0x555555,
roughness: 0.5,
metalness: 0.8
})
const mattressMat = new THREE.MeshStandardMaterial({
color: 0xffffff,
roughness: 0.8,
metalness: 0.1
})
const tvMat = new THREE.MeshStandardMaterial({
color: 0x000000,
roughness: 0.4,
metalness: 0.3
})
let selectedRoom = null
function markOriginal(mesh) {
mesh.userData.originalMaterial = mesh.material.clone()
}
function createRoom({
w,
h,
d,
x,
z,
door
}) {
const room = new THREE.Group()
room.position.set(x, h / 2, z)
room.userData.isRoom = true
room.userData.selected = false
const planeH = new THREE.PlaneGeometry(w, h)
const planeD = new THREE.PlaneGeometry(d, h)
// South with door
const upH = h - door.height - door.sill
const upWall = new THREE.Mesh(new THREE.PlaneGeometry(w, upH), wallMat.clone())
upWall.position.set(0, door.height + door.sill + upH / 2 - h / 2, d / 2)
markOriginal(upWall);
room.add(upWall)
const sideW = (w - door.width) / 2
const leftWall = new THREE.Mesh(new THREE.PlaneGeometry(sideW, door.height), wallMat.clone())
leftWall.position.set(-w / 2 + sideW / 2, door.sill + door.height / 2 - h / 2, d / 2)
markOriginal(leftWall);
room.add(leftWall)
const rightWall = leftWall.clone()
rightWall.position.x = w / 2 - sideW / 2
markOriginal(rightWall);
room.add(rightWall)
const lintel = new THREE.Mesh(new THREE.BoxGeometry(door.width, door.lintelThk, 0.1), lintelMat
.clone())
lintel.position.set(0, door.sill + door.height + door.lintelThk / 2 - h / 2, d / 2 + 0.05)
markOriginal(lintel);
room.add(lintel)
const doorGroup = new THREE.Group()
const doorMesh = new THREE.Mesh(new THREE.BoxGeometry(door.width, door.height, 0.05), doorMat.clone())
markOriginal(doorMesh);
doorMesh.position.set(door.width / 2, door.height / 2 - h / 2, 0)
doorGroup.add(doorMesh)
doorGroup.position.set(-w / 2 + sideW + 0.01, 0, d / 2 + 0.025)
doorGroup.userData.isDoor = true
doorGroup.userData.open = false
room.add(doorGroup)
// North, East, West walls
const north = new THREE.Mesh(planeH, wallMat.clone())
north.position.set(0, 0, -d / 2)
north.rotation.y = Math.PI
markOriginal(north);
room.add(north)
const east = new THREE.Mesh(planeD, wallMat.clone())
east.position.set(w / 2, 0, 0)
east.rotation.y = -Math.PI / 2
markOriginal(east);
room.add(east)
const west = east.clone()
west.position.x = -w / 2
west.rotation.y = Math.PI / 2
markOriginal(west);
room.add(west)
// Single Bed flush
const bedW = w * 0.6,
bedH = 0.5,
bedD = d * 0.4
const bed = new THREE.Group()
bed.userData.isBed = true
const frame = new THREE.Mesh(new THREE.BoxGeometry(bedW, 0.1, bedD), bedFrameMat.clone())
frame.position.y = -h / 2 + 0.05
markOriginal(frame);
bed.add(frame)
const mat = new THREE.Mesh(new THREE.BoxGeometry(bedW * 0.95, bedH, bedD * 0.95), mattressMat.clone())
mat.position.y = -h / 2 + bedH / 2 + 0.05
markOriginal(mat);
bed.add(mat)
bed.position.set(0, 0, d / 2 - bedD / 2 - 0.05)
room.add(bed)
// TV flush opposite
const tvWidth = bedW * 0.6
const tvHeight = tvWidth * 9 / 16
const tv = new THREE.Mesh(new THREE.BoxGeometry(tvWidth, tvHeight, 0.05), tvMat.clone())
tv.userData.isTV = true
markOriginal(tv);
tv.position.set(0, bedH + tvHeight / 2, -d / 2 + 0.05)
room.add(tv)
room.traverse(o => {
if (o.isMesh) {
o.castShadow = true
o.receiveShadow = true
}
})
return room
}
// Build grid
const building = new THREE.Group()
const cols = 5,
rows = 4,
sx = 6,
sz = 8
for (let i = 0; i < 20; i++) {
const col = i % cols,
row = Math.floor(i / cols)
const x = -((cols - 1) * sx) / 2 + col * sx
const z = ((rows - 1) * sz) / 2 - row * sz
building.add(createRoom({
w: 4,
h: 3,
d: 5,
x,
z,
door: {
width: 1,
height: 2,
sill: 0.1,
lintelThk: 0.2
}
}))
}
scene.add(building)
const controls = new OrbitControls(camera, renderer.domElement)
controls.enableDamping = true
const ray = new THREE.Raycaster(),
mouse = new THREE.Vector2()
renderer.domElement.addEventListener('click', e => {
const rect = renderer.domElement.getBoundingClientRect()
mouse.x = ((e.clientX - rect.left) / rect.width) * 2 - 1
mouse.y = -((e.clientY - rect.top) / rect.height) * 2 + 1
ray.setFromCamera(mouse, camera)
const hits = ray.intersectObjects(building.children, true)
if (!hits.length) return
// Door
let obj = hits[0].object
const doorGrp = obj.userData.isDoor ? obj : obj.parent.userData.isDoor ? obj.parent : null
if (doorGrp) {
const open = !doorGrp.userData.open
doorGrp.rotation.y = open ? -Math.PI / 2 : 0
doorGrp.userData.open = open
return
// JSSDK resolve
function loadWxJSSDK() {
return new Promise(resolve => {
if (window.wx && typeof wx.config === 'function') {
return resolve();
}
// Room selection
let tgt = hits[0].object
while (tgt && !tgt.userData.isRoom) tgt = tgt.parent
if (!tgt) return
// Deselect previous
if (selectedRoom && selectedRoom !== tgt) {
selectedRoom.userData.selected = false
selectedRoom.traverse(n => {
if (n.isMesh && n.userData.originalMaterial) {
n.material = n.userData.originalMaterial.clone()
const script = document.createElement('script');
script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';
script.onload = () => {
// wx
const checkWx = () => {
if (window.wx && typeof wx.config === 'function') {
resolve();
} else {
setTimeout(checkWx, 50);
}
};
checkWx();
};
script.onerror = () => {
console.error('加载微信 JSSDK 脚本失败');
resolve();
};
document.head.appendChild(script);
});
}
// 使 JSSDK
async function initLocation() {
// 1. JSSDK
await loadWxJSSDK();
// 2.
try {
const res = await fetch(`${base_url}/weixin/getJsApiInfo`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: location.href.split('#')[0]
})
});
const data = await res.json();
if (window.wx && typeof wx.config === 'function') {
wx.config({
debug: false,
appId: 'wx8fc3e4305d2fbf0b',
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: ['getLocation', 'openLocation']
});
wx.ready(() => {
wx.getLocation({
type: 'wgs84',
success(ret) {
initMap(ret.latitude, ret.longitude);
fujinGet(ret.latitude, ret.longitude)
},
fail(err) {
console.warn('微信定位失败,使用默认位置', err);
uni.showToast({
title: '定位失败,使用默认位置',
icon: 'none'
});
initMap(defaultLat, defaultLng);
fujinGet(defaultLat, defaultLng)
}
});
});
wx.error(err => {
console.error('wx.config 验证失败:', err);
initMap(defaultLat, defaultLng);
});
} else {
console.warn('wx.config 不可用,使用默认位置');
initMap(defaultLat, defaultLng);
}
// Toggle
const sel = !tgt.userData.selected
tgt.userData.selected = sel
tgt.traverse(n => {
if (n.isMesh && n.userData.originalMaterial) {
let matClone = n.userData.originalMaterial.clone()
if (sel && !n.userData.isTV && !n.userData.isDoor) matClone.color.set(0x3377ff)
n.material = matClone
}
})
selectedRoom = sel ? tgt : null
})
const animate = () => {
requestAnimationFrame(animate);
controls.update();
renderer.render(scene, camera)
} catch (err) {
console.error('获取 JSSDK 签名失败:', err);
initMap(defaultLat, defaultLng);
}
}
const dingwei = () => {
// wx.ready(() => {
wx.getLocation({
type: 'wgs84',
success(ret) {
initMap(ret.latitude, ret.longitude);
fujinGet(ret.latitude, ret.longitude)
},
fail(err) {
console.warn('微信定位失败,使用默认位置', err);
uni.showToast({
title: err.errMsg,
icon: 'none'
});
initMap(defaultLat, defaultLng);
fujinGet(defaultLat, defaultLng);
}
});
// });
}
const jumpBack = () => {
uni.navigateBack()
}
const jumpBackValue = () => {
const payload = {
name: pois.value[listTarget.value].name,
lat: pois.value[listTarget.value].lat,
lng: pois.value[listTarget.value].lng,
}
uni.setStorageSync('dingwei', payload)
uni.navigateBack()
}
// POI
async function onSearch() {
const kw = keyword.value.trim();
if (!kw) {
uni.showToast({
title: '请输入搜索内容',
icon: 'none'
});
return;
}
pois.value = [];
const center = map.getCenter();
const lat = center.getLat();
const lng = center.getLng();
let inIt = {
apiUrl: `https://apis.map.qq.com/ws/place/v1/search`,
other: `keyword=${encodeURIComponent(kw)}%26boundary=nearby(${lat},${lng},1000)%26key=LOLBZ-Z2PKW-JJ6RO-3Y7Z7-BSKWT-DLFNC`
}
proxy(inIt).then(data => {
if (data.status === 0 && data.data.length) {
data.data.map(item => {
let element = {
name: item.title,
juli: `${item._distance}km`,
where: item.address,
lat: item.location.lat,
lng: item.location.lng,
}
pois.value.push(element)
})
} else {
uni.showToast({
title: '未搜索到结果',
icon: 'none'
});
}
})
}
const fujinGet = (lat, lng) => {
let inIt = {
apiUrl: `https://apis.map.qq.com/ws/geocoder/v1`,
other: `location=${lat},${lng}%26key=LOLBZ-Z2PKW-JJ6RO-3Y7Z7-BSKWT-DLFNC%26get_poi=1%26radius=1000%26poi_options=page_size=10;radius=1000;policy=distance;address_format=short`
}
proxy(inIt).then(data => {
if (data.status === 0) {
pois.value = [];
data.result.pois.map(item => {
let element = {
name: item.title,
juli: `${item._distance}km`,
where: item.address,
lat: item.location.lat,
lng: item.location.lng,
}
pois.value.push(element)
})
} else {
uni.showToast({
title: '未搜索到结果',
icon: 'none'
});
}
})
}
function focusInput() {
inputRef.value?.focus()
}
const listTarget = ref(0);
// POI
function selectPoi(poi, ids) {
listTarget.value = ids
const pos = new qq.maps.LatLng(poi.lat, poi.lng);
map.setCenter(pos);
marker.setPosition(pos);
}
// delay
function debounce(fn, delay = 500) {
let timer;
return function(...args) {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, args), delay);
};
}
const onMapDragCancel = () => {
const center = map.getCenter();
const lat = center.getLat();
const lng = center.getLng();
listTarget.value = 0
fujinGet(lat, lng)
}
//
const query = ref('')
// id
let timerId = null
//
const DEBOUNCE_DELAY = 500
//
function doSearch(val) {
//
console.log('发起搜索请求:', val)
// uni.request({ url: '...', data: { q: val }, ... })
}
// input
function onInput(e) {
// uni-app H5
query.value = e.detail?.value ?? e.target.value
//
if (timerId) {
clearTimeout(timerId)
}
//
if (/[A-Za-z]/.test(query.value)) {
return
}
// 500ms doSearch
timerId = setTimeout(() => {
const val = query.value.trim()
if (val) {
onSearch()
}
}, DEBOUNCE_DELAY)
}
const close = () => {
openinput.value = false;
listTarget.value = -1;
if (!pois.value.length) {
onMapDragCancel()
}
}
onMounted(async () => {
await initLocation();
});
//
onBeforeUnmount(() => {
if (timerId) {
clearTimeout(timerId)
}
animate()
})
</script>
<style scoped>
<style scoped lang="scss">
.container {
width: 100%;
height: 400px
display: flex;
flex-direction: column;
height: 100vh;
position: relative;
}
.three-container {
.search-bar {
position: absolute;
top: 0;
left: 0;
display: flex;
width: 100%;
height: 100%
height: 120rpx;
display: flex;
justify-content: space-between;
align-items: center;
z-index: 3;
/* background: #fff; */
}
.search-bar input {
flex: 1;
padding: 6px;
border: 1px solid #ccc;
border-radius: 4px;
}
.map {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
.map-dian {
// background-color: black;
width: 60rpx;
height: 60rpx;
border-radius: 50%;
z-index: 2;
margin-bottom: 65rpx;
}
}
.goback {
position: fixed;
bottom: 43vh;
right: 40rpx;
width: 100rpx;
height: 100rpx;
background-color: #fff;
border-radius: 20rpx;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
.goback-imge {
width: 55rpx;
height: 55rpx;
}
}
.result-list {
position: fixed;
bottom: 0;
left: 0;
height: 40vh;
width: 94%;
margin-left: 3%;
border-top-right-radius: 35rpx;
border-top-left-radius: 35rpx;
// overflow-y: auto;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
}
.poi-item {
margin-top: 30rpx;
height: calc(40vh - 110rpx);
width: 100%;
overflow-y: auto;
}
.poi-name {
font-weight: bold;
}
.poi-address {
font-size: 12px;
color: #666;
}
.info {
padding: 16px;
background: #fff;
text-align: center;
color: #999;
}
.search-bar-left {
margin-left: 30rpx;
font-size: 32rpx;
font-weight: 600;
display: flex;
// margin-top: -10rpx;
align-items: center;
}
.search-bar-right {
margin-right: 30rpx;
width: 120rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 20rpx;
color: #fff;
background-color: rgb(1, 168, 255);
}
.search-bar-right-bad {
margin-right: 30rpx;
width: 120rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 20rpx;
color: rgb(238, 238, 238);
background-color: #fff;
}
.sousuo-bgc {
width: 90%;
background-color: rgb(238, 238, 238);
border-radius: 15rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
margin-top: 30rpx;
color: rgb(153, 153, 153);
.sousuo-imge {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
}
.input-father {
width: 100%;
display: flex;
align-items: center;
margin-top: 30rpx;
// justify-content: center;
.input {
margin: 0 5%;
padding-left: 5%;
width: 70%;
background-color: rgb(238, 238, 238);
border-radius: 15rpx;
height: 75rpx;
color: rgb(153, 153, 153);
}
.input-button {
font-size: 25rpx;
}
}
.left-imge {
width: 30rpx;
height: 30rpx;
}
.poi-card {
width: 100%;
height: 150rpx;
display: flex;
flex-direction: column;
justify-content: center;
padding: 0 50rpx;
position: relative;
.card-title {
font-size: 28rpx;
margin-bottom: 20rpx;
}
.card-text {
font-size: 25rpx;
color: rgb(167, 167, 167);
display: block;
width: calc(100% - 10rpx);
/* 视需要调整 */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.target {
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 80rpx;
font-size: 40rpx;
color: skyblue;
}
</style>

View File

@ -1,5 +1,5 @@
// 全局请求封装
const base_url = 'https://www.focusnu.com/nursing-unit'
export const base_url = 'https://www.focusnu.com/nursing-unit'
// 请求超出时间
const timeout = 5000

BIN
static/index/chahao.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/index/dingwei.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
static/index/fangda.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/index/left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/index/norelmap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
static/index/three/0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

BIN
static/index/three/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 KiB

BIN
static/index/three/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

BIN
static/index/tuding.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

BIN
static/index/workjoin/x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
static/index/zhizhao.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1 @@
.container[data-v-a282c316]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative;box-shadow:.0625rem .0625rem .125rem rgba(0,0,0,.1)}.container .white-content[data-v-a282c316]{width:90%;margin-left:5%;margin-top:.9375rem;border-radius:1.09375rem;background-color:#f5fbfe}.container .white-content .content-title[data-v-a282c316]{display:flex;height:3.125rem;position:relative}.container .white-content .content-title .content-weight[data-v-a282c316]{font-weight:600;margin-left:2.1875rem;margin-top:.625rem}.container .white-content .content-title .content-img[data-v-a282c316]{position:absolute;right:0;top:0;width:12.5rem;height:100%}.container .white-photo[data-v-a282c316]{width:90%;margin-left:5%;height:9.375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;align-items:center;display:flex}.container .white-photo .photo[data-v-a282c316]{width:9.375rem;height:6.25rem}.container .white-message[data-v-a282c316]{width:90%;margin-left:5%;margin-top:.9375rem;margin-bottom:.9375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;display:flex;flex-direction:column}.container .white-message .message-title[data-v-a282c316]{width:100%;height:3.125rem;align-items:center;display:flex}.container .white-message .message-title .shu[data-v-a282c316]{width:.3125rem;height:.9375rem;background-color:#0097ff;border-radius:.3125rem;margin:0 .625rem 0 .9375rem}.container .white-message .message-title .message-weight[data-v-a282c316]{font-size:.9375rem}.container .white-message .one[data-v-a282c316]{width:90%;margin-left:5%;border-bottom:.03125rem solid #d7d7d7;height:2.8125rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:.3125rem}.container .white-message .one .one-left[data-v-a282c316]{margin-left:.3125rem}.container .white-message .one .one-right[data-v-a282c316]{margin-right:.3125rem;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:9.375rem}.photo-left .photo-weight[data-v-a282c316]{font-size:.8125rem;font-weight:600}.photo-left .photo-font[data-v-a282c316]{font-size:.71875rem;margin-top:.3125rem}.gray-font[data-v-a282c316]{padding:.9375rem 1.875rem;color:#999}.finish-button[data-v-a282c316]{display:flex;justify-content:center;align-items:center;width:70%;height:3.125rem;margin:0 auto;margin-bottom:2.5rem;color:#fff;background:linear-gradient(to right,#00c9ff,#0076ff);border-radius:1.5625rem;font-size:1.09375rem}

View File

@ -0,0 +1 @@
import"./index-BWFbK6MW.js";import{r as o}from"./index.DHEE3adT.js";function r(r){return o({url:"/api/orgApplyInfo/save",method:"post",data:r})}function t(r){return o({url:`/api/orgApplyInfo/queryAuditInfo?tel=${r}`,method:"get"})}export{r as c,t as g};

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@ -0,0 +1 @@
.callback-container[data-v-2e590b37]{padding:24px}.avatar[data-v-2e590b37]{width:80px;height:80px;border-radius:40px;margin-top:12px}.login-container[data-v-2e590b37]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative;justify-content:center;align-items:center}.array-father[data-v-2e590b37]{width:33%;position:relative}.botton-view[data-v-2e590b37]{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-2e590b37]{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.botton-view .bottom-button-target[data-v-2e590b37]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#2a85eb}.botton-view .blue-heng[data-v-2e590b37]{height:.1875rem;width:4.6875rem;background-color:#2a85eb;position:absolute;bottom:1.71875rem;left:50%;transform:translate(-50%)}.imge[data-v-2e590b37]{width:7.5rem;height:7.5rem;margin-bottom:1.5625rem}.font[data-v-2e590b37]{font-weight:600;font-size:1.09375rem}

View File

@ -1 +0,0 @@
.callback-container[data-v-812fd514]{padding:24px}.avatar[data-v-812fd514]{width:80px;height:80px;border-radius:40px;margin-top:12px}.login-container[data-v-812fd514]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.array-father[data-v-812fd514]{width:33%;position:relative}.botton-view[data-v-812fd514]{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-812fd514]{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.botton-view .bottom-button-target[data-v-812fd514]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;color:#2a85eb}.botton-view .blue-heng[data-v-812fd514]{height:.1875rem;width:4.6875rem;background-color:#2a85eb;position:absolute;bottom:1.71875rem;left:50%;transform:translate(-50%)}

View File

@ -0,0 +1 @@
.container[data-v-6ebcdcae]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative;box-shadow:.0625rem .0625rem .125rem rgba(0,0,0,.1)}.container .white-content[data-v-6ebcdcae]{width:90%;margin-left:5%;margin-top:.9375rem;border-radius:1.09375rem;background-color:#f5fbfe}.container .white-content .content-title[data-v-6ebcdcae]{display:flex;height:3.125rem;position:relative}.container .white-content .content-title .content-weight[data-v-6ebcdcae]{font-weight:600;margin-left:1.25rem;margin-top:.625rem}.container .white-content .content-title .content-img[data-v-6ebcdcae]{position:absolute;right:0;top:0;width:12.5rem;height:100%}.container .white-photo[data-v-6ebcdcae]{width:90%;margin-left:5%;height:9.375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;align-items:center;display:flex}.container .white-photo .photo[data-v-6ebcdcae]{width:9.375rem;height:6.25rem}.container .white-message[data-v-6ebcdcae]{width:90%;margin-left:5%;margin-top:.9375rem;margin-bottom:.9375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;display:flex;flex-direction:column}.container .white-message .message-title[data-v-6ebcdcae]{width:100%;height:3.125rem;align-items:center;display:flex}.container .white-message .message-title .shu[data-v-6ebcdcae]{width:.3125rem;height:.9375rem;background-color:#0097ff;border-radius:.3125rem;margin:0 .625rem 0 .9375rem}.container .white-message .message-title .message-weight[data-v-6ebcdcae]{font-size:.9375rem}.container .white-message .one[data-v-6ebcdcae]{width:90%;margin-left:5%;border-bottom:.03125rem solid #d7d7d7;height:2.8125rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:.3125rem}.container .white-message .one .one-left[data-v-6ebcdcae]{margin-left:.3125rem}.container .white-message .one .one-right[data-v-6ebcdcae]{margin-right:.3125rem;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:9.375rem}.photo-left .photo-weight[data-v-6ebcdcae]{font-size:.8125rem;font-weight:600}.photo-left .photo-font[data-v-6ebcdcae]{font-size:.71875rem;margin-top:.3125rem}.gray-font[data-v-6ebcdcae]{padding:.9375rem 1.875rem;color:#999}.finish-button[data-v-6ebcdcae]{display:flex;justify-content:center;align-items:center;width:45%;height:3.125rem;margin:0 auto;margin-bottom:2.5rem;color:#fff;background:linear-gradient(to right,#00c9ff,#0076ff);border-radius:1.5625rem;font-size:1.09375rem}.gray-text[data-v-6ebcdcae]{margin:.3125rem 0}

View File

@ -1 +0,0 @@
.login-container[data-v-f1b5ebad]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-f1b5ebad]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-f1b5ebad]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-f1b5ebad]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-f1b5ebad]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-f1b5ebad]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-f1b5ebad]{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-f1b5ebad],.login-container .under-container .radio-circle-target[data-v-f1b5ebad]{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-f1b5ebad]: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-f1b5ebad]{margin-top:1.5625rem;margin-bottom:.625rem;font-size:.78125rem;font-weight:500;width:100%}.under-container-title .code-title[data-v-f1b5ebad]{margin-left:2.5rem;font-size:1.09375rem;color:#000;font-weight:500;margin-bottom:.625rem}.under-container-title .code-number[data-v-f1b5ebad]{margin-left:2.5rem;font-size:.875rem;margin-bottom:.625rem}.captcha-container[data-v-f1b5ebad]{display:flex;flex-direction:column;align-items:center;margin-top:.625rem}.captcha-box[data-v-f1b5ebad]{display:flex;justify-content:space-between;margin-bottom:.625rem}.captcha-item[data-v-f1b5ebad]{display:flex;justify-content:center;align-items:center}.captcha-input[data-v-f1b5ebad]{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-f1b5ebad]:focus{border-color:#00c9ff}.right-blue[data-v-f1b5ebad]{color:#0083ff;margin-left:1.875rem}.right-white[data-v-f1b5ebad]{color:#c2c6d3;margin-left:1.875rem}.right-black[data-v-f1b5ebad]{margin-right:2.5rem;color:#000}.under-view[data-v-f1b5ebad]{width:100%;margin-top:.3125rem;display:flex;justify-content:space-between}.overlay[data-v-f1b5ebad]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:998}.modal[data-v-f1b5ebad]{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-f1b5ebad]{font-size:1rem;font-weight:700;margin:1.5625rem 0 .9375rem}.modal .model-p[data-v-f1b5ebad]{padding:0 1.5625rem;width:100%;font-size:.9375rem}.modal .model-down[data-v-f1b5ebad]{display:flex;width:100%;justify-content:space-between;padding:0 1.5625rem;margin-top:1.25rem}.modal .model-down .model-white[data-v-f1b5ebad]{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-f1b5ebad]{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-f1b5ebad],.fade-leave-active[data-v-f1b5ebad]{transition:opacity .3s}.fade-enter-from[data-v-f1b5ebad],.fade-leave-to[data-v-f1b5ebad]{opacity:0}.fade-enter-to[data-v-f1b5ebad],.fade-leave-from[data-v-f1b5ebad]{opacity:1}.slide-up-enter-active[data-v-f1b5ebad],.slide-up-leave-active[data-v-f1b5ebad]{transition:transform .3s}.slide-up-enter-from[data-v-f1b5ebad],.slide-up-leave-to[data-v-f1b5ebad]{transform:translateY(100%)}.slide-up-enter-to[data-v-f1b5ebad],.slide-up-leave-from[data-v-f1b5ebad]{transform:translateY(0)}.text-view[data-v-f1b5ebad]{margin-bottom:.625rem}

View File

@ -0,0 +1 @@
.login-container[data-v-7d2aa252]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-7d2aa252]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-7d2aa252]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-7d2aa252]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-7d2aa252]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-7d2aa252]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-7d2aa252]{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-7d2aa252],.login-container .under-container .radio-circle-target[data-v-7d2aa252]{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-7d2aa252]: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-7d2aa252]{margin-top:1.5625rem;margin-bottom:.625rem;font-size:.78125rem;font-weight:500;width:100%}.under-container-title .code-title[data-v-7d2aa252]{margin-left:2.5rem;font-size:1.09375rem;color:#000;font-weight:500;margin-bottom:.625rem}.under-container-title .code-number[data-v-7d2aa252]{margin-left:2.5rem;font-size:.875rem;margin-bottom:.625rem}.captcha-container[data-v-7d2aa252]{display:flex;flex-direction:column;align-items:center;margin-top:.625rem}.captcha-box[data-v-7d2aa252]{display:flex;justify-content:space-between;margin-bottom:.625rem}.captcha-item[data-v-7d2aa252]{display:flex;justify-content:center;align-items:center}.captcha-input[data-v-7d2aa252]{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-7d2aa252]:focus{border-color:#00c9ff}.right-blue[data-v-7d2aa252]{color:#0083ff;margin-left:1.875rem}.right-white[data-v-7d2aa252]{color:#c2c6d3;margin-left:1.875rem}.right-black[data-v-7d2aa252]{margin-right:2.5rem;color:#000}.under-view[data-v-7d2aa252]{width:100%;margin-top:.3125rem;display:flex;justify-content:space-between}.overlay[data-v-7d2aa252]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:998}.modal[data-v-7d2aa252]{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-7d2aa252]{font-size:1rem;font-weight:700;margin:1.5625rem 0 .9375rem}.modal .model-p[data-v-7d2aa252]{padding:0 1.5625rem;width:100%;font-size:.9375rem}.modal .model-down[data-v-7d2aa252]{display:flex;width:100%;justify-content:space-between;padding:0 1.5625rem;margin-top:1.25rem}.modal .model-down .model-white[data-v-7d2aa252]{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-7d2aa252]{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-7d2aa252],.fade-leave-active[data-v-7d2aa252]{transition:opacity .3s}.fade-enter-from[data-v-7d2aa252],.fade-leave-to[data-v-7d2aa252]{opacity:0}.fade-enter-to[data-v-7d2aa252],.fade-leave-from[data-v-7d2aa252]{opacity:1}.slide-up-enter-active[data-v-7d2aa252],.slide-up-leave-active[data-v-7d2aa252]{transition:transform .3s}.slide-up-enter-from[data-v-7d2aa252],.slide-up-leave-to[data-v-7d2aa252]{transform:translateY(100%)}.slide-up-enter-to[data-v-7d2aa252],.slide-up-leave-from[data-v-7d2aa252]{transform:translateY(0)}.text-view[data-v-7d2aa252]{margin-bottom:.625rem}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.login-container[data-v-f7f4cc3c]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-f7f4cc3c]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-f7f4cc3c]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-f7f4cc3c]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-f7f4cc3c]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-f7f4cc3c]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-f7f4cc3c]{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-f7f4cc3c],.login-container .under-container .radio-circle-target[data-v-f7f4cc3c]{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-f7f4cc3c]: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-f7f4cc3c]{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-f7f4cc3c]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-f7f4cc3c]{color:#5a607f;margin-top:.09375rem}.button-blue[data-v-f7f4cc3c]{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-f7f4cc3c]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:998}.modal[data-v-f7f4cc3c]{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-f7f4cc3c]{font-size:1rem;font-weight:700;margin:1.5625rem 0}.modal .model-p[data-v-f7f4cc3c]{padding:0 1.5625rem;width:100%;font-size:.9375rem}.modal .model-down[data-v-f7f4cc3c]{display:flex;width:100%;justify-content:space-between;padding:0 1.5625rem;margin-top:1.25rem}.modal .model-down .model-white[data-v-f7f4cc3c]{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-f7f4cc3c]{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-f7f4cc3c],.fade-leave-active[data-v-f7f4cc3c]{transition:opacity .3s}.fade-enter-from[data-v-f7f4cc3c],.fade-leave-to[data-v-f7f4cc3c]{opacity:0}.fade-enter-to[data-v-f7f4cc3c],.fade-leave-from[data-v-f7f4cc3c]{opacity:1}.slide-up-enter-active[data-v-f7f4cc3c],.slide-up-leave-active[data-v-f7f4cc3c]{transition:transform .3s}.slide-up-enter-from[data-v-f7f4cc3c],.slide-up-leave-to[data-v-f7f4cc3c]{transform:translateY(100%)}.slide-up-enter-to[data-v-f7f4cc3c],.slide-up-leave-from[data-v-f7f4cc3c]{transform:translateY(0)}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.login-container[data-v-71ce103a]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-71ce103a]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-71ce103a]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-71ce103a]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-71ce103a]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-71ce103a]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-71ce103a]{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-71ce103a],.login-container .under-container .radio-circle-target[data-v-71ce103a]{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-71ce103a]: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-71ce103a]{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-71ce103a]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-71ce103a]{color:#5a607f;margin-top:.09375rem}.button-blue[data-v-71ce103a]{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-71ce103a]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:998}.modal[data-v-71ce103a]{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-71ce103a]{font-size:1rem;font-weight:700;margin:1.5625rem 0}.modal .model-p[data-v-71ce103a]{padding:0 1.5625rem;width:100%;font-size:.9375rem}.modal .model-down[data-v-71ce103a]{display:flex;width:100%;justify-content:space-between;padding:0 1.5625rem;margin-top:1.25rem}.modal .model-down .model-white[data-v-71ce103a]{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-71ce103a]{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-71ce103a],.fade-leave-active[data-v-71ce103a]{transition:opacity .3s}.fade-enter-from[data-v-71ce103a],.fade-leave-to[data-v-71ce103a]{opacity:0}.fade-enter-to[data-v-71ce103a],.fade-leave-from[data-v-71ce103a]{opacity:1}.slide-up-enter-active[data-v-71ce103a],.slide-up-leave-active[data-v-71ce103a]{transition:transform .3s}.slide-up-enter-from[data-v-71ce103a],.slide-up-leave-to[data-v-71ce103a]{transform:translateY(100%)}.slide-up-enter-to[data-v-71ce103a],.slide-up-leave-from[data-v-71ce103a]{transform:translateY(0)}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.container[data-v-3f25cbea]{display:flex;flex-direction:column;height:100vh;position:relative}.search-bar[data-v-3f25cbea]{position:absolute;top:0;left:0;width:100%;height:3.75rem;display:flex;justify-content:space-between;align-items:center;z-index:3}.search-bar uni-input[data-v-3f25cbea]{flex:1;padding:6px;border:1px solid #ccc;border-radius:4px}.map[data-v-3f25cbea]{flex:1;display:flex;justify-content:center;align-items:center}.map .map-dian[data-v-3f25cbea]{width:1.875rem;height:1.875rem;border-radius:50%;z-index:2;margin-bottom:2.03125rem}.goback[data-v-3f25cbea]{position:fixed;bottom:43vh;right:1.25rem;width:3.125rem;height:3.125rem;background-color:#fff;border-radius:.625rem;display:flex;justify-content:center;align-items:center;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1)}.goback .goback-imge[data-v-3f25cbea]{width:1.71875rem;height:1.71875rem}.result-list[data-v-3f25cbea]{position:fixed;bottom:0;left:0;height:40vh;width:94%;margin-left:3%;border-top-right-radius:1.09375rem;border-top-left-radius:1.09375rem;background:#fff;display:flex;flex-direction:column;align-items:center}.poi-item[data-v-3f25cbea]{margin-top:.9375rem;height:calc(40vh - 3.4375rem);width:100%;overflow-y:auto}.poi-name[data-v-3f25cbea]{font-weight:700}.poi-address[data-v-3f25cbea]{font-size:12px;color:#666}.info[data-v-3f25cbea]{padding:16px;background:#fff;text-align:center;color:#999}.search-bar-left[data-v-3f25cbea]{margin-left:.9375rem;font-size:1rem;font-weight:600;display:flex;align-items:center}.search-bar-right[data-v-3f25cbea]{margin-right:.9375rem;width:3.75rem;height:1.875rem;display:flex;justify-content:center;align-items:center;border-radius:.625rem;color:#fff;background-color:#01a8ff}.search-bar-right-bad[data-v-3f25cbea]{margin-right:.9375rem;width:3.75rem;height:1.875rem;display:flex;justify-content:center;align-items:center;border-radius:.625rem;color:#eee;background-color:#fff}.sousuo-bgc[data-v-3f25cbea]{width:90%;background-color:#eee;border-radius:.46875rem;height:2.5rem;display:flex;justify-content:center;align-items:center;margin-top:.9375rem;color:#999}.sousuo-bgc .sousuo-imge[data-v-3f25cbea]{width:1.5625rem;height:1.5625rem;margin-right:.625rem}.input-father[data-v-3f25cbea]{width:100%;display:flex;align-items:center;margin-top:.9375rem}.input-father .input[data-v-3f25cbea]{margin:0 5%;padding-left:5%;width:70%;background-color:#eee;border-radius:.46875rem;height:2.34375rem;color:#999}.input-father .input-button[data-v-3f25cbea]{font-size:.78125rem}.left-imge[data-v-3f25cbea]{width:.9375rem;height:.9375rem}.poi-card[data-v-3f25cbea]{width:100%;height:4.6875rem;display:flex;flex-direction:column;justify-content:center;padding:0 1.5625rem;position:relative}.poi-card .card-title[data-v-3f25cbea]{font-size:.875rem;margin-bottom:.625rem}.poi-card .card-text[data-v-3f25cbea]{font-size:.78125rem;color:#a7a7a7;display:block;width:calc(100% - .3125rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target[data-v-3f25cbea]{position:absolute;top:50%;transform:translateY(-50%);right:2.5rem;font-size:1.25rem;color:#87ceeb}

View File

@ -0,0 +1 @@
import{z as e,a5 as t,a6 as a,s,a7 as o,f as i,U as n,a8 as c}from"./index-BWFbK6MW.js";const r="https://www.focusnu.com/nursing-unit",u=u=>{let l=u.url,d=u.method||"get",h=u.data||{},m={"X-Access-Token":e("token")||"","Content-Type":"application/json;charset=UTF-8",Authorization:"Basic c2FiZXI6c2FiZXJfc2VjcmV0",...u.header};return new Promise(((e,u)=>{t({url:r+l,method:d,header:m,data:h,timeout:5e3,success(t){const n=t;if(200==n.statusCode)e(n.data);else switch(a(),n.statusCode){case 401:o({title:"提示",content:"请登录",showCancel:!1,success(){setTimeout((()=>{i({url:"/pages/login/index"})}),1e3)}});break;case 404:s({title:"请求地址不存在...",duration:2e3});break;default:s({title:"请重试...",duration:2e3})}},fail(e){console.log(e),-1!==e.errMsg.indexOf("request:fail")?s({title:"网络异常",icon:"error",duration:2e3}):s({title:"未知异常",duration:2e3}),u(e)},complete(){n(),c()}})})).catch((()=>{}))};export{r as b,u as r};

View File

@ -1 +0,0 @@
import{y as e,A as t,B as s,s as o,C as a,f as n,D as r,E as i}from"./index-C_s0oxh5.js";const c=c=>{let u=c.url,d=c.method||"get",l=c.data||{},h={"X-Access-Token":e("token")||"","Content-Type":"application/json;charset=UTF-8",Authorization:"Basic c2FiZXI6c2FiZXJfc2VjcmV0",...c.header};return new Promise(((e,c)=>{t({url:"https://www.focusnu.com/nursing-unit"+u,method:d,header:h,data:l,timeout:5e3,success(t){const r=t;if(200==r.statusCode)e(r.data);else switch(s(),r.statusCode){case 401:a({title:"提示",content:"请登录",showCancel:!1,success(){setTimeout((()=>{n({url:"/pages/login/index"})}),1e3)}});break;case 404:o({title:"请求地址不存在...",duration:2e3});break;default:o({title:"请重试...",duration:2e3})}},fail(e){console.log(e),-1!==e.errMsg.indexOf("request:fail")?o({title:"网络异常",icon:"error",duration:2e3}):o({title:"未知异常",duration:2e3}),c(e)},complete(){r(),i()}})})).catch((()=>{}))};function u(e){return c({url:"/sys/getHkCode",method:"post",data:e})}function d(e){return c({url:"/sys/smsCode",method:"post",data:e})}function l(e){return c({url:"/sys/checkPhoneCode",method:"post",data:e})}export{l as c,u as g,d as s};

View File

@ -0,0 +1 @@
import"./index-BWFbK6MW.js";import{r as t}from"./index.DHEE3adT.js";function s(s){return t({url:"/sys/getHkCode",method:"post",data:s})}function o(s){return t({url:"/sys/smsCode",method:"post",data:s})}function e(s){return t({url:"/sys/checkPhoneCode",method:"post",data:s})}export{e as c,s as g,o as s};

View File

@ -0,0 +1 @@
.container[data-v-36cd4fe8]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative;box-shadow:.0625rem .0625rem .125rem rgba(0,0,0,.1)}.container .white-content[data-v-36cd4fe8]{width:90%;margin-left:5%;border-radius:1.09375rem;background-color:#f5fbfe}.container .white-content .content-title[data-v-36cd4fe8]{display:flex;height:3.125rem;position:relative}.container .white-content .content-title .content-weight[data-v-36cd4fe8]{font-weight:600;margin-left:2.1875rem;margin-top:.625rem}.container .white-content .content-title .content-img[data-v-36cd4fe8]{position:absolute;right:0;top:0;width:12.5rem;height:100%}.container .white-photo[data-v-36cd4fe8]{width:90%;margin-left:5%;height:9.375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;align-items:center;display:flex}.container .white-photo .photo[data-v-36cd4fe8]{width:9.375rem;height:6.25rem}.container .white-message[data-v-36cd4fe8]{width:90%;margin-left:5%;margin-top:.9375rem;margin-bottom:.9375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;display:flex;flex-direction:column}.container .white-message .message-title[data-v-36cd4fe8]{width:100%;height:3.125rem;align-items:center;display:flex}.container .white-message .message-title .shu[data-v-36cd4fe8]{width:.3125rem;height:.9375rem;background-color:#0097ff;border-radius:.3125rem;margin:0 .625rem 0 .9375rem}.container .white-message .message-title .message-weight[data-v-36cd4fe8]{font-size:.9375rem}.container .white-message .one[data-v-36cd4fe8]{width:90%;margin-left:5%;border-bottom:.03125rem solid #d7d7d7;height:2.8125rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:.3125rem}.container .white-message .one .one-left[data-v-36cd4fe8]{margin-left:.3125rem}.container .white-message .one .one-right[data-v-36cd4fe8]{margin-right:.3125rem;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:9.375rem}.photo-left .photo-weight[data-v-36cd4fe8]{font-size:.8125rem;font-weight:600}.photo-left .photo-font[data-v-36cd4fe8]{font-size:.71875rem;margin-top:.3125rem}.gray-font[data-v-36cd4fe8]{padding:.9375rem 1.875rem;color:#999}.finish-button[data-v-36cd4fe8]{display:flex;justify-content:center;align-items:center;width:45%;height:3.125rem;margin:0 auto;margin-bottom:2.5rem;color:#fff;background:linear-gradient(to right,#00c9ff,#0076ff);border-radius:1.5625rem;font-size:1.09375rem}.title-back[data-v-36cd4fe8]{width:100%;height:3.125rem;display:flex;justify-content:space-between;align-items:center}.left-father[data-v-36cd4fe8]{display:flex;align-items:center}.left-father .back-img[data-v-36cd4fe8]{width:1.5625rem;height:1.5625rem;margin-left:1.25rem;margin-right:.15625rem}.rightStautes[data-v-36cd4fe8]{width:5.3125rem;height:1.9375rem;border-radius:1.875rem;background-color:#ff913a;display:flex;justify-content:center;align-items:center;color:#fff;margin-right:.9375rem}.rightStautesred[data-v-36cd4fe8]{width:5.3125rem;height:1.9375rem;border-radius:1.875rem;background:linear-gradient(to right,#ff4a76,#ff553a);display:flex;justify-content:center;align-items:center;color:#fff;margin-right:.9375rem}.rightStautesblue[data-v-36cd4fe8]{width:5.3125rem;height:1.9375rem;border-radius:1.875rem;background:linear-gradient(to right,#00c9ff,#0076ff);display:flex;justify-content:center;align-items:center;color:#fff;margin-right:.9375rem}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1 @@
import{r as e,D as s,Q as a,t,a as l,w as o,i as r,o as c,b as i,m as n,v as u,F as d,u as f,O as m,R as p,P as _,z as h,s as g,U as v,f as y,A as x,g as b,x as k}from"./index-BWFbK6MW.js";import{_ as j}from"./u-modal.6_il0Lfl.js";import{r as w}from"./uni-app.es.Bupuy4O7.js";import{_ as C}from"./bian.L32B-imx.js";import{_ as N}from"./takephoto.D2GFN-q_.js";import{b as O}from"./index.DHEE3adT.js";import{c as J}from"./addjigou.FgrbFSi3.js";import{_ as P}from"./_plugin-vue_export-helper.BCo6x5W8.js";const S=P({__name:"card",setup(P){const S=e(!1),A=e(""),z=["企业名称","注册地址","信用代码","法人"],D=s(["","","",""]),L=e("");function T(){m({count:1,sourceType:["camera"],success:e=>{var s;L.value=e.tempFilePaths[0],s=L.value,p(),_({url:`${O}/api/ocr/businessLicense`,filePath:s,name:"file",header:{"X-Access-Token":h("token")||""},formData:{},success:e=>{if(!JSON.parse(e.data).success)return g({title:"识别失败",icon:"error"}),void v();console.log("营业执照",JSON.parse(JSON.parse(e.data).result.data).data);let a=JSON.parse(JSON.parse(e.data).result.data).data;D[0]=a.companyName,D[1]=a.businessAddress,D[2]=a.creditCode,D[3]=a.legalPerson,V.value=s,R(s),v()},fail:e=>{g({title:"上传出错",icon:"error"}),v()}})},fail:e=>{console.error("拍照失败:",e)}})}const V=e("");e("");const F=e(""),R=e=>{_({url:`${O}/sys/common/upload`,filePath:e,name:"file",header:{"X-Access-Token":h("token")||""},formData:{biz:"temp"},success:e=>{F.value=JSON.parse(e.data).message},fail:e=>{g({title:"上传出错",icon:"error"}),v()}})},U=()=>{if(D.every((e=>""!==e))){let e={id:h("specicalid")||"",tel:h("tel"),comName:D[0],comRegisterAddress:D[1],comCreditCode:D[2],comLegalPerson:D[3],comBusinessLicense:F.value};J(e).then((e=>{e.success?(e.message,y({url:"/pages/addjigou/where"})):g({title:e.message,icon:"error"})}))}else g({title:"请完善信息",icon:"error"})},X=()=>{x()};return(e,s)=>{const m=w(a("u-modal"),j),p=r,_=b;return c(),t("div",{class:"container"},[l(m,{modelValue:S.value,"onUpdate:modelValue":s[0]||(s[0]=e=>S.value=e),content:A.value},null,8,["modelValue","content"]),l(p,{class:"white-content"},{default:o((()=>[l(p,{class:"content-title"},{default:o((()=>[l(p,{class:"content-weight"},{default:o((()=>[i("营业执照上传")])),_:1}),l(_,{class:"content-img",src:C})])),_:1}),l(p,{class:"white-photo",onClick:T},{default:o((()=>[l(p,{class:"photo-left"},{default:o((()=>[l(p,{class:"photo-weight"},{default:o((()=>[i("营业执照")])),_:1}),l(p,{class:"photo-font"},{default:o((()=>[i("请上传营业执照")])),_:1})])),_:1}),l(p,{style:{position:"relative"}},{default:o((()=>[l(_,{class:"photo",src:V.value?V.value:"/static/index/zhizhao.png"},null,8,["src"]),n(l(_,{style:{position:"absolute",top:"50%",left:"50%",width:"70rpx",height:"60rpx",transform:"translate(-50%,-50%)"},src:N},null,512),[[u,!V.value]])])),_:1})])),_:1}),l(p,{class:"white-message"},{default:o((()=>[l(p,{class:"message-title"},{default:o((()=>[l(p,{class:"shu"}),l(p,{class:"message-weight"},{default:o((()=>[i(" 确认企业信息 ")])),_:1})])),_:1}),l(p,{style:{"margin-bottom":"20rpx"}},{default:o((()=>[(c(),t(d,null,f(z,((e,s)=>l(p,{key:s,class:"one",onClick:e=>{var a;(a=D[s])&&(A.value=a,S.value=!0)}},{default:o((()=>[l(p,{class:"one-left"},{default:o((()=>[i(k(e),1)])),_:2},1024),l(p,{class:"one-right"},{default:o((()=>[i(k(D[s]?D[s]:"自动获取"),1)])),_:2},1024)])),_:2},1032,["onClick"]))),64))])),_:1})])),_:1})])),_:1}),l(p,{class:"gray-font"},{default:o((()=>[l(p,{class:""},{default:o((()=>[i("注意事项:")])),_:1}),l(p,{class:"gray-text"},{default:o((()=>[i(" 1. 运用企业、个体工商户、政府、事业单位、学校、组织等,账号归属企业。 ")])),_:1}),l(p,{class:"gray-text"},{default:o((()=>[i(" 2.一个企业信息主体默认可认证1个账号。 ")])),_:1}),l(p,{class:"gray-text"},{default:o((()=>[i(" 3.所有上传信息均会被妥善保管,不会用于其他商业用途或传输给其他第三方。 ")])),_:1})])),_:1}),l(p,{style:{display:"flex",width:"100%"}},{default:o((()=>[l(p,{class:"finish-button",onClick:X},{default:o((()=>[i(" 上一步 ")])),_:1}),l(p,{class:"finish-button",onClick:U},{default:o((()=>[i(" 下一步 ")])),_:1})])),_:1})])}}},[["__scopeId","data-v-6ebcdcae"]]);export{S as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{r as e,D as l,z as a,V as o,Q as s,t,a as r,w as d,i as n,o as u,b as i,x as g,G as c,W as p,s as m,A as f,f as _,g as h,I as y}from"./index-BWFbK6MW.js";import{_ as V}from"./u-modal.6_il0Lfl.js";import{a as v,r as L}from"./uni-app.es.Bupuy4O7.js";import{c as x}from"./addjigou.FgrbFSi3.js";import{_ as w}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./index.DHEE3adT.js";const b=w({__name:"where",setup(w){const b=e(!1),j=e(""),C=e(""),A=l({orgLeader:"",orgLeaderPhone:"",orgBuildingNumber:"",orgPropertyType:"",orgBuildingArea:"",orgAddress:"",orgCoordinateLo:"",orgCoordinateLa:"",id:a("specicalid")||"",tel:a("tel")});e(""),e(""),e("");const B=()=>{A.orgLeader&&A.orgLeaderPhone&&A.orgBuildingNumber&&A.orgPropertyType&&A.orgBuildingArea&&A.orgAddress&&A.orgCoordinateLo&&A.orgCoordinateLa?x(A).then((e=>{e.success?"保存成功!"==e.message?(c("specicalid",""),p({url:"/pages/login/workjoin?type=1"})):(c("specicalid",e.result.id),p({url:"/pages/login/workjoin?type=1"})):m({title:e.message,icon:"error"})})):m({title:"请完善信息",icon:"error"})},P=()=>{f()},k=()=>{_({url:"/pages/map/index"})};return v((()=>{const e=a("dingwei");e&&(console.log("data",e),C.value=e.name,A.orgAddress=e.name,A.orgCoordinateLo=e.lng,A.orgCoordinateLa=e.lat,o("dingwei"))})),(e,l)=>{const a=L(s("u-modal"),V),o=n,c=h,p=y;return u(),t("div",{class:"container"},[r(a,{modelValue:b.value,"onUpdate:modelValue":l[0]||(l[0]=e=>b.value=e),content:j.value},null,8,["modelValue","content"]),r(o,{class:"white-content"},{default:d((()=>[r(o,{class:"white-message"},{default:d((()=>[r(o,null,{default:d((()=>[r(o,{class:"one"},{default:d((()=>[r(o,{class:"one-left"},{default:d((()=>[i("机构位置")])),_:1}),r(o,{class:"special"},{default:d((()=>[r(o,{class:"one-right",style:{width:"170rpx","justify-content":"flex-start"},onClick:l[1]||(l[1]=e=>{var l;(l=C.value)&&(j.value=l,b.value=!0)})},{default:d((()=>[i(g(C.value?C.value:"请选择机构位置"),1)])),_:1}),r(c,{class:"one-img",src:"/wechat/thd/assets/norelmap-57ydYQMt.png",onClick:k})])),_:1})])),_:1})])),_:1}),r(o,null,{default:d((()=>[r(o,{class:"one"},{default:d((()=>[r(o,{class:"one-left"},{default:d((()=>[i("机构负责人")])),_:1}),r(p,{class:"one-right",type:"text",placeholder:"请输入机构负责人姓名",modelValue:A.orgLeader,"onUpdate:modelValue":l[2]||(l[2]=e=>A.orgLeader=e)},null,8,["modelValue"])])),_:1})])),_:1}),r(o,null,{default:d((()=>[r(o,{class:"one"},{default:d((()=>[r(o,{class:"one-left"},{default:d((()=>[i("机构负责人电话")])),_:1}),r(p,{class:"one-right",type:"number",placeholder:"请输入机构负责人电话",modelValue:A.orgLeaderPhone,"onUpdate:modelValue":l[3]||(l[3]=e=>A.orgLeaderPhone=e)},null,8,["modelValue"])])),_:1})])),_:1}),r(o,null,{default:d((()=>[r(o,{class:"one"},{default:d((()=>[r(o,{class:"one-left"},{default:d((()=>[i("楼宇牌号")])),_:1}),r(p,{class:"one-right",type:"text",placeholder:"请输入楼宇牌号",modelValue:A.orgBuildingNumber,"onUpdate:modelValue":l[4]||(l[4]=e=>A.orgBuildingNumber=e)},null,8,["modelValue"])])),_:1})])),_:1}),r(o,null,{default:d((()=>[r(o,{class:"one"},{default:d((()=>[r(o,{class:"one-left"},{default:d((()=>[i("房屋性质")])),_:1}),r(p,{class:"one-right",type:"text",placeholder:"请输入房屋性质",modelValue:A.orgPropertyType,"onUpdate:modelValue":l[5]||(l[5]=e=>A.orgPropertyType=e)},null,8,["modelValue"])])),_:1})])),_:1}),r(o,{style:{"margin-bottom":"20rpx"}},{default:d((()=>[r(o,{class:"one",style:{position:"relative"}},{default:d((()=>[r(o,{class:"one-left"},{default:d((()=>[i("建筑面积")])),_:1}),r(p,{class:"one-right",type:"number",placeholder:"请输入建筑面积",modelValue:A.orgBuildingArea,"onUpdate:modelValue":l[6]||(l[6]=e=>A.orgBuildingArea=e)},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})])),_:1}),r(o,{style:{display:"flex",width:"100%"}},{default:d((()=>[r(o,{class:"finish-button",onClick:P},{default:d((()=>[i(" 上一步 ")])),_:1}),r(o,{class:"finish-button",onClick:B},{default:d((()=>[i(" 确认并提交 ")])),_:1})])),_:1})])}}},[["__scopeId","data-v-6077651d"]]);export{b as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{r as a,D as t,Q as e,t as s,a as l,w as o,f as r,i as c,o as i,b as u,m as n,v as d,F as f,u as p,O as m,R as h,P as _,z as v,s as g,U as x,g as y,x as b}from"./index-BWFbK6MW.js";import{_ as k}from"./u-modal.6_il0Lfl.js";import{r as w}from"./uni-app.es.Bupuy4O7.js";import{_ as N}from"./bian.L32B-imx.js";import{_ as O}from"./takephoto.D2GFN-q_.js";import{_ as J}from"./_plugin-vue_export-helper.BCo6x5W8.js";const S=J({__name:"IDcard",setup(J){const S=a(!1),j=a(""),C=["姓名","性别","身份证号码","民族","出生日期","住址","签发机关","有效期限"],D=t(["","","","","","","",""]),I=a("");function P(){m({count:1,sourceType:["camera"],success:a=>{var t;I.value=a.tempFilePaths[0],t=I.value,h(),_({url:`${v("serverUrl")}/api/ocr/idCard`,filePath:t,name:"file",header:{"X-Access-Token":v("token")||""},formData:{},success:a=>{if(!JSON.parse(a.data).success)return g({title:"识别失败",icon:"error"}),void x();if(JSON.parse(JSON.parse(a.data).result.data).data.face){let e=JSON.parse(JSON.parse(a.data).result.data).data.face.data;D[0]=e.name,D[1]=e.sex,D[2]=e.idNumber,D[3]=e.ethnicity,D[4]=e.birthDate,D[5]=e.address,g({title:"识别成功"}),U.value=t,x()}else{let e=JSON.parse(JSON.parse(a.data).result.data).data.back.data;D[6]=e.issueAuthority,D[7]=e.validPeriod,g({title:"识别成功"}),V.value=t,x()}},fail:a=>{g({title:"上传出错",icon:"error"}),x()}})},fail:a=>{console.error("拍照失败:",a)}})}const U=a(""),V=a("");const A=()=>{r({url:"/pages/addoldman/yibao"})};return(a,t)=>{const r=w(e("u-modal"),k),m=c,h=y;return i(),s("div",{class:"container"},[l(r,{modelValue:S.value,"onUpdate:modelValue":t[0]||(t[0]=a=>S.value=a),content:j.value},null,8,["modelValue","content"]),l(m,{class:"white-content"},{default:o((()=>[l(m,{class:"content-title"},{default:o((()=>[l(m,{class:"content-weight"},{default:o((()=>[u("身份证上传")])),_:1}),l(h,{class:"content-img",src:N})])),_:1}),l(m,{class:"white-photo",onClick:P},{default:o((()=>[l(m,{class:"photo-left"},{default:o((()=>[l(m,{class:"photo-weight"},{default:o((()=>[u("人像面")])),_:1}),l(m,{class:"photo-font"},{default:o((()=>[u("请上传身份证人像面")])),_:1})])),_:1}),l(m,{style:{position:"relative"}},{default:o((()=>[l(h,{class:"photo",src:U.value?U.value:"/static/index/IDcard.png"},null,8,["src"]),n(l(h,{style:{position:"absolute",top:"50%",left:"50%",width:"70rpx",height:"60rpx",transform:"translate(-50%,-50%)"},src:O},null,512),[[d,!U.value]])])),_:1})])),_:1}),l(m,{class:"white-photo",style:{"margin-top":"30rpx"},onClick:P},{default:o((()=>[l(m,{class:"photo-left"},{default:o((()=>[l(m,{class:"photo-weight"},{default:o((()=>[u("国徽面")])),_:1}),l(m,{class:"photo-font"},{default:o((()=>[u("请上传身份证国徽面")])),_:1})])),_:1}),l(m,{style:{position:"relative"}},{default:o((()=>[l(h,{class:"photo",src:V.value?V.value:"/static/index/backIDcard.png"},null,8,["src"]),n(l(h,{style:{position:"absolute",top:"50%",left:"50%",width:"70rpx",height:"60rpx",transform:"translate(-50%,-50%)"},src:O},null,512),[[d,!V.value]])])),_:1})])),_:1}),l(m,{class:"white-message"},{default:o((()=>[l(m,{class:"message-title"},{default:o((()=>[l(m,{class:"shu"}),l(m,{class:"message-weight"},{default:o((()=>[u(" 确认户口本本人页信息 ")])),_:1})])),_:1}),l(m,{style:{"margin-bottom":"20rpx"}},{default:o((()=>[(i(),s(f,null,p(C,((a,t)=>l(m,{key:t,class:"one",onClick:a=>{var e;(e=D[t])&&(j.value=e,S.value=!0)}},{default:o((()=>[l(m,{class:"one-left"},{default:o((()=>[u(b(a),1)])),_:2},1024),l(m,{class:"one-right"},{default:o((()=>[u(b(D[t]?D[t]:"自动获取"),1)])),_:2},1024)])),_:2},1032,["onClick"]))),64))])),_:1})])),_:1})])),_:1}),l(m,{class:"gray-font"},{default:o((()=>[l(m,{class:""},{default:o((()=>[u("注意事项:")])),_:1}),l(m,{class:""},{default:o((()=>[u(" 同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。")])),_:1})])),_:1}),l(m,{class:"finish-button",onClick:A},{default:o((()=>[u(" 下一步 ")])),_:1})])}}},[["__scopeId","data-v-a282c316"]]);export{S as default};

View File

@ -0,0 +1 @@
import{a9 as a,r as e,j as t,o as s,c as n,w as i,m as l,v as o,a as r,d as c,b as u,e as d,s as v,A as f,aa as m,ab as p,ac as g,g as h,a2 as _,i as w}from"./index-BWFbK6MW.js";import{_ as y}from"./nu.C7Ggybbs.js";import{_ as k}from"./_plugin-vue_export-helper.BCo6x5W8.js";const b=k(a({__name:"CustomCamera",setup(a){const k=e(),b=e(),j=e(!1);let C,x=null;async function A(){var a;if(null==(a=navigator.mediaDevices)?void 0:a.getUserMedia)try{x=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:"environment"}},audio:!1});const a=k.value;a.srcObject=x,await a.play(),D(),j.value=!0}catch(e){console.error(e),v({title:"无法获取摄像头权限",icon:"none"})}else v({title:"当前浏览器不支持实时相机",icon:"none"})}function D(){if(!j.value)return;const a=k.value,e=b.value,t=e.getContext("2d");a.videoWidth&&a.videoHeight&&(e.width!==window.innerWidth&&(e.width=window.innerWidth,e.height=window.innerHeight),t.drawImage(a,0,0,e.width,e.height)),C=requestAnimationFrame(D)}function M(){const a=b.value.toDataURL("image/jpeg",.9);f(),m("photoTaken",a)}function U(){W(),f()}function W(){cancelAnimationFrame(C),x&&x.getTracks().forEach((a=>a.stop()))}return t(W),(a,e)=>{const t=p,v=g,f=h,m=_,C=w;return s(),n(C,{class:"page"},{default:i((()=>[l(r(t,{ref_key:"video",ref:k,class:"video",playsinline:"","webkit-playsinline":"","x5-playsinline":"",muted:""},null,512),[[o,j.value]]),l(r(v,{ref_key:"canvas",ref:b,class:"canvas"},null,512),[[o,j.value]]),r(f,{class:"overlay",src:y,style:c({opacity:j.value?1:0})},null,8,["style"]),j.value?(s(),n(C,{key:0,class:"btn-bar"},{default:i((()=>[r(m,{class:"btn close",onClick:U},{default:i((()=>[u("关闭")])),_:1}),r(m,{class:"btn shoot",onClick:M})])),_:1})):d("",!0),j.value?d("",!0):(s(),n(C,{key:1,class:"starter"},{default:i((()=>[r(m,{class:"btn start",onClick:A},{default:i((()=>[u("开始拍照")])),_:1})])),_:1}))])),_:1})}}}),[["__scopeId","data-v-768474b2"]]);export{b as default};

View File

@ -1 +0,0 @@
import{a1 as a,r as e,j as t,o as s,c as n,w as i,m as l,v as o,a as r,d as c,b as u,e as d,s as v,a2 as f,a3 as m,a4 as g,a5 as p,g as h,a0 as _,i as w}from"./index-C_s0oxh5.js";import{_ as y}from"./nu.C7Ggybbs.js";import{_ as k}from"./_plugin-vue_export-helper.BCo6x5W8.js";const b=k(a({__name:"CustomCamera",setup(a){const k=e(),b=e(),j=e(!1);let C,x=null;async function D(){var a;if(null==(a=navigator.mediaDevices)?void 0:a.getUserMedia)try{x=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:"environment"}},audio:!1});const a=k.value;a.srcObject=x,await a.play(),M(),j.value=!0}catch(e){console.error(e),v({title:"无法获取摄像头权限",icon:"none"})}else v({title:"当前浏览器不支持实时相机",icon:"none"})}function M(){if(!j.value)return;const a=k.value,e=b.value,t=e.getContext("2d");a.videoWidth&&a.videoHeight&&(e.width!==window.innerWidth&&(e.width=window.innerWidth,e.height=window.innerHeight),t.drawImage(a,0,0,e.width,e.height)),C=requestAnimationFrame(M)}function U(){const a=b.value.toDataURL("image/jpeg",.9);f(),m("photoTaken",a)}function W(){A(),f()}function A(){cancelAnimationFrame(C),x&&x.getTracks().forEach((a=>a.stop()))}return t(A),(a,e)=>{const t=g,v=p,f=h,m=_,C=w;return s(),n(C,{class:"page"},{default:i((()=>[l(r(t,{ref_key:"video",ref:k,class:"video",playsinline:"","webkit-playsinline":"","x5-playsinline":"",muted:""},null,512),[[o,j.value]]),l(r(v,{ref_key:"canvas",ref:b,class:"canvas"},null,512),[[o,j.value]]),r(f,{class:"overlay",src:y,style:c({opacity:j.value?1:0})},null,8,["style"]),j.value?(s(),n(C,{key:0,class:"btn-bar"},{default:i((()=>[r(m,{class:"btn close",onClick:W},{default:i((()=>[u("关闭")])),_:1}),r(m,{class:"btn shoot",onClick:U})])),_:1})):d("",!0),j.value?d("",!0):(s(),n(C,{key:1,class:"starter"},{default:i((()=>[r(m,{class:"btn start",onClick:D},{default:i((()=>[u("开始拍照")])),_:1})])),_:1}))])),_:1})}}}),[["__scopeId","data-v-768474b2"]]);export{b as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{r as e,G as o,c as n,w as s,H as t,J as c,z as a,i as r,o as i,b as l}from"./index-C_s0oxh5.js";import{o as p}from"./uni-app.es.B8Ur_tUJ.js";import{_ as u}from"./_plugin-vue_export-helper.BCo6x5W8.js";const d=u({__name:"callback",setup(u){e(0);const d=o({name:"",openid:"",accessToken:""});e("");const h=()=>{const e=`https://www.focusnu.com/nursing-unit/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(d.openid)}`;fetch(e).then((e=>e.json())).then((e=>{console.log("个人信息打印",e),c("token",e.result.token),c("serverUrl",e.result.serverUrl),console.log("???token存储",e.result.token);const o=`${e.result.serverUrl}/weiXinPay/getJsApiInfo`,n={access_token:d.accessToken};console.log("???/",n),fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}).then((e=>e.json())).then((e=>{console.log("???调取微信",e)})).catch((e=>{console.error("请求失败:",e)})),e.result.tel?a({url:"/pages/index/index"}):a({url:"/pages/login/phonebumber"}),m()}))},f=e([]),m=()=>{fetch("https://www.focusnu.com/nursing-unit/sys/sysDepart/queryInstitutionsList").then((e=>e.json())).then((e=>{f.value=[...e],console.log("机构打印",f.value)}))};return e([]),p((()=>{var e;const o=null==(e=window.location.href.split("?")[1])?void 0:e.split("#")[0],n={};o&&o.split("&").forEach((e=>{const[o,s]=e.split("=");n[o]=decodeURIComponent(s)})),console.log("解析到的 query 参数:",n),n.code&&(e=>{const o=`https://www.focusnu.com/nursing-unit/weixin/wechat/callback?code=${encodeURIComponent(e)}`;fetch(o).then((e=>e.json())).then((e=>{d.name=e.data.nickname,d.openid=e.data.openid,d.accessToken=e.accessToken,t({key:"openid",data:{openid:e.data.openid,accessToken:e.accessToken}}),h()})).catch((e=>{console.error("❌ 获取用户信息失败:",e)}))})(n.code)})),(e,o)=>{const t=r;return i(),n(t,{class:"login-container"},{default:s((()=>[l(" 页面跳转中,请稍后... ")])),_:1})}}},[["__scopeId","data-v-812fd514"]]);export{d as default};

View File

@ -0,0 +1 @@
import{r as e,D as o,c as s,w as n,E as t,G as a,y as c,i as l,o as r,a as i,b as p,g as d}from"./index-BWFbK6MW.js";import{_ as u}from"./nu.C7Ggybbs.js";import{o as m}from"./uni-app.es.Bupuy4O7.js";import{b as h}from"./index.DHEE3adT.js";import{_ as f}from"./_plugin-vue_export-helper.BCo6x5W8.js";const k=f({__name:"callback",setup(f){e(0);const k=o({name:"",openid:"",accessToken:""});e("");const g=()=>{const e=`${h}/h5Api/nuBizAdvisoryInfo/queryWeixinInfo?openId=${encodeURIComponent(k.openid)}`;fetch(e).then((e=>e.json())).then((e=>{console.log("个人信息打印",e),a("token",e.result.token),a("serverUrl",e.result.serverUrl),console.log("???token存储",e.result.token),e.result.tel?(c({url:"/pages/login/threeselectone"}),a("tel",e.result.tel)):c({url:"/pages/login/phonebumber"}),v()}))},_=e([]),v=()=>{fetch(`${h}/sys/sysDepart/queryInstitutionsList`).then((e=>e.json())).then((e=>{_.value=[...e],console.log("机构打印",_.value)}))};return e([]),m((()=>{var e;const o=null==(e=window.location.href.split("?")[1])?void 0:e.split("#")[0],s={};o&&o.split("&").forEach((e=>{const[o,n]=e.split("=");s[o]=decodeURIComponent(n)})),console.log("解析到的 query 参数:",s),s.code&&(e=>{const o=`${h}/weixin/wechat/callback?code=${encodeURIComponent(e)}`;fetch(o).then((e=>e.json())).then((e=>{k.name=e.data.nickname,k.openid=e.data.openid,k.accessToken=e.accessToken,t({key:"openid",data:{openid:e.data.openid,accessToken:e.accessToken}}),g()})).catch((e=>{console.error("❌ 获取用户信息失败:",e)}))})(s.code)})),(e,o)=>{const t=d,a=l;return r(),s(a,{class:"login-container"},{default:n((()=>[i(t,{class:"imge",src:u}),i(a,{class:"font"},{default:n((()=>[p(" 页面跳转中,请稍后... ")])),_:1})])),_:1})}}},[["__scopeId","data-v-2e590b37"]]);export{k as default};

View File

@ -0,0 +1 @@
import{r as e,B as a,c as l,w as s,s as t,i as u,o,a as c,b as n,x as d,t as i,u as r,F as v,m as f,v as m,d as p,e as _,T as g,g as h,C as k,I as b,z as y,y as x}from"./index-BWFbK6MW.js";import{_ as w}from"./nu.C7Ggybbs.js";import{_ as I,a as j}from"./old.DL_W-GvU.js";import{o as C}from"./uni-app.es.Bupuy4O7.js";import{s as S,c as V}from"./loginApi.CwwrSv7b.js";import{_ as B}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./index.DHEE3adT.js";const E=B({__name:"code",setup(B){const E=e(""),K=e(""),U=e(["","","",""]),z=e(-1),A=e(!1),F=e("rgba(0, 0, 0, 0.5)");function M(){A.value=!1}const T=e(""),q=()=>{const e=U.value.join("");4===e.length?(console.log("提交验证码:",e),T.value!=e&&(T.value=e,V({mobile:E.value,openId:y("openid").openid,smscode:e}).then((e=>{e.success?x({url:"/pages/login/callback"}):t({title:"验证码错误",icon:"none",duration:2e3})})))):console.log("验证码未输入完整")},D=()=>{S({mobile:E.value,hkcode:K.value,smsmode:1}).then((e=>{e.success?(t({title:"发送成功",icon:"none",duration:2e3}),z.value=0,G.value=60,H=setInterval((()=>{G.value>0?G.value--:(clearInterval(H),H=null)}),1e3)):t({title:e.message,icon:"none",duration:2e3})}))},G=e(0);let H=null;return a((()=>{H&&clearInterval(H)})),C((e=>{E.value=e.mobile,K.value=e.hkcode,D()})),(e,a)=>{const t=h,y=u,x=b;return o(),l(y,{class:"login-container"},{default:s((()=>[c(y,{class:"title"},{default:s((()=>[c(t,{class:"title-imge",src:w}),c(y,{class:"title-font"},{default:s((()=>[c(y,{class:""},{default:s((()=>[n("您好,")])),_:1}),c(y,{class:""},{default:s((()=>[n("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),c(t,{class:"photo-imge",src:I}),c(t,{class:"old-imge",src:j}),c(y,{class:"under-container"},{default:s((()=>[c(y,{class:"under-container-title"},{default:s((()=>[c(y,{class:"code-title"},{default:s((()=>[n(" 请输入验证码 ")])),_:1}),c(y,{class:"code-number"},{default:s((()=>[n(" 验证码已发送至"+d(E.value),1)])),_:1})])),_:1}),c(y,{class:"captcha-container"},{default:s((()=>[c(y,{class:"captcha-box"},{default:s((()=>[(o(!0),i(v,null,r(U.value,((e,a)=>(o(),l(y,{key:a,class:"captcha-item"},{default:s((()=>[c(x,{modelValue:U.value[a],"onUpdate:modelValue":e=>U.value[a]=e,class:"captcha-input",type:"number",maxlength:"4",placeholder:a<3?"":" ",onInput:e=>((e,a)=>{const l=a.detail.value||"";if(console.log("??????",a),4==l.length){const e=a.detail.value.toString().padStart(4,"0");U.value=e.split(""),z.value=3,k((()=>{q()}))}else if(2==l.length){U.value[e]="number"==typeof(s=U.value[e])?s%10:s,U.value[e]&&e<3&&(z.value=e+1);let a=!0;U.value.forEach((e=>{e||(a=!1)})),k((()=>{a&&q()}))}else{U.value[e]&&e<3&&(z.value=e+1);let a=!0;U.value.forEach((e=>{e||(a=!1)})),k((()=>{a&&q()}))}var s})(a,e),onKeydown:e=>((e,a)=>{"Backspace"!==a.key||U.value[e]||e>0&&(z.value=e-1)})(a,e),focus:z.value===a},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput","onKeydown","focus"])])),_:2},1024)))),128))])),_:1})])),_:1}),c(y,{class:"under-view"},{default:s((()=>[f(c(y,{class:"right-blue",onClick:D},{default:s((()=>[n(" 重新发送 ")])),_:1},512),[[m,!G.value]]),f(c(y,{class:"right-white"},{default:s((()=>[n(d(G.value)+"S后重新发送 ",1)])),_:1},512),[[m,G.value]]),c(y,{class:"right-black",onClick:a[0]||(a[0]=e=>A.value=!0)},{default:s((()=>[n(" 收不到验证码 ")])),_:1})])),_:1})])),_:1}),c(g,{name:"fade"},{default:s((()=>[A.value?(o(),l(y,{key:0,class:"overlay",onClick:M,style:p({backgroundColor:F.value})},null,8,["style"])):_("",!0)])),_:1}),c(g,{name:"slide-up"},{default:s((()=>[A.value?(o(),l(y,{key:0,class:"modal"},{default:s((()=>[c(y,{class:"modal-title"},{default:s((()=>[n("收不到验证码")])),_:1}),c(y,{class:"model-p"},{default:s((()=>[c(y,{class:"text-view",style:{"font-weight":"600"}},{default:s((()=>[n("手机号可正常使用:")])),_:1}),c(y,{class:"text-view"},{default:s((()=>[n("1 是否输错手机号")])),_:1}),c(y,{class:"text-view"},{default:s((()=>[n("2 手机是否设置短信拦截/欠费/信号不好")])),_:1}),c(y,{class:"text-view"},{default:s((()=>[n("3 手机内存是否满了")])),_:1}),c(y,{class:"text-view"},{default:s((()=>[n("4 手机卡是否为物联卡而非SIM卡")])),_:1})])),_:1})])),_:1})):_("",!0)])),_:1})])),_:1})}}},[["__scopeId","data-v-7d2aa252"]]);export{E as default};

View File

@ -1 +0,0 @@
import{r as e,p as a,c as l,w as s,s as t,i as u,o,a as n,b as c,t as d,q as i,u as r,F as v,m as f,v as p,d as m,e as _,T as g,g as h,x as b,I as x,y,z as k}from"./index-C_s0oxh5.js";import{_ as w}from"./nu.C7Ggybbs.js";import{_ as I,a as j}from"./old.DL_W-GvU.js";import{o as C}from"./uni-app.es.B8Ur_tUJ.js";import{s as S,c as V}from"./loginApi.C8nIPkRa.js";import{_ as E}from"./_plugin-vue_export-helper.BCo6x5W8.js";const K=E({__name:"code",setup(E){const K=e(""),U=e(""),q=e(["","","",""]),z=e(-1),A=e(!1),B=e("rgba(0, 0, 0, 0.5)");function F(){A.value=!1}const M=e(""),T=()=>{const e=q.value.join("");4===e.length?(console.log("提交验证码:",e),M.value!=e&&(M.value=e,V({mobile:K.value,openId:y("openid").openid,smscode:e}).then((e=>{e.success?k({url:"/pages/index/index"}):t({title:"验证码错误",icon:"none",duration:2e3})})))):console.log("验证码未输入完整")},D=()=>{S({mobile:K.value,hkcode:U.value,smsmode:1}).then((e=>{e.success?(t({title:"发送成功",icon:"none",duration:2e3}),z.value=0,G.value=60,H=setInterval((()=>{G.value>0?G.value--:(clearInterval(H),H=null)}),1e3)):t({title:e.message,icon:"none",duration:2e3})}))},G=e(0);let H=null;return a((()=>{H&&clearInterval(H)})),C((e=>{K.value=e.mobile,U.value=e.hkcode,D()})),(e,a)=>{const t=h,y=u,k=x;return o(),l(y,{class:"login-container"},{default:s((()=>[n(y,{class:"title"},{default:s((()=>[n(t,{class:"title-imge",src:w}),n(y,{class:"title-font"},{default:s((()=>[n(y,{class:""},{default:s((()=>[c("您好,")])),_:1}),n(y,{class:""},{default:s((()=>[c("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),n(t,{class:"photo-imge",src:I}),n(t,{class:"old-imge",src:j}),n(y,{class:"under-container"},{default:s((()=>[n(y,{class:"under-container-title"},{default:s((()=>[n(y,{class:"code-title"},{default:s((()=>[c(" 请输入验证码 ")])),_:1}),n(y,{class:"code-number"},{default:s((()=>[c(" 验证码已发送至"+d(K.value),1)])),_:1})])),_:1}),n(y,{class:"captcha-container"},{default:s((()=>[n(y,{class:"captcha-box"},{default:s((()=>[(o(!0),i(v,null,r(q.value,((e,a)=>(o(),l(y,{key:a,class:"captcha-item"},{default:s((()=>[n(k,{modelValue:q.value[a],"onUpdate:modelValue":e=>q.value[a]=e,class:"captcha-input",type:"number",maxlength:"4",placeholder:a<3?"":" ",onInput:e=>((e,a)=>{const l=a.detail.value||"";if(console.log("??????",a),4==l.length){const e=a.detail.value.toString().padStart(4,"0");q.value=e.split(""),z.value=3,b((()=>{T()}))}else if(2==l.length){q.value[e]="number"==typeof(s=q.value[e])?s%10:s,q.value[e]&&e<3&&(z.value=e+1);let a=!0;q.value.forEach((e=>{e||(a=!1)})),b((()=>{a&&T()}))}else{q.value[e]&&e<3&&(z.value=e+1);let a=!0;q.value.forEach((e=>{e||(a=!1)})),b((()=>{a&&T()}))}var s})(a,e),onKeydown:e=>((e,a)=>{"Backspace"!==a.key||q.value[e]||e>0&&(z.value=e-1)})(a,e),focus:z.value===a},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput","onKeydown","focus"])])),_:2},1024)))),128))])),_:1})])),_:1}),n(y,{class:"under-view"},{default:s((()=>[f(n(y,{class:"right-blue",onClick:D},{default:s((()=>[c(" 重新发送 ")])),_:1},512),[[p,!G.value]]),f(n(y,{class:"right-white"},{default:s((()=>[c(d(G.value)+"S后重新发送 ",1)])),_:1},512),[[p,G.value]]),n(y,{class:"right-black",onClick:a[0]||(a[0]=e=>A.value=!0)},{default:s((()=>[c(" 收不到验证码 ")])),_:1})])),_:1})])),_:1}),n(g,{name:"fade"},{default:s((()=>[A.value?(o(),l(y,{key:0,class:"overlay",onClick:F,style:m({backgroundColor:B.value})},null,8,["style"])):_("",!0)])),_:1}),n(g,{name:"slide-up"},{default:s((()=>[A.value?(o(),l(y,{key:0,class:"modal"},{default:s((()=>[n(y,{class:"modal-title"},{default:s((()=>[c("收不到验证码")])),_:1}),n(y,{class:"model-p"},{default:s((()=>[n(y,{class:"text-view",style:{"font-weight":"600"}},{default:s((()=>[c("手机号可正常使用:")])),_:1}),n(y,{class:"text-view"},{default:s((()=>[c("1 是否输错手机号")])),_:1}),n(y,{class:"text-view"},{default:s((()=>[c("2 手机是否设置短信拦截/欠费/信号不好")])),_:1}),n(y,{class:"text-view"},{default:s((()=>[c("3 手机内存是否满了")])),_:1}),n(y,{class:"text-view"},{default:s((()=>[c("4 手机卡是否为物联卡而非SIM卡")])),_:1})])),_:1})])),_:1})):_("",!0)])),_:1})])),_:1})}}},[["__scopeId","data-v-f1b5ebad"]]);export{K as default};

View File

@ -1 +0,0 @@
import{r as l,c as e,w as a,i as s,o as t,a as o,b as c,n,d as u,e as i,T as d,f as r,g as f,h as _}from"./index-C_s0oxh5.js";import{_ as p}from"./nu.C7Ggybbs.js";import{_ as m,a as g}from"./old.DL_W-GvU.js";import{_ as v}from"./_plugin-vue_export-helper.BCo6x5W8.js";const k=encodeURIComponent("https://www.focusnu.com/wechat/thd/#/pages/login/callback");const C=v({__name:"index",setup(v){const C=l(!1),h=l(!1),{login:w}=(l(""),l(""),l(null),{login:function(l="snsapi_userinfo",e=""){const a=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8fc3e4305d2fbf0b&redirect_uri=${k}&response_type=code&scope=${l}&state=${e}#wechat_redirect`;window.location.href=a}}),b=l("rgba(0, 0, 0, 0.5)");function x(){h.value=!1}const y=()=>{C.value?w():h.value=!0},j=()=>{r({url:"/pages/login/protocol"})},$=()=>{r({url:"/pages/index/index"})},q=()=>{r({url:"/pages/selectunit/map"})};return(l,r)=>{const v=f,k=s,w=_;return t(),e(k,{class:"login-container"},{default:a((()=>[o(k,{class:"title"},{default:a((()=>[o(v,{class:"title-imge",src:p,onClick:$}),o(k,{class:"title-font"},{default:a((()=>[o(k,{class:""},{default:a((()=>[c("您好,")])),_:1}),o(k,{class:""},{default:a((()=>[c("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),o(v,{class:"photo-imge",src:m}),o(v,{class:"old-imge",src:g,onClick:q}),o(k,{class:"under-container"},{default:a((()=>[o(k,{class:"under-container-title"},{default:a((()=>[o(k,{class:n(C.value?"radio-circle-target":"radio-circle"),onClick:r[0]||(r[0]=l=>C.value=!C.value)},null,8,["class"]),o(k,{style:{"margin-left":"17rpx"},class:"radio-circle-font",onClick:r[1]||(r[1]=l=>C.value=!C.value)},{default:a((()=>[c("同意")])),_:1}),o(k,{class:"radio-circle-blue",onClick:j},{default:a((()=>[c(" 《护理单元使用条款》 ")])),_:1}),o(k,{class:"radio-circle-font",onClick:r[2]||(r[2]=l=>C.value=!C.value)},{default:a((()=>[c("并授权NU获取本机号码")])),_:1})])),_:1}),o(k,{class:"button-blue",onClick:y},{default:a((()=>[c(" 一键登录 ")])),_:1})])),_:1}),o(d,{name:"fade"},{default:a((()=>[h.value?(t(),e(k,{key:0,class:"overlay",onClick:x,style:u({backgroundColor:b.value})},null,8,["style"])):i("",!0)])),_:1}),o(d,{name:"slide-up"},{default:a((()=>[h.value?(t(),e(k,{key:0,class:"modal"},{default:a((()=>[o(k,{class:"modal-title"},{default:a((()=>[c("服务协议及隐私保护")])),_:1}),o(k,{class:"model-p"},{default:a((()=>[o(w,null,{default:a((()=>[c("  为了更好地保障您的合法权益,请阅读并同意以下协议")])),_:1}),o(w,{style:{color:"rgb(0,141,255)"},onClick:j},{default:a((()=>[c("《护理单元使用条款》")])),_:1}),o(w,null,{default:a((()=>[c(",同意后将自动登录。")])),_:1})])),_:1}),o(k,{class:"model-down"},{default:a((()=>[o(k,{class:"model-white",onClick:x},{default:a((()=>[c(" 不同意 ")])),_:1}),o(k,{class:"model-blue",onClick:r[3]||(r[3]=l=>{x(),C.value=!0})},{default:a((()=>[c(" 同意 ")])),_:1})])),_:1})])),_:1})):i("",!0)])),_:1})])),_:1})}}},[["__scopeId","data-v-71ce103a"]]);export{C as default};

View File

@ -0,0 +1 @@
import{r as l,c as e,w as a,i as s,o as t,a as o,b as c,n,d as u,e as i,T as d,f as r,g as f,h as _}from"./index-BWFbK6MW.js";import{_ as p}from"./nu.C7Ggybbs.js";import{_ as m,a as g}from"./old.DL_W-GvU.js";import{_ as v}from"./_plugin-vue_export-helper.BCo6x5W8.js";const k=encodeURIComponent("https://www.focusnu.com/wechat/thd/#/pages/login/callback");const h=v({__name:"index",setup(v){const h=l(!1),w=l(!1),{login:C}=(l(""),l(""),l(null),{login:function(l="snsapi_userinfo",e=""){const a=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8fc3e4305d2fbf0b&redirect_uri=${k}&response_type=code&scope=${l}&state=${e}#wechat_redirect`;window.location.href=a}}),b=l("rgba(0, 0, 0, 0.5)");function y(){w.value=!1}const x=()=>{h.value?C():w.value=!0},j=()=>{r({url:"/pages/login/protocol"})},$=()=>{r({url:"/pages/addjigou/where"})},q=()=>{r({url:"/pages/selectunit/map"})};return(l,r)=>{const v=f,k=s,C=_;return t(),e(k,{class:"login-container"},{default:a((()=>[o(k,{class:"title"},{default:a((()=>[o(v,{class:"title-imge",src:p,onClick:$}),o(k,{class:"title-font"},{default:a((()=>[o(k,{class:""},{default:a((()=>[c("您好,")])),_:1}),o(k,{class:""},{default:a((()=>[c("欢迎使用护理单元~")])),_:1})])),_:1})])),_:1}),o(v,{class:"photo-imge",src:m}),o(v,{class:"old-imge",src:g,onClick:q}),o(k,{class:"under-container"},{default:a((()=>[o(k,{class:"under-container-title"},{default:a((()=>[o(k,{class:n(h.value?"radio-circle-target":"radio-circle"),onClick:r[0]||(r[0]=l=>h.value=!h.value)},null,8,["class"]),o(k,{style:{"margin-left":"17rpx"},class:"radio-circle-font",onClick:r[1]||(r[1]=l=>h.value=!h.value)},{default:a((()=>[c("同意")])),_:1}),o(k,{class:"radio-circle-blue",onClick:j},{default:a((()=>[c(" 《护理单元使用条款》 ")])),_:1}),o(k,{class:"radio-circle-font",onClick:r[2]||(r[2]=l=>h.value=!h.value)},{default:a((()=>[c("并授权NU获取本机号码")])),_:1})])),_:1}),o(k,{class:"button-blue",onClick:x},{default:a((()=>[c(" 一键登录 ")])),_:1})])),_:1}),o(d,{name:"fade"},{default:a((()=>[w.value?(t(),e(k,{key:0,class:"overlay",onClick:y,style:u({backgroundColor:b.value})},null,8,["style"])):i("",!0)])),_:1}),o(d,{name:"slide-up"},{default:a((()=>[w.value?(t(),e(k,{key:0,class:"modal"},{default:a((()=>[o(k,{class:"modal-title"},{default:a((()=>[c("服务协议及隐私保护")])),_:1}),o(k,{class:"model-p"},{default:a((()=>[o(C,null,{default:a((()=>[c("  为了更好地保障您的合法权益,请阅读并同意以下协议")])),_:1}),o(C,{style:{color:"rgb(0,141,255)"},onClick:j},{default:a((()=>[c("《护理单元使用条款》")])),_:1}),o(C,null,{default:a((()=>[c(",同意后将自动登录。")])),_:1})])),_:1}),o(k,{class:"model-down"},{default:a((()=>[o(k,{class:"model-white",onClick:y},{default:a((()=>[c(" 不同意 ")])),_:1}),o(k,{class:"model-blue",onClick:r[3]||(r[3]=l=>{y(),h.value=!0})},{default:a((()=>[c(" 同意 ")])),_:1})])),_:1})])),_:1})):i("",!0)])),_:1})])),_:1})}}},[["__scopeId","data-v-f7f4cc3c"]]);export{h as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{r as e,t as a,H as n,a as t,w as o,x as s,e as i,a1 as d,I as u,a2 as p,o as l,b as r,s as c}from"./index-BWFbK6MW.js";import{_ as g}from"./_plugin-vue_export-helper.BCo6x5W8.js";const v=g({__name:"index",setup(g){const v=e(""),m=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 w=()=>{const e={title:"测试订单",openId:S.value,amountPrice:v.value,orgCode:"组织id",nursingUnit:"护理单元id",customerId:"顾客id",orderType:"订单类型",price:1,count:1,unit:"单位"};console.log("???/",e),fetch("https://www.focusnu.com/nursing-unit_0010507/weiXinPay/native",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then((e=>e.json())).then((e=>{e.appId?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){m.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):c({title:"支付失败",icon:"error"})})).catch((e=>{console.error("请求失败:",e)}))},f=e(""),S=e("");function k(){v.value&&(m.value=!0,y.value="拉起微信支付...",d({key:"serverUrl",success:function(e){console.log("读取缓存:",e.data.url),f.value=e.data.url}}),d({key:"openid",success:function(e){console.log("读取缓存:",e.data.openid),S.value=e.data.openid}}),w())}return(e,d)=>{const c=u,g=p;return l(),a("div",{class:"container"},[n("div",{class:"input-group"},[t(c,{type:"number",modelValue:v.value,"onUpdate:modelValue":d[0]||(d[0]=e=>v.value=e),placeholder:"请输入金额",class:"amount-input"},null,8,["modelValue"]),t(g,{onClick:k,disabled:m.value||!v.value,class:"pay-btn"},{default:o((()=>[r(" 支付 ")])),_:1},8,["disabled"])]),y.value?(l(),a("div",{key:0,class:"status-group"},[n("p",null,s(y.value),1)])):i("",!0)])}}},[["__scopeId","data-v-6425dffb"]]);export{v as default};

View File

@ -1 +0,0 @@
import{r as e,q as a,K as n,a as t,w as o,t as s,e as i,$ as d,I as u,a0 as p,o as l,b as r,s as c}from"./index-C_s0oxh5.js";import{_ as g}from"./_plugin-vue_export-helper.BCo6x5W8.js";const v=g({__name:"index",setup(g){const v=e(""),m=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 w=()=>{const e={title:"测试订单",openId:S.value,amountPrice:v.value,orgCode:"组织id",nursingUnit:"护理单元id",customerId:"顾客id",orderType:"订单类型",price:1,count:1,unit:"单位"};console.log("???/",e),fetch("https://www.focusnu.com/nursing-unit_0010507/weiXinPay/native",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then((e=>e.json())).then((e=>{e.appId?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){m.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):c({title:"支付失败",icon:"error"})})).catch((e=>{console.error("请求失败:",e)}))},f=e(""),S=e("");function k(){v.value&&(m.value=!0,y.value="拉起微信支付...",d({key:"serverUrl",success:function(e){console.log("读取缓存:",e.data.url),f.value=e.data.url}}),d({key:"openid",success:function(e){console.log("读取缓存:",e.data.openid),S.value=e.data.openid}}),w())}return(e,d)=>{const c=u,g=p;return l(),a("div",{class:"container"},[n("div",{class:"input-group"},[t(c,{type:"number",modelValue:v.value,"onUpdate:modelValue":d[0]||(d[0]=e=>v.value=e),placeholder:"请输入金额",class:"amount-input"},null,8,["modelValue"]),t(g,{onClick:k,disabled:m.value||!v.value,class:"pay-btn"},{default:o((()=>[r(" 支付 ")])),_:1},8,["disabled"])]),y.value?(l(),a("div",{key:0,class:"status-group"},[n("p",null,s(y.value),1)])):i("",!0)])}}},[["__scopeId","data-v-6425dffb"]]);export{v as default};

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@ -0,0 +1 @@
const t="/wechat/thd/assets/takephoto-DXtBMwMg.png";export{t as _};

View File

@ -0,0 +1 @@
.carousel[data-v-0c3a4e67]{position:relative;width:90%;height:20.3125rem;display:flex;justify-content:center;overflow:hidden}.carousel-item[data-v-0c3a4e67]{position:absolute;width:9.375rem;height:14.0625rem;top:40%;left:50%;margin:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform,opacity}.carousel-image[data-v-0c3a4e67]{width:100%;height:100%;border-radius:.375rem;-webkit-user-select:none;user-select:none;touch-action:pan-y;pointer-events:none}.font[data-v-0c3a4e67]{width:100%;display:flex;justify-content:center;margin-top:.625rem}.login-container[data-v-c7cfa9c4]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-c7cfa9c4]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-c7cfa9c4]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-c7cfa9c4]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-c7cfa9c4]{position:absolute;top:3.75rem;left:0;width:100%;height:34.375rem}.login-container .old-imge[data-v-c7cfa9c4]{position:absolute;right:.9375rem;top:12.5rem;width:12.5rem;height:12.5rem}.login-container .under-container[data-v-c7cfa9c4]{position:fixed;left:0;bottom:0;width:100%;height:75%;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;justify-content:center}.font-father[data-v-c7cfa9c4]{width:100%;color:#666;justify-content:center;display:flex}.font-father .font[data-v-c7cfa9c4]{width:60%}.button-father[data-v-c7cfa9c4]{width:100%;margin-top:2.5rem;display:flex;justify-content:center}.button-father .button-blue[data-v-c7cfa9c4]{width:40%;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}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{X as s,Y as o,Z as r,_ as t}from"./index-C_s0oxh5.js";function a(s,o){return"string"==typeof s?o:s}const n=(t=>(a,n=r())=>{!s&&o(t,a,n)})(t);export{n as o,a as r};

View File

@ -0,0 +1 @@
import{Y as s,Z as a,_ as o,$ as r,a0 as t}from"./index-BWFbK6MW.js";function n(s,a){return"string"==typeof s?a:s}const e=r=>(t,n=o())=>{!s&&a(r,t,n)},i=e(r),f=e(t);export{i as a,f as o,n as r};

View File

@ -0,0 +1 @@
.container[data-v-6077651d]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative;box-shadow:.0625rem .0625rem .125rem rgba(0,0,0,.1)}.container .white-content[data-v-6077651d]{width:90%;margin-left:5%;margin-top:.9375rem;border-radius:1.09375rem;background-color:#f5fbfe}.container .white-content .content-title[data-v-6077651d]{display:flex;height:3.125rem;position:relative}.container .white-content .content-title .content-weight[data-v-6077651d]{font-weight:600;margin-left:1.25rem;margin-top:.625rem}.container .white-content .content-title .content-img[data-v-6077651d]{position:absolute;right:0;top:0;width:12.5rem;height:100%}.container .white-photo[data-v-6077651d]{width:90%;margin-left:5%;height:9.375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;align-items:center;display:flex}.container .white-photo .photo[data-v-6077651d]{width:9.375rem;height:6.25rem}.container .white-message[data-v-6077651d]{width:90%;margin-left:5%;margin-top:.9375rem;margin-bottom:.9375rem;border-radius:1.09375rem;background-color:#fff;box-shadow:.125rem .125rem .25rem rgba(0,0,0,.1);justify-content:space-around;display:flex;flex-direction:column}.container .white-message .message-title[data-v-6077651d]{width:100%;height:3.125rem;align-items:center;display:flex}.container .white-message .message-title .shu[data-v-6077651d]{width:.3125rem;height:.9375rem;background-color:#0097ff;border-radius:.3125rem;margin:0 .625rem 0 .9375rem}.container .white-message .message-title .message-weight[data-v-6077651d]{font-size:.9375rem}.container .white-message .one[data-v-6077651d]{width:90%;margin-left:5%;border-bottom:.03125rem solid #d7d7d7;height:2.8125rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:.3125rem}.container .white-message .one .one-left[data-v-6077651d]{margin-left:.3125rem}.container .white-message .one .one-right[data-v-6077651d]{color:#999;overflow:hidden;white-space:nowrap;font-size:.78125rem;text-overflow:ellipsis;max-width:9.375rem;display:flex;justify-content:flex-end}.photo-left .photo-weight[data-v-6077651d]{font-size:.8125rem;font-weight:600}.photo-left .photo-font[data-v-6077651d]{font-size:.71875rem;margin-top:.3125rem}.finish-button[data-v-6077651d]{display:flex;justify-content:center;align-items:center;width:45%;height:3.125rem;margin:0 auto;margin-bottom:2.5rem;color:#fff;background:linear-gradient(to right,#00c9ff,#0076ff);border-radius:1.5625rem;font-size:1.09375rem}.one-img[data-v-6077651d]{position:absolute;top:50%;transform:translateY(-50%);right:.3125rem;width:1.875rem;height:1.5625rem}.pingfangmi[data-v-6077651d]{position:absolute;top:50%;right:.15625rem;transform:translateY(-50%)}.special[data-v-6077651d]{display:flex;align-items:center;width:8.75rem;position:relative}

View File

@ -0,0 +1 @@
.login-container[data-v-909e6423]{display:flex;flex-direction:column;min-height:100vh;width:100%;background-color:#eff1fc;position:relative}.login-container .title[data-v-909e6423]{margin-top:2.1875rem;align-items:center}.login-container .title .title-imge[data-v-909e6423]{width:3.125rem;height:3.28125rem;margin-left:3.125rem}.login-container .title .title-font[data-v-909e6423]{font-size:1.09375rem;font-weight:600;margin-left:3.28125rem;margin-top:.3125rem}.login-container .photo-imge[data-v-909e6423]{position:absolute;top:0;left:0;width:100%;height:100vh}.login-container .old-imge[data-v-909e6423]{position:absolute;right:50%;transform:translate(50%);top:0;width:17.1875rem;height:23.4375rem}.login-container .under-container[data-v-909e6423]{position:fixed;left:0;bottom:0;width:100%;height:100%;background-color:#eceef4;box-shadow:.3125rem .3125rem .625rem rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center;z-index:1}.white-card[data-v-909e6423]{margin-top:.9375rem;width:94%;background-color:#fff;height:10rem;border-radius:1.40625rem;display:flex;align-items:center;position:relative}.white-card .left-img[data-v-909e6423]{width:4.6875rem;height:7.8125rem;margin-left:1.5625rem}.white-card .card-font[data-v-909e6423]{margin-left:1.875rem;width:11.875rem}.white-ball[data-v-909e6423]{position:absolute;right:1.875rem;top:1.875rem;width:2.34375rem;height:2.34375rem;border-radius:50%;border:.03125rem solid #b1b1b1;display:flex;justify-content:center;align-items:center}.white-ball .ball-imge[data-v-909e6423]{width:.9375rem;height:.9375rem}.shu-father[data-v-909e6423]{display:flex;margin:.9375rem 0;width:100%}.shu-father .shu[data-v-909e6423]{background:linear-gradient(to bottom,#00c9ff,#0076ff);margin:0 3% 0 5%;width:.46875rem;border-radius:.3125rem;height:1.09375rem}.shu-father .shu-font[data-v-909e6423]{color:#666}.under-scroll[data-v-909e6423]{width:100%;height:calc(100% - 14.375rem)}.under-scroll .white-small[data-v-909e6423]{width:94%;margin-left:3%;background-color:#fff;border-radius:.9375rem;padding:.9375rem;margin-bottom:.9375rem;font-size:.78125rem;color:#999;position:relative}.button-heng[data-v-909e6423]{display:flex;justify-content:flex-end;position:absolute;bottom:.9375rem;right:0}.button-heng .white-button[data-v-909e6423]{width:5.625rem;height:1.875rem;display:flex;justify-content:center;align-items:center;background:linear-gradient(to bottom,#f3f3f5,#dee4e9);border-radius:.9375rem;color:#000;margin-right:.625rem}.button-heng .blue-button[data-v-909e6423]{width:5.625rem;height:1.875rem;display:flex;justify-content:center;align-items:center;background:linear-gradient(to right,#00c9ff,#0076ff);margin-right:.625rem;border-radius:.9375rem;color:#fff}

View File

@ -11,10 +11,15 @@
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>测试</title>
<script
src="https://map.qq.com/api/js?v=2.exp&key=LOLBZ-Z2PKW-JJ6RO-3Y7Z7-BSKWT-DLFNC"
crossorigin="anonymous">
</script>
<title>登录中</title>
<!--preload-links-->
<!--app-context-->
<script type="module" crossorigin src="/wechat/thd/assets/index-C_s0oxh5.js"></script>
<script type="module" crossorigin src="/wechat/thd/assets/index-BWFbK6MW.js"></script>
<link rel="stylesheet" crossorigin href="/wechat/thd/assets/index-S414rAV1.css">
</head>
<body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Some files were not shown because too many files have changed in this diff Show More