09 2023 档案
摘要:Vue双向数据绑定原理-下这一篇文章主要讲解Vue双向数据绑定的原理,主要是通过Object.defineProperty()来实现的,这里我们手写Vue双向数据绑定的原理。 首先我提出一个需求,我的需求是,快速监听对象中所有属性的变化。 首先得要有一个对象,对象的定义代码如下: <script>
阅读全文
摘要:defineProperty方法 defineProperty除了可以动态修改/新增对象的属性以外, 还可以在修改/新增的时候给该属性添加get/set方法, 从而实现数据劫持。 defineProperty get/set方法特点 只要通过defineProperty给某个属性添加了get/set
阅读全文
摘要:Vue响应式的原理(数据改变界面就会改变)是什么? 时时监听数据变化, 一旦数据发生变化就更新界面, 这就是Vue响应式的原理。 Vue是如何实现时时监听数据变化的 通过原生JS的defineProperty方法, 通过get和set方法来监听数据的变化。 defineProperty方法的特点 可
阅读全文
摘要:更改 Course.java: /** * 课程ID */ @TableId(value = "course_id", type = IdType.AUTO) @NotNull(message = "{course.id.notnull}") @Excel(name = "课程编号") privat
阅读全文
摘要:后端 新建 CourseVO.java: /** * CourseVO类是一个课程的值对象,用于存储课程的相关信息。 * 它包含了课程的名称、类型、适用对象、最低价格和最高价格等属性。 */ public class CourseVO { private String name; // 课程名称 p
阅读全文
摘要:CourseController.java @PreAuthorize("hasPermission('tienchin:course:remove')") @Log(title = "课程管理", businessType = BusinessType.DELETE) @DeleteMapping
阅读全文
摘要:更改包名 将之前的 entity 更改为 domain: 将之前的 validator 包当中的校验分组接口移动到 common 模块当中,因为其它模块也需要使用就放到公共当中进行存储。 更改完毕之后在修改下 Course.java 的校验注解的作用范围: /** * 课程ID */ @TableI
阅读全文
摘要:course.js 将 activity 替换成 course。 index.vue 这个 index.vue 是 course 文件夹下面的 index.vue 别弄错了。 <template> <div class="app-container"> <el-form :model="queryP
阅读全文
摘要:CourseController.java @PreAuthorize("hasPermission('tienchin:course:create')") @Log(title = "课程管理", businessType = BusinessType.INSERT) @PostMapping p
阅读全文
摘要:配置按钮权限 博主这里就不贴SQL了,自行手动添加一下吧。 更改表结构 ALTER TABLE `tienchin_course` MODIFY COLUMN `info` varchar(255) NULL DEFAULT NULL COMMENT '课程简介' AFTER `apply_to`;
阅读全文
摘要:创建方式与之前一样,如下奉上 generateCourse 代码。 @Test void generateCourse() { String path = "E:\Desktop\TienChin\tienchin-service\tienchin-course\src\main"; F
阅读全文
摘要:CREATE TABLE `tienchin_course` ( `course_id` int NOT NULL AUTO_INCREMENT COMMENT '课程ID', `type` int NULL COMMENT '课程类型 1.舞蹈类 2.游泳类 3.拳击类', `name` varc
阅读全文
摘要:// 设置活动未过期,相当于新增的活动,默认都是未过期的 activity.setActivityStatus(1);
阅读全文
摘要:ActivityController /** * 导出活动列表 */ @PreAuthorize("hasPermission('tienchin:activity:export')") @Log(title = "渠道管理", businessType = BusinessType.EXPORT)
阅读全文
摘要:ActivityController @PreAuthorize("hasPermission('tienchin:activity:list')") @GetMapping("/list") TableDataInfo list(ActivityVO activityVO) { startPage
阅读全文
摘要:后端 ActivityController.java @PreAuthorize("hasPermission('tienchin:activity:remove')") @Log(title = "活动管理", businessType = BusinessType.DELETE) @Delete
阅读全文
摘要:后端 ChannelController.java @PreAuthorize("hasPermission('tienchin:channel:edit')") @GetMapping("/{channelId}") AjaxResult getInfo(@PathVariable Long ch
阅读全文
摘要:前端 activity.js 直接替换现有的,最求速度了,后面在详细一个个记录,不在过多解释了。 import request from '@/utils/request' /** * 查询活动列表 * @param query 查询条件参数 * @returns {*} 查询结果 */ expor
阅读全文
摘要:后端 ActivityController.java @Resource private IChannelService iChannelService; /** * 获取渠道列表 * * @return 渠道列表 */ @PreAuthorize("hasPermission('tienchin:
阅读全文
摘要:ActivityController @PreAuthorize("hasPermission('tienchin:activity:create')") @Log(title = "活动管理", businessType = BusinessType.INSERT) @PostMapping pu
阅读全文
摘要:修改字典 修改活动状态字典,将之前的数据键值为 0 的数据标签内容改为 过期: 更改下数据库的描述,禁用改为过期: ALTER TABLE `tienchin_activity` MODIFY COLUMN `activity_status` int NULL DEFAULT NULL COMMEN
阅读全文
摘要:后端 ActivityVO /** * @author BNTang * @version 1.0 * @description 活动管理VO * @since 2023-23-05 **/ public class ActivityVO extends BaseEntity { /** * 活动I
阅读全文
摘要:工程模块的创建,与之前创建渠道管理一样的,所以这里就不贴图带着大家一起动手进行了,表结构我已经给到大家了,这里我只贴一下代码生成器的代码部分即可。 @Test void generateActivity() { String path = "E:\Desktop\TienChin\tiench
阅读全文
摘要:配置权限 INSERT INTO `sys_menu` VALUES (2014, '添加活动', 2003, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'tienchin:activity:create', '#', 'admin', '2023-09-04
阅读全文
摘要:最后附上渠道管理的数据 install SQL 语句: INSERT INTO TienChin.tienchin_channel (channel_id, channel_name, status, remark, type, create_by, update_by, create_time,
阅读全文
摘要:ChannelController @PostMapping("/importTemplate") void importTemplate(HttpServletResponse response) { ExcelUtil<Channel> util = new ExcelUtil<>(Channe
阅读全文
摘要:ChannelController /** * 导出渠道列表 */ @PreAuthorize("hasPermission('tienchin:channel:export')") @Log(title = "渠道管理", businessType = BusinessType.EXPORT) @
阅读全文
摘要:ChannelController @PreAuthorize("hasPermission('tienchin:channel:list')") @GetMapping("/list") TableDataInfo list(ChannelVO channelVO) { startPage();
阅读全文
摘要:更改一下菜单权限,将删除渠道的 delete 改为 remove: ChannelController.java @PreAuthorize("hasPermission('tienchin:channel:remove')") @Log(title = "渠道管理", businessType =
阅读全文
摘要:ChannelController /** * 修改渠道 */ @PreAuthorize("hasPermission('tienchin:channel:edit')") @Log(title = "渠道管理", businessType = BusinessType.UPDATE) @PutM
阅读全文
摘要:略过,前面已将渠道管理的 index.vue 文件内容全部粘贴给你们了。
阅读全文
摘要:新建 ValidationMessages.properties: channel.name.notnull=渠道名称不能为空 channel.type.notnull=渠道类型不能为空 channel.status.notnull=渠道状态不能为空 channel.type.invalid=渠道类
阅读全文
摘要:在我们平时新建一个全新的 Java 类,这个类需要存放的包不存在,可以使用如下的方式进行创建: 含义就是说,将 ChannelVO 这个类放在 vo 这个包当中,如果存在则不创建,存在就将新建的类放入其中。 ChannelVO /** * @author BNTang * @version 1.0
阅读全文
摘要:添加权限 如果您不想手动添加可以使用我如下的SQL,但是有一个注意点就是 parent_id 是渠道管理菜单的主键 id 即可一键插入。 INSERT INTO `TienChin`.`sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_nu
阅读全文
摘要:在上一节当中,我们使用到了字典来进行翻译我们的渠道类型等等字段,那么这一节我们就来分析一下字典的原理。 从代码方面先开始分析,我们先来看一下字典的定义,我们是在如下图当中编写了我们的渠道类型,使用,proxy.useDict 进行的请求数据,proxy 相比之前的 Vue2,其实就是 Vue 本身,
阅读全文
摘要:在字典管理当中添加渠道状态 channel_status:渠道状态 分别为: 正常,键值为1,回显样式为 success 禁用,键值为0,回显样式为 info !> 有个注意点:Vue3 当中 v-for 与 v-if 不能写在一起。 在上一节编写前端展示渠道信息时,出现了如上图的警告,某个标签的t
阅读全文
摘要:在编写 Vue 项目的时候我们可以使用 IDEA 当中提供的一个工具叫做 structure,也就是说可以很轻松的列举出当前 Vue 文件的大致结构,点那个就会跳转到对应的地方。 简简单单介绍一个编写Vue时的一个小技巧,那么接下来进入核心内容,展示渠道信息的开发。 在 api 文件夹模块当中新建一
阅读全文
摘要:概念 电脑,是一台所具备存储和计算处理能力的电子设备。 数值计算 数据处理 自动控制 游戏娱乐 ... 这就是电脑: 组成以及相关职业 硬件系统(维修电脑的干的事) CPU 概念作用: 中央处理器 计算机的运算核心,控制核心 内存 内存的概念作用: 与CPU进行沟通的桥梁 用于暂时存放CPU中的运算
阅读全文