初始提交

This commit is contained in:
2026-01-04 11:09:06 +08:00
commit 8fa31df250
1326 changed files with 213907 additions and 0 deletions

192
pages/launch/guide.vue Normal file
View File

@@ -0,0 +1,192 @@
<template>
<view class="guide-v">
<view class="content">
<swiper class="swiper" @change="onChange">
<swiper-item>
<view class="swiper-item">
<view class="swiper-item-img">
<image class="itemImg" :src="guide1"></image>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item">
<view class="swiper-item-img">
<image class="itemImg" :src="guide2"></image>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item">
<view class="swiper-item-img">
<image class="itemImg" :src="guide3"></image>
</view>
<view class="swiper-item-btn" @click="setLaunchFlag()">立即体验</view>
</view>
</swiper-item>
</swiper>
<view class="jump-over" @click="setLaunchFlag()">跳过</view>
<view class="bannerDots" v-if="currenTab!=3">
<view class="banner-dot" v-for="(item,index) in bannerDot" :key="index"
:class="{'active':index===currenTab}">
</view>
</view>
</view>
</view>
</template>
<script>
import resources from '@/libs/resources.js'
export default {
data() {
return {
bannerDot: [0, 1, 2],
currenTab: 0,
guide1: resources.guide.guide1,
guide2: resources.guide.guide2,
guide3: resources.guide.guide3
}
},
methods: {
setLaunchFlag() {
uni.setStorageSync('launchFlag', true)
uni.reLaunch({
url: '/pages/login/index'
})
},
onChange(e) {
this.currenTab = e.detail.current
},
}
}
</script>
<style lang="scss">
page {
width: 100%;
height: 100%;
}
.guide-v {
width: 100%;
height: 100%;
.status-bar {
height: var(--status-bar-height);
width: 100%;
background-color: #FFFFFF;
.top-view {
height: var(--status-bar-height);
width: 100%;
position: fixed;
background-color: #FFFFFF;
top: 0;
z-index: 999;
}
}
.content {
width: 100%;
height: 100%;
background-size: 100% auto;
padding: 0;
touch-action: none;
position: fixed;
}
.swiper {
width: 100%;
height: 100% !important;
background: #FFFFFF;
}
.itemImg {
width: 100%;
height: 100%;
}
.swiper-item {
width: 100%;
height: 100%;
}
.swiper-item-img {
width: 100%;
height: 100%;
}
.swiper-item-text {
.swiper-item-title {
line-height: 130rpx;
font-size: 87rpx;
color: $u-type-primary;
font-weight: 500;
}
.swiper-item-content {
font-size: 28rpx;
color: #666666;
}
}
.bannerDots {
width: 100%;
height: 16rpx;
display: flex;
position: fixed;
bottom: 8%;
z-index: 99;
left: 50%;
transform: translate(-50%);
align-items: center;
justify-content: center;
.banner-dot {
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background: #CACACA;
margin: 0 10rpx;
&.active {
width: 40rpx;
height: 16rpx;
background: $u-type-primary;
border-radius: 8rpx;
}
}
}
.jump-over {
position: absolute;
z-index: 999;
right: 46rpx;
top: 86rpx;
width: 128rpx;
height: 54rpx;
line-height: 54rpx;
color: #fff;
border-radius: 27rpx;
text-align: center;
font-size: 32rpx;
background: rgba(123, 123, 123, 0.42);
}
.swiper-item-btn {
position: absolute;
right: 7rem;
bottom: 10rem;
text-align: center;
width: 296rpx;
height: 84rpx;
background-color: #E8F2FF;
opacity: 1;
border-radius: 50rpx;
line-height: 84rpx;
color: #3463FF;
font-size: 28rpx;
z-index: 99999;
letter-spacing: 2rpx;
}
}
</style>

103
pages/launch/index.vue Normal file
View File

