最新要闻
- 环球信息:弦歌扬雅韵,诗乐绘情深,云外清音——大提琴与诗词音乐会举行
- EDG正式发布Uzi夏季赛定妆照!这就是瘦下来的神吗?
- 【天天时快讯】特斯拉辅助驾驶4年间在美国发生736起车祸 至少17人遇难
- 【报资讯】46.9℃!新疆又热到全国第一了
- 是个大工程!大熊猫洗澡两个半人摁半个负责洗:旁边一只在看戏-观天下
- 环球今热点:马斯克脑机接口获批人体实验 公司估值高达50亿美元
- 美迪西:美熹企业通过大宗交易向其一致行动人王国林内部转让79.66万股
- 外观酷似极氪001 阿维塔首款中大型轿跑E12实车谍照首曝
- 北方多地迎今年来最强高温!京津冀等11省份连续高温:局地40℃
- 神舟新款战神游戏本上架:酷睿i7+RTX 4060仅5898元_每日消息
- 理想销售称蔚来降价是为了活命 李斌:希望友商不要“带节奏”
- 视觉中国推出付费AI绘图功能:仅提供服务、无版权
- V观财报|浙文影业第二大股东钱文龙短线交易致歉
- 全球今头条!2499元 铭凡Venus NPB5迷你主机上架:i5-13500H、双2.5G网口
- 全球资讯:真比加油快!宁德时代发布“骐骥换电”:重卡几分钟满血出发
- 性能逼近PS5!华硕首款掌机ROG Ally国行版已上架:6月14日开售
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
尚医通-day02【医院设置前端详细步骤】(内附源码)|环球快播报
页面预览
列表页面
新增页面
编辑页面
第01章-项目中的路由
1、引入路由
1.1、路由模块中定义路由
src/router/index.js 关键代码
import Vue from "vue" //引入vue模块import Router from "vue-router" //引入路由模块Vue.use(Router) //挂载路由功能到vue框架中export const constantRoutes = [ ......]export default new Router({ ...... routes: constantRoutes})
1.2、入口文件中调用路由
src/main.js 关键代码
......import router from "./router" //引入路由模块......new Vue({ el: "#app", router, //将路由模块配置到vue对象上下文 store, render: h => h(App)})
2、医院设置页面组件
2.1、创建vue组件
在src/views文件夹下创建以下文件夹和文件
(资料图)
2.2、form.vue
医院设置表单
2.3、list.vue
医院设置列表
3、医院设置路由
3.1、方式一:静态路由的引入
最简单的引入路由的方式就是在src/router/index.js文件中配置路由节点:将医院管理
节点定义在constantRoutes
数组中
// 医院管理{ path: "/syt/hospset", component: Layout, redirect: "/syt/hospset/list", name: "HospSet", meta: { title: "医院管理", icon: "el-icon-s-help" }, children: [ { path: "list", name: "HospSetList", component: () => import("@/views/syt/hospset/list"), meta: { title: "医院设置列表", icon: "el-icon-s-unfold" } }, { path: "create", name: "HospSetCreate", component: () => import("@/views/syt/hospset/form"), meta: { title: "添加医院设置", icon: "el-icon-tickets" } }, { path: "edit/:id", name: "HospSetEdit", component: () => import("@/views/syt/hospset/form"), meta: { title: "编辑医院设置", noCache: true }, hidden: true } ]},
3.2、方式二:动态路由的引入
也可以在之前的权限系统的菜单管理功能中添加动态的菜单和菜单项:
添加菜单:
添加菜单项:
最后添加后的结果如下:
注意:系统中admin用户无需分配权限,默认拥有全部权限
第02章-列表
1、代理配置
前端访问多个后端service模块,可通过前端代码请求服务器端接口,配置如下:
更改文件:vue.config.js
例如:
service-system模块:
- 端口:8800、访问路径规则:/admin/system/**
service-hosp模块端口
- 端口:8201、访问路径规则:/admin/hosp/**
配置:
proxy: { "/dev-api/admin/system": { // 匹配所有以 "/dev-api/admin/system"开头的请求路径 target: "http://localhost:8800", changeOrigin: true, // 支持跨域 pathRewrite: { // 重写路径: 去掉路径中开头的"/dev-api" "^/dev-api": "" } }, "/dev-api/admin/hosp": { // 匹配所有以 "/dev-api/admin/hosp"开头的请求路径 target: "http://localhost:8201", changeOrigin: true, // 支持跨域 pathRewrite: { // 重写路径: 去掉路径中开头的"/dev-api" "^/dev-api": "" } }}
2、定义api
创建文件 src/api/syt/hospset.js
import request from "@/utils/request"const apiName = "/admin/hosp/hospitalSet"export default { //医院设置列表 getPageList(page, limit, searchObj) { return request({ url: `${apiName}/${page}/${limit}`, method: "get", params: searchObj }) },}
3、初始化vue组件
src/views/syt/hospset/list.vue
医院设置列表 <script>import hospsetApi from "@/api/syt/hospset"export default { data() {// 定义数据 return {} }, created() { // 当页面加载时获取数据 this.fetchData() }, methods: { fetchData() { // 调用api层获取数据库中的数据 console.log("加载列表") }, }}</script>
4、定义data
data() {// 定义数据 return { listLoading: true, // 是否显示loading信息 list: null, // 数据列表 total: 0, // 总记录数 page: 1, // 页码 limit: 10, // 每页记录数 searchObj: {}// 查询条件 } },
5、定义methods
methods: { fetchData() { // 调用api层获取数据库中的数据 console.log("加载列表") this.listLoading = true hospsetApi.getPageList(this.page, this.limit, this.searchObj).then(response => { // debugger //设置断点调试 this.list = response.data.records this.total = response.data.total this.listLoading = false }) }, },
6、表格渲染
{{ (page - 1) * limit + scope.$index + 1 }} {{ scope.row.status===1?"可用":"不可用" }} 修改 删除 锁定 解锁
7、添加路由按钮
在菜单管理中,为修改
按钮添加一条记录,因为此按钮是路由形式的按钮,必须配置动态路由,才能正确的加载到前端页面中。
第03章-分页
1、定义页面组件模板
在table组件下面添加分页组件
2、改变每页条数
为
@size-change="changePageSize"
定义事件脚本
// 每页记录数改变,size:回调参数,表示当前选中的“每页条数”changePageSize(size) { this.limit = size this.fetchData()},
3、翻页
为
@current-change="changeCurrentPage"
定义事件脚本
// 改变页码,page:回调参数,表示当前选中的“页码”changeCurrentPage(page) { this.page = page this.fetchData()},
第04章-查询表单
1、html
在table组件上面添加查询表单
查询 清空
2、查询方法
//查询数据searchData() { this.page = 1 this.fetchData()},
3、清空方法
//清空查询resetData() { this.page = 1//重置页码 this.searchObj = {}//清空查询条件 this.fetchData()//重置列表数据},
第05章-删除
1、定义api
src/api/syt/hospset.js
removeById(id) { return request({ url: `${apiName}/${id}`, method: "delete" })},
2、定义methods
src/views/syt/hospset/list.vue
使用MessageBox 弹框组件
removeDataById(id) { // debugger // console.log(memberId) this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { type: "warning", }).then(() => { hospsetApi.removeById(id).then(response => { this.fetchData() this.$message.success(response.message) }) }).catch(() => { this.$message.info("已取消删除") })},
第06章-新增
1、定义api
src/api/syt/hospset.js
save(hospset) { return request({ url: apiName + "/saveHospSet", method: "post", data: hospset })},
2、初始化组件
src/views/syt/hospset/form.vue
html
保存
js
<script>export default { data() { return { hospset: {}, saveBtnDisabled: false // 保存按钮是否禁用, } }, methods: { saveOrUpdate() { this.saveBtnDisabled = true this.saveData() }, // 保存 saveData() { } }}</script>
3、实现新增功能
引入api模块
import hospsetApi from "@/api/syt/hospset"
完善save方法
// 保存saveData() { hospsetApi.save(this.hospset).then(response => { this.$message.success(response.message) this.$router.push({ path: "/syt/hospset/list" }) })},
思考:优化后端接口的错误处理(处理编号重复)
@ApiOperation(value = "新增医院设置")@PostMapping("saveHospSet")public Result save( @ApiParam(value = "医院设置对象", required = true) @RequestBody HospitalSet hospitalSet){ try { //设置状态 1可用 0锁定 hospitalSet.setStatus(1); //生成签名秘钥 Random random = new Random(); hospitalSet.setSignKey(MD5.encrypt(System.currentTimeMillis()+""+random.nextInt(1000))); boolean result = hospitalSetService.save(hospitalSet); if(result){ return Result.ok().message("添加成功"); }else{ return Result.fail().message("添加失败"); } } catch (DuplicateKeyException e) { throw new GuiguException(ResultCodeEnum.HOSCODE_EXIST, e); } catch (Exception e) { throw new GuiguException(ResultCodeEnum.FAIL, e); }}
第07章-回显
1、定义api
src/api/syt/hospset.js
getById(id) { return request({ url: `${apiName}/getHospSet/${id}`, method: "get" })},
2、组件中调用api
methods中定义fetchDataById:
// 根据id查询记录fetchDataById(id) { hospsetApi.getById(id).then(response => { this.hospset = response.data })},
3、调用fetchDataById
定义生命周期方法:
created() { console.log("created") if (this.$route.params.id) { this.fetchDataById(this.$route.params.id) }},
第08章-更新
1、定义api
updateById(hospset) { return request({ url: `${apiName}/updateHospSet`, method: "put", data: hospset })},
2、组件中调用api
methods中定义updateData
// 根据id更新记录updateData() { hospsetApi.updateById(this.hospset).then(response => { this.$message.success(response.message) this.$router.push({ path: "/syt/hospset/list" }) })},
3、完善saveOrUpdate方法
saveOrUpdate() { this.saveBtnDisabled = true if (!this.hospset.id) { this.saveData() } else { this.updateData() }},
第09章-批量删除
1、定义api
src/api/syt/hospset.js
removeRows(idList) { return request({ url: `${apiName}/batchRemove`, method: "delete", data: idList })},
2、批量删除按钮
src/views/syt/hospset/list.vue
在列表页的table组件上方添加 批量删除
按钮
批量删除
3、定义复选框和事件
在table组件上添加@selection-change 和 复选框列
data定义数据
multipleSelection: [], // 批量选择中选择的记录列表
4、实现批量删除
完善方法
// 当表格复选框选项发生变化的时候触发 handleSelectionChange(selection) { this.multipleSelection = selection }, //批量删除 removeRows() { if(this.multipleSelection.length == 0){ this.$message.warning("请选择要删除的记录") return } this.$confirm("此操作将永久删除医院设置信息, 是否继续?", "提示", { type: "warning", }).then(() => { //确定执行then方法 var idList = [] this.multipleSelection.forEach((item) => { idList.push(item.id) }) //调用接口 hospsetApi.removeRows(idList).then((response) => { //提示 this.$message.success(response.message), //刷新页面 this.fetchData() }) }).catch(() => { this.$message.info("已取消删除") }) },
第10章-锁定和解锁
1、定义api
src/api/syt/hospset.js
//锁定和取消锁定lockHospSet(id, status) { return request({ url: `${apiName}/lockHospitalSet/${id}/${status}`, method: "put" })},
2、编写调用方法
在list.vue页面添加方法:
//锁定和取消锁定lockHostSet(id, status) { hospsetApi.lockHospSet(id,status).then(response => { //刷新 this.fetchData() })},
源码:https://gitee.com/dengyaojava/guigu-syt-parent
关键词:
尚医通-day02【医院设置前端详细步骤】(内附源码)|环球快播报
全球热点评!记录--详解 XSS(跨站脚本攻击)
ESMap 三维地图在智慧园区三维场景的应用-数字孪生3D可视化服务平台 当前速递
环球信息:弦歌扬雅韵,诗乐绘情深,云外清音——大提琴与诗词音乐会举行
EDG正式发布Uzi夏季赛定妆照!这就是瘦下来的神吗?
【天天时快讯】特斯拉辅助驾驶4年间在美国发生736起车祸 至少17人遇难
【报资讯】46.9℃!新疆又热到全国第一了
是个大工程!大熊猫洗澡两个半人摁半个负责洗:旁边一只在看戏-观天下
环球今热点:马斯克脑机接口获批人体实验 公司估值高达50亿美元
美迪西:美熹企业通过大宗交易向其一致行动人王国林内部转让79.66万股
基于vue+flask+sql的公司销售采购信息服务系统|环球简讯
世界时讯:当GaussDB遇上了毕昇编译器
要闻:java 中锁的定义
.NET项目中使用HtmlSanitizer防止XSS攻击
外观酷似极氪001 阿维塔首款中大型轿跑E12实车谍照首曝
北方多地迎今年来最强高温!京津冀等11省份连续高温:局地40℃
神舟新款战神游戏本上架:酷睿i7+RTX 4060仅5898元_每日消息
理想销售称蔚来降价是为了活命 李斌:希望友商不要“带节奏”
视觉中国推出付费AI绘图功能:仅提供服务、无版权
V观财报|浙文影业第二大股东钱文龙短线交易致歉
优化3500倍,从70s到20ms的顶级调优,此方案人人可用
Ubuntu安装 Anaconda 3
全球今头条!2499元 铭凡Venus NPB5迷你主机上架:i5-13500H、双2.5G网口
全球资讯:真比加油快!宁德时代发布“骐骥换电”:重卡几分钟满血出发
性能逼近PS5!华硕首款掌机ROG Ally国行版已上架:6月14日开售
2399元 红魔电竞显示器2K银翼版开售:240Hz超高刷新率|新资讯
三星终于用上水滴铰链!Galaxy Z Fold5折痕缩小15%
当前动态:宋PLUS 冠军版6月19日上市 预售16.98万元起
世界看热讯:空间数据的智慧呈现:探秘GIS地图的魅力
社交app源码技术屏幕的两大实用功能
环球即时:科创板收盘播报:科创50指数震荡跌0.57% 汽车配件股大涨
ETF投资(十二) |ETF也可以融资融券吗? 世界看热讯
已四涨五跌 6月13日国内油价再次调整:这次或将搁浅
环球消息!解锁5G双卡的终极形态:边打游戏 边打电话
路上晒麦致电瓶车摔倒:因找不到主人 麦子被卖了1800元赔钱
球王也来直播带货?梅西6月14日淘宝开播:粉丝互动唯一机会
焦点热议:时隔6年新作终于公布!《极限竞速:Motorsport》定档10月
天天速递!解析汽车APP面临的18种攻击风险
告警:线上慎用 BigDecimal !-天天速递
我在大湾区推“茶”出“新”
瞬间卖爆!《星空》预购首日登顶Steam热销榜 头条焦点
网球明星的特斯拉被盗 结果小偷被“车载限速、定位”教育|环球时快讯
今日快看!毕业典礼比心时校长手指被强制“掰弯” 画面引网友发笑:够胆大
不容错过!霸王首乌/生姜洗发水狂促发车:券后19.9元一大瓶
耗时三年 丰田发布全新周边!首个可移动式豪华卫生间正式亮相
女子称撑破试穿裙子无奈买下 裙子一扯像纸就烂:网友热议为何要讹人
只坑有钱人!史玉柱称感谢网友表扬:中国最缺计算数学人才 曾给浙大捐五千万 |全球速讯
今亮点!《小美人鱼》全球票房突破4亿美元:黑美人鱼称要成为大家榜样、公主
全球速读:Java XML教程_编程入门自学教程_菜鸟教程-免费教程分享
自抽脸?日本突然声称核污水危害健康 曾高喊可饮用、ALPS成笑话
青岛通报“一桌饭菜收费三次”:错收3400元已退还
铭凡推出HN2673迷你主机:12代i7 首搭锐炫独显 全球新要闻
蔚来全系车型降3万!新车主“二选一”:可退3万块
泰安市财政局调研组到高新区调研财税工作
小米发布99元真无线耳机:单耳仅3.6g 28小时长续航
环球看点!似曾相识!麦芒A20官宣:5000万像素高清影像
大众CC超速迎头撞上大众途岳:后者A柱弯曲近乎报废_世界观速讯
【世界播资讯】还要啥自行车!2023款奇瑞艾瑞泽5 PLUS只要7.49万!快上车
北京修订电动自行车用锂电池标准:电池组超80℃ 车辆30秒内发声报警
探鱼的酱香味烤鱼,“酱”指的是什么酱呢?|环球精选
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)_资讯推荐
环球今日报丨Qt 事件系统总结
Web网页端IM产品RainbowChat-Web的v5.0版已发布
【热闻】马斯克嘲讽人工智能:机器学习本质就是统计学
小学生用奶奶手机充值游戏2.9万 法院判决来了 世界视讯
“龙字辈”成员即将加入!长城发布全新硬派SUV 或命名:“翔龙”
河南雷暴大风 半米粗大树连根拔起 外卖小哥伸头躲过一劫
世界快播:蔚来宣布重大决定:免费换电权益解绑 全系车型降价3万
今日播报!村里种的“软黄金”迎来丰收季
每日速读!windows下如何杀掉Tomcat进程
焦点信息:5分钟学会数据结构中的线性链表
Python工具箱系列(三十五) 全球新消息
vue使用 elementUI中el-upload的遇到的问题总结
【新华解读】可转债退市机制逐步完善 未来或迎来“宽进宽出”市场生态_全球新动态
两批次食品不符合国家标准上黑榜 全球快资讯
俩石柱子被五菱一下子撞飞 附近店家感慨:此乃神车
米哈游去年赚了161亿!网友:够再开发十个《原神》了
每日快报!时代变了!未来18个月内 传奇瑞等大量国产车企将进入英国市场
世界速讯:越南因罕见高温遭遇“停电危机”:佳能等企业轮流停电
全球视讯!多种口味:和路雪经典大梦龙多口味雪糕16支88元发车
物联网开源操作系统简介 天天快资讯
Jenkins + Docker 一键自动化部署 Spring Boot 项目,步骤齐全,少走坑路! 全球微动态
甘肃省加快推进交通项目建设 每日快播
《暗黑4》第一件“军帽”在韩服现身 官方证实:最强欧皇诞生 属性无敌
苹果回应Mac Pro弃用AMD显卡:压根就不适配_天天微速讯
VIP体验卡到期!高考后饭菜的反差让人猝不及防:从“吃啥有啥”变“有啥吃啥”
今日报丨windows图片查看器修复(windows图片查看器)
解读投顾新规(一)| 扭转投顾“产品化”倾向 引导行业回归服务本源
【读财报】基金发行透视:年内发行规模同比下降15% 鹏扬、国融基金产品发行失败_全球快资讯
国家助学贷款累计发放超4000亿元 惠及2000多万名学生
曝苹果开发Vision Pro更便宜版本:屏幕、处理器会缩水|世界看热讯
A卡降价太狠 NVIDIA坐不住:RTX 4060将提前上市 2399买吗?|焦点
汽车人险胜蜘蛛侠
产销两旺 新能源车消费涌热潮
读改变未来的九大算法笔记10_读后总结与感想 播报
动力电池回收赛道不断升温 上市公司积极挖掘新蓝海-环球热推荐
全球速读:女子220斤家人为激励减肥奖6万 已减超20斤:网友鼓励加油
当前速递!显卡不买丐版就亏了?到底该怎么选?
电路中的pnp是什么意思(电路中pn结是什么意思) 世界关注
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景