利用 ChatGPT 快速将界面原型转换为 Vue 代码实现

news2024/9/21 2:49:26

        在现代前端开发中,快速、高效地将设计原型转化为实际可运行的代码是开发人员追求的目标。借助 ChatGPT,这一过程可以显著加速。本文将展示如何通过 ChatGPT 辅助开发,将基于 iView 框架的界面原型在短短 2~3 分钟内转换为 Vue 代码,实现界面的快速搭建。

1 需求原型图:

原型图如下:

原型界面说明:
  • 顶部有 4 个统计数据卡片,分别是总充值、近1个月充值、总企业数量、近1年新增企业数量。
  • 下面是一个查询条件区域,包含供应商选择、企业选择、时间区间选择和搜索按钮。
  • 最后是一个数据表格,展示供应商、企业、余额、累计充值金额等信息。

2 使用gpt提问

直接把需求原型截图上传到gpt,并根据自己的项目所使用的框架,向chatGpt 提问:

提问内容

请使用前端 vue 实现图片中的界面开发,项目使用的是iview框架,
请使用iview框架中的组件实现

如下图:

3 chatGpt生成代码

   1 生成vue代码:

  chatGpt首次生成前端vue代码如下:

<template>
  <div class="dashboard">
    <Row :gutter="16">
      <Col span="6">
        <Card>
          <div class="stat">52365.25</div>
          <div class="stat-label">总充值(元)</div>
        </Card>
      </Col>
      <Col span="6">
        <Card>
          <div class="stat">52365.25</div>
          <div class="stat-label">近1个月充值(元)</div>
        </Card>
      </Col>
      <Col span="6">
        <Card>
          <div class="stat">52365.25</div>
          <div class="stat-label">总企业</div>
        </Card>
      </Col>
      <Col span="6">
        <Card>
          <div class="stat">5623</div>
          <div class="stat-label">近1年新增企业</div>
        </Card>
      </Col>
    </Row>

    <Row :gutter="16" class="filter-row">
      <Col span="6">
        <Select v-model="supplier" placeholder="请选择供应商">
          <Option value="1">供应商 1</Option>
          <Option value="2">供应商 2</Option>
        </Select>
      </Col>
      <Col span="6">
        <Select v-model="company" placeholder="请选择企业">
          <Option value="1">企业 1</Option>
          <Option value="2">企业 2</Option>
        </Select>
      </Col>
      <Col span="6">
        <DatePicker type="daterange" v-model="dateRange" placeholder="时间区间"></DatePicker>
      </Col>
      <Col span="6">
        <Button type="primary" @click="search">搜索</Button>
      </Col>
    </Row>

    <Table :columns="columns" :data="tableData"></Table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      supplier: '',
      company: '',
      dateRange: [],
      columns: [
        { title: '供应商', key: 'supplier' },
        { title: '企业', key: 'company' },
        { title: '企业钱包(余额)', key: 'wallet' },
        { title: '累计充值金额', key: 'totalRecharge' },
        { title: '最近充值日期', key: 'lastRechargeDate' },
        { title: '创建时间', key: 'creationTime' },
        { title: '操作', key: 'actions', render: () => '<a>流水明细</a> <a>充值</a> <a>退款</a>' }
      ],
      tableData: [] // 表格数据
    };
  },
  methods: {
    search() {
      // 搜索逻辑
    }
  }
};
</script>

<style scoped>
.dashboard {
  padding: 20px;
}

.stat {
  font-size: 24px;
  font-weight: bold;
  text-align: center;
}

.stat-label {
  text-align: center;
  color: #999;
}

.filter-row {
  margin-top: 20px;
}

.table-actions a {
  margin-right: 10px;
}
</style>
2 chatGPT优化代码:

       从上面的代码看有一些常量,我们需要提示改成变更并简单的对统计与查询都简单封装一个对象,后台只需传这些过来前端即可展示。

  提问内容:

优化一下:把第一行的4个 52365.25 提取出来封装一个对象并放在data,
以变量方式展示,第二行查询条件把录入绑定变量部分也封装成一个对象query.xxx  

 执行后如下图:

