main
parent
e981786eb6
commit
cabc13bf92
@ -0,0 +1,2 @@
|
||||
/node_modules
|
||||
*unpackage
|
@ -1,17 +1,18 @@
|
||||
<script>
|
||||
export default {
|
||||
onLaunch: function() {
|
||||
export default {
|
||||
onLaunch: function () {
|
||||
console.log('App Launch')
|
||||
},
|
||||
onShow: function() {
|
||||
onShow: function () {
|
||||
console.log('App Show')
|
||||
},
|
||||
onHide: function() {
|
||||
onHide: function () {
|
||||
console.log('App Hide')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
<style lang="scss">
|
||||
/*每个页面公共css */
|
||||
@import "uview-plus/index.scss";
|
||||
</style>
|
||||
|
@ -0,0 +1,72 @@
|
||||
<template>
|
||||
<div class="content2" :style="styleColor">
|
||||
<div class="wrap1" v-for="item in result">
|
||||
<div class="wrap1_1">
|
||||
<slot :name="Object.keys(item).find(x => x.includes('l'))"></slot>
|
||||
</div>
|
||||
<div class="wrap1_2">
|
||||
<slot :name="Object.keys(item).find(x => x.includes('r'))"></slot>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useSlots, ref, defineProps } from 'vue'
|
||||
const slots = useSlots();
|
||||
const prop = defineProps({
|
||||
styleColor: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return { backgroundColor: '#fff' }
|
||||
}
|
||||
}
|
||||
})
|
||||
const groupObjectsByNumberKeys = (obj) => {
|
||||
const grouped = {};
|
||||
for (const key in obj) {
|
||||
const numericPart = key.slice(1);
|
||||
if (!grouped[numericPart]) {
|
||||
grouped[numericPart] = {};
|
||||
}
|
||||
grouped[numericPart][key] = obj[key];
|
||||
}
|
||||
return Object.values(grouped);
|
||||
}
|
||||
const result = ref(groupObjectsByNumberKeys(slots))
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content2 {
|
||||
border-radius: 24rpx;
|
||||
padding-left: 18rpx;
|
||||
padding-right: 32rpx;
|
||||
|
||||
.wrap1 {
|
||||
padding-left: 14rpx;
|
||||
padding-top: 26rpx;
|
||||
padding-bottom: 22rpx;
|
||||
border-bottom: 1rpx solid #E4EAF1;
|
||||
display: flex;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.wrap1_2 {
|
||||
flex-grow: 1;
|
||||
padding-left: 36rpx;
|
||||
font-size: 24rpx;
|
||||
color: #939393;
|
||||
}
|
||||
|
||||
.wrap1_1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 192rpx;
|
||||
border-right: 1rpx solid #E4EAF1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,13 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = false
|
||||
bare = false
|
||||
logallrefupdates = true
|
||||
symlinks = false
|
||||
ignorecase = true
|
||||
[remote "origin"]
|
||||
url = http://192.168.12.3:3000/xuminyi/museum-H5.git
|
||||
fetch = +refs/heads/*:refs/remotes/origin/*
|
||||
[branch "main"]
|
||||
remote = origin
|
||||
merge = refs/heads/main
|
@ -1,22 +1,27 @@
|
||||
import App from './App'
|
||||
import App from "./App";
|
||||
import uviewPlus from "uview-plus";
|
||||
|
||||
// #ifndef VUE3
|
||||
import Vue from 'vue'
|
||||
import './uni.promisify.adaptor'
|
||||
Vue.config.productionTip = false
|
||||
App.mpType = 'app'
|
||||
import Vue from "vue";
|
||||
|
||||
import "./uni.promisify.adaptor";
|
||||
Vue.config.productionTip = false;
|
||||
App.mpType = "app";
|
||||
const app = new Vue({
|
||||
...App
|
||||
})
|
||||
app.$mount()
|
||||
...App,
|
||||
});
|
||||
app.$mount();
|
||||
// #endif
|
||||
|
||||
// #ifdef VUE3
|
||||
import { createSSRApp } from 'vue'
|
||||
import { createSSRApp } from "vue";
|
||||
|
||||
export function createApp() {
|
||||
const app = createSSRApp(App)
|
||||
const app = createSSRApp(App);
|
||||
app.use(uviewPlus);
|
||||
uni.$u.config.unit = "rpx";
|
||||
return {
|
||||
app
|
||||
}
|
||||
app,
|
||||
};
|
||||
}
|
||||
// #endif
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"sass": "^1.69.5",
|
||||
"sass-loader": "^13.3.2",
|
||||
"uview-plus": "^3.1.41"
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<image src="@/static/bg2.png" mode="aspectFill" class="img" />
|
||||
<up-button type="primary" :text="'审核员'" shape="circle" color="#AB2F23"
|
||||
style="width:700rpx ;margin-top: 50rpx;"></up-button>
|
||||
<up-button type="primary" text="扫一扫" shape="circle" color="#000" style="width:700rpx ;margin-top: 50rpx"
|
||||
@click="goScan"></up-button>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
const goScan = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/scan/index'
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: url('@/static/bg.png');
|
||||
background-size: cover;
|
||||
|
||||
.img {
|
||||
width: 100%;
|
||||
height: 1256rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,52 +0,0 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<image class="logo" src="/static/logo.png"></image>
|
||||
<view class="text-area">
|
||||
<text class="title">{{title}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
title: 'Hello'
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 200rpx;
|
||||
width: 200rpx;
|
||||
margin-top: 200rpx;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 50rpx;
|
||||
}
|
||||
|
||||
.text-area {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 36rpx;
|
||||
color: #8f8f94;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,98 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<image src="@/static/33@2x.png" mode="aspectFill" class="img" />
|
||||
<div class="loginInfo">
|
||||
<card>
|
||||
<template #l1>
|
||||
<div class="box-left">
|
||||
手机号(+86)
|
||||
</div>
|
||||
</template>
|
||||
<template #r1>
|
||||
<up-input placeholder="请输入手机号" clearable type="number" border="none"></up-input>
|
||||
</template>
|
||||
<template #l2>
|
||||
<div class="box-left">
|
||||
验证码
|
||||
</div>
|
||||
</template>
|
||||
<template #r2>
|
||||
<div class="box-right">
|
||||
<up-input placeholder="请输入验证码" border="none">
|
||||
<template #suffix>
|
||||
<up-code ref="uCodeRef" @change="codeChange" :seconds="60" changeText="60秒重新获取"
|
||||
endText="重新获取"></up-code>
|
||||
<up-button @tap="getCode" :text="tips" type="success" size="mini"></up-button>
|
||||
</template>
|
||||
</up-input>
|
||||
</div>
|
||||
</template>
|
||||
</card>
|
||||
<up-button type="primary" text="登录" shape="circle" color="#000" style="width:436rpx ;"
|
||||
@click="goCheck"></up-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch } from 'vue';
|
||||
import card from '@/components/card/index.vue'
|
||||
|
||||
const tips = ref('');
|
||||
const uCodeRef = ref(null);
|
||||
const codeChange = (text) => {
|
||||
tips.value = text;
|
||||
};
|
||||
const getCode = () => {
|
||||
console.log(uCodeRef.canGetCode)
|
||||
if (uCodeRef.canGetCode) {
|
||||
// 模拟向后端请求验证码
|
||||
uni.showLoading({
|
||||
title: '正在获取验证码',
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.hideLoading();
|
||||
// 这里此提示会被start()方法中的提示覆盖
|
||||
uni.$u.toast('验证码已发送');
|
||||
// 通知验证码组件内部开始倒计时
|
||||
uCodeRef.start();
|
||||
}, 2000);
|
||||
} else {
|
||||
uni.$u.toast('倒计时结束后再发送');
|
||||
}
|
||||
};
|
||||
const goCheck = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/check/index'
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: url('@/static/bg.png');
|
||||
background-size: cover;
|
||||
|
||||
.img {
|
||||
width: 100%;
|
||||
height: 1000rpx;
|
||||
}
|
||||
|
||||
.loginInfo {
|
||||
height: 100%;
|
||||
padding: 42rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
|
||||
.box-left {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,80 @@
|
||||
<template>
|
||||
<div class="main">
|
||||
<up-button type="primary" :text="'审核员'" shape="circle" color="#AB2F23" style="width:700rpx "></up-button>
|
||||
<image src="" mode="scaleToFill" class="img" style="" />
|
||||
<card>
|
||||
<template #l1>
|
||||
<div class="box-left">
|
||||
姓名
|
||||
</div>
|
||||
</template>
|
||||
<template #r1>
|
||||
123123
|
||||
</template>
|
||||
<template #l2>
|
||||
<div class="box-left">
|
||||
身份证号
|
||||
</div>
|
||||
</template>
|
||||
<template #r2>
|
||||
<div class="box-right">
|
||||
123123132
|
||||
</div>
|
||||
</template>
|
||||
<template #l3>
|
||||
<div class="box-left">
|
||||
领票日期
|
||||
</div>
|
||||
</template>
|
||||
<template #r3>
|
||||
123123
|
||||
</template>
|
||||
<template #l4>
|
||||
<div class="box-left">
|
||||
核验项目
|
||||
</div>
|
||||
</template>
|
||||
<template #r4>
|
||||
123123
|
||||
</template>
|
||||
<template #l5>
|
||||
<div class="box-left">
|
||||
核验日期
|
||||
</div>
|
||||
</template>
|
||||
<template #r5>
|
||||
123123
|
||||
</template>
|
||||
</card>
|
||||
<up-button type="primary" text="核验人像" shape="circle" color="#000" style="width:436rpx "></up-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import card from '@/components/card/index.vue'
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
background: url('@/static/bg.png');
|
||||
background-size: cover;
|
||||
box-sizing: border-box;
|
||||
padding: 42rpx 26rpx;
|
||||
|
||||
.img {
|
||||
width: 100%;
|
||||
height: 354rpx;
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
|
||||
.box-left {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,24 @@
|
||||
<template>
|
||||
<div>
|
||||
<mumuGetQrcode @success="qrcodeSucess" @error="qrcodeError"></mumuGetQrcode>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import mumuGetQrcode from "../../components/mumu-getQrcode/mumu-getQrcode.vue";
|
||||
const qrcodeSucess = (id) => {
|
||||
console.log(id)
|
||||
}
|
||||
const qrcodeError = (err) => {
|
||||
console.log(err);
|
||||
uni.showModal({
|
||||
title: "摄像头授权失败",
|
||||
content: "摄像头授权失败,请检测当前浏览器是否有摄像头权限。",
|
||||
success: () => {
|
||||
uni.navigateBack({});
|
||||
},
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
Binary file not shown.
After Width: | Height: | Size: 794 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.4 MiB |
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
Binary file not shown.
Before Width: | Height: | Size: 3.9 KiB |
Loading…
Reference in New Issue