romejiang
romejiang
  • 发布:2022-05-27 01:16
  • 更新:2022-08-19 15:21
  • 阅读:276

【报Bug】schema2code生成的admin端CRUD中图片组件报错。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.4

HBuilderX类型: 正式

HBuilderX版本号: 3.4.12

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: 华为p30

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// schema 如下:
"name": {
"bsonType": "string",
"title": "名称",
"description": "品牌商名称"
},
"logo": {
"bsonType": "file",
"fileMediaType": "image",
"fileExtName": "jpg,png,jpeg,webp",
"title": "图标",
"description": "品牌商的品牌图标"
}

操作步骤:

添加时如果不上传图片,会将file类型的字段存为 logo: null

然后通过修改时就会报错

如果手动将数据库中logo字段改成 logo: {}后,就可以修改上传图片了。但如果吧schema中file类型的默认值改成 {} ,会报错不允许为 {}

预期结果:

修改保存图片

实际结果:

修改保存时会报错:
errCode: InternalServerError | errMsg: Cannot create field 'extname' in element {logo: ""}

bug描述:

生成的代码,无法修改保存图片类型。

2022-05-27 01:16 负责人:无 分享
已邀请:
DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

参考下面的临时方案

add.vue 页面

/**  
 * 验证表单并提交  
 */  
submit() {  
  uni.showLoading({  
    mask: true  
  })  
  this.$refs.form.validate().then((res) => {  
    this.removeNullField(res)  
    return this.submitForm(res)  
  }).catch(() => {  
  }).finally(() => {  
    uni.hideLoading()  
  })  
},  

// 临时方案,解决图片首次没有上传,修改时无法提交的问题  
removeNullField(res) {  
  for (let key in res) {  
    if (res[key] === null) {  
      delete res[key]  
    }  
  }  
}

该问题目前已经被锁定, 无法添加新回复