微信小程序集成TDesign及多文件上传实现

作者:清欢时间:2026-10-31 08:31:54浏览:366

本文记录在微信小程序中使用TDesign框架实现多文件上传的完整流程。涵盖从npm安装依赖、配置构建选项,到解决开发者工具中npm构建失败的常见错误。通过具体代码示例,演示如何配置t-upload组件处理图片和视频,并处理上传成功与移除的逻辑,帮助开发者快速落地企业级UI组件。

微信小程序多文件上传与TDesign集成方案

在小程序开发中,文件上传功能往往较为复杂,主要受限于平台接口的限制。例如,小程序不支持批量提交文件,必须逐个上传,且需要调用专门的上传接口。此外,小程序页面的开发复杂度通常高于普通HTML页面。

本文将对此进行详细记录。

页面开发采用TDesign框架。

该框架能使界面更加美观。

微信小程序多文件上传与TDesign集成方案

具体实现代码如下。

<t-upload
    media-type="{{['video','image']}}"
    files="{{originFiles}}"
    gridConfig="{{gridConfig}}"
    bind:success="handleSuccess"
    bind:remove="handleRemove"
    bind:click="handleClick"
  />


Page({
  /**
   * 页面的初始数据
   */
  data: {
    originFiles: [],
    gridConfig: {
      column: 4,
      width: 160,
      height: 160,
    },
    config: {
      count: 1,
    },
  },
handleSuccess(e) {
    const { files } = e.detail;
    let that=this;
    files.forEach(item=>{
      request.upload("api/wxapp/upload",item).then(res=>{
          let resp = JSON.parse(res);
          //res返回的地址需要有{"url":"http://xxx"},这样的话回填也比较容易,不然的话,需要转换
            this.setData({
              originFiles: [...that.data.originFiles,resp.data],
         });
      });
    })
  },
  handleRemove(e) {
    const { index } = e.detail;
    const { originFiles } = this.data;
    //删除
    originFiles.splice(index, 1);
    this.setData({
      originFiles,
    });
  },
  handleClick(e) {
    console.log(e.detail.file);
  },
  })

解决微信小程序导入TDesign失败的问题

  • 腾讯近期推出了TDesign企业级框架,在开发小程序时尝试引入该框架。按照官网指引操作时,却遇到了问题。
  • TDesign官网链接
  • 官网操作步骤

    在项目根目录下执行npm安装依赖,命令如下:npm i tdesign-miniprogram -S --production

    随后需在微信开发者工具中完成npm构建:依次点击工具菜单,选择构建 npm。

    检查并移除 app.json 文件中的 "style": "v2" 配置项。

    若需在项目中引入特定组件(如按钮),需在对应的JSON文件中配置自定义组件路径。

    • 若希望全局导入,直接在项目根目录的 app.json 文件中写入配置。
    • 若为局部导入,则在 pages 目录下具体组件的JSON文件中写入。
  "usingComponents": {
    "t-button": "tdesign-miniprogram/button/button"
  }

配置完成后,即可在wxml文件中直接使用组件。

  <t-button type="primary">按钮</t-button>

按上述流程操作理论上可正常使用,但在执行第二步构建时,常遇到持续报错导致构建失败,进而无法使用组件的情况。

微信小程序多文件上传与TDesign集成方案

经排查,只需在根目录的 project.config.json 文件中添加特定配置,再重新执行构建即可解决。

 "setting": {
      "packNpmManually": true,
      "packNpmRelationList": [
        {
          "packageJsonPath": "./package.json",
          "miniprogramNpmDistDir": "./miniprogram"
        }
      ]
    },

至此,关于小程序多文件上传与TDesign集成的介绍完毕。如需了解更多相关内容,可搜索本站往期文章或浏览后续文章,感谢支持。

作者最新文章