
# 设置华为云Astro轻应用标准页面上传组件属性
在标准页面中，使用上传组件来上传文件。
图1上传组件   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944696289.png "点击放大")
#### 数据绑定
标准页面中的组件，通过建立不同类型的视图模型，将各种数据源和组件的返回值或者属性值进行关联，实现动态数据效果。
- 值绑定：值绑定类似Vue中的v-model语法，组件上创建双向数据绑定。值绑定会根据组件类型自动选取正确的方法来更新元素。同时，负责检测各类引起绑定数据变化的事件以更新数据。
  1. 在"数据绑定"中，单击"值（value）绑定"中的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001910981938.png)，进入选择模型页面。
  
  2. 单击"新增模型"，进入新增模型页面。
  
  3. 设置"模型名称"与"来源"，单击"下一步"。
     图2定义模型   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911143054.png "点击放大")
     华为云Astro轻应用支持自定义、对象、服务和事件四类模型，每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。
      表1模型来源说明 
     | 分类  | 模型说明                                                                                                                                                                                                                  | 模型参数的定义                                       | 模型方法的定义                        | API调用方法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
     |:---|:---|:---|:---|:---|
     | 自定义 | 开发者自行定义的模型。                                                                                                                                                                                                           | 由开发者自定义，可以添加子节点。                              | 开发者自定义方法。                      | *$model.ref("modelName").actionName();*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
     | 对象  | 由Object对象表映射生成，关于对象模型的详细介绍，请参见[对象](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9024.html)。                                                                                                      | 系统自动获取Object所有的字段，开发者可以从中选择部分字段作为参数。          | 系统自动生成查询、保存、删除和统计四个方法。         | - 查询：*$model.ref("modelName").query(param);*  - 保存：*$model.ref("modelName").save();*  - 删除：*$model.ref("modelName").delete();*  - 统计：*$model.ref("modelName").count();*   |
     | 服务  | 服务模型由后台服务映射生成，当前仅支持与服务编排、脚本进行映射。关于服务模型的详细介绍，请参见[服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9129.html)和[脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9159.html)。 | 参数根据后台服务的入参、出参，映射生成为inputParam和outputParam节点。 | 系统自动生成run方法 ，用于执行模型关联的服务编排或脚本。 | *$model.ref("modelName").run();*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
     | 事件  | 事件模型由后台事件的字段映射生成，并且支持websocket刷新模型数据。                                                                                                                                                                                 | 参数根据后台事件的字段映射生成。                              | 直接使用                           | 直接使用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
        
     除了在模型中定义的方法，低代码平台还提供了如下标准API，适用于所有的模型。
     - 获取模型数据：*$model.ref("modelName").getData();*
     
     - 设置模型数据：*$model.ref("modelName").setData();*
     
     - 设置模型字段值：*$model.ref("modelName").setValue(key,value);*
      
  
  4. 在新建模型"设置"页面，执行如下操作。
     - 上一步来源选择"自定义"，需要添加子节点自定义参数及类型。
     
     - 上一步来源选择"对象"，需要配置模型关联的对象以及字段。
     
     - 上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者公共接口。
     
     - 上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
      
  
  5. 单击"下一步"，设置方法。 方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
     
  
  6. 设置完成后，单击"确定"。
   
- 属性值绑定：将容器组件的某个属性，如隐藏、样式、弹性布局等与具体的模型字段绑定，绑定后组件的属性随模型字段的值变化而变化，类似Vue的v-bind。
  1. 在"数据绑定"中，单击"属性值绑定"后的"+"。
  
  2. 在"属性"下拉框中，选择容器的某个属性。
  
  3. 在模型字段中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911145882.png)，进入选择模型页面。
  
  4. 单击"新增模型"，进入新增模型页面。
  
  5. 设置模型名称与来源，单击"下一步"。
     华为云Astro轻应用支持自定义、对象、服务和事件四类模型，每类模型都包含参数定义和方法定义。方法是在模型上定义的API，通常会在前台组件关联的事件脚本（例如页面加载事件、鼠标单击事件）中调用这些API，以实现某些功能。详细介绍，请参见[表1]。
     图3定义模型   
     ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944465069.png "点击放大") 
  
  
  
  6. 在新建模型"设置"页面，执行如下操作。
     - 上一步来源选择"自定义"，需要添加子节点自定义参数及类型。
     
     - 上一步来源选择"对象"，需要配置模型关联的对象以及字段。
     
     - 上一步来源选择"服务"，需要配置模型关联的后台服务，可以是脚本、服务编排或者公共接口。
     
     - 上一步来源选择"事件"，需要配置模型关联的事件以及事件字段。
      
  
  7. 单击"下一步"，设置方法。 方法一般无需添加，如需添加或修改，可参考对象和服务默认生成的方法。
     
  
  8. 设置完成后，单击"确定"。
   
 
#### 基本属性
基本属性通过数据绑定后，在运行时以数据绑定的值为准。
- 标签：设置组件的标签名，用于在界面展示。
- 文本：上传按钮上，显示的文本。
  图4设置后效果   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001944698113.png "点击放大") 
