AJ-Report项目分析(11)

2024-03-12 00:30
文章标签 report 项目分析 aj

本文主要是介绍AJ-Report项目分析(11),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2021SC@SDUSC

目录

刷新字典项

刷新当前面字典

刷新单个字典项

编辑字典项


本文分析“系统设置”中的“数据字典”页面,源码位于src/views/dict/index.vue,页面如下:

 总体源码如下:

<template><anji-crud ref="listPage" :option="crudOption"><template v-slot:buttonLeftOnTable><el-button type="primary" icon="el-icon-edit" @click="dictRefresh" v-permission="'dictManage:fresh'">刷新字典项</el-button></template><template slot="rowButton" slot-scope="props"><el-button type="text" @click="editItem(props)" v-permission="'dictItemManage:query'">编辑字典项</el-button><el-button type="text" @click="itemRefresh(props)" v-permission="'dictManage:fresh'">刷新字典项</el-button></template></anji-crud>
</template>

可以看到还是使用的anji-crud组件。

刷新字典项

刷新当前面字典

这部分是通过点击“刷新字典项”来完成的,源码如下:

async dictRefresh() {var checkRecords = this.$refs.listPage.checkRecordsvar dictCodes = []if (checkRecords.length > 0) {dictCodes = checkRecords.map((item) => item.dictCode)}const {code} = await freshDict(dictCodes)if (code != '200') returnthis.$message.success('刷新成功')},

async表名这个方法是异步方法。checkRecords是listPage的属性,listPage是anji-crud的ref属性的值,即checkRecords是anji-crud中的一个属性,代表着“表格中当前选中的记录”。我们将其赋值给方法内的变量checkRecords,并判断如果此变量的length>0,就将checkRecords的map方法的返回值赋值给dictCodes变量。

那么这个map方法有什么用呢?map() 方法返回一个新数组,不会改变原始数组。同时新数组中的元素为原始数组元素调用函数处理后的值,并按照原始数组元素顺序依次处理元素。语法如下:

array.map(function(currentValue,index,arr), thisValue)

map()的作用就是“映射”,也就是原数组被“映射”成对应新数组。在源码中map方法作用就是将checkRecords中的每个元素的dictCode提取出来赋值给dictCodes。这样就实现了“只刷新选中的记录”的功能。

刷新函数是freshDict(dictCodes) 。通过如下源码:

import {dictDetail, getDictList, dictAdd, dictEdit, dictsDelect, freshDict} from '@/api/dict'

可以推断出刷新方法源码是在api/dict下,源码如下:

export function freshDict(data) {return request({url: '/gaeaDict/freshDict',method: 'POST',data,})
}

可以看出是发送了一个post请求,将dictCodes对应的选项都刷新。

刷新单个字典项

 async itemRefresh(val) {const selectedList = val.msglet dictCodes = []if (selectedList.length > 0) {dictCodes = selectedList.map((item) => item.dictCode)}const {code} = await freshDict(dictCodes)if (code != '200') returnthis.$message.success('刷新成功')},

可以看到这个方法源码和刷新整个页面的源码高度类似,不同之处在于本方法只刷新selectedList,值是我们选中的这个记录的msg。并调用相同的接口freshDict,实现仅仅刷新一个记录。

编辑字典项

源码如下:

 editItem(val) {this.$router.push({path: '/system/dictItem',query: {dictCode: val.msg.dictCode,project: this.$store.state.user.project,},})},

方法参数为当前选中的记录。此方法调用了this.$router.push方法,想要导航到不同的URL,可以使用router.push()方法,并且这个方法会向history栈添加一个新纪录,所以,当用户点击浏览器后退按钮时,会回到之前的URL。

之后我们跳转到了/system/dictItem页面,页面如下:

 此页面是常规的弹窗页面,不再分析。

这篇关于AJ-Report项目分析(11)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/799581

相关文章

芯片后端之 PT 使用 report_timing 产生报告如何阅读

今天,就PT常用的命令,做一个介绍,希望对大家以后的工作,起到帮助作用。 在PrimeTime中,使用report_timing -delay max命令生成此报告。switch -delay max表示定时报告用于设置(这是默认值)。 首先,我们整体看一下通过report_timing 运行之后,报告产生的整体样式。 pt_shell> report_timing -from start_

【漏洞复现】AJ-Report开源数据大屏 verification;swagger-ui RCE漏洞

0x01 产品简介 AJ-Report是一个完全开源的B平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。多数据源支持,内置mysql、elasticsearch、kudu等多种驱动,支持自定义数据集省去数据接口开发,支持17+种大屏组件,不会开发,照着设计稿也可以制作大屏。三步轻松完成大屏设计:配置数据源–>写SQL配置数据集->拖拽配置大屏->保存发布。欢迎体验。 0x0

如何优化Flask-Report报表的性能和加载速度

如何优化Flask-Report报表的性能和加载速度 在开发Web应用时,报表生成是一个常见的需求。Flask-Report是一个强大的Flask扩展,可以帮助我们快速生成PDF报表。然而,随着数据量的增加和复杂性的提高,报表的生成速度和性能可能会受到影响。本文将介绍一些优化策略,帮助提升Flask-Report报表的性能和加载速度。 1. 简化模板设计 首先,确保报表模板尽可能简洁。复杂的

Jenkins高级篇之Pipeline实践篇-7-Selenium和Jenkins持续集成-publish html report插件的pipeline使用介绍

前面我介绍了一个pipeline实现selenium的参数化构建过程,这边我来介绍,如何把我们代码测试之后得到的extent report文件,在Jenkins的构建Job中显示。在介绍之前,我更新下几个和前面代码变化之处。 1)在run.bat中,我们这篇cd的路径是在jenkins salve机器拉取代码的路径,而不是我之前在机器上的git的文件夹下的项目 例如,我配置了一个windows

wincc7.5在现有Report中增加页面

已有报告,页面是3页,需要新加1页数据。 在布局文件中,看到有3个项,这个版本的Wincc就是这种布置: 需要在报告内容中加入新内容,分页依据内容上下间的缝隙(gap )。 这里插入嵌入layout 在杂项属性中选择需要嵌入的布局文件,新布局文件需要提前建好。 在打印任务上预览增加的内容。 本地需要启动runtime才能预览。

libsystemctlm-soc项目分析

概述 libsystemctlm-soc项目是Xilinx的SystemC库。 环境安装 verilator安装 # Prerequisites:#sudo apt-get install git help2man perl python3 make autoconf g++ flex bison ccache#sudo apt-get install libgoogle-perfto

systemctlm-cosim-demo项目分析

概述 systemctlm-cosim-demo项目是Xilinx的systemc库的demo工程。 环境安装 qemu安装 cd xilinx_proj/Downloadsgit clone https://github.com/Xilinx/qemu.gitcd qemugit checkout 74d70f8008# Configure and build# zynq7000

计算百分比-比例函数ratio_to_report

select no as 部门,                      工资合计,                      总合计,                      round((工资合计/总合计)*100,2) as 工资比列 from (select no,工资合计,sum(工资合计) over() as 总合计           from (select no,s