Vue利用extends改造组件

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路 本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。 阅读详情

Vue利用extends改造组件

最近有个需求:就是不能更改公司的工作流组件,但是我们这个项目需要对这个组件进行客户化开发 。

修改 n20-common-lib下面的ApprovalButtons组件

JtApprovalButtons.vue

<template>
  <div>
    <el-form ref="approveBtnGroup" label-position="right" :label-width="_lang === 'zh' ? '6em' : '10em'">
      <el-form-item v-if="fileKit || fileKitT" label="附加上传">
        <cl-upload
          ref="Jtupload"  // 对比ApprovalButtons组件的template新加的ref,后面需要处理upload里面data的fileList数组
          class="upload-224"
          :file-name.sync="fileName"
          multiple
          :data="fileData"
          :file-url.sync="fileUrl"
          :on-success="onSuccess"
          :on-remove="onRemove"
          action="/api/neams/eamsbaserecord/batchSavejson"
          msg-type="message"
        />
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
import ClUpload from 'n20-common-lib/src/components/Upload'
import ApprovalButtons from 'n20-common-lib/src/components/ApprovalButtons';
export default {
  name: "JtApprovalButtons", // 新对象名称
  extends: ApprovalButtons, // 继承的对象
  components: {
    ClUpload  // ApprovalButtons组件引用了ClUpload组件,
  },
  data () {
    return {
      queryList: []
    }
  },
  created () {
    // 这个是根据客户化开发加进来查询附件和审批意见的,有值则回显出来
    this.init()
  },
  methods: {
    init () {
      let userNo = JSON.parse(sessionStorage.getItem('User_Info'))?.userNo
      let param = {
        procInstId: this.$route.query.processInstanceId,
        userNo
      }
      getTempFileByUser(param).then(res => {
        this.messageC = res.message
        if (res.fileDtos && res.fileDtos?.length) {
          this.queryList = res.fileDtos && res.fileDtos.map(item => {
            return {
              name: item.fileName,
              beid: item.beid
            }
          })
          this.$refs.Jtupload.fileList = this.queryList
        }
      })
    },
    // 重写getParam的参数传递fileDtos,其他保持ApprovalButtons的不变
    getParam() {
      let fileDtos = []
      if (this.$refs.Jtupload.fileList && this.$refs.Jtupload.fileList.length) {
        fileDtos = this.getFileDtos(this.$refs.Jtupload.fileList);
      } 
      let { typeCode, taskId, groupNo, isAgentcy } = this.$route.query
      return [
        {
          typeCode,
          taskId,
          groupNo,
          taskDefKey: this.taskDefKey,
          message: this.messageC,
          formData: JSON.stringify(this.formData),
          signText: this.signText,
          isAgentcy: isAgentcy,
          fileDtos: fileDtos,
          carbonCopyUserDtoList: this.carbonCopyList.map((c) => ({ userNo: c.uno, userName: c.uname })),
          addTaskList: this.addTaskList.map((c) => ({ userNo: c.uno, userName: c.uname })),
          addTaskType: this.addTaskType,
          addTaskWay: this.addTaskWay,
          ...this.otherAtt
        }
      ]
    },
    getFileDtos(fileList) {
      return fileList.map((file) => {
        return {
          fileName: file.name,
          beid: (file.response && Object.values(file.response).length) ? file.response?.data : file.beid
        }
      })
    }
  }
}
</script>

在上述代码中给原template的cl-upload加了ref属性,所以引用的时候也得根据实际情况引用进来
在这里插入图片描述

在这里插入图片描述

main.js

// 全局注册组件
import JtApprovalButtons from "@/components/approvalButtons/index.vue"
Vue.component('JtApprovalButtons',JtApprovalButtons)
edit.vue
// 使用改造后的组件
<div v-if="$route.query.typeCode == 'GDEBIT_FM001'">
   <div v-if="$route.query.processInstanceId">
     <n20-approve-card :procInstId="$route.query.processInstanceId" />
   </div>
   <div v-if="$route.query.parent === '审核'">
     <JtApprovalButtons :messageMax="messageMax" fileKit/>
   </div>
 </div>