优化点解释
  1. 封装统计数据
    • 将顶部的4个统计数据封装到 stats 对象中,通过变量 stats.totalRechargestats.monthlyRecharge 等方式引用。
  2. 封装查询条件
    • 将所有的查询条件封装到 query 对象中,包括 suppliercompanydateRange,然后通过 query.xxx 方式进行绑定。
  3. 逻辑清晰
    • 这种封装方式可以使代码更具可维护性,方便后续增加或修改统计数据和查询条件。

     通过这种优化,代码结构更加清晰,便于管理和扩展。

 chatGpt最终生成代码:

<template>
  <Card :bordered="false" dis-hover ref="card">
    <Row :gutter="16">
      <Col span="6">
        <Card>
          <div class="stat">{{ stats.totalRecharge }}</div>
          <div class="stat-label">总充值(元)</div>
        </Card>
      </Col>
      <Col span="6">
        <Card>
          <div class="stat">{{ stats.monthlyRecharge }}</div>
          <div class="stat-label">近1个月充值(元)</div>
        </Card>
      </Col>
      <Col span="6">
        <Card>
          <div class="stat">{{ stats.totalCompanies }}</div>
          <div class="stat-label">总企业</div>
        </Card>
      </Col>
      <Col span="6">
        <Card>
          <div class="stat">{{ stats.newCompaniesYear }}</div>
          <div class="stat-label">近1年新增企业</div>
        </Card>
      </Col>
    </Row>

  </Card>
  <br/>

  <Card :bordered="false" dis-hover ref="card">

    <Row :gutter="16" class="filter-row">
      <Col span="6">
        <Select v-model="query.supplier" placeholder="请选择供应商">
          <Option value="1">供应商 1</Option>
          <Option value="2">供应商 2</Option>
        </Select>
      </Col>
      <Col span="6">
        <Select v-model="query.company" placeholder="请选择企业">
          <Option value="1">企业 1</Option>
          <Option value="2">企业 2</Option>
        </Select>
      </Col>
      <Col span="6">
        <DatePicker type="daterange" v-model="query.dateRange" placeholder="时间区间"></DatePicker>
      </Col>
      <Col span="6">
        <Button type="primary" @click="search">搜索</Button>
      </Col>
    </Row>
  </Card>
  <br/>

  <Card :bordered="false" dis-hover ref="card">
    <Table :columns="columns" :data="tableData"></Table>
  </Card>

</template>

<script>
  export default {
    data() {
      return {
        // 封装的统计数据对象
        stats: {
          totalRecharge: 52365.25,
          monthlyRecharge: 52365.25,
          totalCompanies: 52365.25,
          newCompaniesYear: 5623,
        },
        // 封装的查询条件对象
        query: {
          supplier: '',
          company: '',
          dateRange: []
        },
        columns: [
          { title: '供应商', key: 'supplier' },
          { title: '企业', key: 'company' },
          { title: '企业钱包(余额)', key: 'wallet' },
          { title: '累计充值金额', key: 'totalRecharge' },
          { title: '最近充值日期', key: 'lastRechargeDate' },
          { title: '创建时间', key: 'creationTime' },
          {
            title: '操作', key: 'actions',
            render: () => '<a>流水明细</a> <a>充值</a> <a>退款</a>'
          }
        ],
        tableData: [] // 表格数据
      };
    },
    methods: {
      search() {
        // 搜索逻辑
        console.log(this.query);
      }
    }
  };
</script>

<style scoped>
  .dashboard {
    padding: 20px;
    border: red solid 1px;
  }

  .stat {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
  }

  .stat-label {
    text-align: center;
    color: #999;
  }

  .filter-row {
    margin-top: 20px;
  }

  .table-actions a {
    margin-right: 10px;
  }
</style>

4 使用代码

把最终把代码复制到我们的项目,最终生成的效果图如下:

