HarmonyOS鸿蒙NEXT中病虫害详细信息页面保存按钮

HarmonyOS鸿蒙NEXT中病虫害详细信息页面保存按钮

病虫害详细页面信息视图中需要增加“保存”按钮,把新增的AI诊断结果保存到AGC云数据库、云存储。

cke_1677.png

保存按钮的代码如下:

// 新增病虫害,AI诊断成功后保存诊断结果到云数据库
// 保存按钮
Button('保存到我的诊断记录')
  .width('100%')
  .height(40)
  .fontSize(16)
  .fontWeight(FontWeight.Medium)
  .backgroundColor('#007DFF')
  .margin({bottom:48,top:8})
  .visibility(this.isAdd?Visibility.Visible:Visibility.Hidden)
  .onClick(() => {
    // TODO:  保存诊断结果到云数据库
    //
  })

为病虫害的实体对象添加一个新属性:AGID,

/**
 * AGC云数据库记录的唯一标识
 */
AGID?:number;

该值是AGC云数据库记录的唯一标识,如果存在则说明已保存过的记录;否则为新的诊断结果,才需保存到云数据库。

AGID是否有值,决定是否显示保存按钮

@State isAdd:boolean=false; // 是否新增

  aboutToAppear(): void {
    // 判断是否新增
    if(DataUtil.isNull(this.pestObj?.AGID)){
      this.isAdd=true;
    }
  }

更多关于HarmonyOS鸿蒙NEXT中病虫害详细信息页面保存按钮的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

学习打卡

更多关于HarmonyOS鸿蒙NEXT中病虫害详细信息页面保存按钮的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS NEXT中病虫害详细信息页面的保存按钮实现要点:

  1. 使用ArkTS语言开发
  2. 按钮组件采用Button或自定义@Extend组件
  3. 通过@State装饰器管理按钮状态
  4. 保存逻辑应调用@StorageLink持久化数据
  5. 典型布局代码示例:
Button("保存")
  .onClick(() => {
    // 保存逻辑
  })
  .stateStyle(ButtonState.Normal)

在HarmonyOS NEXT中实现保存按钮功能到AGC云数据库,可以按照以下步骤完善代码:

  1. 首先确保已集成AGC SDK并初始化云数据库服务

  2. 在onClick事件中添加云数据库保存逻辑:

.onClick(async () => {
  try {
    // 1. 获取云数据库实例
    const cloudDBZone = await agConnect.cloudDB().openCloudDBZone(zoneConfig);
    
    // 2. 设置AGID为时间戳(或其他唯一标识)
    this.pestObj.AGID = new Date().getTime(); 
    
    // 3. 执行插入操作
    const result = await cloudDBZone.executeUpsert(this.pestObj);
    
    if(result > 0) {
      // 保存成功处理
      this.isAdd = false;
      prompt.showToast({message: '保存成功'});
    }
  } catch (error) {
    console.error('保存失败:', error);
    prompt.showToast({message: '保存失败'});
  }
})
  1. 需要添加的依赖和配置:
  • 在module.json5中添加AGC权限
  • 实现PestObj对象的@CloudDBObject注解
  • 配置CloudDBZone
  1. 建议添加保存状态提示和防重复点击处理:
@State isSaving: boolean = false;

// 在onClick开始时设置isSaving=true
// 在finally中设置isSaving=false

注意:实际实现时需要根据您的具体业务对象和AGC配置进行调整。

回到顶部