以上通过extends继承了原有组件所有的特性扩展其功能,根据需要在该子类中重写父组件的属性和方法,避免了原组件的污染。

AI原生SaaS应用的自动化运维体系构建 随着ChatGPT掀起的AI原生应用浪潮,越来越多SaaS(软件即服务)产品开始以"AI优先"的方式设计——从用户交互到核心功能,都深度依赖机器学习模型(如推荐算法、智能客服)、实时数据流(如用户行为分析)和弹性算力(如大模型推理)。这类应用的运维需求与传统SaaS完全不同:传统运维像"修水管",哪里漏了补哪里;AI原生运维则像"照顾会成长的宠物",需要实时感知模型状态、数据变化和流量波动,主动调整资源。 阅读详情

相关推荐

LabVIEW电压信号采集系统:从零搭建到科研实战

本文详细介绍了如何从零开始搭建一个基于LabVIEW的电压信号采集系统。内容涵盖硬件选型(如NI USB-6002数据采集卡)、软件环境配置、核心程序开发(包括多通道同步采集、数据自动保存)以及高级功能优化。系统支持自定义采样率与时长,并提供了完整的LabVIEW程序框图和配套的Python数据分析脚本,旨在帮助科研人员和工程师快速构建稳定、高效的专属数据采集方案,提升实验自动化水平。

gold8的专栏 461

Vue:extends继承&组件复用性

Vue:extends继承&组件复用性,首先回顾了Vue.js中创建组件实例的几种方式,进而讨论了如何提升单个组件复用性的几种可行方案,最后介绍了Vue的extends选项——如何通过继承提升组件复用性,并介绍了此种方法的不足之处。

席木木的博客 8868

别再拍脑袋估工时了!手把手教你用FPA功能点分析法,给软件项目算笔明白账

本文详细介绍了FPA功能点分析法在软件开发工作量评估中的应用,帮助团队告别拍脑袋估算。通过量化系统功能组件,FPA提供客观的工时和成本预估,特别适合需求不明确的项目初期。文章以财务系统为例,拆解FPA计算流程,并分享实用估算模板,助力技术管理者提升项目规划能力。

weixin_42614269的博客 387

Vue.js 中的 Extends 继承机制与组件复用实践

总结来说,Vue.js 中的 extends 继承机制为我们提供了一种灵活的组件复用手段,但也要结合具体应用场景合理选择继承或组合的方式,以最大程度发挥组件化的优势,同时保持代码的清晰和高效。在实际开发中,根据项目的具体需求和团队的编码习惯,可以选择最适合的方式来组织和复用组件代码。然而,在 Vue3 中,Composition API 推崇的功能解耦原则让组件间的继承变得不再必需,更多的是通过组合(Composition)的方式实现逻辑复用。未被覆盖的选项将被继承。借助 Vue.extend。

qq_42054470的博客 4253

STM32F103 超声波风速风向仪实战:0.1m/s精度风洞标定与OLED显示(附源码)

本文详细介绍了基于STM32F103的超声波风速风向仪设计与实现,通过超声波时间差测量技术实现0.1m/s高精度测量。文章涵盖硬件设计、算法实现、风洞标定及OLED显示等关键环节,提供完整源码,适用于气象监测、风力发电等领域。

weixin_42532938的博客 275

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 398

使用Vue.extend封装组件

既然要使用Vue.extend()封装组件,那这玩意儿到底是什么呢?我们且来看官方解释。

u010227042的博客 1407

UI自动化控制PC端微信获取当前群聊的群友列表

在一个月前,某个群友在获取整个群的群友信息时遇到了一点问题: 对整个群进行群友数据获取经测试确实有点棘手,下面我将我的解决过程公布给大家。 基础教程详见: https://blog.csdn.net/as604049322/article/details/121391639 人工打开要抓取的群聊窗口后,首先获取微信窗口并点击聊天信息按钮: import uiautomation as auto auto.uiautomation.SetGlobalSearchTimeout(1) wechatWind

