添加背景图片

This commit is contained in:
18796357645 2025-08-04 19:38:06 +08:00
parent 7561634e99
commit 1e0e876243
2 changed files with 316 additions and 4 deletions

127
App.vue
View File

@ -1,9 +1,38 @@
<template>
<view>
<!-- 隐私条款弹窗 -->
<view class="privacy-modal" v-if="showPrivacyModal">
<view class="privacy-modal-mask"></view>
<view class="privacy-modal-content">
<view class="privacy-modal-title">隐私声明</view>
<view class="privacy-modal-body">
<text>请你务必审慎阅读充分理解"隐私政策"各条款包括但不限于为了更好的向您提供</text>
<text class="highlight">远程控制生产机器</text>
<text>服务我们需要收集您的</text>
<text class="underline">设备标识</text>
<text></text>
<text class="underline">操作日志</text>
<text></text>
<text class="underline">机器运行参数</text>
<text>等信息用于分析优化应用性能你可阅读</text>
<text class="privacy-link" @click="openPrivacyPolicy">隐私政策</text>
<text>了解详细信息如果你同意请点击下面按钮开始接受我们的服务</text>
</view>
<view class="privacy-modal-footer">
<button class="privacy-confirm-btn" @click="agreePrivacy">同意</button>
</view>
</view>
</view>
</view>
</template>
<script>
import {
BASE_API_URL,
BASE_IMG_URL
} from "@/config.js";
import { BASE_API_URL} from "@/config.js";
export default {
data() {
return {
showPrivacyModal: true, //
}
},
onLaunch: function () {
console.log("App Launch");
uni.login({
@ -21,6 +50,13 @@ export default {
console.log("App Hide");
},
methods: {
//
openPrivacyPolicy(){
//
uni.navigateTo({
url: '/pages/privacy/index' //
});
},
async loginWithPhoneNumber (code) {
try {
const res = await uni.request({
@ -41,6 +77,12 @@ export default {
});
}
if (res.statusCode == 200) {
// showPrivacyModal: true, //
if(res.data.type === 'register'){
}
// uni-app
uni.setStorageSync("userInfo", res.data);
// uni.showToast({ title: "" });
@ -55,4 +97,81 @@ export default {
<style>
/*每个页面公共css */
/* 隐私政策弹窗样式 */
.privacy-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 9999;
}
.privacy-modal-mask {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
.privacy-modal-content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 80%;
max-width: 600rpx;
background-color: #fff;
border-radius: 20rpx;
padding: 40rpx;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.1);
}
.privacy-modal-title {
font-size: 36rpx;
font-weight: 600;
color: #333;
text-align: center;
margin-bottom: 30rpx;
}
.privacy-modal-body {
font-size: 28rpx;
color: #666;
line-height: 1.6;
margin-bottom: 40rpx;
}
.privacy-link {
color: #007AFF;
text-decoration: underline;
}
.privacy-modal-footer {
text-align: center;
}
.privacy-confirm-btn {
background-color: #1893d7;
color: #fff;
border: none;
border-radius: 10rpx;
padding: 20rpx 60rpx;
font-size: 32rpx;
font-weight: 500;
}
/* 重点内容加粗样式 */
.highlight {
font-weight: 700;
color: #333;
}
/* 下划线样式 */
.underline {
text-decoration: underline;
color: #007AFF;
}
</style>

193
pages/privacy/index.vue Normal file
View File

@ -0,0 +1,193 @@
<template>
<view class="contai_warp">
<view class="top_area_warp">
<view class="top_status_area" :style="{ height: statusBarHeight + 'px' }"></view>
<view class="top_nav_warp">
<view class="back_icon" @click="goBack">
<image :src="back" mode="aspectFit"></image>
</view>
<text>隐私条款</text>
</view>
</view>
<view class="privacy-content">
<view class="privacy-section">
<view class="section-title">隐私声明</view>
<view class="section-content">
欢迎使用 [TotusController]以下简称 "本小程序"本隐私声明旨在向您说明在您使用本小程序提供的远程控制生产机器数据获取与分析等服务时我们如何收集使用存储共享您的个人信息及机器相关数据以及您享有的权利和保护措施本声明适用于您与本小程序之间的所有交互行为请您在使用本小程序前仔细阅读并理解本声明您使用本小程序即视为您同意本声明的全部内容
</view>
</view>
<view class="privacy-section">
<view class="section-title">信息收集</view>
<view class="section-content">
<view class="sub-title">用户注册信息</view>
<view class="section-content">当您注册本小程序时为了完成注册流程识别用户身份并保障您能正常登录和使用服务我们将收集您的微信用户设置的用户名及密码等信息</view>
<view class="sub-title">机器相关数据</view>
<view class="section-content">在您使用本小程序对生产机器进行远程控制的过程中为了实现远程控制功能对机器出现的问题进行分析判断以及为您提供下一步操作建议我们将收集机器操作流程中的相关数据包括但不限于机器运行参数操作指令记录等图片和视频 </view>
</view>
</view>
<view class="privacy-section">
<view class="section-title">信息使用</view>
<view class="section-content">
<view class="sub-title">为用户提供服务</view>
<view class="section-content"> 我们收集的用户注册信息将用于您登录本小程序验证您的身份确保您能安全顺利地远程控制生产机器机器相关数据将用于实时反馈机器运行状态以便您能及时了解机器情况并进行操作控制</view>
<view class="sub-title">设备生产商数据分析</view>
<view class="section-content"> 基于您的授权我们将收集到的机器相关数据不包含可直接识别您个人身份的信息提供给设备生产商用于设备生产商对机器的运行状况常见问题等进行分析从而改进机器性能优化售后服务</view>
</view>
</view>
<view class="privacy-section">
<view class="section-title">信息共享</view>
<view class="section-content">
我们仅会在获得您明确授权的前提下将机器相关数据去标识化处理后共享给设备生产商且共享仅限于设备生产商对机器进行分析以提升产品和服务质量的目的
<view class="section-content">
我们会与设备生产商签订数据安全协议要求其严格按照本声明及相关法律法规的规定处理所获得的数据不得将数据用于其他任何未经您授权的用途我们将对设备生产商的数据处理行为进行监督确保您的数据安全
</view>
</view>
</view>
<view class="privacy-section">
<view class="section-title">用户权利</view>
<view class="section-content">
<view class="sub-title">查询与更正</view>
<view class="section-content">您有权查询您在本小程序中注册的个人信息以及您的机器所产生的相关数据如发现信息存在错误您可通过本小程序内的相关功能或联系客服进行更正</view>
<view class="sub-title">删除与撤回授权</view>
<view class="section-content"> 您有权要求删除您的个人信息及机器相关数据法律法规另有规定的除外您也可以随时撤回对设备生产商获取数据进行分析的授权撤回授权后我们将停止向设备生产商共享您的新数据但设备生产商在授权撤回前已依法处理的数据不受影响</view> </view>
</view>
<view class="privacy-section">
<view class="section-title">信息存储与保护</view>
<view class="section-content">
<view class="sub-title">存储地点与期限</view>
<view class="section-content">您的个人信息及机器相关数据将存储在位于中国境内的服务器上我们将根据服务需要及法律法规的规定合理确定数据的存储期限超出存储期限后我们将对您的数据进行删除或匿名化处理</view>
<view class="sub-title">保护措施</view>
<view class="section-content"> 我们采用加密技术访问控制安全审计等多种安全技术和管理措施保护您的信息免受未授权访问使用披露修改或损坏同时我们会对员工进行数据安全培训严格限制数据访问权限确保数据安全</view>
</view>
</view>
<view class="privacy-section">
<view class="section-title">第三方服务</view>
<view class="section-content">
本小程序可能会包含第三方服务的链接或接口如支付服务地图服务等这些第三方服务有其独立的隐私政策我们不对第三方的隐私处理行为负责建议您在使用第三方服务前仔细阅读其隐私政策
</view>
</view>
<view class="privacy-section">
<view class="section-title">声明的更新</view>
<view class="section-content">
我们可能会根据法律法规的变化服务功能的调整等情况对本隐私声明进行更新更新后的声明将在本小程序内进行公告公告发布后即生效请您定期查阅本声明了解最新的隐私保护措施
</view>
</view>
<view class="privacy-section">
<view class="section-content date-info">
[发布日期2025 7 25 ]
</view>
</view>
</view>
</view>
</template>
<script>
import {BASE_IMG_URL} from "@/config.js";
export default {
data() {
return {
back: BASE_IMG_URL + "/minePage/back.png", //
statusBarHeight: 0,
}
},
onLoad() {
const systemInfo = wx.getSystemInfoSync();
this.statusBarHeight = systemInfo.statusBarHeight;
},
methods: {
goBack() {
uni.navigateBack();
}
}
}
</script>
<style scoped>
.contai_warp {
display: flex;
flex-direction: column;
align-items: center;
font-family: PingFang SC, PingFang SC !important;
min-height: 100vh;
background-color: #f1f6fc;
}
/* Top Navigation Styles */
.top_area_warp {
width: 100%;
display: flex;
flex-direction: column;
position: relative;
}
.top_status_area {
width: 100%;
}
.top_nav_warp {
width: 100%;
height: 88rpx;
display: flex;
justify-content: center;
align-items: center;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #000000;
position: relative;
z-index: 5;
}
.back_icon {
position: absolute;
left: 20rpx;
width: 40rpx;
height: 40rpx;
}
.back_icon image {
width: 100%;
height: 100%;
}
.privacy-content {
padding: 30rpx;
}
.privacy-section {
background-color: #fff;
border-radius: 15rpx;
padding: 30rpx;
margin-bottom: 20rpx;
}
.section-title {
font-size: 32rpx;
font-weight: 600;
color: #333;
margin-bottom: 20rpx;
}
.section-content {
font-size: 28rpx;
color: #666;
line-height: 1.6;
text-indent: 2em;
}
.sub-title {
font-weight: 600;
color: #333;
margin: 15rpx 0 10rpx 0;
text-indent: 0;
}
.sub-content {
margin-top: 15rpx;
padding-left: 20rpx;
text-indent: 2em;
}
.date-info {
text-align: center;
font-weight: 500;
color: #333;
margin-top: 10rpx;
text-indent: 0;
}
</style>