- 默认已上传的文件列表：默认已上传的文件列表。
- 存储：上传文件的存储类型，单击该参数后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001911538866.png)，可进行配置。
  - 存储：存储器类型。
    - OBS：通过OBS类型连接器，存储到OBS上。
    
    - MINIO：通过MINIO类型连接器，存储到MINIO上。
    
    - OBJECTSTORAGEPROXY：通过OBJECTSTORAGEPROXY类型连接器，存储到相应服务器上。
    
    - CUSTOMAPI：通过自定义接口，来上传和展示文件。
     
  
  - 连接器：当存储配置为OBS、MINIO或OBJECTSTORAGEPROXY时，该参数才会显示，表示具体的连接器。
  
  - 桶：当存储配置为OBS、MINIO或者OBJECTSTORAGEPROXY时，该参数才会显示，表示具体的存储桶。
  
  - 上传服务：当存储配置为CUSTOMAPI时，该参数才会显示，选择自定义接口实现上传文件的功能。
  
  - 展示服务：当存储配置为CUSTOMAPI时，该参数才会显示，选择自定义接口实现展示文件的功能。
   
- 过滤文件类型：接受上传的文件类型，为文件原生的属性，会在选择文件时按照文件类型过滤，多个类型格式间以","符号隔开，如"image/jpeg,application/msword,text/plain"。
- 支持文件类型：支持的文件类型，与"过滤文件类型"不同的是，该参数是识别文件的后缀名，"过滤文件类型"为原生的属性，会在选择文件时过滤，可以两者结合使用。
- 支持多文件：文件是否支持多选。
- 自定义文件名：上传单个文件时，可自定义上传的文件名。
- 同名处理：防止同名文件覆盖，同名文件名后自动增加随机数，也可在"on-before-upload"事件中自定义处理文件名。
- 上传路径：自定义服务器端上传路径，默认为uistudio/upload，上传路径不能是以"./"或"../"等开头的相对路径。
- 文件数量：多文件上传时，最大文件数量限制，即允许上传的文件数量，超过此数量后，将不允许上传。
- 文件大小：单个文件大小限制，单位kb。
- 文件大小错误描述：当文件超过限制大小时，提示的错误描述。
- 预览：是否开启预览，只在图片时生效。
- 图片压缩：是否开启图片压缩功能，当前仅支持jpg、jpeg和png格式的图片。
- 压缩尺寸：当"图片压缩"开关打开时，该参数才会显示。图片压缩尺寸，分为保持原尺寸和自定义尺寸。
  - 保持原尺寸压缩： 如果设置宽度，高度没设置或高度和宽度都设置了，宽度以设置的为准，高度则按照原来的宽高比例生成。 如果设置高度，宽度没设置，高度以设置的为准，宽度则按照原来的宽高比例生成。如果宽度和高度都没设置，宽高以原图片宽高为准。
  
  - 自定义尺寸压缩：宽度和高度两个属性都没有设置或者只设置了其中一个，没有设置值的属性以原图片的同属性值为准。
   
- 压缩宽度(px)：指定图片压缩的宽度。当"图片压缩"开关打开时，该参数才会显示。
- 压缩高度(px)：指定图片压缩的高度。当"图片压缩"开关打开时，该参数才会显示。
- 图片压缩至指定大小(kb)：将图片压缩至指定的大小以下。当"图片压缩"开关打开时，该参数才会显示。
- 公开读：文件的访问控制权限，默认为"private"（私有），否则为"public-read"（公共读）。
- 可选择：文件列表是否可以选择，仅为图片时有效。
- 九宫格：九宫格形态展示图片列表，仅当上传全部为图片时开启效果较好，移动端每行展示4个并且大小自适应。
- 是否多选：文件列表是否支持多选。当"可选择"开关打开时，该参数才会显示。
- 选择类型：选择时，展示的样式，包含"遮罩层选择"或"选择框选择"两种类型。当"可选择"开关打开时，该参数才会显示。
- 选择框内容：设置选择框的内容。当"选择类型"设置为"选择框选择"时，该参数才会显示。
- 选中时显示内容：选中时，选择框显示的内容。当"选择类型"设置为"选择框选择"时，该参数才会显示。
- 列表展示位置：相对于上传按钮，上传列表的展示位置，移动端仅下方展示。
- 列表只显示进度条：上传列表的展示内容仅展示进度条，且文件上传完后进度条消失，目前适用于文档和压缩包。
- 图片宽高：上传列表中单个图片的宽高，单位像素，移动端不生效。
- 最大宽度：限制最大的宽度。
 
#### 公共
- 控件名称：当前组件的名称。
- 隐藏：是否隐藏该组件，此方式为静态配置该组件的隐藏。还可以将该组件属性值"隐藏"配置为布尔类型模型字段，在自定义JS代码中来控制模型字段取值，从而设置该组件是否隐藏，这种动态设置优先级是最高的。
- 禁用：是否禁用该组件。
- 只读：组件是否只读。
 
#### 样式
在"样式 \> 高级设置 \> 样式类"中设置当前组件使用的CSS样式类名，可在CSS代码中进行引用。
