前端实现表单内容复制

1、背景

最近做项目的时候,每次开发环境和测试环通过表单填写一次配置数据,需要发布版本时,都需要再在生产环境提交一次表单,导致同一个事做了三次,最后想到的方法是直接吧表单填写的对象转为json写入文件中保存下来,下次需要填写时,直接将这个文件导入就行了,自动完成表单的填写。

2、实现

一、复制表单配置项,保存为文件

// 原始数据,只是举个简单例子
const jsonFile = {
  name: '123',
  age: 18
}

// 导出文件
const downloadJson = () => {
  const jsonString = JSON.stringify(jsonFile)

  const blob = new Blob([jsonString], {type: 'application/json;charset=utf-8'})
  const url = URL.createObjectURL(blob)

  let a = document.createElement('a')
  a.href = url
  a.download = 'data.json'
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
  URL.revokeObjectURL(url)

}

导出文件内容
在这里插入图片描述
二、导入文件,自动完成表单项赋值

const handleUpload = (e: any) => {
  if (!e) return
  const file = e.target.files[0] as File
  const fileReader = new FileReader()
  fileReader.onload = (e: ProgressEvent<FileReader>) => {
    try {
      const jsonObj = JSON.parse(e!.target!.result as string)
      console.log('jsonObj', jsonObj)
      // 这里处理赋值关系,jsonObj就是原始数据
    } catch (error) {
      console.log('error', error)
    }
  }
  fileReader.onerror = (error: ProgressEvent<FileReader>) => {
    console.log('read file error:' + error)
  }

  fileReader.readAsText(file)
}

是否使用这个方法还要考虑表单配置项是否很多,如果只需要填写3-5个,久不需要这样做了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值