小小明-代码实体的专栏 3万+

vue 组件继承- vue extends属性

Vue.js是一款流行的JavaScript框架,它的组件化设计使得开发者可以将复杂的UI拆分为独立的、可重用的组件。在Vue.js中,组件继承是一种高效的组件复用方式,它可以让我们通过扩展一个基础组件来创建新的组件,从而减少代码的重复和冗余。本文将介绍Vue.js 2.x版本中组件继承的相关知识,包括如何定义和使用基础组件、如何扩展基础组件、以及如何使用插槽(slot)实现组件的灵活配置等。在Vue.js中,我们可以通过Vue.component()方法来定义一个全局的基础组件。

默的博客 6889

PCL 八叉树的使用

八叉树(Octree)是一种空间划分的数据结构,广泛应用于三维点云的处理和分析。八叉树通过将空间递归地划分为八个子区域,可以有效地组织和索引三维点数据,提升点云的查询、降采样和配准等操作的效率。

纵马踏花向自由 1658

COMSOL介电弹性体数值仿真指南:预拉伸圆形DEA的稳态变形分析(II)

本期博客是《COMSOL介电弹性体数值仿真指南》系列博客中的一期。聚焦于介电弹性体驱动器(DEA)中最为经典的预拉伸圆形DEA驱动器构型,对其在COMSOL平台中的具体建模步骤进行介绍与讨论。

忘了面孔的Batou 353

Vue3中的组合式API的使用

Vue3中的组合式API的使用

qq_72760247的博客 2309

构建AI Agent驱动的智能健康管理系统

数据碎片化:健康数据分散在不同的设备和平台中,难以统一管理和分析。个性化不足:健康管理方案通常是通用的,难以根据个人的健康状况实时调整。用户参与度低:用户难以获得及时、个性化的健康建议,导致健康管理效果不佳。AI Agent是一个能够感知环境、采取行动以实现目标的智能实体。根据智能体的智能水平,可以分为简单反应式智能体和复杂适应式智能体。实时监测健康数据。获取个性化的健康建议。收到健康风险预警。

AI天才研究院 749

Vue中创建组件实例的方式以及extends继承和组件复用性详解

提到extends继承,最先想到的可能是ES6中的class、TS中的interface、面向对象编程语言中中的类和接口概念等等,但是我们今天的关注点在于:如何在Vue中使用extends继承特性。

青春木鱼的博客 3098

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

vue组件扩展extends

1.extends用法 extends选项允许声明扩展另一个组件,而无需使用 Vue.extend。 通过外部增加对象的形式,对构造器进行扩展。它和混入mixins非常的类似。只不过接收的参数是简单的选项对象或构造函数,所以extends只能单次扩展一个组件。 执行的先后顺序和mixins一样,另外扩展的方法与原生的冲突时,扩展的方法不生效,这点跟混入一样。相比于mixins,extends触...

qq_32615575的博客 2257

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Vue使用extends+mixins+动态组件实现组件继承

