前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务项目:尚融宝(15)(前端平台:完善积分等级模块)

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

作者头像
一个风轻云淡
发布2022-11-15 14:03:16
3870
发布2022-11-15 14:03:16
举报
文章被收录于专栏:java学习java

一、删除数据

1、定义api

 src/api/core/integral-grade.js

代码语言:javascript
复制
removeById(id) {
    return request({
        url: `/admin/core/integralGrade/remove/${id}`,
        method: 'delete'
    })
}

2、页面组件模板

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

代码语言:javascript
复制
<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、删除数据脚本

代码语言:javascript
复制
// 根据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

代码语言:javascript
复制
save(integralGrade) {
    return request({
        url: '/admin/core/integralGrade/save',
        method: 'post',
        data: integralGrade
    })
}

2、定义页面data

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

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

3、页面组件模板

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

代码语言:javascript
复制
<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

代码语言:javascript
复制
import integralGradeApi from '@/api/core/integral-grade'

定义保存方法

三、回显数据

1、列表页编辑按钮

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

代码语言:javascript
复制
<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

代码语言:javascript
复制
getById(id) {
    return request({
        url: `/admin/core/integralGrade/get/${id}`,
        method: 'get'
    })
}

3、获取数据脚本

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

代码语言:javascript
复制
// 根据id查询记录
fetchDataById(id) {
    integralGradeApi.getById(id).then(response => {
        this.integralGrade = response.data.record
    })
}

页面渲染成功后获取数据

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

代码语言:javascript
复制
//页面渲染成功
created() {
    if (this.$route.params.id) {
        this.fetchDataById(this.$route.params.id)
    }
},

四、更新数据

1、定义api

src/api/core/integral-grade.js

代码语言:javascript
复制
updateById(integralGrade) {
    return request({
      url: '/admin/core/integralGrade/update',
      method: 'put',
      data: integralGrade
    })
}

2、更新数据脚本

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

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

完善saveOrUpdate方法

代码语言:javascript
复制
saveOrUpdate() {
    // 禁用保存按钮
    this.saveBtnDisabled = true
    if (!this.integralGrade.id) {
        this.saveData()
    } else {
        this.updateData()
    }
},

关于Vue组件(了解)

一、什么是组件

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

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

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

二、项目组件分析

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中的路由出口会显示相应的页面组件的内容

入口脚本

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

顶层组件

路由出口的位置

路由配置

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

2、登录页组件关系 

三、Layout

1、路由

2、布局

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

3、主内容区

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、删除数据
    • 1、定义api
      • 2、页面组件模板
        • 3、删除数据脚本
        • 二、新增数据
          • 1、定义api
            • 2、定义页面data
              • 3、页面组件模板
                • 4、新增数据脚本
                • 三、回显数据
                  • 1、列表页编辑按钮
                    • 2、定义api
                      • 3、获取数据脚本
                      • 四、更新数据
                        • 1、定义api
                          • 2、更新数据脚本
                          • 关于Vue组件(了解)
                          • 一、什么是组件
                          • 二、项目组件分析
                            • 1、程序入口
                              • 入口脚本
                              • 顶层组件
                              • 路由配置
                          • 三、Layout
                            • 1、路由
                              • 2、布局
                                • 3、主内容区
                                  • 4、积分区间列表页面组件 
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档