@@ -0,0 +1,103 @@
<template>
<view class="launch-v">
<view class="launch-box">
<view class="title">全新模式 为你而来</view>
<view class="version">VERSION6.0</view>
<view class="launch-img">
<image :src="startup" mode="widthFix"></image>
</view>
<view class="copyright">Copyright © 2025 引迈信息技术有限公司出品</view>
</view>
</view>
</template>
<script>
import resources from '@/libs/resources.js'
export default {
data() {
return {
startup: resources.startup.main
}
},
onLoad() {
if (uni.getStorageSync('isUpdate')) return
const launchFlag = uni.getStorageSync('launchFlag');
const token = uni.getStorageSync("token") || '';
if (launchFlag) {
if (token) {
uni.switchTab({
url: '/pages/index/index'
})
} else {
uni.redirectTo({
url: '/pages/login/index'
})
}
} else {
// #ifdef APP
uni.redirectTo({
url: '/pages/launch/policy'
})
// #endif
// #ifndef APP
if (token) {
uni.switchTab({
url: '/pages/index/index'
})
} else {
uni.redirectTo({
url: '/pages/login/index'
})
}
// #endif
}
},
}
</script>
<style lang="scss">
.launch-v {
.launch-box {
padding-top: 170rpx;
.title {
font-size: 50rpx;
line-height: 70rpx;
color: #5098FA;
text-align: center;
margin-bottom: 10rpx;
}
.version {
width: 250rpx;
margin: 0 auto;
text-align: center;
height: 50rpx;
border: 1px solid #5098FA;
border-radius: 25rpx;
line-height: 48rpx;
color: #5098FA;
letter-spacing: 2rpx;
}
.launch-img {
margin: 0 auto;
width: 680rpx;
image {
width: 100%;
}
}
.copyright {
position: fixed;
bottom: 120rpx;
right: 0;
left: 0;
text-align: center;
color: #999999;
font-size: 24rpx;
}
}
}
</style>

102
pages/launch/policy.vue Normal file
View File

@@ -0,0 +1,102 @@
<template>
<view class="policy-v">
<view class="reminder-content">
<image :src="loginlogo" class="logo" mode="widthFix"></image>
<view class="u-font-36 u-m-t-20 u-m-b-30">引迈开发平台</view>
<view class="policy-tips u-m-t-20">
<view>欢迎使用引迈开发平台,依据政策要求,为了您能使用所有功能在使用中需要连接网络定位调用麦克风等服务请仔细阅读
<text class="u-type-primary" @click="userAgreement">用户协议</text><text class="u-type-primary"
@click="privacyPolicy">隐私政策</text>选择下方同意并继续表示您同意以上协议内容
</view>
</view>
<view class="operation-btn u-flex u-row-between">
<u-button @click="exitApp" :custom-style="customStyle">不同意</u-button>
<u-button type="primary" @click="agree" :custom-style="customStyle">同意并继续</u-button>
</view>
</view>
</view>
</template>
<script>
import resources from '@/libs/resources.js'
// #ifdef APP-HARMONY
import {
exitApp
} from "@/uni_modules/jnpf-exitApp"
// #endif
export default {
data() {
return {
loginlogo: resources.login.logo,
agreement: resources.userAgreement,
policy: resources.privacyPolicy,
customStyle: {
width: '40%'
}
}
},
methods: {
exitApp() {
// #ifdef APP-HARMONY
exitApp().then(res => {})
// #endif
// #ifndef APP-HARMONY
plus.os.name == "Android" ? plus.runtime.quit() : plus.ios.import("UIApplication").sharedApplication()
.performSelector("exit");
// #endif
},
openAppProductBtn() {
ExitApp({
success: (res) => {
console.log('success: ', JSON.stringify(res));
},
fail: (err) => {
console.error('fail: ', JSON.stringify(err));
},
complete: (res) => {
console.log('complete: ', JSON.stringify(res));
}
});
},
userAgreement() {
plus.runtime.openURL(this.agreement);
},
privacyPolicy() {
plus.runtime.openURL(this.policy);
},
agree() {
uni.redirectTo({
url: '/pages/launch/guide'
})
},
}
}
</script>
<style lang="scss">
.policy-v {
padding-top: 300rpx;
.logo {
width: 164rpx;
}
.reminder-content {
display: flex;
flex-direction: column;
align-items: center;
margin: 0 54rpx;
}
.policy-tips {
color: #9A9A9A;
}
.operation-btn {
position: fixed;
left: 0;
right: 0;
bottom: 100rpx;
}
}
</style>