Vue使用extends+mixins+动态组件实现组件继承 场景 基于Jeecg-Boot Vue前端框架改造,主要通过 Vue mixins 覆写一些方法逻辑(JeecgListMixin.js) 所有表单的List列表展示的template视图具有共性,唯一不同的在于各自触发的modal框(列表基于antd vue table) 不同的modal框通过Vue的 动态组件 解决 最终,子类通过 Vue extends继承公共的父template,公共逻辑置于mixins中,而子类实际的data数据(c

yokoのBlog 3354

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

vuejs中mixins,extends,extend的区别

1、mixins mixins是对组件的扩充,包括methods、components、directive等。 mixins的几个规则: 1、触发生命周期钩子函数时,先触发mixins组件中的钩子,再调用组件自身的函数。 2、当mixins数组中有watch,混入的组件中也存在watch,并且watch中的key相同时,混入组件中的watch会先触发,然后再是组件中的watch触发 3、虽然也能在...

weixin_34290352的博客 1577

vue组件mixins和extends的使用

一、mixin全局混入 全局注册一个混入,影响注册之后所有创建的每个 Vue 实例。插件作者可以使用混入,向组件注入自定义的行为。不推荐在应用代码中使用。全局mixin就是给全部Vue文件添加一些公用的实例(方法,过滤器and so on) 1、在src目录下新建一个mixins目录,在mixins目录下新建一个index.js文件。写一个供全部vue实例使用的跳转方法。 export d...

aaa333qwe的博客 1717

vue中mixins、extends、extend使用及区别

文章目录mixins mixins mixins:选项接收一个混入对象的数组。这些混入对象可以像正常的实例对象一样包含实例选项,这些选项将会被合并到最终的选项中 应用场景:在项目中,如果我们需要提取公用的数据或者通用的方法,并且这些数据与方法不需要组件间进行维护,就可以使用mixins ...

张小杰 5851

Vue选项之extends扩展

extends扩展和mixins很像,不同点是extends传入的是对象写法,而mixins是数组写法. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-w...

庚中 9489

vue 之extends的使用方法总结

vue extends 和extend的使用方法总结 作用:都是扩展vue组件时使用 通过外部增加对象的形式,对构造器进行扩展。由于它接收的参数是简单的选项对象或构造函数,所以extends只能单次扩展一个组件。 import Vue from 'vue' const comp={//声明第一个对象comp props:{ active:Boolean, propOne:Str...

rpf1234的博客 1万+

Vue中的mixin vs extends

Vue中的mixin和extends

太阳与星辰的博客 491

vue的extends的使用

vue的extends和mixins类似,通过暴露一个extends对象到组件中使用。 extends会比mixins先执行。执行顺序:extends > mixins > 组件 extends只能暴露一个extends对象,暴露多个extends不会执行 test.js //暴露两个mixins对象 export const mixinsTest = { m...

weixin_30628801的博客 1090

vue中使用extends继承父类组件改写data属性问题

记首次开博  给大家分享最近踩到的一个vue开发中的坑 最近跳槽换了一家公司,技术栈也从Ng4换成了vue.js 2.0版本,使用的vue-cli脚手架 由于是开发的一个后台管理系统  大部分模块的table都差不太多,那当然是选择使用继承的方式来实现 less code,do more things! 查阅vue官方API发现确实也提供了extends解决途径 当我开发好base基类组

dejavu328的博客 1万+

Vue中使用slot或extends实现相似组件的继承复用

Vue中相似组件复用的几种种方法问题几种复用页面的方法 问题 项目中有七八个页面是非常相似的,都是从左边选择人员,通过按钮移动到右边。下面截取了部分页面,这几个页面只有画红圈的地方可能有区别: 几种复用页面的方法 最简单的方式是把这七八个页面的内容封装到一个组件中去,通过组件的属性控制不同部分的显示,但是这样会导致页面内容太多,不同页面的逻辑混到一起,不好维护。 另一种方式是把公共部分封装到一个组件中去,最下方使用<slot name="footer">开放一个接口,使用的时候通过f

u012334071的专栏 2938

Vue工程化中创建全局组件、extend创建组件、extends配置组件、异步组件

工程化中创建全局组件需要在文件夹下创建,并且全局组件需要写在 js 文件内。步骤:编写 index.js 文件 编写入口文件 main.js 文件 编写父组件 App.vue 文件 在工作中,我们更喜欢下面这种写法:我们需要在 loading 文件夹下再创建一个 文件,然后修改以下文件的写法,入口文件和父组件的写法不变。文件: 文件: 我们创建Vue实例时,都会有一个el选项,来指定实例的根节点,如果不写el选项,那组件就处于未挂载状态。Vue.extend 的作用,就是基于 Vue 构造器,创

月光晒了很凉快的博客 1487
上一篇: 微信小程序之蓝牙连接全过程封装
其人美且偲
博客等级 码龄4年 24粉丝 6原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值