Kaynağa Gözat

设置-智汇助手完善

hh 1 yıl önce
ebeveyn
işleme
3b4f8c534e

+ 3 - 0
entry/src/main/ets/common/constants/CommonConstants.ets

@@ -62,6 +62,9 @@ export default class CommonConstants {
   // 附件地址前缀
   static FILE_URL_PREFIX : string = 'http://192.168.101.4:9000/jgfile'
 
+  // 附件地址前缀
+  static USER_ID : number = 0
+
   static readonly STORAGE_TYPE: string[] =  ['电子元器件', '电路板', '结构件', '辅助材料']
   static readonly PARK_TYPE: string[] =  ['出入库位置', '充电位置', '工作台', '其他']
 

+ 3 - 1
entry/src/main/ets/entryability/EntryAbility.ets

@@ -7,6 +7,7 @@ import RobotSelfCheckModel from '../model/database/RobotSelfCheckModel';
 import StorageModel from '../model/database/StorageModel';
 import StorageSpaceModel from '../model/database/StorageSpaceModel';
 import UserModel from '../model/database/UserModel';
+import AssistantSetModel from '../model/database/AssistantSetModel';
 
 export default class EntryAbility extends UIAbility {
 
@@ -17,6 +18,7 @@ export default class EntryAbility extends UIAbility {
     StorageSpaceModel.initTaskDB(this.context)
     StorageModel.initTaskDB(this.context)
     UserModel.initTaskDB(this.context)
+    AssistantSetModel.initTaskDB(this.context)
   }
 
   onDestroy(): void {
@@ -50,7 +52,7 @@ export default class EntryAbility extends UIAbility {
       windowClass.setWindowLayoutFullScreen(true)
     })
 
-    windowStage.loadContent('pages/Index', (err, data) => {
+    windowStage.loadContent('pages/LoginPage', (err, data) => {
       if (err.code) {
         hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
         return;

+ 19 - 0
entry/src/main/ets/model/AssistantSet.ets

@@ -0,0 +1,19 @@
+/*
+ * 智汇助手
+ * */
+export default class AssistantSet {
+  // 主键id
+  id?: number
+  // 用户id
+  userId?: number
+  // 语音唤醒(1:是 2:否)
+  voiceWakeUp?: number
+  // 音色(1:男 2:女)
+  timbre?: number
+  // 免唤醒(1:是 2:否)
+  wakeFree?: number
+  // 提示播报(1:是 2:否)
+  promptBroadcast?: number
+  // 语音音量(1:是 2:否)
+  voiceVolume?: number
+}

+ 1 - 1
entry/src/main/ets/model/detailsList.ets

@@ -1,4 +1,4 @@
-export default class detailsList{
+export default class DetailsList{
   index?:number
   //产品规格
   spec?:string

+ 142 - 0
entry/src/main/ets/model/database/AssistantSetModel.ets

@@ -0,0 +1,142 @@
+import relationalStore from '@ohos.data.relationalStore';
+import CommonConstants from '../../common/constants/CommonConstants';
+import AssistantSet from '../AssistantSet';
+
+class AssistantSetModel {
+
+  private rdbStore: relationalStore.RdbStore
+  private tableName: string = 'ASSISTANT_SET'
+
+  /**
+   * 初始化表
+   */
+  initTaskDB(context){
+    // 1.rdb配置
+    const config = {
+      name: CommonConstants.RDB_NAME,
+      securityLevel: relationalStore.SecurityLevel.S1
+    }
+    // 2.初始化SQL语句
+    const sql = `CREATE TABLE IF NOT EXISTS ASSISTANT_SET (
+                  ID INTEGER PRIMARY KEY AUTOINCREMENT,
+                  USER_ID INTEGER NOT NULL,
+                  VOICE_WAKE_UP INTEGER NOT NULL,
+                  TIMBRE INTEGER NOT NULL,
+                  WAKE_FREE INTEGER NOT NULL,
+                  PROMPT_BROADCAST INTEGER NOT NULL,
+                  VOICE_VOLUME INTEGER NOT NULL
+                 )`
+    // 3.获取rdb
+    relationalStore.getRdbStore(context, config, (err, rdbStore) => {
+      if(err){
+        console.log('testTag', '获取rdbStore失败!')
+        return
+      }
+      // 执行Sql
+      rdbStore.executeSql(sql).then(()=>{
+        console.log('testTag', '创建智汇助手表成功!')
+      }).catch(err=>{
+        console.log('testTag', '创建失败')
+      })
+      // 保存rdbStore
+      this.rdbStore = rdbStore
+    })
+  }
+
+  // 根据用户查询对应的智汇助手设置信息
+  async getByUserId(userId: number): Promise<AssistantSet> {
+    if (!userId) {
+      return
+    }
+    // 1.构建查询条件
+    let predicates = new relationalStore.RdbPredicates(this.tableName)
+    predicates.equalTo('USER_ID', userId)
+    predicates.limitAs(1)
+    // 2.查询
+    let result = await this.rdbStore.query(predicates, ['ID', 'USER_ID', 'VOICE_WAKE_UP', 'TIMBRE', 'WAKE_FREE', 'PROMPT_BROADCAST', 'VOICE_VOLUME'])
+    // 3.2.遍历封装 只取第一条
+    while(!result.isAtLastRow){
+      // 3.3.指针移动到下一行
+      result.goToNextRow()
+      // 3.4.获取数据
+      let id = result.getLong(result.getColumnIndex('ID'))
+      let userId = result.getLong(result.getColumnIndex('USER_ID'))
+      let voiceWakeUp = result.getLong(result.getColumnIndex('VOICE_WAKE_UP'))
+      let timbre = result.getLong(result.getColumnIndex('TIMBRE'))
+      let wakeFree = result.getLong(result.getColumnIndex('WAKE_FREE'))
+      let promptBroadcast = result.getLong(result.getColumnIndex('PROMPT_BROADCAST'))
+      let voiceVolume = result.getLong(result.getColumnIndex('VOICE_VOLUME'))
+      return {id: id, userId: userId, voiceWakeUp: voiceWakeUp, timbre: timbre, wakeFree: wakeFree, promptBroadcast: promptBroadcast, voiceVolume: voiceVolume}
+    }
+  }
+
+  /**
+   * 查询智汇助手列表
+   */
+  async getAssistantSetList(){
+    // 1.构建查询条件
+    let predicates = new relationalStore.RdbPredicates(this.tableName)
+    // 2.查询
+    let result = await this.rdbStore.query(predicates, ['ID', 'USER_ID', 'VOICE_WAKE_UP', 'TIMBRE', 'WAKE_FREE', 'PROMPT_BROADCAST', 'VOICE_VOLUME'])
+    // 3.解析查询结果
+    // 3.1.定义一个数组,组装最终的查询结果
+    let AssistantSets: AssistantSet[] = []
+    // 3.2.遍历封装
+    while(!result.isAtLastRow){
+      // 3.3.指针移动到下一行
+      result.goToNextRow()
+      // 3.4.获取数据
+      let id = result.getLong(result.getColumnIndex('ID'))
+      let userId = result.getLong(result.getColumnIndex('USER_ID'))
+      let voiceWakeUp = result.getLong(result.getColumnIndex('VOICE_WAKE_UP'))
+      let timbre = result.getLong(result.getColumnIndex('TIMBRE'))
+      let wakeFree = result.getLong(result.getColumnIndex('WAKE_FREE'))
+      let promptBroadcast = result.getLong(result.getColumnIndex('PROMPT_BROADCAST'))
+      let voiceVolume = result.getLong(result.getColumnIndex('VOICE_VOLUME'))
+      // 3.5.封装到数组
+      AssistantSets.push({id, userId, voiceWakeUp, timbre, wakeFree, promptBroadcast, voiceVolume})
+    }
+    return AssistantSets
+  }
+
+  /**
+   * 添加智汇助手
+   * @param set 智汇助手设置信息
+   * @returns 智汇助手id
+   */
+  addAssistantSet(set: AssistantSet): Promise<number>{
+    console.log('testTag', '===========新增执行=============')
+    return this.rdbStore.insert(this.tableName, {USER_ID: set.userId, VOICE_WAKE_UP: set.voiceWakeUp, TIMBRE: set.timbre,
+      WAKE_FREE: set.wakeFree, PROMPT_BROADCAST: set.promptBroadcast, VOICE_VOLUME: set.voiceVolume})
+  }
+
+  /**
+   * 根据id更新智汇助手状态
+   * @param set 智汇助手设置信息
+   */
+  updateAssistantSet(set: AssistantSet) {
+    // 1.要更新的数据
+    let data = {VOICE_WAKE_UP: set.voiceWakeUp, TIMBRE: set.timbre, WAKE_FREE: set.wakeFree, PROMPT_BROADCAST: set.promptBroadcast, VOICE_VOLUME: set.voiceVolume}
+    // 2.更新的条件
+    let predicates = new relationalStore.RdbPredicates(this.tableName)
+    predicates.equalTo('ID', set.id)
+    // 3.更新操作
+    return this.rdbStore.update(data, predicates)
+  }
+
+  /**
+   * 根据id删除任务
+   * @param id 任务id
+   */
+  deleteAssistantSetById(id: number){
+    // 1.删除的条件
+    let predicates = new relationalStore.RdbPredicates(this.tableName)
+    predicates.equalTo('ID', id)
+    // 2.删除操作
+    return this.rdbStore.delete(predicates)
+  }
+}
+
+let assistantSetModel = new AssistantSetModel();
+
+export default assistantSetModel as AssistantSetModel;

+ 2 - 0
entry/src/main/ets/pages/Index.ets

@@ -4,6 +4,8 @@ import router from '@ohos.router'
 import { TaskComp } from '../common/component/TaskComp'
 import {  Warehousing}from  '../common/component/Warehousing'
 import { SmartFactoryCard}from  '../common/component/SmartFactoryCard'
+import CommonConstants from '../common/constants/CommonConstants';
+
 @CustomDialog
 struct login {
   @Link textValue: string

+ 13 - 5
entry/src/main/ets/pages/LoginPage.ets

@@ -2,6 +2,7 @@ import router from '@ohos.router'
 import CommonConstants from '../common/constants/CommonConstants'
 import JGRequest from '../common/util/request/Request'
 import {getToken, getUserInfo} from '../common/util/request/RequestInstance'
+import AssistantSetModel from '../model/database/AssistantSetModel'
 import UserModel from '../model/database/UserModel';
 import UserInfo from '../model/UserInfo'
 
@@ -43,11 +44,17 @@ struct LoginPage {
       await getToken(userInfo.userName, userInfo.password, userInfo.orgId, userInfo.stationId).then(token=>{
         if (token && token.length > 0) {
           CommonConstants.AUTH_TOKEN = token
-          router.pushUrl({
-            url:'pages/Index'
-          })
         }
       })
+      let user = await getUserInfo() as UserInfo
+      if (null != user) {
+        CommonConstants.USER_ID = user.id
+      }
+      if (CommonConstants.AUTH_TOKEN && CommonConstants.AUTH_TOKEN.length > 0) {
+        router.pushUrl({
+          url: 'pages/Index'
+        })
+      }
     }
   }
 
@@ -196,13 +203,14 @@ struct LoginPage {
               return
             }
             let userInfo = await getUserInfo() as UserInfo
+            CommonConstants.USER_ID = userInfo.id
             let user = await UserModel.getByUserId(userInfo.id) as UserInfo
             if (!user || !user.id) {
               // 将后端数据库id作为userId, 默认是保持登录
               user = {userId: userInfo.id, userName: this.loginName, password: this.password, orgId: this.dept ? this.dept.id : 0,
                 stationId: this.workstation ? this.workstation.id : 0, maintainLoginStatus: 1, updateTime: new Date().getTime()}
-              let result = await UserModel.addUser(user)
-              console.log('testTag','---addResult-----' + JSON.stringify(result));
+              await UserModel.addUser(user)
+              await AssistantSetModel.addAssistantSet({userId: userInfo.id, voiceWakeUp: 1, timbre: 2, wakeFree: 2, promptBroadcast: 1, voiceVolume: 0})
             }
             router.pushUrl({
               url:'pages/Index'

+ 1 - 1
entry/src/main/ets/pages/SetPage.ets

@@ -60,7 +60,7 @@ struct SetPage {
             currentIndex: 5
           })
         }
-        .width('17%')
+        .width('23.4%')
         .height('100%')
 
         Column() {

+ 50 - 20
entry/src/main/ets/view/AssistantSetView.ets

@@ -1,16 +1,25 @@
-
+import CommonConstants from '../common/constants/CommonConstants'
+import AssistantSet from '../model/AssistantSet'
+import AssistantSetModel from '../model/database/AssistantSetModel'
 
 @Component
 export struct AssistantSetView {
-  @State selectTimbre: number = 0
+  @State assistantSet: AssistantSet = null
 
   editTimbreDialogController: CustomDialogController = new CustomDialogController({
-    builder: EditTimbreDialog({ selectTimbre: this.selectTimbre }),
+    builder: EditTimbreDialog({
+      assistantSet: this.assistantSet
+    }),
     alignment: DialogAlignment.Center,
     customStyle: true,
     autoCancel: true,
   })
 
+  async aboutToAppear() {
+    this.assistantSet = await AssistantSetModel.getByUserId(CommonConstants.USER_ID)
+    console.log('testTag', JSON.stringify(this.assistantSet))
+  }
+
   build() {
     Column() {
       Text('智汇助手')
@@ -34,10 +43,16 @@ export struct AssistantSetView {
           }
           .alignItems(HorizontalAlign.Start)
 
-          Toggle({ type: ToggleType.Switch, isOn: true })
+          Toggle({ type: ToggleType.Switch, isOn: this.assistantSet && this.assistantSet.voiceWakeUp === 1 ? true : false})
             .selectedColor('#007DFF')
             .switchPointColor('#FFFFFF')
             .onChange((isOn: boolean) => {
+              if (isOn) {
+                this.assistantSet.voiceWakeUp = 1
+              } else {
+                this.assistantSet.voiceWakeUp = 2
+              }
+              AssistantSetModel.updateAssistantSet(this.assistantSet)
             })
         }
         .borderRadius($r('app.float.general_border_radius'))
@@ -54,7 +69,7 @@ export struct AssistantSetView {
               .fontSize($r('app.float.set_card_font_size'))
               .fontWeight(FontWeight.Medium)
               .opacity(0.9)
-            Text(this.selectTimbre ? "男声" : "女声")
+            Text(this.assistantSet && this.assistantSet.timbre === 1 ? "男声" : "女声")
               .fontSize($r('app.float.robot_state_font_size'))
               .fontColor($r('app.color.general_font_color'))
               .fontWeight(FontWeight.Medium)
@@ -62,7 +77,6 @@ export struct AssistantSetView {
           }
           .alignItems(HorizontalAlign.Start)
 
-
           Row() {
             Image($r('app.media.subscript'))
               .height($r('app.float.card_subscript_size'))
@@ -102,10 +116,16 @@ export struct AssistantSetView {
           }
           .alignItems(HorizontalAlign.Start)
 
-          Toggle({ type: ToggleType.Switch, isOn: false })
+          Toggle({ type: ToggleType.Switch, isOn: this.assistantSet && this.assistantSet.wakeFree === 1 ? true : false})
             .selectedColor('#007DFF')
             .switchPointColor('#FFFFFF')
             .onChange((isOn: boolean) => {
+              if (isOn) {
+                this.assistantSet.wakeFree = 1
+              } else {
+                this.assistantSet.wakeFree = 2
+              }
+              AssistantSetModel.updateAssistantSet(this.assistantSet)
             })
         }
         .borderRadius($r('app.float.general_border_radius'))
@@ -136,10 +156,16 @@ export struct AssistantSetView {
           }
           .alignItems(HorizontalAlign.Start)
 
-          Toggle({ type: ToggleType.Switch, isOn: true })
+          Toggle({ type: ToggleType.Switch, isOn: this.assistantSet && this.assistantSet.promptBroadcast === 1 ?true : false})
             .selectedColor('#007DFF')
             .switchPointColor('#FFFFFF')
             .onChange((isOn: boolean) => {
+              if (isOn) {
+                this.assistantSet.promptBroadcast = 1
+              } else {
+                this.assistantSet.promptBroadcast = 2
+              }
+              AssistantSetModel.updateAssistantSet(this.assistantSet)
             })
         }
         .borderRadius($r('app.float.general_border_radius'))
@@ -168,8 +194,12 @@ export struct AssistantSetView {
                 .height($r('app.float.volume_image_size'))
               Text()
                 .width('3%')
-              Slider({ min: 100, max: 200, step: 1 })
+              Slider({value: this.assistantSet ? this.assistantSet.voiceVolume : 0, min: 0, max: 30, step: 1 })
                 .layoutWeight(1)
+                .onChange((value: number)=>{
+                  this.assistantSet.voiceVolume = value
+                  AssistantSetModel.updateAssistantSet(this.assistantSet)
+                })
             }
             .justifyContent(FlexAlign.SpaceBetween)
             .layoutWeight(1)
@@ -194,7 +224,7 @@ export struct AssistantSetView {
 //弹窗组件
 @CustomDialog
 struct EditTimbreDialog {
-  @Link selectTimbre: number
+  @Link assistantSet: AssistantSet
   controller: CustomDialogController
   cancel: () => void = () => { }
   confirm: () => void = () => { }
@@ -217,19 +247,19 @@ struct EditTimbreDialog {
               .borderRadius($r('app.float.general_border_radius'))
               .objectFit(ImageFit.Fill)
               .onClick(() => {
-                this.selectTimbre = 0
+                this.assistantSet.timbre = 2
+                AssistantSetModel.updateAssistantSet(this.assistantSet)
                 this.controller.close()
-                console.log("现在是女声")
               })
             Radio({ value: 'radio0', group: 'voiceRadio' })
-              .checked(this.selectTimbre ? false : true)
+              .checked(this.assistantSet && this.assistantSet.timbre === 1 ? false : true)
               .width($r('app.float.general_icon_size'))
               .height($r('app.float.general_icon_size'))
               .margin(10)
               .onChange((isChecked: boolean) => {
                 if (isChecked) {
-                  this.selectTimbre = 0
-                  console.log("现在是女声")
+                  this.assistantSet.timbre = 2
+                  AssistantSetModel.updateAssistantSet(this.assistantSet)
                   this.controller.close()
                 }
               })
@@ -244,19 +274,19 @@ struct EditTimbreDialog {
               .borderRadius($r('app.float.general_border_radius'))
               .objectFit(ImageFit.Fill)
               .onClick(() => {
-                this.selectTimbre = 1
+                this.assistantSet.timbre = 1
+                AssistantSetModel.updateAssistantSet(this.assistantSet)
                 this.controller.close()
-                console.log("现在是男声")
               })
             Radio({ value: 'radio1', group: 'voiceRadio' })
-              .checked(this.selectTimbre ? true : false)
+              .checked(this.assistantSet && this.assistantSet.timbre === 1 ? true : false)
               .width($r('app.float.general_icon_size'))
               .height($r('app.float.general_icon_size'))
               .margin(10)
               .onChange((isChecked: boolean) => {
                 if (isChecked) {
-                  this.selectTimbre = 1
-                  console.log("现在是男声")
+                  this.assistantSet.timbre = 1
+                  AssistantSetModel.updateAssistantSet(this.assistantSet)
                   this.controller.close()
                 }
               })

+ 1 - 1
entry/src/main/ets/view/IntelligentStorageWarehousing.ets

@@ -1,6 +1,6 @@
 import {Warehousing,BufferHopper, WarehousingBufferHopperList,BufferHopperclass}from '../common/util/request/StorageRequestInstance'
 import { ScanTheStorageCode }from '../view/ScanTheStorageCode'
-import detailsList from '../model/detailsList';
+import detailsList from '../model/DetailsList';
 import StorageRequest from '../common/util/request/StorageRequest'
 import { formToJSON } from '@ohos/axios';
 

+ 26 - 254
entry/src/main/ets/view/UserInfoSetView.ets

@@ -1,7 +1,8 @@
 import common from '@ohos.app.ability.common';
 import { MediaBean } from '../common/Bean/MediaBean';
 import { MediaHelper } from '../common/Bean/MediaHelper';
-import SpaceStateList from '../model/SpaceStateList';
+import UserModel from '../model/database/UserModel';
+import UserInfo from '../model/UserInfo';
 
 ///关于弹窗
 @CustomDialog
@@ -161,233 +162,6 @@ struct About {
   }
 }
 
-///人脸录入里的重新录入弹窗
-@CustomDialog
-struct FacialInput {
-  @Link mediaBean:MediaBean
-  private mediaHelper: MediaHelper = new MediaHelper(getContext());
-  @State luru:number=0
-  scroller: Scroller = new Scroller()
-  @State navigation: number = 0
-  @Link textValue: string
-  @Link inputValue: string
-  controller: CustomDialogController
-  cancel: () => void
-  confirm: () => void
-  build(){
-    Column(){
-      Text().width("100%")
-        .height('15%')
-        .onClick(()=>{
-          this.controller.close()
-        })
-      Row(){
-        Text().width("25%")
-          .height('100%')
-          .onClick(()=> {
-            this.controller.close()
-          })
-        Column({space:20}) {
-          Text('面部采集')
-            .textAlign(TextAlign.Center)
-            .width('100%')
-            .fontSize('52px')
-          Image(this.mediaBean.localUrl)
-            .width('516px')
-            .height('516px')
-            .borderRadius(400)
-            .backgroundColor(Color.Grey)
-
-          if (this.luru===0){
-
-            Text('开始录入')
-              .textAlign(TextAlign.Center)
-              .width(200)
-              .fontSize(16)
-              .padding(10)
-              .margin(20)
-              .borderRadius(15)
-              .backgroundColor('#0f000000')
-              .onClick(() => {
-                this.handleClick(MediaOption.TakePhoto)
-                this.luru=1
-              })
-          }else if (this.luru===1){
-
-            Text('录入成功')
-              .textAlign(TextAlign.Center)
-              .width(200)
-              .fontSize(16)
-              .padding(10)
-              .margin(20)
-              .fontColor('#ffff')
-              .backgroundColor('#0A59F7')
-              .border({ width: 0.5, radius: 15 })
-              .onClick(() => {
-                // this.handleClick(MediaOption.TakePhoto)
-                this.luru=1
-                this.controller.close()
-              })
-          }
-
-        }
-        .backgroundColor('#ffff')
-        .justifyContent(FlexAlign.Center)
-        .width('50%')
-        .height('100%')
-        .borderRadius(15)
-        Text().width("25%")
-          .height('100%')
-          .onClick(()=> {
-            this.controller.close()
-          })
-      }
-      .justifyContent(FlexAlign.Center)
-      .width('100%')
-      .height('60%')
-      Text().width("100%")
-        .height('15%')
-        .onClick(()=>{
-          this.controller.close()
-
-        })
-
-    }.width("100%")
-    .height("100%")
-  }
-  async handleClick(option: MediaOption) {
-    let mediaBean: MediaBean;
-    switch (option) {
-      case MediaOption.Picture:
-        mediaBean = await this.mediaHelper.selectPicture();
-        break;
-      case MediaOption.File:
-        mediaBean = await this.mediaHelper.selectFile();
-        break;
-      case MediaOption.TakePhoto:
-        mediaBean = await this.mediaHelper.takePhoto(getContext() as common.UIAbilityContext);
-        break;
-      default:
-        break;
-    }
-
-    if (mediaBean) {
-      this.mediaBean = mediaBean;
-    }
-  }
-}
-
-enum MediaOption {
-  Picture = 0,
-  File = 1,
-  TakePhoto = 2
-}
-///人脸录入弹窗
-@CustomDialog
-struct Facerecognition {
-  @Link mediaBean: MediaBean
-  @State textValue: string = ''
-  @State inputValue: string = ''
-  aboutToDisappear() {
-    this.FacialInputController = undefined // 将dialogController置空
-  }
-  onCancel() {
-    console.info('onCancel')
-  }
-  onAccept() {
-    console.info(' onAccept')
-  }
-  existApp() {
-    console.info(' existApp')
-  }
-  //人脸录入里的重新录入弹窗控制器
-  FacialInputController: CustomDialogController = new CustomDialogController({
-    builder: FacialInput({
-      mediaBean:this.mediaBean,
-      cancel: this.onCancel,
-      confirm: this.onAccept,
-      textValue: $textValue,
-      inputValue: $inputValue,
-    }),
-
-    // gridCount: 3,
-    cancel: this.existApp,
-    //autoCancel: true,
-    alignment: DialogAlignment.Center,
-    //offset: { dx: 0, dy: -20 },
-    gridCount: 4,
-    customStyle: true,
-  })
-  scroller: Scroller = new Scroller()
-  @State navigation: number = 0
-  controller: CustomDialogController
-  // 若尝试在CustomDialog中传入多个其他的Controller,以实现在CustomDialog中打开另一个或另一些CustomDialog,那么此处需要将指向自己的controller放在最后
-  cancel: () => void
-  confirm: () => void
-  build(){
-    Column(){
-      Text().width("100%")
-        .height('30%')
-        .onClick(()=>{
-          this.controller.close()
-
-        })
-      Row(){
-        Text().width('25%')
-          .height('100%')
-          .onClick(()=>{
-            this.controller.close()
-
-          })
-        Column({space:10}){
-          Text('面部采集')
-            .width('100%')
-            .fontSize('51px')
-            .textAlign(TextAlign.Center)
-          Row(){
-            Text('您已录入面部信息,是否删除?')
-              .width('100%')
-              .fontSize('32px')
-          }.width('80%')
-          .height('60%')
-          Row(){
-            Text('重新录入')
-          }
-          .justifyContent(FlexAlign.Center)
-          .borderRadius(15)
-          .width('30%')
-          .border({width:1})
-          .backgroundColor('#F1F3F5')
-          .height('20%')
-          .onClick(()=>{
-            this.FacialInputController.open()
-          })
-
-        }.width('50%')
-        .padding(10)
-        .height('100%')
-        .borderRadius(15)
-        .backgroundColor('#FFFF')
-        Text().width('25%')
-          .height('100%')
-          .onClick(()=>{
-            this.controller.close()
-
-          })
-      }
-      .width('100%')
-      .height('40%')
-
-      Text().width("100%")
-        .height('30%')
-        .onClick(()=>{
-          this.controller.close()
-        })
-    }.width("100%")
-    .height("100%")
-    .backgroundColor('#4d000000')
-  }
-}
 @Entry
 @Component
 export struct UserInfoSetView {
@@ -423,35 +197,23 @@ export struct UserInfoSetView {
     gridCount: 4,
     customStyle: true,
   })
-  FacerecognitionController: CustomDialogController = new CustomDialogController({
-    builder: Facerecognition({
-      mediaBean:this.mediaBean,
-      cancel: this.onCancel,
-      confirm: this.onAccept,
-    }),
-    // gridCount: 3,
-    cancel: this.existApp,
-    //autoCancel: true,
-    alignment: DialogAlignment.Center,
-    //offset: { dx: 0, dy: -20 },
-    gridCount: 4,
-    customStyle: true,
-  })
+
   @State SetUp:number=0
   build(){
     Row(){
       Column({space:10}){
         Text()
-          .height('18.6%')
+          .height('15%')
         Image(this.mediaBean.localUrl)
           .width('267px')
           .height('267px')
           .borderWidth(1)
         Text('王德发')
-          .fontSize('51px')
-          .fontColor('#e6000000')
-        Text()
-          .height('10%')
+          .fontSize($r('app.float.process_card_large_font_size'))
+          .fontColor($r('app.color.general_font_color'))
+          .fontWeight(FontWeight.Medium)
+          .opacity($r('app.float.general_font_opacity'))
+        Row().height('2.6%')
         Text('退出登录')
           .width('90%')
           .height('11.2%')
@@ -484,7 +246,7 @@ export struct UserInfoSetView {
               .fontSize($r('app.float.robot_set_font_size'))
               .fontColor($r('app.color.general_font_color'))
               .fontWeight(FontWeight.Regular)
-              .opacity($r('app.float.general_font_opacity'))
+              .opacity($r('app.float.card_font_default_opacity'))
           }
           .alignItems(HorizontalAlign.Start)
           .justifyContent(FlexAlign.Center)
@@ -494,6 +256,16 @@ export struct UserInfoSetView {
             Toggle({ type: ToggleType.Switch,isOn: true })
               .width('96px')
               .height('53px')
+              .onChange(async (isOn: boolean) => {
+                let userInfo = await UserModel.getLast() as UserInfo
+                if (isOn) {
+                  userInfo.maintainLoginStatus = 1
+                } else {
+                  userInfo.maintainLoginStatus = 2
+                }
+                userInfo.updateTime = new Date().getTime()
+                UserModel.updateUser(userInfo)
+              })
           }
           .height('100%')
           .width('20%')
@@ -517,7 +289,7 @@ export struct UserInfoSetView {
               .fontSize($r('app.float.robot_set_font_size'))
               .fontColor($r('app.color.general_font_color'))
               .fontWeight(FontWeight.Regular)
-              .opacity($r('app.float.general_font_opacity'))
+              .opacity($r('app.float.card_font_default_opacity'))
           }
           .alignItems(HorizontalAlign.Start)
           .justifyContent(FlexAlign.Center)
@@ -538,9 +310,6 @@ export struct UserInfoSetView {
         .backgroundColor($r('app.color.general_card_background_color'))
         .borderRadius($r('app.float.general_border_radius'))
         .padding({left:10})
-        .onClick(()=>{
-          this.FacerecognitionController.open()
-        })
 
         Text('其他')
           .width('100%')
@@ -550,7 +319,10 @@ export struct UserInfoSetView {
         Row(){
           Column(){
             Text('关于')
-              .fontSize('32px')
+              .fontSize($r('app.float.card_title_font_size'))
+              .fontColor($r('app.color.general_font_color'))
+              .fontWeight(FontWeight.Medium)
+              .opacity($r('app.float.general_font_opacity'))
           }
           .alignItems(HorizontalAlign.Start)
           .justifyContent(FlexAlign.Center)
@@ -581,7 +353,7 @@ export struct UserInfoSetView {
       .height('100%')
     }
     .width('90%')
-    .height('82%')
+    .height('100%')
     .backgroundColor('#F1F3F5')
   }