vue代码生成器

article/2025/10/12 12:13:42

直接根据swagger api生成vue代码

前要

目前的代码生成器基本上是基于数据库表格来生成对应的前后台代码,好处是前后台一次性搞定.但实际开发中,很多的业务是需要连表的,所以这种情况来说,根据接口直接生成前代码,就免除了与后台接字段的时间,也免除了很复制操作.

由此,我生出编写根据接口生成前端代码生成器的想法.

因为我司api文档有两种,前端又有vue2+element 和 vue3+ant+ts两种框架,由此,扩展出三种代码生成器.

思路

前端代码生成器,简单的说:

  • 第一步,通过接口文档获取接口的入参\出参,并将这入参\出参格式化成特定JSON
  • 第二步,根据自己的项目,结合表格、表单组件,抽离出代码模板
  • 第三步,通过第一二步的JSON、代码模板,生成vue、JS以及路由文件

简介

本项目采用puppeteer对接口文档网页读取,获得接口链接、入参、出参等,并记录半生成特定格式的json.

因本项目是为了配合公司的接口文档,生成公司的后台管理网站,定制化较高,所以此项目对于其他朋友来说,可做参考.如其他交流,可以联系我.

技术方案

获接口文档中接口的入参\出参,我采用爬虫框架puppeteer来获取,根据获得的入参\出参,结合代码模板,生成实际放入工程的增删改查文件,做到增删改查基本不用再码代码.同时支持审核等表格操作

通过fs.writeFile来生成文件

说明

目前项目中只给了根据接口生成vue2+element的代码.因为代码是根据特定组件生成的.

  

        表格、表单组件见项目中组件目录,这个需要全局引入.见components目录


 

另有生成vue3+typescript+ant的代码,暂未公布.


 

配置说明

scale的配置

```js

// 适用于scale的配置

export const config = {

  href: 'http://xxx.cn/',

  serverName: 'AdminStoreContractService',

  pages: [{

    filePath: 'promotionNew',     // 列表\新\修页面所在路径

    chunkName: 'base', // chunkName 用于路由中 require.ensure 打包参数

    list: { // 列表

      fileName: 'pn-list', // 列表文件名字

      name: '列表', // 菜单名

      apiName: 'listStoreContract',  // 列表接口名

      exportFile: { // 导出 [非必填]

        apiUrl: '',

        downFileName: ''

      }

    },

    modify: { // (修改\新增)  [非必填]

      fileName: 'modify',  // 页面名

      apiName: 'saveStoreContract',  // 接口名

      detailApi: 'getStoreContractById', // 查看详情接口名 (用于查看详情、编辑)

      hasEdit: true

    },

    opts: [ // 表格行操作

      {

        apiName: 'modifyStoreContractStatus', // 接口

        confrimMsg: '确认审核该记录', // 如果没有确认信息,则直接请求

        text: '审核'

      }

    ]

  }]

}

```

swagger api 的配置

```js

// 适用于swagger api 的配置

export const swaggerConfig = {

  href: 'http://xxx.com',

  serverName: 'mini-new-promotion-service',

  baseUrl: '/promotion-new/manager/',

  pages: [{

    filePath: 'promotionNew',     // 列表\新\修页面所在路径

    chunkName: 'base', // chunkName 用于路由中 require.ensure 打包参数

    list: { // 列表

      fileName: 'pn-list', // 列表文件名字

      name: '列表', // 菜单名

      apiName: 'getPromotionList',  // 列表接口名

      exportFile: { // 导出 [非必填]

        apiUrl: '',

        downFileName: ''

      }

    },

    modify: { // (修改\新增)  [非必填]

      fileName: 'modify',  // 页面名

      apiName: 'savePromotion',  // 接口名

      detailApi: 'promotionDetail', // 查看详情接口名 (用于查看详情、编辑)

      hasEdit: true

    },

    opts: [ // 表格行操作

      {

        apiName: 'updPromotionConfigStatus', // 接口

        confrimMsg: '确认审核该记录', // 如果没有确认信息,则直接请求

        text: '审核'

      }

    ]

  }]

}

```



 

代码生成命令

 

目前本项目支持两种api文档, 第一种支持swagger api;第二种支持scale[这种用户比较少]

执行命令前,请在config.ts/swaggerConfig.ts中将配置修改好,如配置好需要生成的代码的网址


 

- swagger的代码命令

```

yarn run scr

```

- scale的代码命令

```

yarn run start

```

  

上代码

废话不多说,上代码:

    

    

    https://gitee.com/myreborns/curd

    

生成器持续更新中,欢迎各位小伙伴交流,如果好用,给个赞.

 


 

 

scale\swagger对比



 

|  | scale | swagger |

| --- | --- |--- |

| 枚举 | 同一个服务下的枚举都会放在同一个地方,是可以直接放入项目中使用的文件 | 自己根据后台的描述慢慢拆吧 |

| 出参\入参获取 | 需要一层一层的获取 | 在页面打开的时,就有请求获取,直接获取请求的返回值就好 |


http://chatgpt.dhexx.cn/article/rTZqmIDN.shtml

相关文章

C#代码生成器

引言 引言:随着.net Core 的不断发展,它也是一个成熟的平台了,鲁迅说过:成熟的平台就要学会自己写代码,那么今天我就在这里教大家如何让.net Core学会自己写代码。 提示:如果只是向往,远方依旧…

MybatisPlus代码生成器

代码生成器 问题导入 如果只给一张表的字段信息,能够推演出Domain、Dao层的代码? 1. MyBatisPlus提供模板 Mapper接口模板 实体对象类模板 2. 工程搭建和基本代码编写 第一步:创建SpringBoot工程,添加代码生成器相关依赖&…

