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

相关文章

The Prompt Report 2

The Prompt Report 提示工程调查报告《The Prompt Report: A Systematic Survey of Prompting Techniques》 主要内容 Core Prompting Techniques Text based Techniques:PRISMA流程,58中基于文本的提示技术,提示语术语分类表;MLT:Multilingual T

(gaffe23/linux-inject) Github项目分析-linux之SO注入

原始链接 (gaffe23/linux-inject)项目分析-linux之SO注入 序言 原始项目: https://github.com/gaffe23/linux-inject 自己修改过的项目: https://github.com/redqx/linux-inject2 一个9年前(base 2024)的项目, 没怎么更新过,但项目在9年前来说也是写得非常棒的一个项目, 放到

调用ASH Report

--调用ASH Report --?/rdbms/admin/ashrpt.sql SYS@PROD1> start ?/rdbms/admin/ashrpt.sqlCurrent Instance~~~~~~~~~~~~~~~~DB Id DB Name Inst Num Instance----------- ------------ -------- -----

innovus:report_area和reportGateCount报告module面积的差异

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接:

项目分析 移动终端自助点餐系统

项目分析 移动终端自助点餐系统 一款通过移动终端设备展示商品,客户进行选择并下单的Web项目主要数据来源为商家个人发布基于 Flask 框架,以 前后端不分离 的形式实现具体业务逻辑 技术实现 基于 Python 3.0 + Flask 框架实现数据存储使用 Redis + MySQL 实现第三方扩展: xx云:文件存储平台xx通讯:短信验证码平台布署:基于ubuntu 16.04系统,使

帆软Report 时间日期相关公式

公式 时间日期相关公式 时间日期相关公式 获取当月的天数: DAYSOFMONTH(DATE($iYear,$iMonth,'01'))

学习大数据DAY44 帆软 report 配置

目录 Linux 系统独立部署 Tomcat 服务器设置 上机练习 Linux 系统独立部署 ## 题目要求 在 LINUX 系统, Tomcat 服务器容器下,完成 FineReport 报表工程的独立部 署,并设置服务器开机自启动,并请实操演示 得分点(完成得满分,未完成得 0 分): FineReport 报表工程的独立部署

深入理解AX Inventory Aging Report

库龄报表是Dynamics AX 2012 R3当中新增的报表。它可以让用户灵活地定义库龄区间,也可以倒推某个时间节点的数据。 价格是截止报表日期的平均成本单价。 它的缺点一是只能按照先进先出(FIFO)的原则计算库存异动,而不能根据实际的批次入库日期计算;缺点二是不能区分物理入库还是财务入库。 访问路径: 库存管理 -> 报表 -> 状态 -> 实际库存 -> 库龄 可以根据库

Cognos Report Studio 使用自定义SQL及注意事项

有些复杂报表或者功能,用标准的framework package无法满足或者效果不好。可以在report studio当中使用user defined SQL来实现。 自定义SQL 1.使用工具 query explorer -> Toolbox -> SQL  2.在properties页配置Data source, SQL  3.配置引用该SQL工具的query.

芯片后端之 PT 使用 report_timing 产生报告 之 常用命令

滴水穿石,坚持加持~ pt_shell> report_timing -from <startpoint> -to <endponit> -delay max/min pt_shell> report_timing -from <startpoint> -to <endponit> -delay max/min  -nosplit pt_shell> get_cells *data_re