This commit is contained in:
Teng 2025-06-04 17:33:25 +08:00
parent 0d6ddaaf3d
commit a6d7cfe838
127 changed files with 3879 additions and 467 deletions

View File

@ -65,6 +65,13 @@
"style": { "style": {
"navigationBarTitleText": "支付" "navigationBarTitleText": "支付"
} }
},
{
"path": "pages/camera/CustomCamera",
"style": {
"navigationBarTitleText": "图像识别"
}
} }
], ],
"globalStyle": { "globalStyle": {

View File

@ -1,5 +1,6 @@
<template> <template>
<div class="container"> <div class="container">
<u-modal v-model="show" :content="content"></u-modal>
<view class="white-content"> <view class="white-content">
<view class="content-title"> <view class="content-title">
<view class="content-weight">身份证上传</view> <view class="content-weight">身份证上传</view>
@ -10,14 +11,22 @@
<view class="photo-weight">人像面</view> <view class="photo-weight">人像面</view>
<view class="photo-font">请上传身份证人像面</view> <view class="photo-font">请上传身份证人像面</view>
</view> </view>
<image class="photo" src="@/static/index/IDcard.png" /> <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>
<view class="white-photo" style="margin-top: 30rpx;" @click="getMessage"> <view class="white-photo" style="margin-top: 30rpx;" @click="getMessage">
<view class="photo-left"> <view class="photo-left">
<view class="photo-weight">国徽面</view> <view class="photo-weight">国徽面</view>
<view class="photo-font">请上传身份证国徽面</view> <view class="photo-font">请上传身份证国徽面</view>
</view> </view>
<image class="photo" src="@/static/index/backIDcard.png" /> <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>
<view class="white-message"> <view class="white-message">
<view class="message-title"> <view class="message-title">
@ -27,16 +36,19 @@
</view> </view>
</view> </view>
<view style="margin-bottom: 20rpx;"> <view style="margin-bottom: 20rpx;">
<view v-for="(item,index) in nameArray" :key="index" class="one"> <view v-for="(item,index) in nameArray" :key="index" class="one"
@click="openLook(textArray[index])">
<view class="one-left">{{item}}</view> <view class="one-left">{{item}}</view>
<view class="one-right">自动获得</view> <!-- <view class="one-right">{{textArray[index] ? textArray[index] : "自动获取" }}</view> -->
<view class="one-right">{{textArray[index] ? textArray[index] : "自动获取" }}</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="gray-font"> <view class="gray-font">
<view class="">注意事项:</view> <view class="">注意事项:</view>
<view class="">同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方</view> <view class="">
同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方</view>
</view> </view>
<view class="finish-button" @click="next"> <view class="finish-button" @click="next">
下一步 下一步
@ -46,16 +58,22 @@
<script setup> <script setup>
import { import {
ref ref,
reactive
} from 'vue' } from 'vue'
const nameArray = ["姓名", "性别", "身份证号码","民族","出生日期","住址","签发机关","有效期限"] const show = ref(false);
const content = ref("");
const nameArray = ["姓名", "性别", "身份证号码", "民族", "出生日期", "住址", "签发机关", "有效期限"];
const textArray = reactive(["", "", "", "", "", "", "", ""]);
// //
const tempImagePath = ref('') const tempImagePath = ref('')
// //
function getMessage() { function getMessage() {
// 使 UniApp API // 使 UniApp API
uni.chooseImage({ uni.chooseImage({
count: 1, count: 1,
@ -71,8 +89,12 @@
}) })
} }
const headImge = ref("");
const backImge = ref("");
// //
function uploadImage(filePath) { function uploadImage(filePath) {
uni.showLoading()
uni.uploadFile({ uni.uploadFile({
url: `${uni.getStorageSync('serverUrl')}/api/ocr/idCard`, // POST url: `${uni.getStorageSync('serverUrl')}/api/ocr/idCard`, // POST
filePath, filePath,
@ -80,30 +102,61 @@
header: { header: {
'X-Access-Token': uni.getStorageSync('token') || '', 'X-Access-Token': uni.getStorageSync('token') || '',
}, },
formData: { formData: {},
//
// userId: '12345'
},
success: uploadRes => { success: uploadRes => {
console.log("????",JSON.parse(JSON.parse(uploadRes.data).result).data) 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;
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 => { fail: err => {
uni.showToast({ uni.showToast({
title: '上传出错', title: '上传出错',
icon: 'error' icon: 'error'
}) })
uni.hideLoading()
} }
}) })
} }
const openLook = (res) => {
const next = () =>{ if (res) {
content.value = res;
show.value = true
}
}
const next = () => {
uni.navigateTo({ uni.navigateTo({
url: "/pages/addoldman/yibao" url: "/pages/addoldman/yibao"
}); });
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -164,7 +217,8 @@
height: 200rpx; height: 200rpx;
} }
} }
.white-message{
.white-message {
width: 90%; width: 90%;
margin-left: 5%; margin-left: 5%;
margin-top: 30rpx; margin-top: 30rpx;
@ -177,24 +231,28 @@
// align-items: center; // align-items: center;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.message-title{
.message-title {
width: 100%; width: 100%;
height: 100rpx; height: 100rpx;
align-items: center; align-items: center;
display: flex; display: flex;
.shu{
.shu {
width: 10rpx; width: 10rpx;
height: 30rpx; height: 30rpx;
background-color: #0097FF; background-color: #0097FF;
border-radius: 10rpx; border-radius: 10rpx;
margin: 0 20rpx 0 30rpx; margin: 0 20rpx 0 30rpx;
} }
.message-weight{
.message-weight {
font-size: 30rpx; font-size: 30rpx;
// font-weight: 600; // font-weight: 600;
} }
} }
.one{
.one {
width: 90%; width: 90%;
margin-left: 5%; margin-left: 5%;
border-bottom: 1rpx solid #d7d7d7; border-bottom: 1rpx solid #d7d7d7;
@ -203,12 +261,20 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 10rpx; margin-bottom: 10rpx;
.one-left{
.one-left {
margin-left: 10rpx; margin-left: 10rpx;
} }
.one-right{
.one-right {
margin-right: 10rpx; margin-right: 10rpx;
color: #999999 ; color: #999999;
overflow: hidden;
/* 隐藏超出内容 */
white-space: nowrap;
/* 不换行 */
text-overflow: ellipsis;
max-width: 300rpx;
} }
} }
} }
@ -226,11 +292,13 @@
} }
} }
.gray-font{
.gray-font {
padding: 30rpx 60rpx; padding: 30rpx 60rpx;
color: #999999; color: #999999;
} }
.finish-button{
.finish-button {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -239,7 +307,7 @@
margin: 0rpx auto; margin: 0rpx auto;
margin-bottom: 80rpx; margin-bottom: 80rpx;
color: #fff; color: #fff;
background: linear-gradient(to right,#00C9FF,#0076FF ); background: linear-gradient(to right, #00C9FF, #0076FF);
border-radius: 50rpx; border-radius: 50rpx;
font-size: 35rpx; font-size: 35rpx;
} }

View File

@ -0,0 +1,138 @@
<template>
<view class="page">
<!-- 视频预览层拿到 MediaStream 后才显示 -->
<video
ref="video"
class="video"
playsinline webkit-playsinline x5-playsinline
muted
v-show="started"
/>
<!-- Canvas实时把 video 画上来同时用于拍照 -->
<canvas ref="canvas" class="canvas" v-show="started"></canvas>
<!-- 中间遮罩 -->
<image
class="overlay"
src="@/static/index/nu.png"
:style="{ opacity: started ? 1 : 0 }"
/>
<!-- 按钮区 -->
<view class="btn-bar" v-if="started">
<button class="btn close" @click="close">关闭</button>
<button class="btn shoot" @click="shoot"></button>
</view>
<!-- 首次进入的 开始拍照 按钮触发权限弹窗 -->
<view class="starter" v-if="!started">
<button class="btn start" @click="startCamera">开始拍照</button>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onBeforeUnmount } from 'vue'
import { useRouter } from 'vue-router'
// ----------------- -----------------
const video = ref<HTMLVideoElement>()
const canvas = ref<HTMLCanvasElement>()
// ----------------- -----------------
const started = ref(false)
let stream: MediaStream | null = null
let rafID: number
// ----------------- -----------------
async function startCamera() {
// 1.
if (!navigator.mediaDevices?.getUserMedia) {
uni.showToast({ title: '当前浏览器不支持实时相机', icon: 'none' })
return
}
try {
stream = await navigator.mediaDevices.getUserMedia({
video: { facingMode: { ideal: 'environment' } },
audio: false
})
// 2. <video>
const v = video.value!
v.srcObject = stream
await v.play()
// 3. real-time Canvas
drawFrame()
started.value = true
} catch (err) {
console.error(err)
uni.showToast({ title: '无法获取摄像头权限', icon: 'none' })
}
}
function drawFrame() {
if (!started.value) return
const v = video.value!, c = canvas.value!
const ctx = c.getContext('2d')!
if (v.videoWidth && v.videoHeight) {
// canvas
if (c.width !== window.innerWidth) {
c.width = window.innerWidth
c.height = window.innerHeight
}
ctx.drawImage(v, 0, 0, c.width, c.height)
}
rafID = requestAnimationFrame(drawFrame)
}
function shoot() {
const dataURL = canvas.value!.toDataURL('image/jpeg', 0.9)
// / oss / emit
uni.navigateBack()
uni.$emit('photoTaken', dataURL)
}
function close() {
cleanup()
uni.navigateBack()
}
function cleanup() {
cancelAnimationFrame(rafID)
if (stream) stream.getTracks().forEach(t => t.stop())
}
onBeforeUnmount(cleanup)
</script>
<style scoped>
.page { position:fixed; inset:0; background:#000; overflow:hidden; }
.video { position:absolute; inset:0; object-fit:cover; z-index:1; }
.canvas { position:absolute; inset:0; z-index:1; }
.overlay{
position:absolute; top:50%; left:50%;
width:220px; height:220px;
transform:translate(-50%,-50%); z-index:2;
pointer-events:none;
}
.btn-bar{
position:absolute; bottom:60px; inset-inline:0;
display:flex; justify-content:space-around; z-index:3;
}
.btn{
border:none; font-size:16px; color:#fff;
}
.close{ width:100px; height:40px; border-radius:20px; background:rgba(0,0,0,.5); }
.shoot{ width:80px; height:80px; border-radius:40px; background:#fff; }
.starter{
position:absolute; inset:0; display:flex;
justify-content:center; align-items:center; z-index:3;
background:#000;
}
.start{ width:140px; height:46px; border-radius:23px; background:#1aad19; }
</style>

View File

@ -5,7 +5,7 @@
<!-- 半透明背景自动铺满 --> <!-- 半透明背景自动铺满 -->
<view class="mask-bg" @click="cancelScan"></view> <view class="mask-bg" @click="cancelScan"></view>
<!-- 扫描框容器绝对居中 --> <!-- 扫描框容器绝对居中 -->
<view class="mask-center" @click.stop > <view class="mask-center" @click.stop>
<div id="reader" class="reader"></div> <div id="reader" class="reader"></div>
<!-- <view class="cancel-btn" @click="scanQrCode">取消扫描</view> --> <!-- <view class="cancel-btn" @click="scanQrCode">取消扫描</view> -->
</view> </view>
@ -102,7 +102,7 @@
</view> </view>
<view class="botton-button"> <view class="botton-button">
<view class="botton-button-father"> <view class="botton-button-father">
<view class="botton-button-bgc"> <view class="botton-button-bgc" @click="gotoWindy">
<image class="botton-button-img" src="@/static/index/index/cloudbang.png" /> <image class="botton-button-img" src="@/static/index/index/cloudbang.png" />
</view> </view>
<view class="botton-button-font"> <view class="botton-button-font">
@ -245,15 +245,16 @@
const scanning = ref(false) const scanning = ref(false)
let html5QrCode = null let html5QrCode = null
async function cancelScan() { async function cancelScan() {
if (html5QrCode && scanning.value) { if (html5QrCode && scanning.value) {
try { try {
await html5QrCode.stop() await html5QrCode.stop()
} catch (e) { } catch (e) {
console.warn('停止扫码出错', e) console.warn('停止扫码出错', e)
} }
} }
scanning.value = false scanning.value = false
} }
function scanQrCode() { function scanQrCode() {
// //
if (html5QrCode && scanning.value) { if (html5QrCode && scanning.value) {
@ -290,10 +291,6 @@
html5QrCode.stop().catch(console.warn).finally(() => { html5QrCode.stop().catch(console.warn).finally(() => {
scanning.value = false scanning.value = false
}) })
uni.navigateTo({
url: "/pages/selectunit/map"
});
}, },
errorMessage => { errorMessage => {
// //
@ -304,6 +301,13 @@
}) })
} }
const gotoWindy = () => {
uni.navigateTo({
url: "/pages/selectunit/map"
});
}
onMounted(async () => { onMounted(async () => {
updateTime() // updateTime() //
timer = setInterval(updateTime, 1000) // timer = setInterval(updateTime, 1000) //
@ -851,7 +855,8 @@
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
} }
.result{
.result {
margin: 0 auto; margin: 0 auto;
} }
</style> </style>

View File

@ -63,9 +63,16 @@
// const urlpost = `${saveurl.value}/weiXinPay/native`; // const urlpost = `${saveurl.value}/weiXinPay/native`;
const urlpost = `https://www.focusnu.com/nursing-unit_0010507/weiXinPay/native` const urlpost = `https://www.focusnu.com/nursing-unit_0010507/weiXinPay/native`
const payload = { const payload = {
title: "测试", title: "测试订单",
openId: openid.value, openId: openid.value,
amountPrice:amount.value amountPrice:amount.value,
orgCode:"组织id",
nursingUnit:"护理单元id",
customerId:"顾客id",
orderType:"订单类型",
price:1,
count:1,
unit:"单位"
}; };
console.log("???/",payload) console.log("???/",payload)
fetch(urlpost, { fetch(urlpost, {
@ -77,9 +84,14 @@
}) })
.then(res => res.json()) .then(res => res.json())
.then(data => { .then(data => {
// secondArray.value = [...data.result]; if(data.appId){
// console.log("???",data) callWeixinPay(data)
callWeixinPay(data) }else{
uni.showToast({
title: '支付失败',
icon: 'error'
})
}
}) })
.catch(err => { .catch(err => {
console.error('请求失败:', err); console.error('请求失败:', err);

View File

@ -1,14 +1,16 @@
<template> <template>
<div class="container"> <div class="container">
<view class="select" @click.stop > <view class="select" @click.stop>
<view class="select-left" @click="isRuler=true" :style="!isRuler?{color:`black`,backgroundColor:`#fff`}:{}"> <view class="select-left" @click="isRuler=true" :style="!isRuler?{color:`black`,backgroundColor:`#fff`}:{}">
列表 列表
</view> </view>
<view class="select-right" @click="isRuler=false" :style="isRuler?{color:`black`,backgroundColor:`#fff`}:{}"> <view class="select-right" @click="isRuler=false"
:style="isRuler?{color:`black`,backgroundColor:`#fff`}:{}">
地图 地图
</view> </view>
</view> </view>
<view class="title-map"> <!-- <view style="height: 80rpx;background-color: #E0E2E9;"></view> -->
<view class="title-map" v-show="!isRuler">
<view class="right-bad"> <view class="right-bad">
<view></view> <view></view>
<image class="right-bad-img" src="@/static/index/zhinan.png" /> <image class="right-bad-img" src="@/static/index/zhinan.png" />
@ -16,6 +18,34 @@
</view> </view>
<image class="title-img" src="@/static/index/map.png" /> <image class="title-img" src="@/static/index/map.png" />
</view> </view>
<view class="list-father">
<view v-for="(item,index) in institution" :key="index" class="card-father" @click="targetIndex=index">
<view :class="targetIndex==index ? `card-target` : `card`">
<image class="card-img" :src="targetIndex==index ?`/static/index/jigou/bluewuzi.png`: `/static/index/jigou/wuzi.png`" />
<view v-show="targetIndex==index" class="abs-father">
<image class="abs-img" src="@/static/index/jigou/bar.png" />
<!-- <view class="abs-dui"></view> -->
<image class="abs-dui" src="@/static/index/jigou/dui.png" />
</view>
</view>
<view class="card-name">
{{item.name}}
</view>
</view>
</view>
<view class="under-container-title">
<view style="margin-left: 60rpx;" :class="isTarget ? 'radio-circle-target' : 'radio-circle'" @click="isTarget = !isTarget"></view>
<view style="margin-left: 17rpx;" class="radio-circle-font" @click="isTarget = !isTarget">阅读并同意</view>
<view class="radio-circle-blue" @click="jumpToPro">
护理单元使用条款
</view>
</view>
<view class="button-blue" @click="loginIt">
一键登录
</view>
<view class="bgc-height">
</view>
</div> </div>
</template> </template>
@ -23,80 +53,330 @@
import { import {
ref ref
} from 'vue' } from 'vue'
const isRuler = ref(true); const isRuler = ref(false);
const isTarget = ref(false);
const targetIndex = ref(-1);
const institution = ref([{
name: "护理单元01",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元02",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元03",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元04",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元05",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元06",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元07",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元08",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元09",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元10",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元11",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元12",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元13",
width: "30",
height: "30",
top: "20",
left: "0"
},
])
const jumpToPro = () =>{
uni.navigateTo({
url: "/pages/login/protocol"
});
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.container{ .container {
width: 100%;
min-height: 100vh;
position: relative;
.select{
position: absolute;
left: 30rpx;
top: -20rpx;
width: 170rpx;
height: 60rpx;
border-radius: 20rpx;
background-color: #01A8FF;
z-index: 1;
display: flex;
border: 4rpx solid #01A8FF;
.select-left{
border-top-left-radius: 15rpx;
border-bottom-left-radius: 15rpx;
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 25rpx;
color: #fff;
}
.select-right{
border-top-right-radius: 15rpx;
border-bottom-right-radius: 15rpx;
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 25rpx;
color: #fff;
}
}
.title-map{
width: 100%; width: 100%;
height: 650rpx; min-height: 100vh;
background-color: #E0E2E9;
margin-top: 50rpx;
position: relative; position: relative;
.right-bad{ background-color: rgb(236,238,244);
.select {
position: absolute; position: absolute;
left: 30rpx;
top: 10rpx; top: 10rpx;
right: 20rpx; width: 170rpx;
width: 50rpx; height: 60rpx;
height: 130rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: #fff;
z-index:1;
border-radius: 20rpx; border-radius: 20rpx;
font-size: 23rpx; background-color: #01A8FF;
.right-bad-img{ z-index: 1;
width: 30rpx; display: flex;
height: 55rpx; border: 4rpx solid #01A8FF;
.select-left {
border-top-left-radius: 15rpx;
border-bottom-left-radius: 15rpx;
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 25rpx;
color: #fff;
}
.select-right {
border-top-right-radius: 15rpx;
border-bottom-right-radius: 15rpx;
width: 50%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 25rpx;
color: #fff;
} }
} }
.title-img{
width: 700rpx; .title-map {
height: 600rpx; width: 100%;
margin-left: 25rpx; height: 650rpx;
margin-top: 25rpx; background-color: #E0E2E9;
// margin-top: 50rpx;
position: relative;
.right-bad {
position: absolute;
top: 10rpx;
right: 20rpx;
width: 50rpx;
height: 130rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: #fff;
z-index: 1;
border-radius: 20rpx;
font-size: 23rpx;
.right-bad-img {
width: 30rpx;
height: 55rpx;
}
}
.title-img {
width: 700rpx;
height: 600rpx;
margin-left: 25rpx;
margin-top: 25rpx;
}
} }
} }
}
.list-father {
display: flex;
flex-wrap: wrap;
width: 100%;
padding-top: 20rpx;
background-color: #fff;
border-bottom-left-radius: 30rpx;
border-bottom-right-radius: 30rpx;
.card-father {
display: flex;
width: 45%;
margin: 0 2.5%;
flex-direction: column;
display: flex;
justify-content: center;
align-items: center;
.card {
width: 100%;
height: 250rpx;
background-color: #F8F9FD;
border-radius: 35rpx;
display: flex;
justify-content: center;
align-items: center;
}
.card-target {
width: 100%;
height: 250rpx;
background-color: #F8F9FD;
border-radius: 35rpx;
display: flex;
justify-content: center;
align-items: center;
border: 2rpx solid #0083FF ;
position: relative;
// overflow: hidden;
.abs-father{
width: 70rpx;
height: 70rpx;
position: absolute;
bottom: -4rpx;
right: -4rpx;
.abs-img{
width: 70rpx;
height: 70rpx;
}
.abs-dui{
width: 30rpx;
height: 30rpx;
position: absolute;
top: 25rpx;
left: 25rpx;
// transform: translate(-50%,-50%);
z-index: 1;
}
}
}
.card-img {
width: 150rpx;
height: 150rpx;
}
.card-name{
color: #888FA9 ;
margin: 20rpx 0;
}
}
}
.under-container-title {
display: flex;
margin-top: 40rpx;
// margin-bottom: 150rpx;
align-items: center;
font-size: 25rpx;
font-weight: 500;
width: 100%;
position: relative;
.radio-circle {
position: relative;
margin-top: 2rpx;
width: 40rpx;
height: 40rpx;
border-radius: 50%;
border: 2rpx solid #C0C5D9;
background-color: transparent;
}
.radio-circle-target {
position: relative;
margin-top: 2rpx;
width: 40rpx;
height: 40rpx;
border-radius: 50%;
border: 2rpx solid #C0C5D9;
background-color: transparent;
}
.radio-circle-target::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 30rpx;
height: 30rpx;
background-color: #00C9FF;
border-radius: 50%;
}
.radio-circle-blue {
color: #0083FF;
margin-top: 3rpx;
}
.radio-circle-font {
color: #5A607F;
// margin-left: 18rpx;
margin-top: 3rpx;
}
}
.button-blue {
width: 80%;
margin-left: 10%;
margin-top: 20rpx;
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;
}
.bgc-height{
height: 150rpx;
width: 100%;
// background: url(`@/static/index/jigou/bgc.png`);
background-image: url('/static/index/jigou/bgc.png');
background-size: 100% auto; /* 宽度占满,高度自动 */
background-position: top center;
background-repeat: no-repeat;
// margin-top: -50rpx;
}
</style> </style>

BIN
static/index/jigou/bar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
static/index/jigou/bgc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
static/index/jigou/dui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
static/index/jigou/wuzi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
static/index/takephoto.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1 @@
.page[data-v-768474b2]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;overflow:hidden}.video[data-v-768474b2]{position:absolute;top:0;right:0;bottom:0;left:0;object-fit:cover;z-index:1}.canvas[data-v-768474b2]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.overlay[data-v-768474b2]{position:absolute;top:50%;left:50%;width:220px;height:220px;transform:translate(-50%,-50%);z-index:2;pointer-events:none}.btn-bar[data-v-768474b2]{position:absolute;bottom:60px;inset-inline:0;display:flex;justify-content:space-around;z-index:3}.btn[data-v-768474b2]{border:none;font-size:16px;color:#fff}.close[data-v-768474b2]{width:100px;height:40px;border-radius:20px;background:rgba(0,0,0,.5)}.shoot[data-v-768474b2]{width:80px;height:80px;border-radius:40px;background:#fff}.starter[data-v-768474b2]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;z-index:3;background:#000}.start[data-v-768474b2]{width:140px;height:46px;border-radius:23px;background:#1aad19}

View File

@ -1 +0,0 @@
.container[data-v-82ee0fe1]{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-82ee0fe1]{width:90%;margin-left:5%;margin-top:.9375rem;border-radius:1.09375rem;background-color:#f5fbfe}.container .white-content .content-title[data-v-82ee0fe1]{display:flex;height:3.125rem;position:relative}.container .white-content .content-title .content-weight[data-v-82ee0fe1]{font-weight:600;margin-left:2.1875rem;margin-top:.625rem}.container .white-content .content-title .content-img[data-v-82ee0fe1]{position:absolute;right:0;top:0;width:12.5rem;height:100%}.container .white-photo[data-v-82ee0fe1]{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-82ee0fe1]{width:9.375rem;height:6.25rem}.container .white-message[data-v-82ee0fe1]{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-82ee0fe1]{width:100%;height:3.125rem;align-items:center;display:flex}.container .white-message .message-title .shu[data-v-82ee0fe1]{width:.3125rem;height:.9375rem;background-color:#0097ff;border-radius:.3125rem;margin:0 .625rem 0 .9375rem}.container .white-message .message-title .message-weight[data-v-82ee0fe1]{font-size:.9375rem}.container .white-message .one[data-v-82ee0fe1]{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-82ee0fe1]{margin-left:.3125rem}.container .white-message .one .one-right[data-v-82ee0fe1]{margin-right:.3125rem;color:#999}.photo-left .photo-weight[data-v-82ee0fe1]{font-size:.8125rem;font-weight:600}.photo-left .photo-font[data-v-82ee0fe1]{font-size:.71875rem;margin-top:.3125rem}.gray-font[data-v-82ee0fe1]{padding:.9375rem 1.875rem;color:#999}.finish-button[data-v-82ee0fe1]{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}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

View File

@ -1 +0,0 @@
.container[data-v-51197c27]{padding:20px}.input-group[data-v-51197c27]{display:flex;align-items:center;gap:10px;margin-bottom:20px}.amount-input[data-v-51197c27]{flex:1;height:40px;border:1px solid #ddd;padding:0 10px;border-radius:4px}.pay-btn[data-v-51197c27]{padding:0 20px;height:40px;background-color:#1aad19;color:#fff;border:none;border-radius:4px;cursor:pointer}.status-group[data-v-51197c27]{margin-top:10px}

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 @@
.container[data-v-6425dffb]{padding:20px}.input-group[data-v-6425dffb]{display:flex;align-items:center;gap:10px;margin-bottom:20px}.amount-input[data-v-6425dffb]{flex:1;height:40px;border:1px solid #ddd;padding:0 10px;border-radius:4px}.pay-btn[data-v-6425dffb]{padding:0 20px;height:40px;background-color:#1aad19;color:#fff;border:none;border-radius:4px;cursor:pointer}.status-group[data-v-6425dffb]{margin-top:10px}

View File

@ -1 +1 @@
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-BMxaUgem.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}; 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 @@
.container[data-v-62561dec]{width:100%;min-height:100vh;position:relative;background-color:#eceef4}.container .select[data-v-62561dec]{position:absolute;left:.9375rem;top:.3125rem;width:5.3125rem;height:1.875rem;border-radius:.625rem;background-color:#01a8ff;z-index:1;display:flex;border:.125rem solid #01A8FF}.container .select .select-left[data-v-62561dec]{border-top-left-radius:.46875rem;border-bottom-left-radius:.46875rem;width:50%;height:100%;display:flex;justify-content:center;align-items:center;font-size:.78125rem;color:#fff}.container .select .select-right[data-v-62561dec]{border-top-right-radius:.46875rem;border-bottom-right-radius:.46875rem;width:50%;height:100%;display:flex;justify-content:center;align-items:center;font-size:.78125rem;color:#fff}.container .title-map[data-v-62561dec]{width:100%;height:20.3125rem;background-color:#e0e2e9;position:relative}.container .title-map .right-bad[data-v-62561dec]{position:absolute;top:.3125rem;right:.625rem;width:1.5625rem;height:4.0625rem;display:flex;justify-content:center;align-items:center;flex-direction:column;background-color:#fff;z-index:1;border-radius:.625rem;font-size:.71875rem}.container .title-map .right-bad .right-bad-img[data-v-62561dec]{width:.9375rem;height:1.71875rem}.container .title-map .title-img[data-v-62561dec]{width:21.875rem;height:18.75rem;margin-left:.78125rem;margin-top:.78125rem}.list-father[data-v-62561dec]{display:flex;flex-wrap:wrap;width:100%;padding-top:.625rem;background-color:#fff;border-bottom-left-radius:.9375rem;border-bottom-right-radius:.9375rem}.list-father .card-father[data-v-62561dec]{width:45%;margin:0 2.5%;flex-direction:column;display:flex;justify-content:center;align-items:center}.list-father .card-father .card[data-v-62561dec]{width:100%;height:7.8125rem;background-color:#f8f9fd;border-radius:1.09375rem;display:flex;justify-content:center;align-items:center}.list-father .card-father .card-target[data-v-62561dec]{width:100%;height:7.8125rem;background-color:#f8f9fd;border-radius:1.09375rem;display:flex;justify-content:center;align-items:center;border:.0625rem solid #0083FF;position:relative}.list-father .card-father .card-target .abs-father[data-v-62561dec]{width:2.1875rem;height:2.1875rem;position:absolute;bottom:-.125rem;right:-.125rem}.list-father .card-father .card-target .abs-father .abs-img[data-v-62561dec]{width:2.1875rem;height:2.1875rem}.list-father .card-father .card-target .abs-father .abs-dui[data-v-62561dec]{width:.9375rem;height:.9375rem;position:absolute;top:.78125rem;left:.78125rem;z-index:1}.list-father .card-father .card-img[data-v-62561dec]{width:4.6875rem;height:4.6875rem}.list-father .card-father .card-name[data-v-62561dec]{color:#888fa9;margin:.625rem 0}.under-container-title[data-v-62561dec]{display:flex;margin-top:1.25rem;align-items:center;font-size:.78125rem;font-weight:500;width:100%;position:relative}.under-container-title .radio-circle[data-v-62561dec],.under-container-title .radio-circle-target[data-v-62561dec]{position:relative;margin-top:.0625rem;width:1.25rem;height:1.25rem;border-radius:50%;border:.0625rem solid #C0C5D9;background-color:transparent}.under-container-title .radio-circle-target[data-v-62561dec]: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 .radio-circle-blue[data-v-62561dec]{color:#0083ff;margin-top:.09375rem}.under-container-title .radio-circle-font[data-v-62561dec]{color:#5a607f;margin-top:.09375rem}.button-blue[data-v-62561dec]{width:80%;margin-left:10%;margin-top:.625rem;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}.bgc-height[data-v-62561dec]{height:4.6875rem;width:100%;background-image:url(/wechat/thd/assets/bgc-CoT3cx0A.png);background-size:100% auto;background-position:top center;background-repeat:no-repeat}

View File

@ -1 +0,0 @@
.container[data-v-40d5300a]{width:100%;min-height:100vh;position:relative}.container .select[data-v-40d5300a]{position:absolute;left:.9375rem;top:-.625rem;width:5.3125rem;height:1.875rem;border-radius:.625rem;background-color:#01a8ff;z-index:1;display:flex;border:.125rem solid #01A8FF}.container .select .select-left[data-v-40d5300a]{border-top-left-radius:.46875rem;border-bottom-left-radius:.46875rem;width:50%;height:100%;display:flex;justify-content:center;align-items:center;font-size:.78125rem;color:#fff}.container .select .select-right[data-v-40d5300a]{border-top-right-radius:.46875rem;border-bottom-right-radius:.46875rem;width:50%;height:100%;display:flex;justify-content:center;align-items:center;font-size:.78125rem;color:#fff}.container .title-map[data-v-40d5300a]{width:100%;height:20.3125rem;background-color:#e0e2e9;margin-top:1.5625rem;position:relative}.container .title-map .right-bad[data-v-40d5300a]{position:absolute;top:.3125rem;right:.625rem;width:1.5625rem;height:4.0625rem;display:flex;justify-content:center;align-items:center;flex-direction:column;background-color:#fff;z-index:1;border-radius:.625rem;font-size:.71875rem}.container .title-map .right-bad .right-bad-img[data-v-40d5300a]{width:.9375rem;height:1.71875rem}.container .title-map .title-img[data-v-40d5300a]{width:21.875rem;height:18.75rem;margin-left:.78125rem;margin-top:.78125rem}

View File

@ -0,0 +1 @@
const s="/wechat/thd/assets/nu-Qj9MTLpB.png";export{s as _};

View File

@ -1 +0,0 @@
const s="/wechat/thd/assets/nu-Qj9MTLpB.png",t="/wechat/thd/assets/bgc-BBHHPyo7.png",a="/wechat/thd/assets/old-BhCWeKZ9.png";export{s as _,t as a,a as b};

View File

@ -0,0 +1 @@
const s="/wechat/thd/assets/bgc-BBHHPyo7.png",t="/wechat/thd/assets/old-BhCWeKZ9.png";export{s as _,t as a};

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{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 +1 @@
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-BMxaUgem.js";import{o as p}from"./uni-app.es.B5-OajNy.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}; 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

@ -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 c,b as n,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-BMxaUgem.js";import{_ as w,a as I,b as j}from"./old.CKixGO1Z.js";import{o as C}from"./uni-app.es.B5-OajNy.js";import{s as S,c as V}from"./loginApi.Csw35X6S.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((()=>[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(K.value),1)])),_:1})])),_:1}),c(y,{class:"captcha-container"},{default:s((()=>[c(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((()=>[c(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}),c(y,{class:"under-view"},{default:s((()=>[f(c(y,{class:"right-blue",onClick:D},{default:s((()=>[n(" 重新发送 ")])),_:1},512),[[p,!G.value]]),f(c(y,{class:"right-white"},{default:s((()=>[n(d(G.value)+"S后重新发送 ",1)])),_:1},512),[[p,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:F,style:m({backgroundColor:B.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-f1b5ebad"]]);export{K as default};

View File

@ -0,0 +1 @@
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-BMxaUgem.js";import{_ as p,a as m,b as g}from"./old.CKixGO1Z.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),b=l(!1),{login:h}=(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}}),w=l("rgba(0, 0, 0, 0.5)");function x(){b.value=!1}const y=()=>{C.value?h():b.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,h=_;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((()=>[b.value?(t(),e(k,{key:0,class:"overlay",onClick:x,style:u({backgroundColor:w.value})},null,8,["style"])):i("",!0)])),_:1}),o(d,{name:"slide-up"},{default:a((()=>[b.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(h,null,{default:a((()=>[c("  为了更好地保障您的合法权益,请阅读并同意以下协议")])),_:1}),o(h,{style:{color:"rgb(0,141,255)"},onClick:j},{default:a((()=>[c("《护理单元使用条款》")])),_:1}),o(h,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-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};

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,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};

View File

@ -1 +0,0 @@
import{r as e,q as a,N as n,a as t,w as s,t as o,e as i,X as u,I as l,Y as p,o as d,b as c}from"./index-BMxaUgem.js";import{_ as r}from"./_plugin-vue_export-helper.BCo6x5W8.js";const v=r({__name:"index",setup(r){const v=e(""),g=e(!1),m=e("");e({timeStamp:"1747983532",package:"prepay_id=wx23145806465232c82870c59d2d41cf0000",paySign:"0pUqj2JZ77BYchyJuthQyP4yRfqhjvwag78Q4IMnIyQ3/OQP6OyJreZfmj0GFSEMrRsKAHIdBBM7tVnot0aaRhI5qwSOWpzyvJCkYa4eqPgqlV4XYVMqE3zeB/Cx4C9bv4poMXnaGlfFPdkhMYbUcdtsw4gBXXhqUx//9x7eu9cOERRzLquM8Z8rewRpar/kkVKSCV6h8pX19kRj+KEkK5LZB8IUIG995g1lsVFOqdO4mVFBJ1wZCkwJczgVI+jdNGgnR2lpdjwIpJFm+5Hm0y9SwR0UFvgkm95NrmY+Sruty/Zf8ekQwF4+atubW8CE6i8wm2zZpMEnnfS4WFwAwg==",appId:"wx8fc3e4305d2fbf0b",signType:"RSA",nonceStr:"DxpF2uIMl0VM7vPOG7pWnPHk2Dvi3V7K"});const y=()=>{const e={title:"测试",openId:f.value,amountPrice:v.value};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=>{!function(e){const a=()=>{window.WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},(function(e){g.value=!1,"get_brand_wcpay_request:ok"===e.err_msg?m.value="支付成功":m.value="支付失败或取消"}))};void 0===window.WeixinJSBridge?document.addEventListener("WeixinJSBridgeReady",a,!1):a()}(e)})).catch((e=>{console.error("请求失败:",e)}))},w=e(""),f=e("");function S(){v.value&&(g.value=!0,m.value="拉起微信支付...",u({key:"serverUrl",success:function(e){console.log("读取缓存:",e.data.url),w.value=e.data.url}}),u({key:"openid",success:function(e){console.log("读取缓存:",e.data.openid),f.value=e.data.openid}}),y())}return(e,u)=>{const r=l,y=p;return d(),a("div",{class:"container"},[n("div",{class:"input-group"},[t(r,{type:"number",modelValue:v.value,"onUpdate:modelValue":u[0]||(u[0]=e=>v.value=e),placeholder:"请输入金额",class:"amount-input"},null,8,["modelValue"]),t(y,{onClick:S,disabled:g.value||!v.value,class:"pay-btn"},{default:s((()=>[c(" 支付 ")])),_:1},8,["disabled"])]),m.value?(d(),a("div",{key:0,class:"status-group"},[n("p",null,o(m.value),1)])):i("",!0)])}}},[["__scopeId","data-v-51197c27"]]);export{v as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{r as s,q as t,a as A,w as l,k as a,i as c,o as i,d as e,b as g,g as o}from"./index-BMxaUgem.js";import{_ as E}from"./_plugin-vue_export-helper.BCo6x5W8.js";const d=E({__name:"map",setup(E){const d=s(!0);return(s,E)=>{const B=c,f=o;return i(),t("div",{class:"container"},[A(B,{class:"select",onClick:E[2]||(E[2]=a((()=>{}),["stop"]))},{default:l((()=>[A(B,{class:"select-left",onClick:E[0]||(E[0]=s=>d.value=!0),style:e(d.value?{}:{color:"black",backgroundColor:"#fff"})},{default:l((()=>[g(" 列表 ")])),_:1},8,["style"]),A(B,{class:"select-right",onClick:E[1]||(E[1]=s=>d.value=!1),style:e(d.value?{color:"black",backgroundColor:"#fff"}:{})},{default:l((()=>[g(" 地图 ")])),_:1},8,["style"])])),_:1}),A(B,{class:"title-map"},{default:l((()=>[A(B,{class:"right-bad"},{default:l((()=>[A(B,null,{default:l((()=>[g("北")])),_:1}),A(f,{class:"right-bad-img",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAABGCAYAAABCFf2NAAAAAXNSR0IArs4c6QAABmVJREFUaEPtmmtsFFUUx8+Z2RIq8toaumW3aDBRIqgx8YFRUCEaTXdLIdBEsEaw7dzth2rqA4kxVhKJYCSKXfZuW3wgSqQitF0wEp9gAmgwUYjGGDXKdisIxfootN2ZI3e63fSxu3NnWsoX51tzz+M3/3vn3HPvFmGEDy2avhIATmFzvNVpKHTq2O9n+H0EADElGit0GmtEEBTwlhHhViAEVI0F2NL2qRMQxxAEgFRU2AFIU/oS049KtO2qsYUonv4k6ep6QDEbggEBFb0EW+PNdkEcKUF3gosu9f0JABNSCQmFNj8r0diVYwKh+73rEHDNsGTm2khUYkt7gx0Q20pQ0YypBCTWQqY8f2NubCo2gS4LYhtCD3hfQ0NZmRHCVENfjS3xDRcEgpZcVkA94+MSwbvwn9hk/AwSErZgSwkj4N0JhEssA/fVjY3Y0vaYpS2APAQVFc4hgKNZ1sKwfJjbXYBNf/xuBSKthBHwHgBDuV0aghBI1d9UW+IPjQoElXhupt6cw9IA/VnNstpdgHuzqyGlhOH3fg2k3GAbQsAgRZXWtkA2NSwhqKiwmJBsl+KBlRRzEjfi7vYjmUAsIQy/7zgA+KzmNeO4KOeKcUhpbbvVEQSVFJRRr2uro2kYmFF8sq6eudh84nA6kKxKGH7fCQCY5liFwY7HlGjsWlsQ5Pc9QQDSpdcStK+AlWJLW9NQ27RK0DJfLp0FsVWPswxuzyCuRGNeOYhi7zrSlTUjXgtDs5mNT+JBbG1/a+DQMCXoPvckUi/pAADV3ktKWPc1PqcwGpuGAKleYBiE7vdtQYBVEiGdmZhfiv4sNsfX9gcYBEElniuoN+cXO9OARBooyiQielGaCqEXx8NkbIqdNYvqQEcj4NsFBpbIQpwX9zmMxmpFDN3v24oAZVIgYnNT9BfU1rjZIqYgKDB9FhnK97KbOwFtVKOD+wWj2NsEurJU6iUIdRxn5OOuttMpCCPg+xwI5su8CYHRqEbjFelspUHML4W2Y2tsuQlBRQXzCFz7Zd6AiN5Q97SJ82fGxyjyfQAI91q+kAnSMxNp2TXjqLszDoaSN+CrSetPBNvVPbHllsEBIFFU+IWCdFtWW/HJqsZXSIsK5lFCfR8ATmZ0QBhPAIfUaGyFDICprqgI/sJmAJoNBOfS+qFYoTgF6Z78CbjvxL+ywS+EnWU/cSGSSu0dY5E4694x1gDDKubFAPgfYtCa2LRp06Tq6uq/LtZUmNMRCoXuUlX1PQCzncv2HGSMPWAHNhwO70XEq7P5ENFErK2tdXk8HnG28FglQMSdmqYttbIT45zzjwBgoZUtIh4xi1VDQ8NcXdcPWjkkx9+2UoRzvg8A7paJR0S+VMXknB8CgFtkHAHgVcZYdTpbzrm42fVLxtnGGCtLQdTV1c12uVzHJJ1BUZSNlZWVgy5BOOfbAEB+kyPKDwaDJwftHZzzdwGgVBYEANYzxp4S9pFIZAsRSTfIiLhB07TVw4pVOBz2ImLMBgQQ0cOKoniI6Hkbfufcbvfk0tLSnrQVk3MuDia2PkUbyU1TRHxa07R1/X7DtvK6uro8l8slGhzFbnBJ+063251XWlqauudM20+Ew+G1iPiMZFBbZoZhrKqqqnp9oFNaiEgkkkNEnecXXq6tDBbGiPirpmlXDDXL2FlxzsXBJDVvowGDiIs1TdstDUFEGIlETgGAezQAAOAHxtisdLGy9pic8/sB4J3RgDAMY35VVdUB2xDCgXP+EwDMHCHIfsbYHZliWHbb9fX1iw3DEOcSx4+qqtdXVFR86xgiqcZRAJjjkOJDxljWI6GlEiJxKBS6SVXVL51AIOLlmqb9ls1XCiKpxscAsMAmyBbGWLmVjzREQ0PDdbquf2MVcOC4y+XKKy8vF/dfWR9piKQaLQCQ9bK8PxsRvRIMBh+1AhDjtiBCoZBHVdV2icDdXV1dU2tqasw7KavHFoQIVl9fHzYMg2VdaIiPa5r2klXy/nHbEI2Nje5EInE6S4JOxljyp2s5DNsQybUh3rImQ4ogY4zLpe+zcgSxY8cOtaOj4wwATByS7DhjbIYdAMcQSTUeAYCXhyQsZozZ/mcOR0r0J+aci6Pj5OTf3zHGZttVYURKCOfNmzeXK4pi/jhPRAuDweAnYw6RnBZxW3+SMZbvBGDESogA4XB4BSKeYYztdQrxH2JKMYtCz+0UAAAAAElFTkSuQmCC"}),A(B,null,{default:l((()=>[g("南")])),_:1})])),_:1}),A(f,{class:"title-img",src:"/wechat/thd/assets/map-DBiANYh9.png"})])),_:1})])}}},[["__scopeId","data-v-40d5300a"]]);export{d as default};

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -1 +0,0 @@
import{K as s,L as a,M as o,O as r}from"./index-BMxaUgem.js";const t=(r=>(t,e=o())=>{!s&&a(r,t,e)})(r);export{t as o};

View File

@ -0,0 +1 @@
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};

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,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<link rel="stylesheet" href="/wechat/thd/assets/uni.aadaddb1.css"> <link rel="stylesheet" href="/wechat/thd/assets/uni.bd7f6527.css">
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<script> <script>
@ -14,7 +14,7 @@
<title>测试</title> <title>测试</title>
<!--preload-links--> <!--preload-links-->
<!--app-context--> <!--app-context-->
<script type="module" crossorigin src="/wechat/thd/assets/index-BMxaUgem.js"></script> <script type="module" crossorigin src="/wechat/thd/assets/index-C_s0oxh5.js"></script>
<link rel="stylesheet" crossorigin href="/wechat/thd/assets/index-S414rAV1.css"> <link rel="stylesheet" crossorigin href="/wechat/thd/assets/index-S414rAV1.css">
</head> </head>
<body> <body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -1 +1 @@
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t/*每个页面公共css */\r\n\t@import \"./uni_modules/vk-uview-ui/index.scss\";\r\n</style>\n","import App from './App'\r\nimport uView from './uni_modules/vk-uview-ui';\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nimport uView from './uni_modules/vk-uview-ui';\nVue.use(uView);\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\t...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport {\r\n\tcreateSSRApp\r\n} from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\t// 使用 uView UI\r\n\tapp.use(uView)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}\r\n// #endif"],"names":["uni","createSSRApp","App","uView"],"mappings":";;;;;;;;;;;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACQM,SAAS,YAAY;AAC3B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAE5B,MAAI,IAAIC,iCAAK;AACb,SAAO;AAAA,IACN;AAAA,EACA;AACF;;;"} {"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t/*每个页面公共css */\r\n\t@import \"./uni_modules/vk-uview-ui/index.scss\";\r\n</style>\n","import App from './App'\r\nimport uView from './uni_modules/vk-uview-ui';\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nimport uView from './uni_modules/vk-uview-ui';\nVue.use(uView);\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\t...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport {\r\n\tcreateSSRApp\r\n} from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\t// 使用 uView UI\r\n\tapp.use(uView)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}\r\n// #endif"],"names":["uni","createSSRApp","App","uView"],"mappings":";;;;;;;;;;;;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACQM,SAAS,YAAY;AAC3B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAE5B,MAAI,IAAIC,iCAAK;AACb,SAAO;AAAA,IACN;AAAA,EACA;AACF;;;"}

View File

@ -1 +1 @@
{"version":3,"file":"assets.js","sources":["static/index/nu.png","static/index/bgc.png","static/index/old.png","static/index/indexgif.gif","static/index/button/money.png","static/index/button/scan.png","static/index/button/watch.png","static/index/button/more.png","static/index/kuai.png","static/index/badscan.png","static/index/goodscan.png","static/index/index/wendu.png","static/index/index/shidu.png","static/index/index/nobang.png","static/index/index/cloudbang.png","static/index/index/scan.png","static/index/badold.png","static/index/index/back.png","static/index/tu.png","static/index/bian.png","static/index/photoID.png","static/index/yibaocard.png","static/index/backyibaocard.png","static/index/IDcard.png","static/index/backIDcard.png","static/index/zhinan.png","static/index/map.png","static/login/right.png","static/login/0.png","static/login/1.png","static/login/2.png","static/login/3.png"],"sourcesContent":["export default \"__VITE_ASSET__e7faca07__\"","export default \"__VITE_ASSET__12a7a67c__\"","export default \"__VITE_ASSET__a6c3231b__\"","export default \"__VITE_ASSET__88b3a1a5__\"","export default \"__VITE_ASSET__4db204f2__\"","export default \"__VITE_ASSET__53346801__\"","export default \"__VITE_ASSET__1d05476a__\"","export default \"__VITE_ASSET__73e885d5__\"","export default \"__VITE_ASSET__1cc89943__\"","export default \"__VITE_ASSET__48fa0de3__\"","export default \"__VITE_ASSET__b48152d1__\"","export default \"__VITE_ASSET__b38bcf54__\"","export default \"__VITE_ASSET__d06cc5fc__\"","export default \"__VITE_ASSET__788c4c15__\"","export default \"__VITE_ASSET__0100ad24__\"","export default \"__VITE_ASSET__5f2281ee__\"","export default \"__VITE_ASSET__6df11b92__\"","export default \"__VITE_ASSET__c404f30a__\"","export default \"__VITE_ASSET__93af8115__\"","export default \"__VITE_ASSET__f44babf9__\"","export default \"__VITE_ASSET__ae4c1bbb__\"","export default \"__VITE_ASSET__9c4d1d7b__\"","export default \"__VITE_ASSET__def48781__\"","export default \"__VITE_ASSET__874b76b4__\"","export default \"__VITE_ASSET__1af1db4d__\"","export default \"__VITE_ASSET__a1ad2db4__\"","export default \"__VITE_ASSET__bd31b74d__\"","export default \"__VITE_ASSET__b75b6465__\"","export default \"__VITE_ASSET__40aa7e44__\"","export default \"__VITE_ASSET__ae8e3dba__\"","export default \"__VITE_ASSET__75e1826f__\"","export default \"__VITE_ASSET__0c2bc10b__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,KAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} {"version":3,"file":"assets.js","sources":["static/index/nu.png","static/index/bgc.png","static/index/old.png","static/index/indexgif.gif","static/index/button/money.png","static/index/button/scan.png","static/index/button/watch.png","static/index/button/more.png","static/index/kuai.png","static/index/badscan.png","static/index/goodscan.png","static/index/index/wendu.png","static/index/index/shidu.png","static/index/index/nobang.png","static/index/index/cloudbang.png","static/index/index/scan.png","static/index/badold.png","static/index/index/back.png","static/index/tu.png","static/index/bian.png","static/index/photoID.png","static/index/yibaocard.png","static/index/backyibaocard.png","static/index/takephoto.png","static/index/zhinan.png","static/index/map.png","static/index/jigou/bar.png","static/index/jigou/dui.png","static/login/right.png","static/login/0.png","static/login/1.png","static/login/2.png","static/login/3.png"],"sourcesContent":["export default \"__VITE_ASSET__e7faca07__\"","export default \"__VITE_ASSET__12a7a67c__\"","export default \"__VITE_ASSET__a6c3231b__\"","export default \"__VITE_ASSET__88b3a1a5__\"","export default \"__VITE_ASSET__4db204f2__\"","export default \"__VITE_ASSET__53346801__\"","export default \"__VITE_ASSET__1d05476a__\"","export default \"__VITE_ASSET__73e885d5__\"","export default \"__VITE_ASSET__1cc89943__\"","export default \"__VITE_ASSET__48fa0de3__\"","export default \"__VITE_ASSET__b48152d1__\"","export default \"__VITE_ASSET__b38bcf54__\"","export default \"__VITE_ASSET__d06cc5fc__\"","export default \"__VITE_ASSET__788c4c15__\"","export default \"__VITE_ASSET__0100ad24__\"","export default \"__VITE_ASSET__5f2281ee__\"","export default \"__VITE_ASSET__6df11b92__\"","export default \"__VITE_ASSET__c404f30a__\"","export default \"__VITE_ASSET__93af8115__\"","export default \"__VITE_ASSET__f44babf9__\"","export default \"__VITE_ASSET__ae4c1bbb__\"","export default \"__VITE_ASSET__9c4d1d7b__\"","export default \"__VITE_ASSET__def48781__\"","export default \"__VITE_ASSET__eba74972__\"","export default \"__VITE_ASSET__a1ad2db4__\"","export default \"__VITE_ASSET__bd31b74d__\"","export default \"__VITE_ASSET__3b96fbd1__\"","export default \"__VITE_ASSET__6eff1c81__\"","export default \"__VITE_ASSET__b75b6465__\"","export default \"__VITE_ASSET__40aa7e44__\"","export default \"__VITE_ASSET__ae8e3dba__\"","export default \"__VITE_ASSET__75e1826f__\"","export default \"__VITE_ASSET__0c2bc10b__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,cAAA;ACAf,MAAe,KAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;ACAf,MAAe,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,6 +14,7 @@ if (!Math) {
"./pages/addoldman/IDcard.js"; "./pages/addoldman/IDcard.js";
"./pages/selectunit/map.js"; "./pages/selectunit/map.js";
"./pages/pay/index.js"; "./pages/pay/index.js";
"./pages/camera/CustomCamera.js";
} }
const _sfc_main = { const _sfc_main = {
onLaunch: function() { onLaunch: function() {

View File

@ -10,7 +10,8 @@
"pages/addoldman/yibao", "pages/addoldman/yibao",
"pages/addoldman/IDcard", "pages/addoldman/IDcard",
"pages/selectunit/map", "pages/selectunit/map",
"pages/pay/index" "pages/pay/index",
"pages/camera/CustomCamera"
], ],
"window": { "window": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",

View File

@ -5,7 +5,7 @@ const _imports_2$3 = "/static/index/old.png";
const _imports_0$3 = "/static/index/indexgif.gif"; const _imports_0$3 = "/static/index/indexgif.gif";
const _imports_1$4 = "/static/index/button/money.png"; const _imports_1$4 = "/static/index/button/money.png";
const _imports_2$2 = "/static/index/button/scan.png"; const _imports_2$2 = "/static/index/button/scan.png";
const _imports_3 = "/static/index/button/watch.png"; const _imports_3$1 = "/static/index/button/watch.png";
const _imports_4 = "/static/index/button/more.png"; const _imports_4 = "/static/index/button/more.png";
const _imports_5 = "/static/index/kuai.png"; const _imports_5 = "/static/index/kuai.png";
const _imports_6 = "/static/index/badscan.png"; const _imports_6 = "/static/index/badscan.png";
@ -20,12 +20,13 @@ const _imports_14 = "/static/index/index/back.png";
const tu = "/static/index/tu.png"; const tu = "/static/index/tu.png";
const _imports_0$2 = "/static/index/bian.png"; const _imports_0$2 = "/static/index/bian.png";
const _imports_1$3 = "/static/index/photoID.png"; const _imports_1$3 = "/static/index/photoID.png";
const _imports_1$2 = "/static/index/IDcard.png"; const _imports_1$2 = "/static/index/yibaocard.png";
const _imports_2$1 = "/static/index/backIDcard.png"; const _imports_2$1 = "/static/index/backyibaocard.png";
const _imports_1$1 = "/static/index/IDcard.png"; const _imports_1$1 = "/static/index/takephoto.png";
const _imports_2 = "/static/index/backIDcard.png";
const _imports_0$1 = "/static/index/zhinan.png"; const _imports_0$1 = "/static/index/zhinan.png";
const _imports_1 = "/static/index/map.png"; const _imports_1 = "/static/index/map.png";
const _imports_2 = "/static/index/jigou/bar.png";
const _imports_3 = "/static/index/jigou/dui.png";
const _imports_0 = "/static/login/right.png"; const _imports_0 = "/static/login/right.png";
const img0 = "/static/login/0.png"; const img0 = "/static/login/0.png";
const img1 = "/static/login/1.png"; const img1 = "/static/login/1.png";
@ -51,7 +52,8 @@ exports._imports_2 = _imports_2$3;
exports._imports_2$1 = _imports_2$2; exports._imports_2$1 = _imports_2$2;
exports._imports_2$2 = _imports_2$1; exports._imports_2$2 = _imports_2$1;
exports._imports_2$3 = _imports_2; exports._imports_2$3 = _imports_2;
exports._imports_3 = _imports_3; exports._imports_3 = _imports_3$1;
exports._imports_3$1 = _imports_3;
exports._imports_4 = _imports_4; exports._imports_4 = _imports_4;
exports._imports_5 = _imports_5; exports._imports_5 = _imports_5;
exports._imports_6 = _imports_6; exports._imports_6 = _imports_6;

View File

@ -2571,6 +2571,15 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
warn$1(`inject() can only be used inside setup() or functional components.`); warn$1(`inject() can only be used inside setup() or functional components.`);
} }
} }
/*! #__NO_SIDE_EFFECTS__ */
// @__NO_SIDE_EFFECTS__
function defineComponent(options, extraOptions) {
return isFunction(options) ? (
// #8326: extend call and options.name access are considered side-effects
// by Rollup, so we have to wrap it in a pure-annotated IIFE.
/* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()
) : options;
}
const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
function onActivated(hook, target) { function onActivated(hook, target) {
registerKeepAliveHook(hook, "a", target); registerKeepAliveHook(hook, "a", target);
@ -7037,7 +7046,7 @@ function isConsoleWritable() {
function initRuntimeSocketService() { function initRuntimeSocketService() {
const hosts = "192.168.2.24,127.0.0.1"; const hosts = "192.168.2.24,127.0.0.1";
const port = "8090"; const port = "8090";
const id = "mp-weixin_vR5PXk"; const id = "mp-weixin_rbpkc_";
const lazy = typeof swan !== "undefined"; const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => { let restoreError = lazy ? () => {
} : initOnError(); } : initOnError();
@ -7989,6 +7998,7 @@ const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
const onLoad = /* @__PURE__ */ createHook(ON_LOAD); const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
exports._export_sfc = _export_sfc; exports._export_sfc = _export_sfc;
exports.createSSRApp = createSSRApp; exports.createSSRApp = createSSRApp;
exports.defineComponent = defineComponent;
exports.e = e; exports.e = e;
exports.f = f; exports.f = f;
exports.index = index; exports.index = index;

34
unpackage/dist/dev/mp-weixin/nvue.wxss vendored Normal file
View File

@ -0,0 +1,34 @@
label,
scroll-view,
swiper-item,
view {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
image,
input,
scroll-view,
swiper,
swiper-item,
text,
textarea,
video,
view {
position: relative;
border: 0 solid #000;
box-sizing: border-box;
}
swiper-item {
position: absolute;
}
button {
margin: 0;
}

View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

View File

@ -1,10 +1,21 @@
"use strict"; "use strict";
const common_vendor = require("../../common/vendor.js"); const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js"); const common_assets = require("../../common/assets.js");
if (!Array) {
const _easycom_u_modal2 = common_vendor.resolveComponent("u-modal");
_easycom_u_modal2();
}
const _easycom_u_modal = () => "../../uni_modules/vk-uview-ui/components/u-modal/u-modal.js";
if (!Math) {
_easycom_u_modal();
}
const _sfc_main = { const _sfc_main = {
__name: "IDcard", __name: "IDcard",
setup(__props) { setup(__props) {
const show = common_vendor.ref(false);
const content = common_vendor.ref("");
const nameArray = ["姓名", "性别", "身份证号码", "民族", "出生日期", "住址", "签发机关", "有效期限"]; const nameArray = ["姓名", "性别", "身份证号码", "民族", "出生日期", "住址", "签发机关", "有效期限"];
const textArray = common_vendor.reactive(["", "", "", "", "", "", "", ""]);
const tempImagePath = common_vendor.ref(""); const tempImagePath = common_vendor.ref("");
function getMessage() { function getMessage() {
common_vendor.index.chooseImage({ common_vendor.index.chooseImage({
@ -15,11 +26,14 @@ const _sfc_main = {
uploadImage(tempImagePath.value); uploadImage(tempImagePath.value);
}, },
fail: (err) => { fail: (err) => {
common_vendor.index.__f__("error", "at pages/addoldman/IDcard.vue:69", "拍照失败:", err); common_vendor.index.__f__("error", "at pages/addoldman/IDcard.vue:87", "拍照失败:", err);
} }
}); });
} }
const headImge = common_vendor.ref("");
const backImge = common_vendor.ref("");
function uploadImage(filePath) { function uploadImage(filePath) {
common_vendor.index.showLoading();
common_vendor.index.uploadFile({ common_vendor.index.uploadFile({
url: `${common_vendor.index.getStorageSync("serverUrl")}/api/ocr/idCard`, url: `${common_vendor.index.getStorageSync("serverUrl")}/api/ocr/idCard`,
// 替换为你的POST接口地址 // 替换为你的POST接口地址
@ -29,21 +43,55 @@ const _sfc_main = {
header: { header: {
"X-Access-Token": common_vendor.index.getStorageSync("token") || "" "X-Access-Token": common_vendor.index.getStorageSync("token") || ""
}, },
formData: { formData: {},
// 可以根据接口需要添加额外表单字段
// userId: '12345'
},
success: (uploadRes) => { success: (uploadRes) => {
common_vendor.index.__f__("log", "at pages/addoldman/IDcard.vue:88", "????", JSON.parse(JSON.parse(uploadRes.data).result).data); if (!JSON.parse(uploadRes.data).success) {
common_vendor.index.showToast({
title: "识别失败",
icon: "error"
});
common_vendor.index.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;
common_vendor.index.showToast({
title: "识别成功"
});
headImge.value = filePath;
common_vendor.index.hideLoading();
} else {
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data.back.data;
textArray[6] = father.issueAuthority;
textArray[7] = father.validPeriod;
common_vendor.index.showToast({
title: "识别成功"
});
backImge.value = filePath;
common_vendor.index.hideLoading();
}
}, },
fail: (err) => { fail: (err) => {
common_vendor.index.showToast({ common_vendor.index.showToast({
title: "上传出错", title: "上传出错",
icon: "error" icon: "error"
}); });
common_vendor.index.hideLoading();
} }
}); });
} }
const openLook = (res) => {
if (res) {
content.value = res;
show.value = true;
}
};
const next = () => { const next = () => {
common_vendor.index.navigateTo({ common_vendor.index.navigateTo({
url: "/pages/addoldman/yibao" url: "/pages/addoldman/yibao"
@ -51,18 +99,29 @@ const _sfc_main = {
}; };
return (_ctx, _cache) => { return (_ctx, _cache) => {
return { return {
a: common_assets._imports_0$2, a: common_vendor.o(($event) => show.value = $event),
b: common_assets._imports_1$4, b: common_vendor.p({
c: common_vendor.o(getMessage), content: content.value,
d: common_assets._imports_2$3, modelValue: show.value
e: common_vendor.o(getMessage), }),
f: common_vendor.f(nameArray, (item, index, i0) => { c: common_assets._imports_0$2,
d: headImge.value ? headImge.value : `/static/index/IDcard.png`,
e: !headImge.value,
f: common_assets._imports_1$4,
g: common_vendor.o(getMessage),
h: backImge.value ? backImge.value : `/static/index/backIDcard.png`,
i: !backImge.value,
j: common_assets._imports_1$4,
k: common_vendor.o(getMessage),
l: common_vendor.f(nameArray, (item, index, i0) => {
return { return {
a: common_vendor.t(item), a: common_vendor.t(item),
b: index b: common_vendor.t(textArray[index] ? textArray[index] : "自动获取"),
c: index,
d: common_vendor.o(($event) => openLook(textArray[index]), index)
}; };
}), }),
g: common_vendor.o(next) m: common_vendor.o(next)
}; };
}; };
} }

View File

@ -1,4 +1,6 @@
{ {
"navigationBarTitleText": "长者信息采集", "navigationBarTitleText": "长者信息采集",
"usingComponents": {} "usingComponents": {
"u-modal": "../../uni_modules/vk-uview-ui/components/u-modal/u-modal"
}
} }

View File

@ -1 +1 @@
<view class="container data-v-5fcb8e22"><view class="white-content data-v-5fcb8e22"><view class="content-title data-v-5fcb8e22"><view class="content-weight data-v-5fcb8e22">身份证上传</view><image class="content-img data-v-5fcb8e22" src="{{a}}"/></view><view class="white-photo data-v-5fcb8e22" bindtap="{{c}}"><view class="photo-left data-v-5fcb8e22"><view class="photo-weight data-v-5fcb8e22">人像面</view><view class="photo-font data-v-5fcb8e22">请上传身份证人像面</view></view><image class="photo data-v-5fcb8e22" src="{{b}}"/></view><view class="white-photo data-v-5fcb8e22" style="margin-top:30rpx" bindtap="{{e}}"><view class="photo-left data-v-5fcb8e22"><view class="photo-weight data-v-5fcb8e22">国徽面</view><view class="photo-font data-v-5fcb8e22">请上传身份证国徽面</view></view><image class="photo data-v-5fcb8e22" src="{{d}}"/></view><view class="white-message data-v-5fcb8e22"><view class="message-title data-v-5fcb8e22"><view class="shu data-v-5fcb8e22"></view><view class="message-weight data-v-5fcb8e22"> 确认户口本本人页信息 </view></view><view class="data-v-5fcb8e22" style="margin-bottom:20rpx"><view wx:for="{{f}}" wx:for-item="item" wx:key="b" class="one data-v-5fcb8e22"><view class="one-left data-v-5fcb8e22">{{item.a}}</view><view class="one-right data-v-5fcb8e22">自动获得</view></view></view></view></view><view class="gray-font data-v-5fcb8e22"><view class=" data-v-5fcb8e22">注意事项:</view><view class=" data-v-5fcb8e22">同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。</view></view><view class="finish-button data-v-5fcb8e22" bindtap="{{g}}"> 下一步 </view></view> <view class="container data-v-5fcb8e22"><u-modal wx:if="{{b}}" class="data-v-5fcb8e22" u-i="5fcb8e22-0" bind:__l="__l" bindupdateModelValue="{{a}}" u-p="{{b}}"></u-modal><view class="white-content data-v-5fcb8e22"><view class="content-title data-v-5fcb8e22"><view class="content-weight data-v-5fcb8e22">身份证上传</view><image class="content-img data-v-5fcb8e22" src="{{c}}"/></view><view class="white-photo data-v-5fcb8e22" bindtap="{{g}}"><view class="photo-left data-v-5fcb8e22"><view class="photo-weight data-v-5fcb8e22">人像面</view><view class="photo-font data-v-5fcb8e22">请上传身份证人像面</view></view><view class="data-v-5fcb8e22" style="position:relative"><image class="photo data-v-5fcb8e22" src="{{d}}"/><image class="data-v-5fcb8e22" hidden="{{!e}}" style="position:absolute;top:50%;left:50%;width:70rpx;height:60rpx;transform:translate(-50%,-50%)" src="{{f}}"/></view></view><view class="white-photo data-v-5fcb8e22" style="margin-top:30rpx" bindtap="{{k}}"><view class="photo-left data-v-5fcb8e22"><view class="photo-weight data-v-5fcb8e22">国徽面</view><view class="photo-font data-v-5fcb8e22">请上传身份证国徽面</view></view><view class="data-v-5fcb8e22" style="position:relative"><image class="photo data-v-5fcb8e22" src="{{h}}"/><image class="data-v-5fcb8e22" hidden="{{!i}}" style="position:absolute;top:50%;left:50%;width:70rpx;height:60rpx;transform:translate(-50%,-50%)" src="{{j}}"/></view></view><view class="white-message data-v-5fcb8e22"><view class="message-title data-v-5fcb8e22"><view class="shu data-v-5fcb8e22"></view><view class="message-weight data-v-5fcb8e22"> 确认户口本本人页信息 </view></view><view class="data-v-5fcb8e22" style="margin-bottom:20rpx"><view wx:for="{{l}}" wx:for-item="item" wx:key="c" class="one data-v-5fcb8e22" bindtap="{{item.d}}"><view class="one-left data-v-5fcb8e22">{{item.a}}</view><view class="one-right data-v-5fcb8e22">{{item.b}}</view></view></view></view></view><view class="gray-font data-v-5fcb8e22"><view class=" data-v-5fcb8e22">注意事项:</view><view class=" data-v-5fcb8e22"> 同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。</view></view><view class="finish-button data-v-5fcb8e22" bindtap="{{m}}"> 下一步 </view></view>

View File

@ -115,6 +115,12 @@
.container .white-message .one .one-right.data-v-5fcb8e22 { .container .white-message .one .one-right.data-v-5fcb8e22 {
margin-right: 10rpx; margin-right: 10rpx;
color: #999999; color: #999999;
overflow: hidden;
/* 隐藏超出内容 */
white-space: nowrap;
/* 不换行 */
text-overflow: ellipsis;
max-width: 300rpx;
} }
.photo-left .photo-weight.data-v-5fcb8e22 { .photo-left .photo-weight.data-v-5fcb8e22 {
font-size: 26rpx; font-size: 26rpx;

View File

@ -0,0 +1,82 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
__name: "CustomCamera",
setup(__props) {
const video = common_vendor.ref();
const canvas = common_vendor.ref();
const started = common_vendor.ref(false);
let stream = null;
let rafID;
async function startCamera() {
var _a;
if (!((_a = navigator.mediaDevices) == null ? void 0 : _a.getUserMedia)) {
common_vendor.index.showToast({ title: "当前浏览器不支持实时相机", icon: "none" });
return;
}
try {
stream = await navigator.mediaDevices.getUserMedia({
video: { facingMode: { ideal: "environment" } },
audio: false
});
const v = video.value;
v.srcObject = stream;
await v.play();
drawFrame();
started.value = true;
} catch (err) {
common_vendor.index.__f__("error", "at pages/camera/CustomCamera.vue:72", err);
common_vendor.index.showToast({ title: "无法获取摄像头权限", icon: "none" });
}
}
function drawFrame() {
if (!started.value)
return;
const v = video.value, c = canvas.value;
const ctx = c.getContext("2d");
if (v.videoWidth && v.videoHeight) {
if (c.width !== window.innerWidth) {
c.width = window.innerWidth;
c.height = window.innerHeight;
}
ctx.drawImage(v, 0, 0, c.width, c.height);
}
rafID = requestAnimationFrame(drawFrame);
}
function shoot() {
const dataURL = canvas.value.toDataURL("image/jpeg", 0.9);
common_vendor.index.navigateBack();
common_vendor.index.$emit("photoTaken", dataURL);
}
function close() {
cleanup();
common_vendor.index.navigateBack();
}
function cleanup() {
cancelAnimationFrame(rafID);
if (stream)
stream.getTracks().forEach((t) => t.stop());
}
common_vendor.onBeforeUnmount(cleanup);
return (_ctx, _cache) => {
return common_vendor.e({
a: started.value,
b: started.value,
c: common_assets._imports_0,
d: started.value ? 1 : 0,
e: started.value
}, started.value ? {
f: common_vendor.o(close),
g: common_vendor.o(shoot)
} : {}, {
h: !started.value
}, !started.value ? {
i: common_vendor.o(startCamera)
} : {});
};
}
});
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-84a6cb98"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/camera/CustomCamera.js.map

View File

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "图像识别",
"usingComponents": {}
}

View File

@ -0,0 +1 @@
<view class="page data-v-84a6cb98"><video ref="video" class="video data-v-84a6cb98" playsinline webkit-playsinline x5-playsinline muted hidden="{{!a}}"/><canvas ref="canvas" class="canvas data-v-84a6cb98" hidden="{{!b}}"></canvas><image class="overlay data-v-84a6cb98" src="{{c}}" style="{{'opacity:' + d}}"/><view wx:if="{{e}}" class="btn-bar data-v-84a6cb98"><button class="btn close data-v-84a6cb98" bindtap="{{f}}">关闭</button><button class="btn shoot data-v-84a6cb98" bindtap="{{g}}"></button></view><view wx:if="{{h}}" class="starter data-v-84a6cb98"><button class="btn start data-v-84a6cb98" bindtap="{{i}}">开始拍照</button></view></view>

View File

@ -0,0 +1,31 @@
.page.data-v-84a6cb98 { position:fixed; inset:0; background:#000; overflow:hidden;
}
.video.data-v-84a6cb98 { position:absolute; inset:0; object-fit:cover; z-index:1;
}
.canvas.data-v-84a6cb98 { position:absolute; inset:0; z-index:1;
}
.overlay.data-v-84a6cb98{
position:absolute; top:50%; left:50%;
width:220px; height:220px;
transform:translate(-50%,-50%); z-index:2;
pointer-events:none;
}
.btn-bar.data-v-84a6cb98{
position:absolute; bottom:60px; inset-inline:0;
display:flex; justify-content:space-around; z-index:3;
}
.btn.data-v-84a6cb98{
border:none; font-size:16px; color:#fff;
}
.close.data-v-84a6cb98{ width:100px; height:40px; border-radius:20px; background:rgba(0,0,0,.5);
}
.shoot.data-v-84a6cb98{ width:80px; height:80px; border-radius:40px; background:#fff;
}
.starter.data-v-84a6cb98{
position:absolute; inset:0; display:flex;
justify-content:center; align-items:center; z-index:3;
background:#000;
}
.start.data-v-84a6cb98{ width:140px; height:46px; border-radius:23px; background:#1aad19;
}

View File

@ -94,17 +94,19 @@ const _sfc_main = {
html5QrCode.stop().catch(console.warn).finally(() => { html5QrCode.stop().catch(console.warn).finally(() => {
scanning.value = false; scanning.value = false;
}); });
common_vendor.index.navigateTo({
url: "/pages/selectunit/map"
});
}, },
(errorMessage) => { (errorMessage) => {
} }
).catch((err) => { ).catch((err) => {
common_vendor.index.__f__("error", "at pages/index/index.vue:302", "扫码启动失败", err); common_vendor.index.__f__("error", "at pages/index/index.vue:299", "扫码启动失败", err);
scanning.value = false; scanning.value = false;
}); });
} }
const gotoWindy = () => {
common_vendor.index.navigateTo({
url: "/pages/selectunit/map"
});
};
common_vendor.onMounted(async () => { common_vendor.onMounted(async () => {
updateTime(); updateTime();
timer = setInterval(updateTime, 1e3); timer = setInterval(updateTime, 1e3);
@ -151,25 +153,26 @@ const _sfc_main = {
D: !scaning.value, D: !scaning.value,
E: common_assets._imports_10, E: common_assets._imports_10,
F: common_assets._imports_11, F: common_assets._imports_11,
G: common_assets._imports_12, G: common_vendor.o(gotoWindy),
H: common_vendor.o(($event) => scaning.value = true), H: common_assets._imports_12,
I: common_vendor.o(($event) => scaning.value = true), I: common_vendor.o(($event) => scaning.value = true),
J: common_assets._imports_13, J: common_vendor.o(($event) => scaning.value = true),
K: common_vendor.o(addoldman), K: common_assets._imports_13,
L: common_assets._imports_14, L: common_vendor.o(addoldman),
M: common_vendor.f(buttonArray.value, (item, index, i0) => { M: common_assets._imports_14,
N: common_vendor.f(buttonArray.value, (item, index, i0) => {
return { return {
a: `/static/index/jumpbutton/${index}.png`, a: `/static/index/jumpbutton/${index}.png`,
b: common_vendor.t(item), b: common_vendor.t(item),
c: index c: index
}; };
}), }),
N: `600rpx`, O: `600rpx`,
O: which.value, P: which.value,
P: common_vendor.o(swiperchange), Q: common_vendor.o(swiperchange),
Q: !scaning.value, R: !scaning.value,
R: whichMenu.value === 2, S: whichMenu.value === 2,
S: common_vendor.f(itemArray, (item, index, i0) => { T: common_vendor.f(itemArray, (item, index, i0) => {
return { return {
a: `/static/index/itemsbutton/${index}${itemTarget.value === index ? 1 : 0}.png`, a: `/static/index/itemsbutton/${index}${itemTarget.value === index ? 1 : 0}.png`,
b: common_vendor.t(item), b: common_vendor.t(item),

File diff suppressed because one or more lines are too long

View File

@ -1,232 +0,0 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
__name: "index",
setup(__props) {
const threeContainer = common_vendor.ref(null);
common_vendor.onMounted(() => {
const container = threeContainer.value;
const W = container.clientWidth, H = 400;
const scene = new common_vendor.Scene();
scene.background = new common_vendor.Color(16119285);
const camera = new common_vendor.PerspectiveCamera(60, W / H, 0.1, 1e3);
camera.position.set(0, 20, 30);
const renderer = new common_vendor.WebGLRenderer({
antialias: true
});
renderer.setSize(W, H);
renderer.shadowMap.enabled = true;
container.appendChild(renderer.domElement);
scene.add(new common_vendor.AmbientLight(16777215, 0.5));
const dirL = new common_vendor.DirectionalLight(16777215, 0.8);
dirL.position.set(-10, 20, 10);
dirL.castShadow = true;
scene.add(dirL);
const ground = new common_vendor.Mesh(
new common_vendor.BoxGeometry(50, 0.02, 50),
new common_vendor.MeshStandardMaterial({
color: 14540253
})
);
ground.position.y = -0.01;
ground.receiveShadow = true;
scene.add(ground);
const wallMat = new common_vendor.MeshStandardMaterial({
color: 16316664,
roughness: 0.7,
metalness: 0.1,
side: common_vendor.DoubleSide
});
const lintelMat = new common_vendor.MeshStandardMaterial({
color: 14737632,
roughness: 0.6,
metalness: 0.1
});
const doorMat = new common_vendor.MeshStandardMaterial({
color: 9127187,
roughness: 0.6,
metalness: 0.2
});
const bedFrameMat = new common_vendor.MeshStandardMaterial({
color: 5592405,
roughness: 0.5,
metalness: 0.8
});
const mattressMat = new common_vendor.MeshStandardMaterial({
color: 16777215,
roughness: 0.8,
metalness: 0.1
});
const tvMat = new common_vendor.MeshStandardMaterial({
color: 0,
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 common_vendor.Group();
room.position.set(x, h / 2, z);
room.userData.isRoom = true;
room.userData.selected = false;
const planeH = new common_vendor.PlaneGeometry(w, h);
const planeD = new common_vendor.PlaneGeometry(d, h);
const upH = h - door.height - door.sill;
const upWall = new common_vendor.Mesh(new common_vendor.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 common_vendor.Mesh(new common_vendor.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 common_vendor.Mesh(new common_vendor.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 common_vendor.Group();
const doorMesh = new common_vendor.Mesh(new common_vendor.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);
const north = new common_vendor.Mesh(planeH, wallMat.clone());
north.position.set(0, 0, -d / 2);
north.rotation.y = Math.PI;
markOriginal(north);
room.add(north);
const east = new common_vendor.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);
const bedW = w * 0.6, bedH = 0.5, bedD = d * 0.4;
const bed = new common_vendor.Group();
bed.userData.isBed = true;
const frame = new common_vendor.Mesh(new common_vendor.BoxGeometry(bedW, 0.1, bedD), bedFrameMat.clone());
frame.position.y = -h / 2 + 0.05;
markOriginal(frame);
bed.add(frame);
const mat = new common_vendor.Mesh(new common_vendor.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);
const tvWidth = bedW * 0.6;
const tvHeight = tvWidth * 9 / 16;
const tv = new common_vendor.Mesh(new common_vendor.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;
}
const building = new common_vendor.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 common_vendor.OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;
const ray = new common_vendor.Raycaster(), mouse = new common_vendor.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;
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;
}
let tgt = hits[0].object;
while (tgt && !tgt.userData.isRoom)
tgt = tgt.parent;
if (!tgt)
return;
if (selectedRoom && selectedRoom !== tgt) {
selectedRoom.userData.selected = false;
selectedRoom.traverse((n) => {
if (n.isMesh && n.userData.originalMaterial) {
n.material = n.userData.originalMaterial.clone();
}
});
}
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(3373055);
n.material = matClone;
}
});
selectedRoom = sel ? tgt : null;
});
const animate = () => {
requestAnimationFrame(animate);
controls.update();
renderer.render(scene, camera);
};
animate();
});
return (_ctx, _cache) => {
return {};
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-a3704cdf"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/map/index.js.map

View File

@ -1,4 +0,0 @@
{
"navigationBarTitleText": "地图",
"usingComponents": {}
}

View File

@ -1 +0,0 @@
<view class="container data-v-a3704cdf"><view ref="threeContainer" class="three-container data-v-a3704cdf"></view></view>

View File

@ -1,9 +0,0 @@
.container.data-v-a3704cdf {
width: 100%;
height: 400px
}
.three-container.data-v-a3704cdf {
width: 100%;
height: 100%
}

View File

@ -45,11 +45,18 @@ const _sfc_main = {
const diaoqu = () => { const diaoqu = () => {
const urlpost = `https://www.focusnu.com/nursing-unit_0010507/weiXinPay/native`; const urlpost = `https://www.focusnu.com/nursing-unit_0010507/weiXinPay/native`;
const payload = { const payload = {
title: "测试", title: "测试订单",
openId: openid.value, openId: openid.value,
amountPrice: amount.value amountPrice: amount.value,
orgCode: "组织id",
nursingUnit: "护理单元id",
customerId: "顾客id",
orderType: "订单类型",
price: 1,
count: 1,
unit: "单位"
}; };
common_vendor.index.__f__("log", "at pages/pay/index.vue:70", "???/", payload); common_vendor.index.__f__("log", "at pages/pay/index.vue:77", "???/", payload);
fetch(urlpost, { fetch(urlpost, {
method: "POST", method: "POST",
headers: { headers: {
@ -57,9 +64,16 @@ const _sfc_main = {
}, },
body: JSON.stringify(payload) body: JSON.stringify(payload)
}).then((res) => res.json()).then((data) => { }).then((res) => res.json()).then((data) => {
callWeixinPay(data); if (data.appId) {
callWeixinPay(data);
} else {
common_vendor.index.showToast({
title: "支付失败",
icon: "error"
});
}
}).catch((err) => { }).catch((err) => {
common_vendor.index.__f__("error", "at pages/pay/index.vue:85", "请求失败:", err); common_vendor.index.__f__("error", "at pages/pay/index.vue:97", "请求失败:", err);
}); });
}; };
const saveurl = common_vendor.ref(""); const saveurl = common_vendor.ref("");
@ -72,14 +86,14 @@ const _sfc_main = {
common_vendor.index.getStorage({ common_vendor.index.getStorage({
key: "serverUrl", key: "serverUrl",
success: function(res) { success: function(res) {
common_vendor.index.__f__("log", "at pages/pay/index.vue:97", "读取缓存:", res.data.url); common_vendor.index.__f__("log", "at pages/pay/index.vue:109", "读取缓存:", res.data.url);
saveurl.value = res.data.url; saveurl.value = res.data.url;
} }
}); });
common_vendor.index.getStorage({ common_vendor.index.getStorage({
key: "openid", key: "openid",
success: function(res) { success: function(res) {
common_vendor.index.__f__("log", "at pages/pay/index.vue:105", "读取缓存:", res.data.openid); common_vendor.index.__f__("log", "at pages/pay/index.vue:117", "读取缓存:", res.data.openid);
openid.value = res.data.openid; openid.value = res.data.openid;
} }
}); });

View File

@ -4,7 +4,107 @@ const common_assets = require("../../common/assets.js");
const _sfc_main = { const _sfc_main = {
__name: "map", __name: "map",
setup(__props) { setup(__props) {
const isRuler = common_vendor.ref(true); const isRuler = common_vendor.ref(false);
const isTarget = common_vendor.ref(false);
const targetIndex = common_vendor.ref(-1);
const institution = common_vendor.ref([
{
name: "护理单元01",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元02",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元03",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元04",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元05",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元06",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元07",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元08",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元09",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元10",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元11",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元12",
width: "30",
height: "30",
top: "20",
left: "0"
},
{
name: "护理单元13",
width: "30",
height: "30",
top: "20",
left: "0"
}
]);
const jumpToPro = () => {
common_vendor.index.navigateTo({
url: "/pages/login/protocol"
});
};
return (_ctx, _cache) => { return (_ctx, _cache) => {
return { return {
a: common_vendor.o(($event) => isRuler.value = true), a: common_vendor.o(($event) => isRuler.value = true),
@ -20,7 +120,25 @@ const _sfc_main = {
e: common_vendor.o(() => { e: common_vendor.o(() => {
}), }),
f: common_assets._imports_0$3, f: common_assets._imports_0$3,
g: common_assets._imports_1$5 g: common_assets._imports_1$5,
h: !isRuler.value,
i: common_vendor.f(institution.value, (item, index, i0) => {
return {
a: targetIndex.value == index ? `/static/index/jigou/bluewuzi.png` : `/static/index/jigou/wuzi.png`,
b: targetIndex.value == index,
c: common_vendor.n(targetIndex.value == index ? `card-target` : `card`),
d: common_vendor.t(item.name),
e: index,
f: common_vendor.o(($event) => targetIndex.value = index, index)
};
}),
j: common_assets._imports_2$3,
k: common_assets._imports_3$1,
l: common_vendor.n(isTarget.value ? "radio-circle-target" : "radio-circle"),
m: common_vendor.o(($event) => isTarget.value = !isTarget.value),
n: common_vendor.o(($event) => isTarget.value = !isTarget.value),
o: common_vendor.o(jumpToPro),
p: common_vendor.o((...args) => _ctx.loginIt && _ctx.loginIt(...args))
}; };
}; };
} }

View File

@ -1 +1 @@
<view class="container data-v-33c0aee6"><view class="select data-v-33c0aee6" catchtap="{{e}}"><view class="select-left data-v-33c0aee6" bindtap="{{a}}" style="{{b}}"> 列表 </view><view class="select-right data-v-33c0aee6" bindtap="{{c}}" style="{{d}}"> 地图 </view></view><view class="title-map data-v-33c0aee6"><view class="right-bad data-v-33c0aee6"><view class="data-v-33c0aee6">北</view><image class="right-bad-img data-v-33c0aee6" src="{{f}}"/><view class="data-v-33c0aee6">南</view></view><image class="title-img data-v-33c0aee6" src="{{g}}"/></view></view> <view class="container data-v-33c0aee6"><view class="select data-v-33c0aee6" catchtap="{{e}}"><view class="select-left data-v-33c0aee6" bindtap="{{a}}" style="{{b}}"> 列表 </view><view class="select-right data-v-33c0aee6" bindtap="{{c}}" style="{{d}}"> 地图 </view></view><view class="title-map data-v-33c0aee6" hidden="{{!h}}"><view class="right-bad data-v-33c0aee6"><view class="data-v-33c0aee6">北</view><image class="right-bad-img data-v-33c0aee6" src="{{f}}"/><view class="data-v-33c0aee6">南</view></view><image class="title-img data-v-33c0aee6" src="{{g}}"/></view><view class="list-father data-v-33c0aee6"><view wx:for="{{i}}" wx:for-item="item" wx:key="e" class="card-father data-v-33c0aee6" bindtap="{{item.f}}"><view class="{{['data-v-33c0aee6', item.c]}}"><image class="card-img data-v-33c0aee6" src="{{item.a}}"/><view hidden="{{!item.b}}" class="abs-father data-v-33c0aee6"><image class="abs-img data-v-33c0aee6" src="{{j}}"/><image class="abs-dui data-v-33c0aee6" src="{{k}}"/></view></view><view class="card-name data-v-33c0aee6">{{item.d}}</view></view></view><view class="under-container-title data-v-33c0aee6"><view style="margin-left:60rpx" class="{{['data-v-33c0aee6', l]}}" bindtap="{{m}}"></view><view style="margin-left:17rpx" class="radio-circle-font data-v-33c0aee6" bindtap="{{n}}">阅读并同意</view><view class="radio-circle-blue data-v-33c0aee6" bindtap="{{o}}"> 《护理单元使用条款》 </view></view><view class="button-blue data-v-33c0aee6" bindtap="{{p}}"> 一键登录 </view><view class="bgc-height data-v-33c0aee6"></view></view>

View File

@ -27,11 +27,12 @@
width: 100%; width: 100%;
min-height: 100vh; min-height: 100vh;
position: relative; position: relative;
background-color: #eceef4;
} }
.container .select.data-v-33c0aee6 { .container .select.data-v-33c0aee6 {
position: absolute; position: absolute;
left: 30rpx; left: 30rpx;
top: -20rpx; top: 10rpx;
width: 170rpx; width: 170rpx;
height: 60rpx; height: 60rpx;
border-radius: 20rpx; border-radius: 20rpx;
@ -66,7 +67,6 @@
width: 100%; width: 100%;
height: 650rpx; height: 650rpx;
background-color: #E0E2E9; background-color: #E0E2E9;
margin-top: 50rpx;
position: relative; position: relative;
} }
.container .title-map .right-bad.data-v-33c0aee6 { .container .title-map .right-bad.data-v-33c0aee6 {
@ -94,3 +94,136 @@
margin-left: 25rpx; margin-left: 25rpx;
margin-top: 25rpx; margin-top: 25rpx;
} }
.list-father.data-v-33c0aee6 {
display: flex;
flex-wrap: wrap;
width: 100%;
padding-top: 20rpx;
background-color: #fff;
border-bottom-left-radius: 30rpx;
border-bottom-right-radius: 30rpx;
}
.list-father .card-father.data-v-33c0aee6 {
display: flex;
width: 45%;
margin: 0 2.5%;
flex-direction: column;
display: flex;
justify-content: center;
align-items: center;
}
.list-father .card-father .card.data-v-33c0aee6 {
width: 100%;
height: 250rpx;
background-color: #F8F9FD;
border-radius: 35rpx;
display: flex;
justify-content: center;
align-items: center;
}
.list-father .card-father .card-target.data-v-33c0aee6 {
width: 100%;
height: 250rpx;
background-color: #F8F9FD;
border-radius: 35rpx;
display: flex;
justify-content: center;
align-items: center;
border: 2rpx solid #0083FF;
position: relative;
}
.list-father .card-father .card-target .abs-father.data-v-33c0aee6 {
width: 70rpx;
height: 70rpx;
position: absolute;
bottom: -4rpx;
right: -4rpx;
}
.list-father .card-father .card-target .abs-father .abs-img.data-v-33c0aee6 {
width: 70rpx;
height: 70rpx;
}
.list-father .card-father .card-target .abs-father .abs-dui.data-v-33c0aee6 {
width: 30rpx;
height: 30rpx;
position: absolute;
top: 25rpx;
left: 25rpx;
z-index: 1;
}
.list-father .card-father .card-img.data-v-33c0aee6 {
width: 150rpx;
height: 150rpx;
}
.list-father .card-father .card-name.data-v-33c0aee6 {
color: #888FA9;
margin: 20rpx 0;
}
.under-container-title.data-v-33c0aee6 {
display: flex;
margin-top: 40rpx;
align-items: center;
font-size: 25rpx;
font-weight: 500;
width: 100%;
position: relative;
}
.under-container-title .radio-circle.data-v-33c0aee6 {
position: relative;
margin-top: 2rpx;
width: 40rpx;
height: 40rpx;
border-radius: 50%;
border: 2rpx solid #C0C5D9;
background-color: transparent;
}
.under-container-title .radio-circle-target.data-v-33c0aee6 {
position: relative;
margin-top: 2rpx;
width: 40rpx;
height: 40rpx;
border-radius: 50%;
border: 2rpx solid #C0C5D9;
background-color: transparent;
}
.under-container-title .radio-circle-target.data-v-33c0aee6::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 30rpx;
height: 30rpx;
background-color: #00C9FF;
border-radius: 50%;
}
.under-container-title .radio-circle-blue.data-v-33c0aee6 {
color: #0083FF;
margin-top: 3rpx;
}
.under-container-title .radio-circle-font.data-v-33c0aee6 {
color: #5A607F;
margin-top: 3rpx;
}
.button-blue.data-v-33c0aee6 {
width: 80%;
margin-left: 10%;
margin-top: 20rpx;
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;
}
.bgc-height.data-v-33c0aee6 {
height: 150rpx;
width: 100%;
background-image: url("../../static/index/jigou/bgc.png");
background-size: 100% auto;
/* 宽度占满,高度自动 */
background-position: top center;
background-repeat: no-repeat;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

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