Browse Source

1.用户服务协议和隐私协议 写成页面 2.健康打卡打开有上次的数据

remotes/origin/HEAD
songsong428 5 years ago
parent
commit
aa2d1a9814
  1. 4
      components/user-agreement/user-agreement.vue
  2. 1
      pages.json
  3. 5
      pages/add-stroke/components/end-date-selector.vue
  4. 5
      pages/add-stroke/components/start-date-selector.vue
  5. 3
      pages/my-code/my-code.vue
  6. 389
      pages/privacy-aolicy/privacy-aolicy.vue
  7. 66
      pages/punch-the-clock/punch-the-clock.vue
  8. 70
      pages/service-agreement/service-agreement.vue
  9. 9
      store/modules/user/mutations.js
  10. 1
      store/modules/user/state.js

4
components/user-agreement/user-agreement.vue

@ -4,8 +4,8 @@
<view @click="changeIntentions" class="iconfont agree-box" :class="[agree ? 'text-blue icon-check-square': 'text-gray icon-border']"></view>
<view class="text-df text-black flex-sub agree-text">
请认真阅读
<text class="text-blue" @tap="serviceAgreement">用户服务协议</text>
<text class="text-blue" @tap="privacyAolicy">隐私政策</text>,
<text class="text-blue" @tap="openPage('/pages/service-agreement/service-agreement')">用户服务协议</text>
<text class="text-blue" @tap="openPage('/pages/privacy-aolicy/privacy-aolicy')">隐私政策</text>,
勾选代表您已同意此协议
</view>
</view>

1
pages.json

@ -80,7 +80,6 @@
"navigationBarTitleText": "隐私政策"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",

5
pages/add-stroke/components/end-date-selector.vue

@ -11,6 +11,7 @@
end="2030-12-30 23:59"
:value="valueEnd"
@change="bindChangeEnd"
class="rui-date-picker"
></ruiDatePicker>
</view>
@ -65,4 +66,8 @@
top: -14rpx;
left: 50rpx;
}
.rui-date-picker{
text-indent: 12em;
}
</style>

5
pages/add-stroke/components/start-date-selector.vue

@ -11,6 +11,7 @@
end="2030-12-30 23:59"
:value="valueStart"
@change="bindChangeStart"
class="rui-date-picker"
></ruiDatePicker>
</view>
@ -65,4 +66,8 @@
top: -14rpx;
left: 50rpx;
}
.rui-date-picker{
text-indent: 12em;
}
</style>

3
pages/my-code/my-code.vue

@ -1,7 +1,8 @@
<template>
<view>
<!-- 添加 -->
<button class="shadow round bg-cyan add-btn iconfont icon-plus" hover-class="cc-active" @tap="openPage('/pages/apply-code/apply-code')"></button>
<button v-if="tableList && tableList.length === 0" class="shadow round bg-cyan add-btn iconfont icon-plus" hover-class="cc-active" @tap="openPage('/pages/apply-code/apply-code')"></button>
<button v-if="tableList && tableList.length > 0" class="shadow round bg-cyan add-btn iconfont icon-plus" hover-class="cc-active" @tap="openPage('/pages/punch-the-clock/punch-the-clock')"></button>
<view v-if="tableList && tableList.length > 0" class="cu-timeline" :key="index" v-for="(item, index) in tableList">
<view class="cu-time">{{ +item.time | formatDate }}</view>
<view class="cu-item text-blue cuIcon-locationfill">

389
pages/privacy-aolicy/privacy-aolicy.vue

