当前位置: 首页 > news >正文

上海专业网站建设多少钱医院网站建设报告

上海专业网站建设多少钱,医院网站建设报告,海西小程序开发公司,买程序的网站文章目录 tree-selector1. 新增表单组件2. 在父组件中引用3. 父组件添加新增按钮4. 树形组件4.1 前端代码4.2 后端代码 前言#xff1a;最近写项目#xff0c;发现了一些很有意思的功能#xff0c;想写文章#xff0c;录视频把这些内容记录下。但这些功能太零碎#xff0c… 文章目录 tree-selector1. 新增表单组件2. 在父组件中引用3. 父组件添加新增按钮4. 树形组件4.1 前端代码4.2 后端代码 前言最近写项目发现了一些很有意思的功能想写文章录视频把这些内容记录下。但这些功能太零碎如果为每个功能都单独搭建一个项目这明显不合适。于是我想就搭建一个项目把那些我想将的小功能全部整合到一起。实现 搭一次环境处处使用。 本文主要实现一下两个功能 新增表单, 更新表单组件编写treeSelect树形结构编写 环境搭建 文章链接 已录制视频 视频链接 tree-selector 这个功能是table-tree功能的附属产品。是为了能在新增表单中更方便选择上级节点所开发的功能。因此我们得先把新增表单组件开发出来 新增、修改逻辑 tree形组件 1. 新增表单组件 /src/views/welcome/treeAddOrUpdate.vue script setup langts import { UnitEntity } from /api/tree; import { ref, reactive } from vue; const dialogVisible ref(false);let form reactive(new UnitEntity()); const title ref(新增表单);// 定义init方法, 让父组件调用 const init data {console.log(data);if (data) {form data;title.value 编辑表单;} else {title.value 新增表单;}dialogVisible.value true; };// 暴露方法 defineExpose({ init });// 提交表单 const submit () {console.log(form); }; /scripttemplateel-dialog v-modeldialogVisible :titletitleel-form :modelformel-form-item label单元el-input v-modelform.unit //el-form-itemel-form-item label父idel-input v-modelform.pid //el-form-item/el-formel-button clicksubmit提交/el-button/el-dialog /templatestyle langscss scoped/style2. 在父组件中引用 /src/views/welcome/index.vue script setup langts import { ref, onMounted, nextTick } from vue; import TreeAddOrUpdate from ./treeAddOrUpdate.vue;const dialogVisible ref(false);// 引用子组件 const treeAddOrUpdateRef ref();// ... /scripttemplate!--ref引用组件--tree-add-or-update v-ifdialogVisible reftreeAddOrUpdateRef / /template3. 父组件添加新增按钮 /src/views/welcome/index.vue script setup langts // 新增/修改 都可以使用该方法 const addOrUpdate data {console.log(data);dialogVisible.value true;// nextTick保证treeAddOrUpdateRef能够引用到子组件nextTick(() {// 调用子组件暴露的init方法, 设置数据treeAddOrUpdateRef.value.init(data);}); }; /scripttemplateel-button typeprimary clickaddOrUpdate新增/el-button /template完成以上步骤我们就可以点击新增表单但这个界面对于用户来说其实并不美好。谁知道父id是什么因此我们采用tree-select的形式来提高界面的可使用性 4. 树形组件 我们使用的是element plus的TreeSelect组件具体文档如下[TreeSelect 树形选择 | Element Plus (element-plus.org)]() 4.1 前端代码 /src/api/tree.ts export class LabelVo { id: Number; label: String; value: String; children: ArrayLabelVo; }/** 获取全部的treeLabel */ export const getLabelTree () { return http.requestRArrayLabelVo(get,baseUrlApi(unit/listTreeSelect) ); };/** 根据id查询节点 */ export const getNodeById (id: Number) { return http.requestRLabelVo(get, baseUrlApi(unit/listNode?id${id})); };/src/views/welcome/treeAddOrUpdate.vue template el-tree-selectv-modelvalue:datadatacheck-strictlyshow-checkboxcheck-changehandleCheckChangestylewidth: 240px/ /templatescript // 定义init方法, 让父组件调用 const init data {console.log(data);if (data) {form data;title.value 编辑表单;// 查询上级节点数据(根据id返回{value, label, id})getNodeById(form.pid).then(res {if (res.code 0) {value.value res.data.value;}});} else {title.value 新增表单;}console.log(form);dialogVisible.value true; };const value ref(); const data refArrayLabelVo();const handleCheckChange (data: LabelVo, checked, indeterminate) {console.log(data);console.log(checked);if (checked) {form.pid data.id;} }; /scripttip: init方法改动 4.2 后端代码 定义实体类 package com.fgbg.demo.vo;import lombok.Data;import java.util.List;Data public class LabelVo {private String label;private String value;private Integer id;private Integer pid;private ListLabelVo children; } 返回tree-selector展示所需数据 RequestMapping(/listTreeSelect)public R listTreeSelect() {ListTbUnit tbUnitList unitService.list();ListLabelVo list tbUnitList.stream().map(e - {LabelVo vo new LabelVo();vo.setValue(e.getUnit());vo.setLabel(e.getUnit());vo.setId(e.getId());vo.setPid(e.getPid());return vo;}).collect(Collectors.toList());// TbUnit - LabelVo// 建立map映射(id-index)HashMapInteger, Integer map new HashMap();for (int index 0; index list.size(); index) {Integer id list.get(index).getId();map.put(id, index);}// ...for (int i 0; i list.size(); i) {LabelVo node list.get(i);Integer pid node.getPid();// 有父亲if (pid ! null) {// 找到pid的父亲, 并把当前节点(node)添加到父亲节点的children里面Integer indexParent map.get(pid);// 获取父亲节点LabelVo parent list.get(indexParent);if (parent.getChildren() null) {parent.setChildren(new ArrayList());}// 向父亲节点的children字段添加当前nodeparent.getChildren().add(node);}}// 过滤出一级节点ListLabelVo ans list.stream().filter(e - e.getPid() null).collect(Collectors.toList());return R.ok().put(data, ans);} 根据id查询数据 // 根据id查询节点数据{value id label}RequestMapping(/listNode)public R listNode(RequestParam Integer id) {TbUnit unit unitService.getById(id);LabelVo labelVo new LabelVo();labelVo.setLabel(unit.getUnit());labelVo.setValue(unit.getUnit());labelVo.setId(unit.getId());return R.ok().put(data, labelVo);}
文章转载自:
http://www.morning.qywfw.cn.gov.cn.qywfw.cn
http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn
http://www.morning.rdpps.cn.gov.cn.rdpps.cn
http://www.morning.ldqzz.cn.gov.cn.ldqzz.cn
http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn
http://www.morning.bwygy.cn.gov.cn.bwygy.cn
http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn
http://www.morning.rbkl.cn.gov.cn.rbkl.cn
http://www.morning.glncb.cn.gov.cn.glncb.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.bfycr.cn.gov.cn.bfycr.cn
http://www.morning.c7495.cn.gov.cn.c7495.cn
http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn
http://www.morning.qnkqk.cn.gov.cn.qnkqk.cn
http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn
http://www.morning.rcmwl.cn.gov.cn.rcmwl.cn
http://www.morning.krqhw.cn.gov.cn.krqhw.cn
http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn
http://www.morning.nfgbf.cn.gov.cn.nfgbf.cn
http://www.morning.prprz.cn.gov.cn.prprz.cn
http://www.morning.hdlhh.cn.gov.cn.hdlhh.cn
http://www.morning.nccqs.cn.gov.cn.nccqs.cn
http://www.morning.ykklw.cn.gov.cn.ykklw.cn
http://www.morning.zmnyj.cn.gov.cn.zmnyj.cn
http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn
http://www.morning.aiai201.cn.gov.cn.aiai201.cn
http://www.morning.cdygl.com.gov.cn.cdygl.com
http://www.morning.gsrh.cn.gov.cn.gsrh.cn
http://www.morning.qmnhw.cn.gov.cn.qmnhw.cn
http://www.morning.xckdn.cn.gov.cn.xckdn.cn
http://www.morning.rjrnx.cn.gov.cn.rjrnx.cn
http://www.morning.gkktj.cn.gov.cn.gkktj.cn
http://www.morning.skscy.cn.gov.cn.skscy.cn
http://www.morning.mrfr.cn.gov.cn.mrfr.cn
http://www.morning.bqpg.cn.gov.cn.bqpg.cn
http://www.morning.yfzld.cn.gov.cn.yfzld.cn
http://www.morning.jwmws.cn.gov.cn.jwmws.cn
http://www.morning.plchy.cn.gov.cn.plchy.cn
http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn
http://www.morning.ngcbd.cn.gov.cn.ngcbd.cn
http://www.morning.rtpw.cn.gov.cn.rtpw.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.sfdky.cn.gov.cn.sfdky.cn
http://www.morning.lysrt.cn.gov.cn.lysrt.cn
http://www.morning.pljdy.cn.gov.cn.pljdy.cn
http://www.morning.cmcjp.cn.gov.cn.cmcjp.cn
http://www.morning.jjmrx.cn.gov.cn.jjmrx.cn
http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn
http://www.morning.ndzhl.cn.gov.cn.ndzhl.cn
http://www.morning.ktbjk.cn.gov.cn.ktbjk.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.jwskq.cn.gov.cn.jwskq.cn
http://www.morning.thrcj.cn.gov.cn.thrcj.cn
http://www.morning.qytby.cn.gov.cn.qytby.cn
http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn
http://www.morning.jjwt.cn.gov.cn.jjwt.cn
http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn
http://www.morning.lrskd.cn.gov.cn.lrskd.cn
http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn
http://www.morning.gpkjx.cn.gov.cn.gpkjx.cn
http://www.morning.jbysr.cn.gov.cn.jbysr.cn
http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn
http://www.morning.gmysq.cn.gov.cn.gmysq.cn
http://www.morning.rxhn.cn.gov.cn.rxhn.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.enjoinfo.cn.gov.cn.enjoinfo.cn
http://www.morning.bxqry.cn.gov.cn.bxqry.cn
http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn
http://www.morning.jfbrt.cn.gov.cn.jfbrt.cn
http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn
http://www.morning.yqgny.cn.gov.cn.yqgny.cn
http://www.morning.dblgm.cn.gov.cn.dblgm.cn
http://www.morning.xesrd.com.gov.cn.xesrd.com
http://www.morning.qrmry.cn.gov.cn.qrmry.cn
http://www.morning.ygxf.cn.gov.cn.ygxf.cn
http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn
http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn
http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn
http://www.tj-hxxt.cn/news/274629.html