5 小结

        本次操作大约花了 2~3 分钟时间,通过 ChatGPT 可以快速将原型界面转换成 Vue 代码实现,使用 iView 框架的组件完成了前端布局和功能展示。这种方式极大地提高了开发效率,省时省力,让开发人员能够更专注于业务逻辑和功能实现。ChatGPT 的高效辅助工具不仅能够帮助解决技术问题,还能快速生成可用的代码片段,是开发人员的必备利器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

影视会员充值API接口如何开发?

影视会员充值 API 接口的开发流程 需求分析 明确接口的功能需求、性能要求和安全标准等 设计规划 确定接口的架构、数据格式、交互方式等 技术选型 选择适合的开发语言、框架和数据库等 编码实现 按照设计进行代码编写和功能实现 测试优化 进行单元测试、集成测试、压力测…

黄力医生谈健康:掌握这几个秘诀,帮你远离冠心病困扰!

随着生活水平的提高&#xff0c;人们的饮食结构和生活习惯发生了显著变化&#xff0c;这使得冠心病的患病率呈现出逐年上升的趋势&#xff0c;且发病年龄也越来越年轻化。面对这一严峻的健康挑战&#xff0c;提高对冠心病的认识&#xff0c;及早进行干预显得尤为重要。今天&…

【鬼灭之刃学英语 立志篇】2、义勇对炭治郎的怒斥

义勇对炭治郎的怒斥 1、不要卑躬屈膝2、脆弱的3、与现在事实相反的虚拟语气4、像你这样的弱者5、别开玩笑了6、弱者没有权利7、无情地被强者碾压8、知道做某事的方法9、尊重意愿10、这就是现实11、那就是你做某事的方式吗12、你为什么不...13、是...导致...1x、本可以做某事 1、…

OpenCV绘图函数(11)计算文本字符串在特定字体、尺寸和厚度下的大小的函数getTextSize()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算一个文本字符串的宽度和高度。 函数 cv::getTextSize 计算并返回包含指定文本的矩形框的尺寸。也就是说&#xff0c;下面的代码渲染一些文本…

Cadence高速板设计技巧(全志H3)[三]

Cadence绕等长线真的是好用&#xff0c;这一点碾压AD和嘉立创。 这里有一个技巧&#xff0c;在CPU四周的焊盘有时候确实需要过孔换层&#xff0c;但是并不直接在CPU周围打孔&#xff0c;把线拉出去过孔&#xff0c;这样可以防止焊接的时候锡流进过孔造成短路&#xff0c;同时也…

2.1 程序设计语言与概述

以下程序设计语言中&#xff0c;&#xff08; &#xff09;更适合用来进行动态网页处理。 A. HTML B. LISP C. PHP D. JAVA/C 正确答案是 C。 解析 HTML&#xff1a;静态网页 LISP&#xff1a;一种基于入演算的函数式编程语言 PHP&#xff1a;混合了C、Java、Perl以及PHP自创的…

C#学习笔记(二)安装开发环境、代码编译运行

博主刚开始接触C#&#xff0c;本系列为学习记录&#xff0c;如有错误欢迎各位大佬指正&#xff01;期待互相交流&#xff01; 文章目录 一、安装开发环境二、编写C#代码2.1 打开终端命令窗口2.2 编译运行2.3 清除终端窗口 一、安装开发环境 博主选择安装的是VS Code&#xff0…

食家巷中秋美食,味蕾上的团圆盛宴

月到中秋分外明&#xff0c;在这个充满温情与思念的节日里&#xff0c;美食成为了人们传递情感、共享团圆的重要载体。而食家巷&#xff0c;以其独特的中秋美食&#xff0c;为这个佳节增添了一抹别样的风味。 走进食家巷&#xff0c;仿佛踏入了一个美食的宝藏之地。这里的传统…

MES系统在汽车行业的应用

1. MES系统在汽车行业的应用背景 1.1 汽车行业生产特点 复杂性&#xff1a;汽车制造涉及成千上万的零部件&#xff0c;需要高度复杂的生产流程和精细的工艺管理。定制化&#xff1a;随着消费者需求的多样化&#xff0c;汽车行业越来越倾向于小批量、多品种的生产模式。质量要…

