HarmonyOS基本UI封装——ImageLoader 图片上传(五)

506 阅读1分钟

前言

文章系列

简介

鸿蒙基本库封装,提升鸿蒙开发效率

安装

ohpm install @peakmain/library

ImageLoader 图片上传.gif

导入依赖
import { ImageUploader, ImageBean, UploadImage } from '@peakmain/library/Index';

参数

ImageUploader组件

参数名参数名名称
titlestring设置组中标题文本,默认值为 "",则不会显示标题栏
maxSelectNumbernumber最大可选图片数量,默认值为3
canUploadboolean是否可以选择图片上传,默认值为true,表示可以选择图片
imgBeanImageBean[]已选择图片的集合
onSelectImageChange(list: ImageBean[])选择图片之后的回调,默认为空实现
areaHeightnumber设置状态栏的高度,主要用于解决图片预览时沉浸式问题

UploadImage 上传图片

图片上传结果.jpg

参数名参数名名称
beanImageBean[]上传图片的集合
urlstring上传图片的url
tokenstring上传接口的token,默认值为 ""
async
submit()
{
  const result = await UploadImage(this.imgBean, this.url, this.token)
  let tmp: string[] = []
  tmp = result.map(url => {
    return url.url
  })
  AlertDialog.show({
    message: `上传图片后的结果:${tmp}`
  })
}

示例

import { NavBar, ImageUploader, ImageBean, UploadImage } from '@peakmain/library/Index';
import { AREA_HEIGHT } from '../../constants/StorageConstants';

@Entry
@Component
struct PkLoaderPage {
  @State
  imgBean: ImageBean[] = []
  token: string = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI0MDUxNjEzMDI0ODM3NDU4MDIxIiwiYWNjb3VudCI6InRyZWFzdXJlIiwibmFtZSI6IuWPuOacuiIsIm9yZ2lkIjoxMDI0OTkwNzI2NTE5NDAzNDU3LCJzdGF0aW9uaWQiOjEwMjQ3MDc1MzU4OTE5NDQ3NjksImFkbWluaXN0cmF0b3IiOmZhbHNlLCJleHAiOjE3MTY5OTIxNjR9.hQzHgAHGNYjxJ-G4nY68DFy8PUfx4nF2VFo9R_dMKSswPEkoI77uKqop9clSPr7bSdT5B4e0yHStjH-vHRTeVw"
  @StorageProp(AREA_HEIGHT)
  areaHeight: number = 0

  async submit() {
    const result = await UploadImage(this.imgBean, "", this.token)
    let tmp: string[] = []
    tmp = result.map(url => {
      return url.url
    })
    AlertDialog.show({
      message: `上传图片后的结果:${tmp}`
    })
  }

  build() {
    Column() {
      NavBar({
        title: "ImageLoader图片上传"
      })
      ImageUploader({
        title: '文件预览',
        canUpload: true,
        imgBean: this.imgBean,
        maxSelectNumber:3,
        onSelectImageChange: (bean: ImageBean[]) => {
          this.imgBean = bean
        },
        areaHeight: this.areaHeight
      })
        .layoutWeight(1)

      Button("提交", { type: ButtonType.Capsule })
        .backgroundColor($r('app.color.color_E56A54'))
        .fontColor(Color.White)
        .fontSize(16)
        .height(50)
        .width(125)
        .onClick(() => {
          this.submit()
        })

    }.height("100%")
  }
}