微服务项目:尚融宝(15)(前端平台:完善积分等级模块)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 微服务项目:尚融宝(15)(前端平台:完善积分等级模块)

放弃幻想,认清现实,准备斗争


一、删除数据



1、定义api


src/api/core/integral-grade.js


removeById(id) {
    return request({
        url: `/admin/core/integralGrade/remove/${id}`,
        method: 'delete'
    })
}


2、页面组件模板


src/views/core/integral-grade/list.vue,在table组件中添加删除列


<el-table-column label="操作" width="200" align="center">
    <template slot-scope="scope">
        <el-button
                   type="danger"
                   size="mini"
                   icon="el-icon-delete"
                   @click="removeById(scope.row.id)"
                   >
            删除
        </el-button>
    </template>
</el-table-column>


3、删除数据脚本


// 根据id删除数据
removeById(id) {
  this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  })
    .then(() => {
      integralGradeApi.removeById(id).then(response => {
        this.$message.success(response.message)
        this.fetchData()
      })
    })
    .catch(error => {
      this.$message.info('取消删除')
    })
}



二、新增数据



1、定义api


src/api/core/integral-grade.js


save(integralGrade) {
    return request({
        url: '/admin/core/integralGrade/save',
        method: 'post',
        data: integralGrade
    })
}



2、定义页面data


src/views/core/integral-grade/form.vue,完善data定义


<script>
export default {
  data() {
    return {
      integralGrade: {}, // 初始化数据
      saveBtnDisabled: false // 保存按钮是否禁用,防止表单重复提交
    }
  }
}
</script>



3、页面组件模板


src/views/core/integral-grade/form.vue,完善template


<template>
  <div class="app-container">
    <!-- 输入表单 -->
    <el-form label-width="120px">
      <el-form-item label="借款额度">
        <el-input-number v-model="integralGrade.borrowAmount" :min="0" />
      </el-form-item>
      <el-form-item label="积分区间开始">
        <el-input-number v-model="integralGrade.integralStart" :min="0" />
      </el-form-item>
      <el-form-item label="积分区间结束">
        <el-input-number v-model="integralGrade.integralEnd" :min="0" />
      </el-form-item>
      <el-form-item>
        <el-button
          :disabled="saveBtnDisabled"
          type="primary"
          @click="saveOrUpdate()"
        >
          保存
        </el-button>
      </el-form-item>
    </el-form>
  </div>
</template>



4、新增数据脚本


src/views/core/integral-grade/form.vue,引入api


import integralGradeApi from '@/api/core/integral-grade'


三、回显数据



1、列表页编辑按钮


src/views/core/integral-grade/list.vue,表格“操作”列中增加“修改”按钮


<router-link :to="'/core/integral-grade/edit/' + scope.row.id" style="margin-right:5px;" >
  <el-button type="primary" size="mini" icon="el-icon-edit">
    修改
  </el-button>
</router-link>



2、定义api


src/api/core/integral-grade.js


getById(id) {
    return request({
        url: `/admin/core/integralGrade/get/${id}`,
        method: 'get'
    })
}



3、获取数据脚本


src/views/core/integral-grade/form.vue,methods中定义回显方法


// 根据id查询记录
fetchDataById(id) {
    integralGradeApi.getById(id).then(response => {
        this.integralGrade = response.data.record
    })
}


页面渲染成功后获取数据

因为已在路由中定义如下内容:path: 'edit/:id',因此可以使用 this.$route.params.id 获取路由中的id


//页面渲染成功
created() {
    if (this.$route.params.id) {
        this.fetchDataById(this.$route.params.id)
    }
},



四、更新数据



1、定义api


src/api/core/integral-grade.js


updateById(integralGrade) {
    return request({
      url: '/admin/core/integralGrade/update',
      method: 'put',
      data: integralGrade
    })
}



2、更新数据脚本


src/views/core/integral-grade/form.vue,methods中定义updateData


