Browse Source

优化修改问题

lex 2 năm trước cách đây
mục cha
commit
a527957693

+ 15 - 1
src/school/approval-manage/subsidy/grant-detail.tsx

@@ -8,6 +8,7 @@ import { state } from '@/state'
 import OFullRefresh from '@/components/o-full-refresh'
 import OHeader from '@/components/o-header'
 import OSticky from '@/components/o-sticky'
+import dayjs from 'dayjs'
 
 export default defineComponent({
   name: 'subsidy-grant-detail',
@@ -71,6 +72,12 @@ export default defineComponent({
             <div class={styles.item}>
               <Cell
                 center
+                style={{
+                  '--van-cell-value-color':
+                    (data.manageSalary.photoNum || 0) >= (data.manageSalary.expectPhotoNum || 0)
+                      ? '#333'
+                      : '#F44541'
+                }}
                 value={`训练照片${data.manageSalary.photoNum || 0}/${
                   data.manageSalary.expectPhotoNum || 0
                 }`}
@@ -124,7 +131,14 @@ export default defineComponent({
                     title: () => (
                       <div class={styles.itemTitle}>
                         <img class={styles.titleIcon} src={iconTime} />
-                        <span>{item.startTime}</span>
+                        {item.startTime && item.endTime ? (
+                          <span>
+                            {dayjs(item.startTime).format('YYYY-MM-DD HH:mm')}~
+                            {dayjs(item.endTime).format('HH:mm')}
+                          </span>
+                        ) : (
+                          ''
+                        )}
                       </div>
                     )
                   }}

+ 6 - 7
src/school/approval-manage/subsidy/index.tsx

@@ -154,9 +154,8 @@ export default defineComponent({
                 <Cell
                   style={{
                     '--van-cell-value-color':
-                      data.manageSalaryInfo.photoNum ||
-                      0 >= data.manageSalaryInfo.expectPhotoNum ||
-                      0
+                      (data.manageSalaryInfo.photoNum || 0) >=
+                      (data.manageSalaryInfo.expectPhotoNum || 0)
                         ? '#333'
                         : '#F44541'
                   }}
@@ -275,7 +274,7 @@ export default defineComponent({
                 <GridItem>
                   <div class={styles.gridItem}>
                     <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>
+                      <span class={styles.topNum} style={{ color: '#333' }}>
                         {data.courseSalaryInfo.singleSubsidyStandard || 0}
                       </span>
                       元/人
@@ -286,7 +285,7 @@ export default defineComponent({
                 <GridItem>
                   <div class={styles.gridItem}>
                     <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>
+                      <span class={styles.topNum} style={{ color: '#333' }}>
                         {data.courseSalaryInfo.musicSubsidyStandard || 0}
                       </span>
                       元/天
@@ -297,7 +296,7 @@ export default defineComponent({
                 <GridItem>
                   <div class={styles.gridItem}>
                     <div class={styles.gridItemTop}>
-                      <span class={styles.topNum}>
+                      <span class={styles.topNum} style={{ color: '#333' }}>
                         {data.courseSalaryInfo.ensembleSubsidyStandard || 0}
                       </span>
@@ -324,7 +323,7 @@ export default defineComponent({
                             <div class={styles.gridItemTop}>
                               <span class={styles.topNum}>{teacher.salary || 0}</span>元
                             </div>
-                            <div class={styles.valeLabel}>实际奖励</div>
+                            <div class={styles.valeLabel}>实际补助</div>
                           </div>
                         )
                       }}

+ 6 - 0
src/school/attendance/components/attend-student.tsx

@@ -36,6 +36,7 @@ export default defineComponent({
       showPopoverTime: false,
       showPopoverOrchestra: false,
       showPopoverSubject: false,
+      isClick: false,
       actions: [] as any,
       subjects: [] as any,
       currentDate: [dayjs().format('YYYY'), dayjs().format('MM')]
@@ -60,6 +61,10 @@ export default defineComponent({
     const showContact = ref(false)
     const list = ref([])
     const getList = async () => {
+      if (state.isClick) {
+        return
+      }
+      state.isClick = true
       loading.value = true
       try {
         if (refreshing.value) {
@@ -94,6 +99,7 @@ export default defineComponent({
         showContact.value = false
         finished.value = true
       }
+      state.isClick = false
     }
 
     const checkTimer = (val: any) => {

+ 6 - 0
src/school/attendance/components/attend-teacher.tsx

@@ -36,6 +36,7 @@ export default defineComponent({
       showPopoverTime: false,
       showPopoverOrchestra: false,
       showPopoverSubject: false,
+      isClick: false,
       actions: [] as any,
       courseList: [] as any,
       currentDate: [dayjs().format('YYYY'), dayjs().format('MM')]
@@ -62,6 +63,10 @@ export default defineComponent({
     const list = ref([])
 
     const getList = async () => {
+      if (state.isClick) {
+        return
+      }
+      state.isClick = true
       loading.value = true
       try {
         if (refreshing.value) {
@@ -92,6 +97,7 @@ export default defineComponent({
         showContact.value = false
         finished.value = true
       }
+      state.isClick = false
     }
     const getCourseList = () => {
       state.courseList = []

+ 31 - 4
src/school/practice-rewards/detail.tsx

@@ -30,9 +30,35 @@ export default defineComponent({
         subjectId: null,
         page: 1,
         rows: 20
+      },
+      statistics: {
+        standardSalary: 0,
+        targetNum: 0,
+        actualSalary: 0
       }
     })
 
+    const getTrainingStatistics = async () => {
+      try {
+        const { data } = await request.post(
+          '/api-school/schoolWeekSalaryRecord/detailInfo/trainingTitle',
+          {
+            data: {
+              id: route.query.id
+            }
+          }
+        )
+        state.statistics = {
+          standardSalary: data.standardSalary || 0,
+          targetNum: data.targetNum || 0,
+          actualSalary: data.actualSalary || 0
+        }
+        console.log(data)
+      } catch {
+        //
+      }
+    }
+
     // 获取声部
     const getSubjects = async () => {
       try {
@@ -104,6 +130,7 @@ export default defineComponent({
     }
 
     onMounted(() => {
+      getTrainingStatistics()
       getSubjects()
       getList()
     })
@@ -127,7 +154,7 @@ export default defineComponent({
               <div class={styles.gridItem}>
                 <div class={styles.gridItemTop}>
                   <span class={styles.topNum} style={{ color: '#333' }}>
-                    0
+                    {state.statistics.standardSalary}
                   </span>
                   元/人
                 </div>
@@ -138,7 +165,7 @@ export default defineComponent({
               <div class={styles.gridItem}>
                 <div class={styles.gridItemTop}>
                   <span class={styles.topNum} style={{ color: '#333' }}>
-                    0
+                    {state.statistics.targetNum}
                   </span>
                 </div>
@@ -148,7 +175,7 @@ export default defineComponent({
             <GridItem>
               <div class={styles.gridItem}>
                 <div class={styles.gridItemTop}>
-                  <span class={styles.topNum}>0</span>元
+                  <span class={styles.topNum}>{state.statistics.actualSalary}</span>元
                 </div>
                 <div>奖励金额</div>
               </div>
@@ -156,7 +183,7 @@ export default defineComponent({
           </Grid>
         </div>
 
-        <div class={'searchGroup-single'} style="padding-top: 0;">
+        <div class={'searchGroup-single'} style="padding-top: 0 !important;">
           <div
             class={['searchItem', state.subjectStatus && styles['searchItem-active']]}
             onClick={() => {

BIN
src/student/download/images/manage-center.png


BIN
src/student/download/images/student-center.png


BIN
src/student/download/images/teacher-center.png


+ 22 - 0
src/styles/index.less

@@ -500,3 +500,25 @@ input {
     }
   }
 }
+
+// 下拉搜索
+.van-sheet_content {
+  margin: 0 13px;
+  padding-top: 10px;
+  .van-sheet-item {
+    line-height: 52px;
+    font-size: 16px;
+    font-weight: 500;
+    color: #333333;
+    text-align: center;
+  }
+  .van-sheet-item-active {
+    background: #f2f2f2;
+    border-radius: 8px;
+  }
+}
+.van-action-sheet_bottom__cancel {
+  line-height: 52px;
+  padding: 0;
+  color: #aaaaaa;
+}

+ 84 - 191
src/views/preview-protocol/privacy.tsx

@@ -21,183 +21,85 @@ export default defineComponent({
         {this.showHeader === '1' && !browser().isApp && <OHeader isBack />}
         <div class={styles.container}>
           <h2 style={{ textAlign: 'center' }}>《{this.name}隐私协议》</h2>
-          版本更新时间 <br />
-          更新日期:2022年4月18日
-          <br />
-          生效日期:2022年7月13日
-          <br />
-          公司主体:武汉管乐团网络科技有限公司
-          <br />
-          版本更新提示
-          <br />
-          我们可能适时修订本《隐私政策》的条款,该修订构成本《隐私政策》的一部分。如该修订造成您在本《隐私政策》下权利的实质减少,我们将在修订生效前通过在主页上显著位置提示或向您发送电子邮件或以其他方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的本《隐私政策》的约束。
-          <br />
           引言
           <br />
-          {this.name}是由武汉管乐团网络科技有限公司(以下简称“{this.name}
-          ”)为您提供的一款找谱,智能练琴,社交学习平台,问答于一体的综合音乐服务产品。
-          {this.name}
-          十分重视用户的个人信息和数据。您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。本《隐私政策》与您所使用的
-          {this.name}
-          服务息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。
-          <br />
-          您使用或继续使用我们的服务,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。
-          <br />
-          我们如何收集的信息
-          <br />
-          您在使用我们的产品与/或服务时,我们需要/可能需要收集和使用您的一些个人信息,我们收集和使用的您的个人信息类型包括两种:第一种:我们产品与/或服务的核心业务功能所必需的信息:此类信息为产品与/或服务正常运行的必备信息,您须授权我们收集。如您拒绝提供,您将无法正常使用我们的产品与/或服务 第二种:我们产品与/或服务的附加业务功能可能需要收集的信息:此信息为非核心业务功能所需的信息,您可以选择是否授权我们收集。如您拒绝提供,将导致附加业务功能无法实现或无法达到我们拟达到的效果,但不影响您对核心业务功能的正常使用。
-          <br />
-          <h2>(一)账号注册/登录功能</h2>
-          <br />
-          当您使用账号注册功能时,我们会收集由您主动提供给我们的一些单独或者结合识别您实名身份的信息,包括:手机号码、验证码匹配结果,并创建密码。您的密码将以加密形式进行自动存储、传输、验证,我们不会以明文方式存储、传输、验证您的密码。您在保管、输入、使用您的密码时,应当对物理环境、电子环境审慎评估,以防密码外泄。我们收集这些信息是用以完成注册程序、为您持续稳定提供专属于注册用户的产品与/或服务,并保护您的账号安全。您应知悉,手机号码和验证码匹配结果属于您的个人敏感信息,我们收集该类信息是为了满足相关法律法规的要求,如您拒绝提供可能导致您无法使用我们的此功能,请您谨慎考虑后再提供。
-          <br />
-          需要说明的是,我们的一些产品支持您使用第三方平台的账号(例如:微信)进行登录,如您使用第三方平台的账号登录的,我们将根据您的授权获取该第三方账号下的相关信息(包括:昵称、头像,具体以您的授权内容为准)以及身份验证信息(个人敏感信息)。我们收集这些信息是用于为您提供账号登录服务以及保障您的账号安全,防范安全风险。如您拒绝授权此类信息的,您将无法使用第三方平台的账号登录我们平台,但不影响我们为您提供的其他产品和服务的正常使用。
-          <br />
-          <h2>(二)服务内容展示/浏览/播放/下载/上传功能</h2>
-          <br />
-          我们的产品与/或服务为您提供曲谱、视频、帖子服务内容的展示、浏览、播放、下载和上传功能,在此过程中,我们会根据您使用我们产品与/或服务的具体操作收集您的一些信息,包括如下个人信息:
-          <br />
-          设备信息:包括设备MAC地址、唯一设备识别码、登录IP地址、设备型号、设备名称、设备标识、浏览器类型和设置、语言设置、操作系统和应用程序版本、接入网络的方式、网络质量数据、移动网络信息(包括运营商名称)、产品版本号、设备所在位置相关信息(包括您授权我们获取的地理位置信息)。为了收集上述基本的个人设备信息,我们将会申请访问您的设备信息的权限并根据您的授权获取相关信息。
-          <br />
-          日志信息:当您使用我们的产品与/或服务时,我们会自动收集您的个人上网记录,并作为有关操作日志、服务日志保存,包括您的浏览记录、点赞/分享/评论/互动记录、收藏/关注记录、播放记录、播放时长、访问日期和时间。
-          <br />
-          获取运行中的进程:当您使用我们的产品与/或服务时,我们会不定期获取当前设备正在运行中的进程,以用来判定本App是否在前台运行,从而使App可以正常开展业务逻辑。获取的进程信息,仅用来做App是否在前台运行的判定,不会对该信息进行存储、上传、转发操作。
-          <br />
-          录音信息:当前App的核心功能是通过录音信息分析来获取频率信息,所以我们需要获取您的设备录音(麦克风)的相关权限,以用来完成当前声音频率的识别。如果您不允许App使用录音权限,该App将无法正常使用。App获取录音信息后仅用于声音分析,不会对录音信息进行存储、上传操作。
-          <br />
-          软件安装列表:近期出现不法分子通过反编译、套壳一些非法手段生成盗版的“
-          {this.name}
-          ”App,可能会导致您的个人信息泄露,个人权益受损。获取软件安装列表是为了从安装列表中获取到“
-          {this.name}
-          ”App的安装包名,包体大小,以此来判定app是否已被盗版攻击,以更好的保护您的个人权益和隐私。
-          <br />
-          我们收集这些信息是为了向您提供我们最核心的服务内容展示/播放/下载服务,如您拒绝提供上述信息和/或权限将可能导致您无法使用我们的产品与服务。请您知悉,单独的设备信息、日志信息无法识别您的身份信息。
-          <br />
-          <h2>(三)信息统计、消息推送、分享、支付</h2>
-          <br />
-          为了完成支付、统计、推送、地图,分享功能,我们还集成了其他的SDK,如您在我们平台上使用这类由第三方提供的服务时,您同意将由其直接收集和处理您的信息(如以嵌入代码、插件形式)。目前我们产品中包含的第三方SDK服务以及隐私政策详情请参阅《
-          {this.name}第三方SDK目录及其隐私政策》。
-          <br />
-          我们对您的信息承担保密义务,除以下情形外,未经您同意,我们以及我们的关联公司不会与任何第三方分享您的个人信息:
-          <br />
-          1.极光推送 SDK(https://www.jiguang.cn/) <br />
-          提供方名称:极光 <br />
-          场景描述:针对App的业务实现推送功能 <br />
-          收集方式:调用系统相关接口自动采集
+          管乐团是由武汉乐小雅网络科技有限公司(以下简称“我们”)提供给学校管乐团使用的乐团双师训练平台。我们十分重视用户的个人信息和数据。您在使用我们的服务时,我们可能会收集和使用您的相关信息。我们希望通过本《隐私政策》向您说明,在使用我们的服务时,我们如何收集、使用、储存和分享这些信息,以及我们为您提供的访问、更新、控制和保护这些信息的方式。本《隐私政策》与您所使用的管乐团功能息息相关,希望您仔细阅读,在需要时,按照本《隐私政策》的指引,作出您认为适当的选择。本《隐私政策》中涉及的相关技术词汇,我们尽量以简明扼要的表述,并提供进一步说明的链接,以便您的理解。
           <br />
-          个人信息类型:设备信息、网络信息与位置信息、应用信息
+          您登陆使用或缴费使用我们的付费功能,即意味着同意我们按照本《隐私政策》收集、使用、储存和分享您的相关信息。
           <br />
-          个人信息字段范围:(最终用户的硬件型号、硬件序列号操作系统版本、设备配置、唯一设备标识符、国际移动设备身份码IMEI/MEID、SIM卡信息IMSI、iOS系统广告标识符(IDFA)、安卓系统广告标识符(OAID)、Android
-          Id、设备Mac地址)、设备位置信息(通过GPS、蓝牙或Wi-Fi信号获得的位置信息)以及设备状态信息(如设备应用安装列表)、应用信息(应用崩溃信息、通知开关状态、软件安装列表、运行中的进程、传感器信息等相关信息)
           <br />
-          用途或目的:用于统计详细崩溃日志以及行为分析。
+          <h2>我们如何收集信息</h2>
+          您在使用我们的产品与/或功能时,我们需要/可能需要收集和使用您的一些个人信息,我们收集和使用的您的个人信息类型包括两种: 第一种:我们产品与/或功能必需使用/呈现您的信息:此类信息为产品与/或功能正常运行的必备信息,您须授权我们收集。如您拒绝提供,您将无法正常使用我们的产品与/或功能 第二种:我们开展线下乐团活动时,因乐团的呈现或宣传必须使用/呈现您的信息。如您拒绝提供,不影响我们的产品/或功能的正常使用。
           <br />
-          网络信息:IP地址、WiFi信息、基站信息等相关信息
+          (一)账号注册/登录功能
           <br />
-          用途或目的:消息推送服务 <br />
-          是否为必要信息:是
+          当您使用账号注册功能时,我们会收集由您主动提供给我们的一些单独或者结合识别您实名身份的信息,包含但不限于:姓名、性别、学校、年级、所在地、手机号码、验证码匹配结果等,并创建密码。您的密码将以加密形式进行自动存储、传输、验证,我们不会以明文方式存储、传输、验证您的密码。您在保管、输入、使用您的密码时,应当对物理环境、电子环境审慎评估,以防密码外泄。我们收集这些信息是用以完成注册程序、为您持续稳定提供专属于注册用户的产品与/或功能,并保护您的账号安全。您应知悉,手机号码和验证码匹配结果属于您的个人敏感信息,我们收集该类信息是为了满足相关法律法规的要求,如您拒绝提供可能导致您无法使用我们的此功能,请您谨慎考虑后再提供。
           <br />
-          信息处理方式:采用去标识化方式对个人信息进行脱敏展示 <br />
-          隐私政策: https://www.jiguang.cn/license/privacy
+          需要说明的是,我们的一些产品或功能支持您使用第三方平台的账号(包含但不限于微信、支付宝等)进行登录,如您使用第三方平台的账号登录的,我们将根据您的授权获取该第三方账号下的相关信息(包括:昵称、头像、所在地等,具体以您的授权内容为准)以及身份验证信息(个人敏感信息)。我们收集这些信息是用于为您提供账号登录使用、账号功能以及保障您的账号安全,防范安全风险。如您拒绝授权此类信息的,您将无法使用第三方平台的账号登录我们平台,但不影响我们为您提供的其他产品和功能的正常使用。
           <br />
-          2.腾讯Bugly SDK
+          (二)内容展示/浏览/播放/储存/信息查阅/通讯/练习等功能
           <br />
-          提供方名称:腾讯
+          我们的基础功能使用权益:查看课表、查看课后作业要求、阶段自测、请假、通讯、相册、乐团资讯(不含收费功能-团练宝的使用权限)。
           <br />
-          场景描述:针对App的各维度的统计功能
+          收费功能(包含但不限于团练宝)其使用权益:五线谱跟播、演奏指法跟播、电子节拍器/校音、曲目选段练习、原音/伴奏一键切换、演奏速度调整、训练声部/合奏电子曲谱、云教程回放、作业中的知识点与相关内容的观看和使用、单元测与测评报告、智能练习测评与报告、即时练习数据统计、练习成长数据报告、练习PK排行榜、测评音视频云储存功能等。
           <br />
-          收集方式:调用系统相关接口自动采集
+          我们的产品与/或功能为您提供内容展示、浏览、播放、储存、信息查阅、通讯等功能,在此过程中,我们会根据您使用我们产品与/或功能的具体操作收集您的一些信息,包括如下个人信息:
           <br />
-          个人信息类型:设备信息、设备连接信息、日志信息、粗略位置信息
-          <br />
-          个人信息字段范围:(最终用户的硬件型号、硬件序列号操作系统版本、设备配置、唯一设备标识符、国际移动设备身份码IMEI/MEID、SIM卡信息IMSI、iOS系统广告标识符(IDFA)、安卓系统广告标识符(OAID)、Android
-          Id、设备Mac地址)、设备位置信息(通过GPS、蓝牙或Wi-Fi信号获得的位置信息)以及设备状态信息(如设备应用安装列表)、应用信息(应用崩溃信息、通知开关状态、软件安装列表、运行中的进程、传感器信息等相关信息)、设备参数及系统信息(设备类型、设备型号、操作系统及硬件相关信息)
-          <br />
-          网络信息:IP地址、WiFi信息、基站信息等相关信息
-          <br />
-          用途或目的:用于统计详细崩溃日志以及行为分析。
-          <br />
-          是否为必要信息:是
-          <br />
-          信息处理方式:采用去标识化方式对个人信息进行脱敏展示
-          <br />
-          隐私政策: https://privacy.qq.com/document/priview/fbd2c3f898df4c1c869925dd49d57827
-          <br />
-          3.支付宝SDK
-          <br />
-          提供方:支付宝(中国)网络技术有限公司
-          <br />
-          场景描述:登录、支付。
-          <br />
-          收集方式:调用系统相关接口自动采集
-          <br />
-          个人信息类型:设备信息、位置信息、网络信息、个人通信信息
-          <br />
-          个人信息字段:设备信息:设备标识符(IMEI、IDFA、Android
-          ID、MAC、OAID等相关信息)、应用信息(应用崩溃信息、通知开关状态、软件列表等相关信息)、设备参数及系统信息(设备类型、设备型号、操作系统及硬件相关信息)
-          <br />
-          网络信息:IP地址,WiFi信息,基站信息等相关信息
-          <br />
-          用途或目的:为了让您更安全、便捷地登录本应用,可以选择使用支付宝第三方账号授权登录本应用,方便购买本应用中的付费服务。
+          设备信息:包括设备MAC地址、唯一设备识别码、登录IP地址、设备型号、设备名称、设备标识、浏览器类型和设置、语言设置、操作系统和应用程序版本、接入网络的方式、网络质量数据、移动网络信息(包括运营商名称)、产品版本号、设备所在位置相关信息(包括您授权我们获取的地理位置信息)。为了收集上述基本的个人设备信息,我们将会申请访问您的设备信息的权限并根据您的授权获取相关信息。
           <br />
-          是否为必要信息:是
+          在您观看视频时,为给您提供良好的观看体验,我们会调用您的加速度、方向传感器,通过您的传感器信息(单独的传感器信息非个人信息)检测设备屏幕方向变化,进行视频播放中的横竖屏切换。当您使用全景视频与沉浸模式时,我们会调用您的磁场、陀螺仪传感器,检测您的手机移动和旋转行为,定位视频画面的区域。
           <br />
-          信息处理方式:采用去标识化方式对个人信息进行脱敏展示
+          投屏播放:当您使用投屏播放视频内容时,投屏功能是使用手机设备本身的镜像功能或第三方软件实现投屏,我们需要进行查找并连接到本地网络上设备,收集您的网络信息、WLAN接入点(如SSID、BSSID)及TV端硬件设备名称、厂商、设备型号,以确认您的移动客户端硬件设备与TV端硬件设备在同一局域网内,实现硬件设备互联互通及完成效果适配。
           <br />
-          隐私政策: https://render.alipay.com/p/c/k2cx0tg8
+          日志信息:当您使用我们的产品与/或功能时,我们会自动收集您的个人上网记录,并作为有关操作日志、服务日志保存,包括您的浏览记录、练习记录、点赞/分享/评论/互动等记录、完成自测/测评音视频云储存记录、播放记录、播放时长、访问日期和时间等。
           <br />
-          4.微信SDK
+          获取运行中的进程:当您使用我们的产品与/或功能时,我们会不定期获取当前设备正在运行中的进程,以用来判定本App是否在前台运行,从而使App可以正常开展业务逻辑。获取的进程信息,仅用来做App是否在前台运行的判定,不会对该信息进行存储、上传、转发操作。
           <br />
-          提供方:腾讯
+          位置信息:附近的人,您通过具有定位功能的移动设备使用我们的功能时,通过GPS或WiFi方式收集的您的地理位置信息;您或其他用户提供的包含您所处地理位置的实时信息,例如您提供的账户信息中包含的您所在地区信息,您或其他人上传的显示您当前或曾经所处地理位置的共享信息,您或其他人共享的照片包含的地理标记信息;您可以通过关闭定位功能,停止对您的地理位置信息的收集。
           <br />
-          场景描述:登录、支付
+          录音信息:当前App的核心功能是通过录音信息分析来获取频率信息,所以我们需要获取您的设备录音(麦克风)的相关权限,以用来完成当前声音频率的识别。如果您不允许App使用录音权限,该App将无法正常使用。App获取录音信息后仅用于声音分析,不会对录音信息进行存储、上传操作。
           <br />
-          收集方式:调用系统相关接口自动采集
+          软件安装列表:近期出现不法分子通过反编译、套壳一些非法手段生成盗版的“管乐团”App,可能会导致您的个人信息泄露,个人权益受损。获取软件安装列表是为了从安装列表中获取到“管乐团”App的安装包名,包体大小,以此来判定app是否已被盗版攻击,以更好的保护您的个人权益和隐私。
           <br />
-          个人信息类型:个人常用设备信息、位置信息、网络信息、个人通信信息
+          我们收集这些信息是为了向您提供我们双师乐团训练的内容展示/播放/管理/训练与课后练习等功能,如您拒绝提供上述信息和/或权限将可能导致您无法使用我们的产品与服务。请您知悉,单独的设备信息、日志信息无法识别您的身份信息。
           <br />
-          个人信息字段:设备信息:设备标识符(IMEI、IDFA、Android
-          ID、MAC、OAID等相关信息)、应用信息(应用崩溃信息、通知开关状态、软件列表等相关信息)
+          (三)信息统计、消息推送、分享、支付
           <br />
-          网络信息:IP地址,WiFi信息,基站信息等相关信息
+          为了完成支付、统计、推送、地图,分享功能,我们还集成了其他的SDK,如您在我们平台上使用这类由第三方提供的服务时,您同意将由其直接收集和处理您的信息(如以嵌入代码、插件形式)。目前我们产品中包含的第三方SDK服务以及隐私政策详情请参阅《管乐团第三方SDK目录及其隐私政策》。
           <br />
-          用途或目的:为了让您更安全、便捷地登录本应用,可以选择使用支付宝第三方账号授权登录本应用,方便购买本应用中的付费服务。
+          (四)信息制作、发布、上传、交流互动功能
           <br />
-          是否为必要信息:是
+          当您在我们的部分产品与/或功能中上传、发布等平台内交流互动、评论、分享、点赞等功能时,除注册登录账户之外,您可能会主动提供相关图文/视频内容、互动信息(包括但不限于帖子、点赞/评论/分享/交流等互动信息)。我们会自动收集您的上述信息,并展示您的昵称、头像、学校、年级、声部、所在地等发布的信息内容。请您知悉,您发布的信息中可能包含他人的个人信息,请您务必取得他人的合法授权,避免非法泄露他人的个人信息。如您不同意我们收集上述信息,您将无法使用我们的相关的信息发布或练习成长数据报告、练习PK排行榜功能,但不影响您使用我们为您提供的其他产品和功能。
           <br />
-          信息处理方式:采用去标识化方式对个人信息进行脱敏展示
+          摄像头权限:当您需要上传个人信息:包含但不限于头像、图片、视频时,拍照功能需要调取您的摄像头权限,如果您拒绝授权,可能会影响您上传个人信息:头像、图片以及视频等,由此带来的不便请您理解。
           <br />
-          隐私政策: https://open.weixin.qq.com/cgi-bin/frame?t=news/protocol_developer_tmpl
+          (五)下单与交付
           <br />
-          5.友盟SDK
+          当您在我们的产品与/或功能中购买需要收费的商品或功能的,我们需要根据商品或功能类型收集如下部分或全部的个人信息(务必确保真实性、有效性),包括:交易商品、功能信息、收货人信息(包含但不限收货人姓名、邮编、收货地址、联系电话、发票信息的。若收件人非您本人的,您应当确保已经获得收货人相关授权)(个人敏感信息)、交易金额、下单时间、订单商户、订单编号、订单状态、支付机构、支付方式、支付账号、支付状态(个人敏感信息)、银行卡绑定与核算(如相关功能需提供的,务必与您的实名信息一致的银行卡信息)等,我们收集这些信息是为了帮助您顺利完成交易、配送,保障您的交易安全、查询订单信息、提供客户服务。
           <br />
-          服务类型:统计分析及分享
-          <br /> 收集个人信息类型:设备信息(IMEI/MAC/Android
-          ID/IDFA/OpenUDID/GUID/SIM卡IMSI/地理位置等)
+          (六)相册使用
           <br />
-          隐私政策: https://open.weixin.qq.com/cgi-bin/frame?t=news/protocol_developer_tmpl
+          您上传/下载照片或视频时,我们将会申请访问您的设备信息的权限(相机、相册等相关的图片信息)并根据您的授权获取相关信息。
           <br />
-          <h2>(四)信息制作、发布、上传、交流互动功能</h2>
+          (七)训练与练习
           <br />
-          当您在我们的部分产品与/或服务中使用视频剪辑创作、上传、发布、社区发帖、平台内交流互动、点赞、评论、分享服务/功能时,除注册登录账户之外,您可能会主动提供相关图文/视频内容、互动信息(包括但不限于帖子、点赞/评论/分享/交流互动信息)。我们会自动收集您的上述信息,并展示您的昵称、头像、发布的信息内容。请您知悉,您发布的信息中可能包含他人的个人信息,请您务必取得他人的合法授权,避免非法泄露他人的个人信息。如您不同意我们收集上述信息,您将无法使用我们的信息发布功能,但不影响您使用我们为您提供的其他产品和服务
+          乐团训练与练习会使用到相关课件或云教程或团练宝(包含但不限于视频、曲目播放及练习等功能)时,我们将会申请访问您的设备信息的权限(麦克风、摄像头等)并根据您的授权获取相关信息
           <br />
-          摄像头权限:当您需要上传个人中心头像跟背景图片或者上传帖子内容里面的图片、视频的时候,拍照功能需要调取您的摄像头权限,如果您拒绝授权,可能会影响您上传个人中心头像以及背景图片,发布帖子,由此带来的不便请您理解。
+          (八)消息通知
           <br />
-          <h2>(五)下单与交付</h2>
+          我们会通过您的设备的系统通知(PUSH通知),向您推送系统更新、乐团状态、乐团资讯、练习信息、练习功能使用、课程信息及管理老师、乐团学生、伴学指导用户动态和您可能感兴趣的资讯等。为了实现上述目的所必需,确保应用处于关闭或后台运行状态下正常接收到系统通知(PUSH通知),我们可能会在合理频率范围内自启动。对于您在使用过程中提供的您的联系方式(包含但不限于联系电话),我们在运营中可能会向其中的一种或多种发送多类通知,用于用户消息告知、身份验证、安全验证、用户使用体验调研等用途。
           <br />
-          当您在我们的产品与/或服务中购买商品或服务的,我们需要根据商品或服务类型收集如下部分或全部的个人信息,包括:交易商品或服务信息、收货人信息(收货人姓名、收货地址及其联系电话)(个人敏感信息)、交易金额、下单时间、订单商户、订单编号、订单状态、支付方式、支付账号、支付状态(个人敏感信息),我们收集这些信息是为了帮助您顺利完成交易、保障您的交易安全、查询订单信息、提供客户服务
+          (九)除本政策外,在特定场景下,我们将以及时告知的方式(包括但不限于更新本政策、重新签署文件、页面提示、弹窗、系统通知、系统消息、邮件、系统公告或其他便于您获知的方式)另行向您详细说明对应信息的处理目的、方式、范围等规则,并在征得您的授权同意后处理(如适用)
           <br />
-          <h2>(六)客服、其他用户响应功能</h2>
+          (十)客服、其他用户响应功能
           <br />
-          当您与我们的客服互动时或使用其他用户响应功能时(包括:在线提交意见反馈、与在线/人工客服沟通、提出我们的产品与/或服务的售后申请、行使您的相关个人信息控制权、其他客户投诉和需求),为了您的账号与系统安全,我们可能需要您先行提供账号信息,并与您之前的个人信息相匹配以验证您的用户身份。在您使用客服或其他用户响应功能时,我们可能还会需要收集您的如下个人敏感信息:联系方式(您与我们联系时使用的电话号码/电子邮箱或您向我们主动提供的其他联系方式)、您与我们的沟通信息(包括文字/图片/音视频/通话记录形式)、与您需求相关联的其他必要信息。我们收集这些信息是为了调查事实与帮助您解决问题,如您拒绝提供可能导致您无法使用我们的客服用户响应机制。
+          当您与我们的客服互动时或使用其他用户响应功能时(包括:在线提交意见反馈、与在线/人工客服沟通、提出我们的产品与/或功能的售后申请、行使您的相关个人信息控制权、其他客户投诉和需求),为了您的账号与系统安全,我们可能需要您先行提供账号信息,并与您之前的个人信息相匹配以验证您的用户身份。在您使用客服或其他用户响应功能时,我们可能还会需要收集您的如下个人敏感信息:联系方式(您与我们联系时使用的电话号码/电子邮箱或您向我们主动提供的其他联系方式)、您与我们的沟通信息(包括文字/图片/音视频/通话记录形式)、与您需求相关联的其他必要信息。我们收集这些信息是为了调查事实与帮助您解决问题,如您拒绝提供可能导致您无法使用我们的客服用户响应机制。
           <br />
-          <h2>(七)产品安全保障功能</h2>
+          (十一)产品安全保障功能
           <br />
-          我们需要收集您的一些信息来保障您使用我们的产品与/或服务时的账号与系统安全,并协助提升我们的产品与/服务的安全性和可靠性,以防产生任何危害用户、
-          {this.name}
-          、社会的行为,包括您的如下个人信息:账号登录地、个人常用设备信息(例如:硬件型号、设备MAC地址、IMEI、IMSI)、登录IP地址、产品版本号、语言模式、浏览记录、网络使用习惯、服务故障信息,以及个人敏感信息:交易信息、会员实名认证信息。我们会根据上述信息来综合判断您账号、账户及交易风险、进行身份验证、客户服务、检测及防范安全事件、诈骗监测、存档和备份用途,并依法采取必要的记录、审计、分析、处置措施,一旦我们检测出存在或疑似存在账号安全风险时,我们会使用相关信息进行安全验证与风险排除,确保我们向您提供的产品和服务的安全性,以用来保障您的权益不受侵害。同时,当发生账号或系统安全问题时,我们会收集这些信息来优化我们的产品和服务。
+          我们需要收集您的一些信息来保障您使用我们的产品与/或功能时的账号与系统安全,并协助提升我们的产品与/功能的安全性和可靠性,以防产生任何危害用户、管乐团、社会的行为,包括您的如下个人信息:账号登录地、个人常用设备信息(例如:硬件型号、设备MAC地址、IMEI、IMSI)、登录IP地址、产品版本号、语言模式、浏览记录、网络使用习惯、服务故障信息,以及个人敏感信息:交易信息、会员实名认证信息,日志信息(包括:正在安装的应用信息或正在运行的进程信息、应用程序的总体运行、使用情况与频率、应用崩溃情况、总体安装使用情况、性能数据、应用来源)等。我们会根据上述信息来综合判断您账号、账户及交易风险、进行身份验证、客户服务、检测及防范安全事件、诈骗监测、存档和备份用途,并依法采取必要的记录、审计、分析、处置措施,一旦我们检测出存在或疑似存在账号安全风险时,我们会使用相关信息进行安全验证与风险排除,确保我们向您提供的产品和服务的安全性,以用来保障您的权益不受侵害。同时,当发生账号或系统安全问题时,我们会收集这些信息来优化我们的产品和服务。
           <br />
-          此外,为确保您设备操作环境的安全以及提供我们的产品与/或服务所必需,防止恶意程序和反作弊,我们会在您同意本《隐私政策》后获取您设备上已安装或正在运行的必要的应用/软件列表信息(包括应用/软件来源、应用/软件总体运行情况、崩溃情况、使用频率)。请您知悉,单独的应用/软件列表信息无法识别您的特定身份。
+          此外,为确保您设备操作环境的安全以及提供我们的产品与/或功能所必需,防止恶意程序和反作弊,我们会在您同意本《隐私政策》后获取您设备上已安装或正在运行的必要的应用/软件列表信息(包括应用/软件来源、应用/软件总体运行情况、崩溃情况、使用频率)。请您知悉,单独的应用/软件列表信息无法识别您的特定身份。
           <br />
           例外情形,另外,您充分理解并同意,我们在以下情况下收集、使用您的个人信息无需您的授权同意:
           <br />
@@ -213,23 +115,24 @@ export default defineComponent({
           <br />
           根据与您签订和履行相关协议或其他书面文件所必需的;
           <br />
-          用于维护我们的产品与/或服务的安全稳定运行所必需的,例如发现、处置产品与/或服务的故障
+          用于维护我们的产品与/或服务的安全稳定运行所必需的,例如发现、处置产品与/或功能的故障
+          <br />
+          有权机关的要求、法律法规规定的其他情形。
           <br />
-          有权机关的要求、法律法规规定的其他情形。 我们如何使用Cookie和同类技术
           <br />
+          <h2>我们如何使用Cookie和同类技术</h2>
           (一)关于Cookie和同类技术
           <br />
           Cookie是包含字符串的小文件,在您登入和使用网站或其他网络内容时发送、存放在您的计算机、移动设备或其他装置内(通常经过加密)。Cookie同类技术是可用于与Cookie类似用途的其他技术,例如:Web
-          <br />
           Beacon、Proxy、嵌入式脚本。
           <br />
           目前,我们主要使用Cookie收集您的个人信息。您知悉并同意,随着技术的发展和我们产品和服务的进一步完善,我们也可能会使用Cookie同类技术
           <br />
           (二)我们如何使用Cookie和同类技术
           <br />
-          在您使用我们的产品与/或服务时,我们可能会使用Cookie和同类技术收集您的一些个人信息,包括:您访问网站的习惯、您的浏览信息、您的登录信息
+          在您使用我们的产品与/或功能时,我们可能会使用Cookie和同类技术收集您的一些个人信息,包括:您访问网站的习惯、您的浏览信息、您的登录信息
           <br />
-          如果您的浏览器允许,您可以通过您的浏览器的设置以管理、(部分/全部)拒绝Cookie与/或同类技术;或删除已经储存在您的计算机、移动设备或其他装置内的Cookie与/或同类技术,从而实现我们无法全部或部分追踪您的个人信息。您如需详细了解如何更改浏览器设置,请具体查看您使用的浏览器的相关设置页面。您理解并知悉:我们的某些产品/服务只能通过使用Cookie或同类技术才可得到实现,如您拒绝使用或删除的,您可能将无法正常使用我们的相关产品与/或服务或无法通过我们的产品与/或服务获得最佳的服务体验,同时也可能会对您的信息保护和账号安全性造成一定的影响。
+          如果您的浏览器允许,您可以通过您的浏览器的设置以管理、(部分/全部)拒绝Cookie与/或同类技术;或删除已经储存在您的计算机、移动设备或其他装置内的Cookie与/或同类技术,从而实现我们无法全部或部分追踪您的个人信息。您如需详细了解如何更改浏览器设置,请具体查看您使用的浏览器的相关设置页面。您理解并知悉:我们的某些产品/功能只能通过使用Cookie或同类技术才可得到实现,如您拒绝使用或删除的,您可能将无法正常使用我们的相关产品与/或服务或无法通过我们的产品与/或服务获得最佳的服务体验,同时也可能会对您的信息保护和账号安全性造成一定的影响。
           <br />
           我们如何共享、转让、公开披露您的个人信息
           <br />
@@ -237,9 +140,9 @@ export default defineComponent({
           <br />
           我们以及我们的关联公司,可能将您的个人信息与我们的关联公司、合作伙伴及第三方服务供应商、承包商及代理(例如代表我们发出电子邮件或推送通知的通讯服务提供商、为我们提供位置数据的地图服务供应商)分享(他们可能并非位于您所在的法域),用作下列用途:
           <br />
-          向您提供我们的服务; 实现“我们可能如何使用信息”部分所述目的;
+          向您提供我们的功能使用权限; 实现“我们可能如何使用信息”部分所述目的;
           <br />
-          履行我们在《管乐团服务协议》或本《隐私政策》中的义务和行使我们的权利;
+          履行我们在《管乐团使用协议》或本《隐私政策》中的义务和行使我们的权利;
           <br />
           理解、维护和改善我们的服务。
           <br />
@@ -247,31 +150,27 @@ export default defineComponent({
           <br />
           随着我们业务的持续发展,我们以及我们的关联公司有可能进行合并、收购、资产转让或类似的交易,您的个人信息有可能作为此类交易的一部分而被转移。我们将在转移前通知您。
           <br />
-          我们或我们的关联公司还可能为以下需要而保留、保存或披露您的个人信息:
+          我们或我们的关联公司还可能为以下需要而保留、保存或披露您的个人信息: 遵守适用的法律法规;
           <br />
-          遵守适用的法律法规; 遵守法院命令或其他法律程序的规定;
-          <br />
-          遵守相关政府机关的要求;
+          遵守法院命令或其他法律程序的规定; 遵守相关政府机关的要求;
           <br />
           为遵守适用的法律法规、维护社会公共利益,或保护我们的客户、我们或我们的集团公司、其他用户或雇员的人身和财产安全或合法权益所合理必需的用途。
           <br />
-          您对个人信息享有的控制权
-          <br />
-          您对我们产品与/或服务中的您的个人信息享有多种方式的控制权,包括:您可以访问、更正/修改、删除您的个人信息,也可以撤回之前作出的对您个人信息的同意,同时您也可以注销您的账号。为便于您行使您的上述控制权,我们在产品的相关功能页面为您提供了操作指引和操作设置,您可以自行进行操作,如您在操作过程中有疑惑或困难的可以通过文末的方式联系我们来进行控制,我们会及时为您处理。
           <br />
-          (一)访问权
+          <h2>您对个人信息享有的控制权</h2>
+          您对我们产品与/或您使用功能中,您的个人信息享有多种方式的控制权,包括:您可以访问、更正/修改、删除您的个人信息,也可以撤回之前作出的对您个人信息的同意,同时您也可以注销您的账号。为便于您行使您的上述控制权,我们在产品的相关功能页面为您提供了操作指引和操作设置,您可以自行进行操作,如您在操作过程中有疑惑或困难的可以通过文末的方式联系我们来进行控制,我们会及时为您处理。
           <br />
-          您可以在我们的产品与/或服务中查询或访问您的相关个人信息,包括:
+          (一)访问权 您可以在我们的产品与/或您在使用功能中查询或访问您的相关个人信息,包括:
           <br />
-          账号信息:您可以通过相关产品页面随时登录您的个人账号,随时查询或访问您的账号中的个人资料信息,包括:头像、昵称、性别、个性签名。
+          账号信息:您可以通过相关产品页面随时登录您的个人账号,随时查询或访问您的账号中的个人资料信息,包括:头像、昵称、性别、个性签名
           <br />
-          使用信息:您可以通过相关产品页面随时访问您的使用信息,包括:收藏记录、观看历史、离线下载记录、搜索记录、上传内容、订单信息
+          使用信息:您可以通过相关产品页面随时访问您的使用信息,包括:观看历史、作业信息、练习记录、订单信息等
           <br />
           其他信息:如您在此访问过程中遇到操作问题的或如需获取其他前述无法获知的个人信息内容,您可通过文末提供的方式联系我们,我们将在核实您的身份后在合理期限内向您提供,但法律法规另有规定的或本政策另有约定的除外。
           <br />
           (二)更正/修改权
           <br />
-          您可以在我们的产品与/或服务中更正/修改您的相关个人信息。为便于您行使您的上述权利,我们为您提供了在线自行更正/修改和向我们提出更正/修改申请两种方式。
+          您可以在我们的产品与/或您在使用功能中更正/修改您的相关个人信息。为便于您行使您的上述权利,我们为您提供了在线自行更正/修改和向我们提出更正/修改申请两种方式。
           <br />
           对于您的部分个人信息,我们在产品的相关功能页面为您提供了操作指引和操作设置,您可以直接进行更正/修改,例如:“头像/昵称/性别/个性签名”信息在“手机端APP”中的更正/修改路径为:我的—设置;
           <br />
@@ -281,49 +180,39 @@ export default defineComponent({
           <br />
           (三)注销权
           <br />
-          我们为您提供账号注销的多种途径,您可以通过在线申请注销或联系我们的客服或通过其他我们公示的方式申请注销您的账号。在您注销账号后,您将无法再以此账号登录和使用
-          {this.name}
-          旗下的相关产品与服务;该账号在{this.name}
-          的产品与服务使用期间已产生的但未消耗完毕的权益及未来的预期利益全部权益将被清除;该账号下的内容、信息、数据、记录将会被删除或匿名化处理(但法律法规另有规定或监管部门另有要求的除外);同时,账号一旦注销超过一定时间,将无法恢复。
+          我们为您提供账号注销的多种途径,您可以通过在线申请注销或联系我们的客服或通过其他我们公示的方式申请注销您的账号。在您注销账号后,您将无法再以此账号登录和使用管乐团旗下的相关产品与功能;该账号在管乐团的产品与服务使用期间已产生的但未消耗完毕的权益及未来的预期利益全部权益将被清除;该账号下的内容、信息、数据、记录将会被删除或匿名化处理(但法律法规另有规定或监管部门另有要求的除外);同时,账号一旦注销超过一定时间,将无法恢复。
           <br />
           (四)提前获知产品与/或服务停止运营权
           <br />
-          我们将持续为您提供优质服务,若因特殊原因导致我们的部分或全部产品与/或服务被迫停止运营,我们将提前在显著位置或向您发送推送消息或以其他方式通知您,并将停止对您个人信息的收集,同时在超出法律法规规定的必需且最短期限后,我们将会对所持有的您的个人信息进行删除或匿名化处理。
-          <br />
-          (五)帮助反馈权
+          若因特殊原因导致我们的部分或全部产品与/或功能被迫停止运营,我们将提前在显著位置或向您发送推送消息或以其他方式通知您,并将停止对您个人信息的收集,同时在超出法律法规规定的必需且最短期限后,我们将会对所持有的您的个人信息进行删除或匿名化处理。
           <br />
-          我们为您提供了多种反馈渠道,联系客服,联系电话,帮助反馈。
+          (五)帮助反馈权 我们为您提供了反馈渠道:可联系在线客服,帮助反馈。
           <br />
-          我们如何存储和保护您的个人信息
           <br />
+          <h2>我们如何存储和保护您的个人信息</h2>
           (一)个人信息的存储
           <br />
           存储地点:我们依照法律法规的规定,将您的个人信息存储于中华人民共和国境内。目前我们不存在跨境存储您的个人信息或向境外提供个人信息的场景。如需跨境存储或向境外提供个人信息的,我们会单独向您明确告知(包括出境的目的、接收方、使用方式与范围、使用内容、安全保障措施、安全风险)并再次征得您的授权同意,并严格要求接收方按照本《隐私政策》以及法律法规相关要求来处理您的个人信息;
           <br />
-          存储期限:我们在为提供我们的产品和服务之目的所必需且最短的期间内保留您的个人信息,例如:当您使用我们的注册登录及会员功能时,我们需要收集您的手机号码,且在您提供后并在您使用该功能期间,我们需要持续为您保留您的手机号码,以向您正常提供该功能、保障您的账号和系统安全。在超出上述存储期限后,我们会对您的个人信息进行删除或匿名化处理。但您行使删除权、注销账号的或法律法规另有规定的除外(例如:《电子商务法》规定:商品和服务信息、交易信息保存时间自交易完成之日起不少于三年)。
+          存储期限:我们在为提供我们的产品或功能之目的所必需且最短的期间内保留您的个人信息,例如:当您使用我们的注册登录及付费功能时,我们需要收集您的手机号码,且在您提供后并在您使用该功能期间,我们需要持续为您保留您的手机号码,以向您正常提供该功能、保障您的账号和系统安全。在超出上述存储期限后,我们会对您的个人信息进行删除或匿名化处理。但您行使删除权、注销账号的或法律法规另有规定的除外(例如:《电子商务法》规定:商品和服务信息、交易信息保存时间自交易完成之日起不少于三年)。
           <br />
           (二)个人信息的保护措施
           <br />
-          我们一直
+          我们一直都极为重视保护用户的个人信息安全,为此我们采用了符合行业标准的安全技术措施及组织和管理措施保护措施以最大程度降低您的信息被泄露、毁损、误用、非授权访问、非授权披露和更改的风险。
           <br />
-          都极为重视保护用户的个人信息安全,为此我们采用了符合行业标准的安全技术措施及组织和管理措施保护措施以最大程度降低您的信息被泄露、毁损、误用、非授权访问、非授权披露和更改的风险。
-          未成年人保护
           <br />
-          {this.name}
-          一直非常注重对未成年人的保护,致力于践行我们的企业社会责任。
+          <h2>未成年人保护</h2>
+          管乐团一直非常注重对未成年人的保护,致力于践行我们的企业社会责任。
           <br />
-          {this.name}
-          的绝大部分产品与/或服务主要面向成年人提供,针对这部分产品与/或服务,我们不会主动直接向未成年人收集其个人信息,如未成年人需要使用的,应首先取得其监护人的同意(包括本政策),在监护人同意后和指导下进行使用、提交个人信息;我们希望监护人亦能积极的教育和引导未成年人增强个人信息保护意识和能力,保护未成年人个人信息安全。
-          {this.name}
-          会严格履行法律规定的未成年人保护义务与责任,我们只会在法律允许、监护人同意或保护未成年人所必要的情况下收集、使用、共享、转让或披露未成年人个人信息,如果我们发现未成年人在未事先获得其监护人同意的情况下使用了我们的产品与/或服务的,我们会尽最大努力与监护人取得联系,并在监护人要求下尽快删除相关未成年人个人信息。
+          如未成年人需要使用的,应首先取得其监护人的同意(包括本政策),在监护人同意后和指导下进行使用、提交个人信息;我们希望监护人亦能积极的教育和引导未成年人增强个人信息保护意识和能力,保护未成年人个人信息安全。管乐团会严格履行法律规定的未成年人保护义务与责任,我们只会在法律允许或监护人同意或保护未成年人所必要的情况下或乐团所需收集、使用、共享、转让或披露未成年人个人信息,如果您是14周岁以下儿童的,在您使用我们的功能前,请您在监护人的授权同意后,在监护人的指导下使用我们的产品与/或功能。
           <br />
-          本《隐私政策》的更新
           <br />
-          我们鼓励您在每次使用我们的产品或服务时都查阅我们的《隐私政策》。为了给您提供更好的服务,我们会根据产品的更新情况及法律法规的相关要求更新本《隐私政策》的条款,该更新构成本《隐私政策》的一部分。如该更新造成您在本《隐私政策》下权利的实质减少或重大变更,我们将在本政策生效前通过在显著位置提示或向您发送推送消息或以其他方式通知您,若您继续使用我们的服务,即表示您充分阅读、理解并同意受经修订的《隐私政策》的约束。为保障您的合法权益,我们建议您可以定期在我们平台的设置页面中查看本政策。
+          <h2>本《隐私政策》的更新</h2>
+          我们鼓励您在每次使用我们的产品或功能时都查阅我们的《隐私政策》。为了让您更好的使用我们的产品或功能,我们会根据产品或功能或乐团的需求更新情况及法律法规的相关要求更新本《隐私政策》的条款,该更新构成本《隐私政策》的一部分。如该更新造成您在本《隐私政策》下权利的实质减少或重大变更,我们将在本政策生效前通过系统提示或系统信息或向您发送推送消息或以其他方式通知您,若您继续使用我们的服务,即表示您充分阅读、理解并同意受经修订的《隐私政策》的约束。为保障您的合法权益,我们建议您可以定期在我们平台的设置页面中查看本政策。
           <br />
           上述的“重大变更”包括但不限于:
           <br />
-          我们的服务模式发生重大变化。如处理个人信息的目的、处理的个人信息的类型、个人信息的使用方式;
+          我们的功能或模式发生重大变化。如处理个人信息的目的、处理的个人信息的类型、个人信息的使用方式;
           <br />
           我们在所有权结构、组织架构方面发生重大变化。如业务调整、破产并购引起的所有者变更;
           <br />
@@ -337,36 +226,40 @@ export default defineComponent({
           <br />
           其他重要的或可能严重影响您的个人权益的情况发生时。
           <br />
-          如何联系我们
           <br />
-          (一)如您对本《隐私政策》的执行或使用我们的服务时遇到的与隐私保护相关的事宜有任何问题(包括问题咨询、投诉),我们专门为您提供了多种反馈通道,希望为您提供满意的解决方案:
+          <h2>如何联系我们</h2>
+          (一)如您对本《隐私政策》的执行或使用我们的服务时遇到的与隐私保护相关的事宜有任何问题(包括问题咨询、投诉),我们专门为您提供了反馈通道,希望为您提供满意的解决方案:
           <br />
           在线客服/其他在线意见反馈通道:您可与我们平台上产品功能页面的在线客服联系或者在线提交意见反馈;
           <br />
-          人工客服通道:您可以拨打我们的任何一部客服电话与我们联系(400-018-5077);
+          (二)我们会在收到您的意见及建议后尽快向您回复,一般情况下,我们不会因此对您收取服务费。但是,在以下情形下,您理解并知悉,我们将无法响应您的请求:
           <br />
-          (二)我们会在收到您的意见及建议后,并在验证您的用户身份后的15个工作日内或法律法规规定的期限内尽快向您回复,一般情况下,我们不会因此对您收取服务费。但是,在以下情形下,您理解并知悉,我们将无法响应您的请求:
-          <br />
-          与我们履行法律法规规定的义务相关的; 与国家安全、国防安全直接相关的
-          <br />
-          与公共安全、公共卫生、重大公共利益直接相关的
+          与我们履行法律法规规定的义务相关的; 与国家安全、国防安全直接相关的;
           <br />
-          与犯罪侦查、起诉和审判有关的;
+          与公共安全、公共卫生、重大公共利益直接相关的; 与犯罪侦查、起诉和审判有关的;
           <br />
           有充分证据表明您存在主观恶意或滥用权利的;
           <br />
           出于维护您或其他个人的生命、财产重大权益但又难得到本人授权同意的;
           <br />
-          响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的;
+          响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的; 涉及商业秘密的;
           <br />
-          涉及商业秘密的; 法律法规规定的其他情形。
+          法律法规规定的其他情形。
           <br />
-          其他
           <br />
-          (一)本《隐私政策》的解释及争议解决均应适用中华人民共和国大陆地区法律。如就本政策的签订、履行发生任何争议的,双方应尽量友好协商解决;协商不成时,任何一方均可向被告住所地享有管辖权的人民法院提起诉讼。
+          <h2>其他</h2>
+          (一)本《隐私政策》的解释及争议解决均应适用中华人民共和国大陆地区法律。如就本政策的签订、履行发生任何争议的,双方应尽量友好协商解决;协商不成时,您同意将纠纷或争议提交武汉仲裁委员会仲裁。
           <br />
           (二)本《隐私政策》的标题仅为方便及阅读而设,并不影响正文其中任何规定的含义或解释。
           <br />
+          <div
+            style={{
+              textAlign: 'right',
+              paddingTop: '18px'
+            }}
+          >
+            武汉乐小雅网络科技有限公司
+          </div>
         </div>
       </>
     )

+ 36 - 19
src/views/unit-test/unit-list/index.tsx

@@ -32,7 +32,13 @@ export default defineComponent({
         page: 1,
         rows: 20
       },
-      isClick: false
+      isClick: false,
+      action: [
+        { name: '班级类型', id: 'ALL', selected: true },
+        { name: '单技班', id: 'SINGLE' },
+        { name: '乐理班', id: 'MUSIC_THEORY' },
+        { name: '合奏班', id: 'INSTRUMENTAL_ENSEMBLE' }
+      ]
     })
     const platformApi = state.platformApi
     const refreshing = ref(false)
@@ -173,24 +179,35 @@ export default defineComponent({
           <OEmpty tips="暂无阶段自测" />
         )}
 
-        <ActionSheet
-          v-model:show={form.oPopover}
-          cancelText="取消"
-          actions={
-            [
-              { name: '班级类型', id: 'ALL' },
-              { name: '单技班', id: 'SINGLE' },
-              { name: '乐理班', id: 'MUSIC_THEORY' },
-              { name: '合奏班', id: 'INSTRUMENTAL_ENSEMBLE' }
-            ] as any
-          }
-          onSelect={(val: any) => {
-            form.statusText = val.name
-            form.params.classTypeCode = val.id === 'ALL' ? null : val.id
-            form.oPopover = false
-            onSearch()
-          }}
-        />
+        <ActionSheet v-model:show={form.oPopover}>
+          <div class={['van-sheet_content van-hairline--bottom']}>
+            {form.action.map((item: any) => (
+              <div
+                class={['van-sheet-item', item.selected && 'van-sheet-item-active']}
+                onClick={() => {
+                  form.action.forEach((child: any) => {
+                    child.selected = false
+                  })
+                  item.selected = true
+                  form.statusText = item.name
+                  form.params.classTypeCode = item.id === 'ALL' ? null : item.id
+                  form.oPopover = false
+                  onSearch()
+                }}
+              >
+                {item.name}
+              </div>
+            ))}
+          </div>
+
+          <button
+            type="button"
+            class="van-action-sheet__cancel van-action-sheet_bottom__cancel"
+            onClick={() => (form.oPopover = false)}
+          >
+            取消
+          </button>
+        </ActionSheet>
       </div>
     )
   }