python 代码生成器_Python代码生成器(代码生成工具)V1.1 正式版

Python代码生成器(代码生成工具)是一款很优秀好用的为新手制作的代码生成助手。小编带来的这款Python代码生成器功能强大,操作简单,使用后可以帮助用户更轻松便捷的生成Python代码,非常方便实用。其内置了大量的示例代码,可以帮助…

12款AI代码生成工具,都很能打

1.Anania Anania 是一个机器人数据分析师,可以通过简单、自然的英语对话来分析您的数据。连接数据源并以简单的英语提问,无需任何设置或配置。在幕后,Anania 正在使用一个 AI 系统,该系统将文本转换为 SQL 和 Python 代码并执行您…

3D相册动态桌面制作

3D相册动态桌面制作 1.下载3D相册代码链接:https://pan.baidu.com/s/1Z_br3XKGsW3vsISvSCteJA,提取码:8888 更换自己喜欢的图片 注意第三张和第四章相册右键旋转照片 直接双击运行index.html可以在浏览器中看到效果。 如果不是很喜欢 可以自行…

HTML+CSS+JavaScript七夕情人节表白网页【樱花雨3D相册】超好看

这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看。 此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个TA站在眼前都不敢向前表白…

制作简易的3D相册

今天介绍一下3D相册,用到了开源的FeatureCoverFlow控件,之前的几个作品用的也全都是开源的控件,为什么要用开源的控件呢,因为...他稳定啊! 1.准备 仍然是,去掉标题栏,然后导库: impl…

HTML5、css3、js实现3D相册

目录 想法 实现 一、基础知识 1.3D转换 transform-style: preserve-3d; ①简述 ②使用 ③3D转换方法 2.onmouseover 事件 ①解释 ②具体语法 3.onmouseout事件 ①解释 ②具体语法 **本例通过在div的class中设置相同的类名,然后在js方法中通过document…

前端CSS3实现3D相册小案例

前端CSS3实现3D相册小案例 HTML代码部分&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>3D相册</title> <link type"text/css" href"css/style.css&qu…

制作一个简单3D相册

- 用到的点&#xff1a; 旋转 2D 旋转 transform: rotate(值deg) deg 角度的单位 3D 旋转 transform:rotateX rotateY roteteZ 如果让一个块实现3D效果&#xff0c;必须做两件事&#xff1a; 1、在要实现3D效果的块上 加transform-style:preserve-3D (声明) 2、在要实现3D效…

html结合css实现浏览器展示3D相册

最近写了一个在浏览器展示3D相册效果&#xff0c;通过html文件结合css实现。 1.html详细代码如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>3D相册</title> <script src"../js/jquer…

python3d相册源代码_js和CSS3炫酷3D相册展示

js和CSS3炫酷3D相册展示 *{margin:0;padding:0;} body{background:url(img/bg.jpg);width:100%;height:100%;overflow:hidden;}; h1{width:277;height:76px;margin:30px auto 0;} .xc-3D{width:100%;height:300px;background:#fff;margin-top:100px;position:relative;transfor…

three.js 制作3D相册

效果图&#xff1a; 由于博客限制了图片大小&#xff0c;动画质量不太好&#xff0c; 在线效果&#xff1a; https://static-mp-df787464-d77c-4180-83c3-6e7add40073e.next.bspapp.com/ 参考了three.js 官方代码 <!-- 源码下载地址 https://pan.baidu.com/s/1AVB71Aj…

3d相册

页面脚本 我的图片是是本地的&#xff0c;大家可以放上自己喜爱的图片 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>3d相册</title></head><style>#box1 {/* 宽 */width: 300px;/* 高 */height: …

HTML实现3D相册

今天&#xff0c;我给大家分享一个3D相册的代码 废话不说先上效果图&#xff1a; 先新建两个文件夹&#xff0c;一个叫css&#xff0c;另一个叫img&#xff0c;如下图&#xff1a; 先新建一个文本文档&#xff0c;输入下面的代码&#xff1a; <!DOCTYPE html> <html…

教你零基础制作3D旋转相册(送给那个她~)

3D立体相册&#xff1f;   是的&#xff0c;相信大家或多或少的会在一些地方看到某些程序员用代码给自己女朋友写3D立体相册&#xff0c;那么你会不会也想自己手动敲出那些炫酷的代码呢&#xff1f;   那你是找对地方了。废话不多说&#xff0c;今天为大家分享利用html实现…

【3D相册】零基础完成3D相册并配上背景音乐

文章目录 一、前言二、准备工作1、新建文件夹2、准备素材对于图片的处理对于音乐的处理 三、代码工作1、python处理6张图片1.1代码运行1.2 放入背景图片 2、写html文件2.1 更换音乐素材 3、运行main.html 四、推荐阅读 一、前言 帮助好哥们整的一个小相册&#xff0c;给他写个…

斐波那契数列求和公式

斐波那契数列指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、……    这个数列从第三项开始&#xff0c;每一项都等于前两项之和。它的通项公式为:(见下图)&#xff08;又叫“比内公式”&#xff0c;是用无理数表示有理数的一个范例。&#xff09; 斐波那契数列求…

斐波那契数列之python(5种方法)

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、因数学家列昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&#xff1a;1、1、2、…

斐波那契数列(C/C++)

目录 背景介绍 解法1&#xff1a;非数组非递归 解法2&#xff1a;数组非递归 解法3&#xff1a;非数组递归 解法4&#xff1a;数组递归 背景介绍 斐波那契数列&#xff0c;又称黄金分割数列&#xff0c;指的是这样一个数列&#xff1a;0、1、1、2、3、5、8、13、21、34、…