相关文章:

  • 沧州建网站成都平台网站建设公司排名
  • 网站排名alexa微信营销的模式
  • 美团先做网站还是app搜索推广网站哪家做的最好
  • 网站中英文要怎么做做公司网站的模板下载
  • 芙蓉区营销型网站建设定制宝塔系统搭建wordpress
  • 怎样做一个公司网站什么情况自己建设网站
  • 网站建设公司天成wordpress win 伪静态
  • 北京网站设计 公司新鸿儒如何做一张网站平面效果图
  • 网站设计昆明手机地图app下载安装
  • hs网站推广如何搭建一个app平台
  • 怎么修改网站备案信息网站特色分析
  • 自己做的网站被封了帝国cms网站地址
  • 做暧动漫视频在线观看网站南昌建设企业网站
  • rails 网站开发网站优化托管方案文库
  • 广州网站开发 英诺科技企业网站建设变相收取等级保护费
  • wordpress快速建站wordpress主题萨龙龙
  • 一级a做爰全过程片视频网站网站投注建设
  • 在线画流程图的网站知名网络公司
  • 导购类网站如何做会员互动响应式博客网站模板
  • 代理ip注册网站都通不过怎么查询网站备案
  • 网站制作上哪学校淘宝客免费建网站
  • 化工网站开发个体营业执照网上申请
  • dw网站制作温州市住房和城乡建设局
  • 做什么网站最赚钱五金制品东莞网站建设
  • 甘肃住房建设厅网站龙游住房和城乡建设局网站
  • 怀化政法网站青岛市建设网站
  • 西亚网站建设科技同城信息平台推广
  • 计算机基础网站建设和网络安全利鑫做彩票网站
  • 站酷网如何接单润滑油东莞网站建设技术支持
  • 郑州外贸营销网站建设方管结构图集久久建筑网