// 根据id更新记录
updateData() {
    // 数据的获取
    integralGradeApi.updateById(this.integralGrade).then(response => {
        this.$message({
            type: 'success',
            message: response.message
        })
        this.$router.push('/core/integral-grade/list')
    })
}



完善saveOrUpdate方法


saveOrUpdate() {
    // 禁用保存按钮
    this.saveBtnDisabled = true
    if (!this.integralGrade.id) {
        this.saveData()
    } else {
        this.updateData()
    }
},



关于Vue组件(了解)



一、什么是组件



组件(Component)是 Vue.js 最强大的功能之一。

组件可以扩展 HTML 元素,封装可重用的代码。


组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用界面都可以抽象为一个组件树:


d660e6171cae4265a759c8f2216faa94.png


二、项目组件分析



1、程序入口


  • 入口html:public/index.html
  • 入口js脚本:src/main.js
  • 顶层组件:src/App.vue
  • 路由:src/router/index.js

main.js 中引入了App.vue和 router/index.js,根据路由配置,App.vue中的路由出口会显示相应的页面组件的内容


入口脚本


引入顶层组件模块和路由模块


e720332755ed4aa39dd8836fda82d4a5.png


顶层组件


路由出口的位置


bb5c2cb283ec4bd49d876c3327f362e3.png


路由配置


路由出口的位置显示的页面组件


3d19e511a6234a339723c8ceb1b28326.png


2、登录页组件关系


52f5328bf2dc41419b195fdc91f9037b.png


三、Layout



1、路由


861e3e1b35a846ac912cfa6268518325.png



2、布局


src/layout/index.vue:侧边栏、导航栏、主内容区


104db973e4e043fd9307e3e172986185.png


3、主内容区


src/layout/components/AppMain.vue:Layout的路由出口(主内容区)



cecafedba7db4283a267f92b88182917.png


4、积分区间列表页面组件


19185c73e9614b37bac84f3668fb118e.png


相关文章
|
2月前
|
消息中间件 监控 开发工具
微服务(三)-实现自动刷新配置(不重启项目情况下)
微服务(三)-实现自动刷新配置(不重启项目情况下)
|
5月前
|
存储 前端开发 小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
|
1月前
|
消息中间件 缓存 Java
亿级流量电商平台微服务架构详解
【10月更文挑战第2天】构建一个能够处理亿级流量的电商平台微服务架构是一个庞大且复杂的任务,这通常涉及到多个微服务、数据库分库分表、缓存策略、消息队列、负载均衡、熔断降级、分布式事务等一系列高级技术和架构模式。
83 3
|
4月前
|
消息中间件 负载均衡 数据管理
微服务架构在电商平台中的应用与实践
在现代电商平台的开发和运维中,微服务架构成为了提升系统灵活性和可扩展性的关键技术。本篇文章从实践出发,深入探讨了微服务架构在电商平台中的具体应用,包括服务拆分策略、通信机制、数据管理、以及常见的挑战和解决方案。通过真实的案例分析和代码示例,帮助读者全面了解微服务架构的优势和实施方法,提供在实际项目中的实践指导。
|
4月前
|
前端开发 开发者
领域驱动使用问题之在图研发平台中,领域驱动设计是如何帮助解决前端开发面临的问题的
领域驱动使用问题之在图研发平台中,领域驱动设计是如何帮助解决前端开发面临的问题的
|
4月前
|
负载均衡 Java 开发者
如何在Spring Boot项目中实现微服务架构?
如何在Spring Boot项目中实现微服务架构?
|
4月前
|
消息中间件 负载均衡 Java
最容易学会的springboot gralde spring cloud 多模块微服务项目
最容易学会的springboot gralde spring cloud 多模块微服务项目
|
5月前
|
前端开发 JavaScript 微服务
|
5月前
|
缓存 负载均衡 前端开发
SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询
SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询
45 1
|
4月前
|
微服务
SpringCloud01微服务课程导学,微服务功能用户,支付,购物车,积分,优惠卷,短信功能越来越多
SpringCloud01微服务课程导学,微服务功能用户,支付,购物车,积分,优惠卷,短信功能越来越多