实战 element-plus 级联选择器(Cascader)+企微部门架构

先看效果 &#xff1a; 1、部门架构数据来源于企业微信&#xff1b; 2、部门层级关系的展现和勾选&#xff1b; 具体实现&#xff1a; 1、组件官方文档 http://element-plus.org/zh-CN/component/cascader.html 级联选择器组件要求的数据格式&#xff1a; 重点&#xff1a;了…

一文解决CLion控制台(cmd)问题【超详细】

CLion作为jetbrains全家桶中的一员&#xff0c;和其他产品一样都是轻量化&#xff0c;便捷&#xff0c;但有个地方不太方便&#xff0c;那就是控制台&#xff0c;有时候我们需要控制台&#xff0c;有时候又不需要&#xff0c;但在我们需要的时候&#xff0c;如何调出&#xff0…

QMS质量管理系统:核心功能详解与企业落地实践指南

QMS&#xff08;Quality Management System&#xff09;质量管理系统是一种用于规划、实施、监控和持续改进企业质量活动的综合性系统。它涵盖了质量管理的各个方面&#xff0c;旨在确保产品和服务符合质量标准、法规要求及客户期望。以下是QMS质量管理系统的具体功能介绍&…

零基础Opencv学习(三)

概述&#xff1a;主要目的是为了在图像中获取所需要的特征信息&#xff0c;比如直线或者圆等 一、标准霍夫变换 cv::Mat midImage, dstImage;/// 边缘检测 转化灰度图cv::Canny(image, midImage, 50, 200, 3);cv::cvtColor(midImage, dstImage, CV_GRAY2BGR);/// 进行霍夫线变…

【Unity】简单机甲运动系统——坦克式操控方式

最近两天想做一个人形机甲的游戏&#xff0c;由于本人又是一个拟真军事爱好者&#xff0c;不太喜欢机动特别高的&#xff0c;所以打算参考坦克类游戏来制作一个脚&#xff01;踏&#xff01;实&#xff01;地&#xff01;的机甲游戏 这个运动系统基本实现了逻辑和动画的分离&a…

【Python系列】SQLAlchemy 基本介绍

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

详说 类和对象

类怎么定义 类是什么呢&#xff1f;类就是我们上篇文说的命名空间&#xff0c;单独创建一个域&#xff0c;自己有自己的生命空间&#xff0c;那么类怎么定义呢&#xff1f;C规定&#xff0c;假设 stack就是他的类名&#xff0c;那么前面要加个class&#xff0c;换行之后就是他…

软件测试面试八股文(含答案解析+文档)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计&#xff0c;到…

如何在D盘创建虚拟环境?包括安装PyTorch和配置PyCharm

摘要&#xff1a;本文首先在D盘创建了虚拟环境&#xff0c;然后在虚拟环境中安装了PyTorch&#xff0c;最后配置了pycharm的解释器。 1. 在 D 盘创建虚拟环境 打开Anaconda Prompt 输入conda info --envs查看当前已有环境 创建自己的虚拟环境&#xff0c;打算命名为py310&…

一文彻底搞懂大模型 - GPT和LlaMA的模型架构

GPT vs LlaMA GPT与LlaMA&#xff0c;作为大语言模型的两大巨擘&#xff0c;均基于Transformer架构却各有千秋。GPT系列以强大的生成能力著称&#xff0c;通过不断增大的参数规模引领复杂语言与推理任务的前沿&#xff1b;而Llama则以开源姿态&#xff0c;通过技术创新提升模型…

江协科技stm32————10-5 硬件I2C读写MPU6050

步骤 一、配置I2C外设&#xff0c;对I2C2外设进行初始化&#xff08;MyI2C_Init&#xff09; 开启I2C外设和对应的GPIO口的时钟把I2C对应的GPIO口初始化为复用开漏模式使用结构体配置I2CI2C_Cmd,使能I2C I2C_GenerateSTART //生产起始条件 I2C_GenerateSTOP /…