@ -1,12 +1,397 @@
<template>
<web-view :webview-styles="webviewStyles" src="https://www.yuque.com/docs/share/aaa64c6d-225e-4ee3-be6c-b511565c8bd4?#"></web-view>
<view class="margin-lr-lg">
<view class="text-xxl margin-tb-lg text-center text-bold">隐私政策</view>
<view class="margin-bottom-lg">
感谢您信任并使用传控科技的产品和服务我们根据最新的法律法规监管政策要求更新了传控科技隐私政策请您仔细阅读并充分理解以下条款
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
引言
</view>
<view>
传控科技严格遵守法律法规遵循以下隐私保护原则为您提供更加安全可靠的服务
</view>
<view class="margin-left">
<view>
1安全可靠
</view>
<view>
我们竭尽全力通过合理有效的信息安全技术及管理流程防止您的信息泄露损毁丢失
</view>
<view>
2自主选择
</view>
<view>
我们为您提供便利的信息管理选项以便您做出合适的选择管理您的个人信息
</view>
<view>
3保护通信秘密
</view>
<view>
我们严格遵照法律法规保护您的通信秘密为您提供安全的通信服务
</view>
<view>
4合理必要
</view>
<view>
为了向您和其他用户提供更好的服务我们仅收集必要的信息
</view>
<view>
5清晰透明
</view>
<view>
我们努力使用简明易懂的表述向您介绍隐私政策以便您清晰地了解我们的信息处理方式
</view>
<view>
6将隐私保护融入产品设计
</view>
<view>
我们在产品或服务开发的各个环节综合法律产品设计等多方因素融入隐私保护的理念
</view>
</view>
<view class="margin-top">
隐私政策主要向您说明
</view>
<view>
我们收集哪些信息
</view>
<view>
我们收集信息的用途
</view>
<view>
您所享有的权利
</view>
<view class="margin-top">
希望您仔细阅读隐私政策以下简称本政策详细了解我们对信息的收集使用方式以便您更好地了解我们的服务并作出适当的选择
</view>
<view class="margin-top">
若您使用传控科技服务即表示您认同我们在本政策中所述内容除另有约定外本政策所用术语与用户服务协议中的术语具有相同的涵义如您有问题请联系我们
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
我们收集的信息
</view>
<view>我们根据合法正当必要的原则仅收集实现产品功能所必要的信息</view>
<view class="margin-left">
<view>您在使用我们服务时主动提供的信息</view>
<view>您在登录系统时经授权产生的信息比如昵称头像等</view>
<view>您在使用服务时上传的信息</view>
<view>例如您在使用我们的微信小程序时上传的头像分享的照片</view>
<view>我们的部分服务可能需要您提供特定的个人敏感信息来实现特定功能若您选择不提供该类信息则可能无法正常使用服务中的特定功能但不影响您使用服务中的其他功能若您主动提供您的个人敏感信息即表示您同意我们按本政策所述目的和方式来处理您的个人敏感信息</view>
</view>
<view class="margin-top">
我们在您使用服务时获取的信息
</view>
<view>
<text class="text-bold margin-tb">日志信息</text>
<view>当您使用我们的服务时我们可能会自动收集相关信息并存储为服务日志信息</view>
</view>
<view class="margin-left">
<view>1)设备信息</view>
<view>例如设备型号操作系统版本唯一设备标识符电池信号强度等信息</view>
<view>2)软件信息</view>
<view>例如软件的版本号浏览器类型为确保操作环境的安全或提供服务所需我们会收集有关您使用的移动应用和其他软件的信息</view>
<view>3)IP地址</view>
<view>4)服务日志信息</view>
<view>例如您在使用我们服务时搜索查看的信息服务故障信息引荐网址等信息</view>
<view>5)通讯日志信息</view>
<view>例如您在使用我们服务时曾经通讯的账户通讯时间和时长</view>
</view>
<view>
<text class="text-bold margin-tb">位置信息</text>
<view>当您使用与位置有关的服务时我们可能会记录您设备所在的位置信息以便为您提供相关服务</view>
<view>在您使用服务时我们可能会通过IP地址 GPSWLAN WiFi)或基站等途径获取您的地理位置信息</view>
<view>您或其他用户在使用服务时提供的信息中可能包含您所在地理位置信息例如您提供的帐号信息中可能包含的您所在地区信息您或其他人共享的照片包含的地理标记信息</view>
</view>
<view>
<text class="text-bold margin-tb">其他相关信息</text>
<view>为了帮助您更好地使用我们的产品或服务我们会收集相关信息例如我们收集的好友列表群列表信息声纹特征值信息为确保您使用我们服务时能与您认识的人进行联系如您选择开启导入通讯录功能我们可能对您联系人的姓名和电话号码进行加密并仅收集加密后的信息</view>
</view>
<view class="margin-top">
其他用户分享的信息中含有您的信息
</view>
<view class="text-sm">
例如其他用户发布的照片或分享的视频中可能包含您的信息
</view>
<view class="margin-top">
从第三方合作伙伴获取的信息
</view>
<view class="text-sm">
我们可能会获得您在使用第三方合作伙伴服务时所产生或分享的信息例如您使用微信或QQ帐户登录第三方合作伙伴服务时我们会获得您登录第三方合作伙伴服务的名称登录时间方便您进行授权管理请您仔细阅读第三方合作伙伴服务的用户协议或隐私政策
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
我们如何使用收集的信息
</view>
<view>
我们严格遵守法律法规的规定及与用户的约定将收集的信息用于以下用途若我们超出以下用途使用您的信息我们将再次向您进行说明并征得您的同意
</view>
<view class="margin-left">
<view>
向您提供服务
</view>
<view>
满足您的个性化需求
</view>
<view class="text-sm">
例如语言设定位置设定个性化的帮助服务
</view>
<view>
产品开发和服务优化
</view>
<view class="text-sm">
例如当我们的系统发生故障时我们会记录和分析系统故障时产生的信息优化我们的服务
</view>
<view>
安全保障
</view>
<view class="text-sm">
例如我们会将您的信息用于身份验证安全防范反诈骗监测存档备份客户的安全服务等用途例如您下载或安装的安全软件会对恶意程序或病毒进行检测或为您识别诈骗信息
</view>
<view>
向您推荐您可能感兴趣的广告资讯等
</view>
<view>
评估改善我们的广告投放和其他促销及推广活动的效果
</view>
<view>
管理软件
</view>
<view class="text-sm">
例如进行软件认证软件升级等
</view>
<view>
邀请您参与有关我们服务的调查
</view>
</view>
<view>
为了让您有更好的体验改善我们的服务或经您同意的其他用途在符合相关法律法规的前提下我们可能将通过某些服务所收集的信息用于我们的其他服务例如将您在使用我们某项服务时的信息用于另一项服务中向您展示个性化的内容或广告用于用户研究分析与统计等服务
</view>
<view>
为了确保服务的安全帮助我们更好地了解我们应用程序的运行情况我们可能记录相关信息例如您使用应用程序的频率故障信息总体使用情况性能数据以及应用程序的来源我们不会将我们存储在分析软件中的信息与您在应用程序中提供的个人身份信息相结合
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
您分享的信息
</view>
<view>
您可以通过我们的服务与您的好友家人及其他用户分享您的相关信息例如您在微信朋友圈中公开分享的文字和照片
</view>
<view>
请注意这其中可能包含您的个人身份信息个人财产信息等敏感信息请您谨慎考虑披露您的相关个人敏感信息
</view>
<view>
您可通过我们服务中的隐私设置来控制您分享信息的范围也可通过服务中的设置或我们提供的指引删除您公开分享的信息但请您注意这些信息仍可能由其他用户或不受我们控制的非关联第三方独立地保存
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
您如何管理自己的信息
</view>
<view>
您可以在使用我们服务的过程中访问修改和删除您提供的注册信息和其他个人信息也可按照通知指引与我们联系您访问修改和删除个人信息的范围和方式将取决于您使用的具体服务
</view>
<view>
例如若您在使用地理位置相关服务时希望停止分享您的地理位置信息您可通过手机定位关闭功能软硬件服务商及通讯服务提供商的关闭方式停止分享建议您仔细阅读相关指引
</view>
<view>
我们将按照本政策所述仅为实现我们产品或服务的功能收集使用您的信息
</view>
<view>
如您发现我们违反法律行政法规的规定或者双方的约定收集使用您的个人信息您可以要求我们删除
</view>
<view>
如您发现我们收集存储的您的个人信息有错误的您也可以要求我们更正
</view>
<view>
请通过本政策列明的联系方式与我们联系
</view>
<view>
在您访问修改和删除相关信息时我们可能会要求您进行身份验证以保障帐号的安全
</view>
<view>
请您理解由于技术所限法律或监管要求我们可能无法满足您的所有要求我们会在合理的期限内答复您的请求
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
我们分享的信息
</view>
<view>
我们遵照法律法规的规定对信息的分享进行严格的限制例如
</view>
<view>
<view>
经您事先同意我们可能与第三方分享您的个人信息
</view>
<view>
仅为实现外部处理的目的我们可能会与第三方合作伙伴第三方服务供应商承包商代理广告合作伙伴应用开发者等例如代表我们发出电子邮件或推送通知的通讯服务提供商为我们提供位置服务的地图服务供应商他们可能并非位于您所在的法域分享您的个人信息让他们按照我们的说明隐私政策以及其他相关的保密和安全措施来为我们处理上述信息并用于以下用途
<view class="text-sm margin-left">
向您提供我们的服务
</view>
<view class="text-sm margin-left">
实现我们如何使用收集的信息部分所述目的
</view>
<view class="text-sm margin-left">
履行我们在用户服务协议或本政策中的义务和行使我们的权利
</view>
<view class="text-sm margin-left">
理解维护和改善我们的服务
</view>
</view>
<view>
如我们与上述第三方分享您的信息我们将会采用加密匿名化处理等手段保障您的信息安全
</view>
<view>
随着我们业务的持续发展当发生合并收购资产转让等交易导致向第三方分享您的个人信息时我们将通过推送通知公告等形式告知您相关情形按照法律法规及不低于本政策所要求的标准继续保护或要求新的管理者继续保护您的个人信息
</view>
<view>
我们会将所收集到的信息用于大数据分析
<view class="text-sm">
例如我们将收集到的信息用于分析形成不包含任何个人信息的城市热力图或行业洞察报告
</view>
<view class="text-sm">
我们可能对外公开并与我们的合作伙伴分享经统计加工后不含身份识别内容的信息用于了解用户如何使用我们服务或让公众了解我们服务的总体使用趋势
</view>
</view>
<view>
我们可能基于以下目的披露您的个人信息
<view class="text-sm margin-left">
遵守适用的法律法规等有关规定
</view>
<view class="text-sm margin-left">
遵守法院判决裁定或其他法律程序的规定
</view>
<view class="text-sm margin-left">
遵守相关政府机关或其他法定授权组织的要求
</view>
<view class="text-sm margin-left">
我们有理由确信需要遵守法律法规等有关规定
</view>
<view class="text-sm margin-left">
为执行相关服务协议或本政策维护社会公共利益为保护我们的客户我们或我们的关联公司其他用户或雇员的人身财产安全或其他合法权益合理且必要的用途
</view>
</view>
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
我们可能向您发送的信息
</view>
<view>
信息推送
</view>
<view class="text-sm">
您在使用我们的服务时我们可能向您发送电子邮件短信资讯或推送通知
</view>
<view class="text-sm">
您可以按照我们的相关提示在设备上选择取消订阅
</view>
<view>
与服务有关的公告
</view>
<view class="text-sm">
我们可能在必要时例如因系统维护而暂停某一项服务时向您发出与服务有关的公告
</view>
<view class="text-sm">
您可能无法取消这些与服务有关性质不属于广告的公告
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
信息安全
</view>
<view>
我们为您的信息提供相应的安全保障以防止信息的丢失不当使用未经授权访问或披露
</view>
<view class="margin-left">
<view>
我们严格遵守法律法规保护用户的通信秘密
</view>
<view>
我们将在合理的安全水平内使用各种安全保护措施以保障信息的安全
</view>
<view class="text-sm">
例如我们使用加密技术例如TLSSSL匿名化处理等手段来保护您的个人信息
</view>
<view>
我们建立专门的管理制度流程和组织确保信息安全
</view>
<view class="text-sm">
例如我们严格限制访问信息的人员范围要求他们遵守保密义务并进行审查
</view>
<view>
若发生个人信息泄露等安全事件我们会启动应急预案阻止安全事件扩大并以推送通知公告等形式告知您
</view>
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
广告
</view>
<view>
我们可能使用您的相关信息在相关网站应用及其他渠道向您提供与您更加相关的广告
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
适用范围
</view>
<view>
我们的所有服务均适用本政策
</view>
<view class="margin-left">
<view>
某些服务有其特定的隐私指引/声明该特定隐私指引/声明更具体地说明我们在该服务中如何处理您的信息
</view>
<view>
如本政策与特定服务的隐私指引/声明有不一致之处请以该特定隐私指引声明为准
</view>
<view>
请您注意本政策不适用由其他公司或个人提供的服务
</view>
<view class="text-sm">
例如您通过使用微信帐号登录其他公司或个人提供的服务
</view>
<view>
您使用该等第三方服务须受其隐私政策而非本政策约束您需要仔细阅读其政策内容
</view>
</view>
</view>
<view class="text-content margin-bottom-xl">
<view class="text-xl text-bold">
联系我们
</view>
<view>
如您对本政策或其他相关事宜有疑问请通过 https://www.ccsens.com
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
url: ''
}
},
}

66
pages/punch-the-clock/punch-the-clock.vue

@ -136,7 +136,7 @@
showToast
} from 'common/script/util';
import {
HEALTH_SIGN,HEALTH_FILE
HEALTH_SIGN,HEALTH_FILE,HEALTH_SIGN_HISTORY
} from 'api/api';
import {
mapState,
@ -194,10 +194,28 @@
agree2: false,
};
},
computed: mapState('user', ['token', 'status']),
onLoad() {
const startTime = +this.$moment()
.startOf('year')
.format('x');
const endTime = +this.$moment()
.endOf('day')
.format('x');
const params = {
param: {
startTime,
endTime,
token: this.token
}
};
this.getHealthSignHistory(params);
},
computed: mapState('user', ['token', 'status','healthyInfo']),
methods: {
...mapMutations('user', ['setHealthCode']),
...mapMutations('user', ['setHealthCode','setHealthyInfo']),
handleSelectLocation() {
const that = this;
uni.chooseLocation({
@ -470,6 +488,48 @@
return phoneExg.test(phone);
},
//
async getHealthSignHistory(params) {
try {
const res = await this.$http.post(HEALTH_SIGN_HISTORY, params);
const {
success,
code,
msg,
data
} = res.data;
if (success && code === 200) {
this.success = true;
this.setHealthyInfo(data[0]);
if(this.healthyInfo){
this.address = this.healthyInfo.address;
this.district = this.healthyInfo.district;
this.healthTypeId = this.healthyInfo.healthTypeId - 1;
this.hospital = this.healthyInfo.hospital;
this.touchHubei = this.healthyInfo.touchHubei;
this.touchSick = this.healthyInfo.touchSick;
this.touchOverseas = this.healthyInfo.touchOverseas;
this.schoolLocation = this.healthyInfo.schoolLocation;
this.emergencyName = this.healthyInfo.emergencyName;
this.emergencyPhone = this.healthyInfo.emergencyPhone;
}
} else {
uni.showToast({
title: msg || '获取健康打卡记录失败',
icon: 'none'
});
}
} catch (error) {
console.log('error: ', error);
if (error.msg) {
uni.showToast({
title: error.msg || '获取健康打卡记录失败',
icon: 'none'
});
}
}
},
},
};
</script>

70
pages/service-agreement/service-agreement.vue

@ -1,12 +1,78 @@
<template>
<web-view :webview-styles="webviewStyles" :src="url"></web-view>
<view class="margin-lr-lg">
<view class="text-xxl margin-tb-lg text-center text-bold">用户服务协议</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
特别提示
</view>
<view>
在此特别提醒您用户在使用tall健康码之前请认真阅读本tall健康码用户服务协议 以下简称协议确保您充分理解本协议中各条款请您审慎阅读并选择接受或不接 受本协议除非您接受本协议所有条款否则您无权注册登录或使用本协议所涉服务您的注册登录使用等行为将视为对本协议的接受并同意接受本协议各项条款的约束
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
账号注册
</view>
<view>1tall健康码以微信小程序方式提供服务不需要用户刻意注册我们会通过调用微信接口自动使用您在微信平台的身份信息</view>
<view>2本系统面向特定用户群体在登录系统后需要您填写在该群体下的特定用户信息tall健康码需要搜集能识别用户身份的个人信息以便传控科技可以在必要时联系用户或为用户提供更好的使用体验</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
账户安全
</view>
<view>
1用户一旦注册/登录成功成为tall健康码的用户传控科技会尽最大限度保证用户的账户信息安全
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
服务内容
</view>
<view>
1上报健康信息
</view>
<view>
2查询疫情情况
</view>
<view>
3查询个人打卡轨迹
</view>
</view>
<view class="text-content margin-bottom">
<view class="text-xl text-bold">
服务的终止
</view>
<view>
1在下列情况下传控科技有权终止向用户提供服务
</view>
<view>
1在用户违反本服务协议相关规定时传控科技有权终止向该用户提供服务
</view>
<view>
2用户不得通过程序或人工方式进行恶意注册若发现用户有该类行为传控科技将立即终止服务并有权扣留账户内金额
</view>
</view>
<view class="text-content margin-bottom-xl">
<view class="text-xl text-bold">
免责与赔偿声明
</view>
<view>
1请用户在使用过程中对自己的账号密码妥善保管不要告知他人避免给您带来不必要的损失
</view>
<view>
2本协议最终解释权归安庆公共交通有限公司简称传控科技所有
</view>
<view>
3本协议从 2020年3月1日起适用
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
url: 'pages/preview/preview?sid=&fid=60774991254&fname=%25E7%2594%25A8%25E6%2588%25B7%25E6%259C%258D%25E5%258A%25A1%25E5%258D%258F%25E8%25AE%25AE.docx&ftype=file&groupid=821063867&needUpdateRecent=true'
}
},
}

9
store/modules/user/mutations.js

@ -52,6 +52,15 @@ const mutations = {
setUserInfo(state, data) {
state.userInfo = data;
},
/**
* 设置健康打卡信息 healthyInfo
* @param {*} state
* @param {string} data
*/
setHealthyInfo(state, data) {
state.healthyInfo = data;
},
/**
* 设置页面跳转参数 pagePath

1
store/modules/user/state.js

@ -3,6 +3,7 @@ const state = {
user: null,
healthCode: '', // 健康码
userInfo: null, // 个人基本信息
healthyInfo: null, // 健康打卡信息
pagePath: '', //页面跳转参数
status: [], // 健康状态类型
};

Loading…
Cancel
Save