发现一个对话框中的按钮,全部失效,点击都没有任何反应,已经解决

news2024/12/17 3:26:33

前端问题,技术vue2,ts。
发现一个对话框中的按钮,全部失效,点击都没有任何反应。
因为我只在template标签中加入下面这个代码,并没有注册。
只要有一个子组件没有注册,就会影响所有的按钮,使当前组件中的所有按钮失效。

<el-button style="margin-left: 10px;" type="primary" plain size="mini" @click="onAnti">生成防伪码</el-button>
<anti-fake-list :visible="aflVis" @close="onaflClose" />

在这里插入图片描述

发生这个问题的原因是我在config-form2.vue 这个文件中,引入新的组件anti-fake-list.vue,但是我没有注册到config-form2.vue 这个文件中。
确保 anti-fake-list 组件已经正确注册到当前组件中。
什么叫注册呢?
就是在脚本中加入下面代码。

import AntiFakeList from './anti-fake-list.vue'

@Component({
  name: 'ave-form',
  components: {
    WFormInput,
    WFormDatePicker,
    WFormSelect,
    WFormTextarea,
    WFormRadios,
    WFormSingleImage,
    WFormMultipleImage,
    WFormEditor,
    InviteCodeList,
    AntiFakeList
  }
})

在这里插入图片描述
在这里插入图片描述

<template>
  <el-dialog
    :visible="visible"
    :before-close="handleTopRightClose"
    :close-on-click-modal="false"
    :title="`${operateType === 'add' ? '添加' : operateType === 'view' ? '查看' : operateType === 'edit' ? '编辑' : ''}`"
    width="55vw"
    top="15vh"
    append-to-body
    destroy-on-close
  >
    <div class="ave-form-wrap">
      <div class="ave-form-box">
        <el-form>
          <w-form-select
            v-model="form.identificationPointAdminId"
            label="识别点管理"
            label-width="120px"
            :operate-type="operateType"
            :list="clistValue"
            option-label="nickname"
            option-value="friendId"
          />
          <w-form-select
            v-model="form.compareAdminId"
            label="对比负责人"
            label-width="120px"
            :operate-type="operateType"
            :list="clistValue"
            option-label="nickname"
            option-value="friendId"
          />
          <w-form-select
            v-model="form.brandId"
            label="品牌"
            label-width="120px"
            :operate-type="operateType"
            :list="brandSels"
            option-label="name"
            option-value="id"
          />
        </el-form>
      </div>
    </div>
    <div slot="footer" class="form-footer">
      <div class="operateArea">
        <div class="left-btns">
          <el-button type="primary" plain size="mini" @click="showInviteForm">生成邀请码</el-button>
          <el-button style="margin-left: 10px;" type="primary" plain size="mini" @click="onAnti">生成防伪码</el-button>
        </div>
        <div class="right-btns">  
          <el-button @click="handleFooterClose">取消</el-button>
          <el-button v-if="operateType !== 'view'" size="mini" type="primary" @click="handleSubmit">提交</el-button>
        </div>
      </div>
    </div>  
    <invite-code-list 
      :visible.sync="inviteFormVisible" 
      @success="handleInviteSuccess" 
    />
    <anti-fake-list :visible="aflVis" @close="onaflClose" />
  </el-dialog>
</template>
<script lang="ts">
import { Component, Vue, Prop, Emit, Watch } from 'vue-property-decorator'
import { AppModule } from '@/store/modules/app'
import { UserModule } from '@/store/modules/user'
import { productAll } from '@/api/product'
import { esave } from '@/api/fake-config'
import { qedits as brandAll } from '@/api/brand'

import WFormInput from '@/components/DialogForm/func/w-form-input.vue'
import WFormSelect from '@/components/DialogForm/func/w-form-select.vue'
import WFormTextarea from '@/components/DialogForm/func/w-form-textarea.vue'
import WFormDatePicker from '@/components/DialogForm/func/w-form-date-picker.vue'
import WFormRadios from '@/components/DialogForm/func/w-form-radios.vue'
import WFormSingleImage from '@/components/DialogForm/func/w-form-single-image.vue'
import WFormMultipleImage from '@/components/DialogForm/func/w-form-multiple-image.vue'
import WFormEditor from '@/components/DialogForm/func/w-form-editor.vue'
import InviteCodeList from './invite-code-list.vue'
import AntiFakeList from './anti-fake-list.vue'

@Component({
  name: 'ave-form',
  components: {
    WFormInput,
    WFormDatePicker,
    WFormSelect,
    WFormTextarea,
    WFormRadios,
    WFormSingleImage,
    WFormMultipleImage,
    WFormEditor,
    InviteCodeList,
    AntiFakeList
  }
})
export default class extends Vue {
  public role = UserModule.roles[0]
  public sid = UserModule.id

  @Prop({ default: () => {} })
  private value?: any

  @Prop({ default: true })
  private visible!: boolean

  @Prop({ default: 'add' })
  private operateType!: string

  @Prop({ default: () => [] })
  private clist!: any

  @Watch('clist')
  watchClist(v: any) {
    this.clistValue = [{ nickname: '自己', friendId: this.sid }, ...v]
  }

  @Watch('value')
  watchValue(v: any) {
    this.$nextTick(() => {
      this.getProducts()
      this.getBrands()
      this.form = { ...v }
    })
  }

  private form: any = {}
  private productList: any = []
  private clistValue: any = []
  private brandSels: any = []
  private inviteFormVisible = false
  private antiCode = ''

  private async getProducts() {
    const res: any = await productAll()
    if (res?.code === 0) {
      this.productList = res?.data?.content
    }
  }

  private async getBrands() {
    const res: any = await brandAll()
    this.brandSels = res?.data
  }

  private handleTopRightClose() {
    this.$emit('close', false)
  }
  

  private handleFooterClose() {
    this.$emit('close', false)
  }

  private handleSubmit() {
    this.save()
  }

  private async save() {
    const data = this.form
    const res: any = await esave(data)
    if (res?.code === 0) {
      this.$emit('close', true)
    }
  }

  private showInviteForm() {
    console.log('showInviteForm 被调用');
    // this.$store.state.inviteFormVisible = true;
    this.inviteFormVisible = true
  }

  private handleInviteSuccess() {
    // 邀请码生成成功后的处理,比如刷新列表等
  }

  // private aflVis: boolean = false

  // private onAnti() {
  //   // todo
  //   this.aflVis = true
  // }

  @Watch('inviteFormVisible')
  private onInviteFormVisibleChange(newVal: boolean) {
    console.log('inviteFormVisible 变化:', newVal);
  }

  mounted() {}
}
</script>

<style scoped lang="scss">
.ave-form-wrap {
  width: 100%;
  max-height: 90vh;
  overflow: auto;
  .ave-form-box {
    width: 30%;
  }
}

.form-footer {
  .operateArea {
    display: flex;
    justify-content: space-between;
    align-items: center;

    .left-btns {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .right-btns {
      display: flex;
      gap: 10px;
    }
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2260829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RT系列机器人详细介绍(BC-Z、RT-1、OMM、RT-Trajectory、Q-Transformer、RT-2、RT-X、RT-H)

目录 一、BC-Z二、RT-1三、MOO四、RT-Trajectory五、Q-Transformer六、RT-2七、RT-X八、RT-H参考文献 一、BC-Z BC-Z通过结合大规模的交互式模仿学习系统、灵活的任务嵌入和多样化的数据&#xff0c;实现了在未见任务上的零样本泛化&#xff0c;为机器人学习领域提供了一种新的…

鸿蒙系统-前端0帧起手

鸿蒙系统-前端0帧起手 先search 一番 找到对应的入门文档1. 运行项目遇到问题 如下 &#xff08;手动设计npm 的 registry 运行 npm config set registry https://registry.npmjs.org/&#xff09;2.运行后不支持一些模拟器 配置一下&#xff08;如下图&#xff0c;运行成功&am…

Redis是什么?Redis和MongoDB的区别在那里?

Redis介绍 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、基于内存的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。以下是关于Redis的详细介绍&#xff1a; 一、数据结构支持 字符串&#xff08;String&#xff09; 这是Redis最…

【问题记录】07 MAC电脑,使用FileZilla(SFTP)连接堡垒机不成功

项目场景&#xff1a; 使用MAC电脑&#xff0c;以子账号&#xff08;非root&#xff09;的形式登录&#xff0c;连接堡垒机CLB&#xff08;传统型负载均衡&#xff09;&#xff0c;使用FileZilla&#xff08;SFTP&#xff09;进行FTP文件传输。 问题描述&#xff1a; MAC电脑…

从0到1实现vue3+vite++elementuiPlus+ts的后台管理系统(一)

前言&#xff1a;从这篇文章开始实现vue3vite的后台管理系统&#xff0c;记录下自己搭建后台系统图的过程。 这篇文章完成项目的初始化和基本配置&#xff0c;这一步可以直接跟着vue3官网进行。整个系列只有前端部分&#xff0c;不涉及后端。 vue3官网&#xff1a;https://cn.…

计算机网络错题

文章目录 码分复用透明传输差错检测停止-等待协议回退N帧协议CSMA/CD协议以太网交换机Vlanip地址的无分类编制方法ip地址的应用规划ip数据包的发送和转发过程路由信息协议IPI2016201720202022 2.5信道 码分复用 透明传输 差错检测 停止-等待协议 回退N帧协议 CSMA/CD协议 以太网…

报错:Method Not Allowed

当报错这个的时候就要注意了&#xff0c;自己的方法是否写对了&#xff01;&#xff01;&#xff01; 就像我的这个因为我的后端是put&#xff0c;所以这也是put&#xff0c;我报错就是因为这写了get&#xff0c;虽然页面是改变了&#xff0c;但是一刷新&#xff0c;就会原形毕…

IDEA 2024 版本配置热部署

在实际开发过程中&#xff0c;每次修改代码就得将项目重启&#xff0c;重新部署&#xff0c;对于一些大型应用来说&#xff0c;重启时间需要花费大量的时间成本。对于一个后端开发者来说&#xff0c;重启过程确实很难受啊 采用下面三步骤可以完成 1.在IDEA中settings中搜索Debb…

客户端(浏览器)vue3本地预览txt,doc,docx,pptx,pdf,xlsx,csv,

预览文件 1、入口文件preview/index.vue2、预览txt3、预览doc4、预览pdf5、预览pptx6、预览xlsx7、预览csv 1、入口文件preview/index.vue 预览样式&#xff0c;如pdf 文件目录如图所示&#xff1a; 代码如下 <template><div class"preview-wrap" ref&…

安卓低功耗蓝牙BLE官方开发例程(JAVA)翻译注释版

官方原文链接 https://developer.android.com/develop/connectivity/bluetooth/ble/ble-overview?hlzh-cn 目录 低功耗蓝牙 基础知识 关键术语和概念 角色和职责 查找 BLE 设备 连接到 GATT 服务器 设置绑定服务 设置 BluetoothAdapter 连接到设备 声明 GATT 回…

uniapp打包apk允许横屏竖屏内容翻转

文章目录 一、教程总结 一、教程 1.添加配置 "orientation": [//竖屏正方向"portrait-primary",//竖屏反方向"portrait-secondary",//横屏正方向"landscape-primary",//横屏反方向"landscape-secondary",//自然方向"…

ElasticSearch 常见故障解析与修复秘籍

文章目录 一、ElasticSearch启动服务提示无法使用root用户二、ElasticSearch启动提示进程可拥有的虚拟内存少三、ElasticSearch提示用户拥有的可创建文件描述符太少四、ElasticSearch集群yellow状态分析五、ElasticSearch节点磁盘使用率过高&#xff0c;read_only状态问题解决六…

Java——网络编程(上)

1 计算机网络 (作用资源共享和信息传递) (计算机网络组成——> 硬件——>计算机设备&#xff0c;外部设备&#xff0c;通信线路 软件——>网络操作系统&#xff0c;网络管理软件&#xff0c;网络通信协议) 计算机网络是指将地理位置不同的具有独立功能的多台计算机…

游戏引擎学习第50天

仓库: https://gitee.com/mrxiao_com/2d_game Minkowski 这个算法有点懵逼 回顾 基本上&#xff0c;现在我们所处的阶段是&#xff0c;回顾最初的代码&#xff0c;我们正在讨论我们希望在引擎中实现的所有功能。我们正在做的版本是初步的、粗略的版本&#xff0c;涵盖我们认…

Unix 和 Windows 的有趣比较

Unix 和 Windows NT 比较 来源于这两本书&#xff0c;把两本书对照来读&#xff0c;发现很多有意思的地方&#xff1a; 《Unix 传奇》 https://book.douban.com/subject/35292726/ 《观止 微软创建NT和未来的夺命狂奔 》 Showstopper!: The Breakneck Race to Create Windows…

攻防世界逆向刷题笔记(新手模式6-?)

6.1000clicks 看题目名字似乎是让咱们点击1000次之后才会出flag。本来打算用CE看能不能搜索出来数值&#xff0c;技术不到家&#xff0c;最后没有搜索到&#xff0c;还导致永劫无间打不了了。所以还是拿出IDA老实分析。 直接搜索flag字符&#xff0c;出来一大堆。张紫涵大佬说…

ANOMALY BERT 解读

出处&#xff1a; ICLR workshop 2023 代码&#xff1a;Jhryu30/AnomalyBERT 可视化效果&#xff1a; 一 提出动机 动机&#xff1a;无监督 TSAD 领域内&#xff0c;“训练集” 也缺失&#xff1a;真值标签&#xff08;GT&#xff09;&#xff1b;换句话说&#xff0c;一个…

Java——网络编程(中)—TCP通讯(下)

1 双向通讯—创建服务端 (双向通信是指通信双方中&#xff0c;任何一方都可为发送端&#xff0c;任何一方都可为接收端) (1 创建ServerSocket对象&#xff0c;accept()返回socket) (2 双向通讯——>也要创建键盘输入对象) (3 通过与客户端对应的Socket对象获取输入流对象…

JavaFX使用jfoenix的UI控件

jfoenix还是一个不错的样式&#xff0c;推荐使用&#xff0c;而且也可以支持scene builder中的拖拖拽拽 需要注意的是过高的javafx版本可能会使得某些样式或控件无法使用 比如alert控件&#xff0c;亲测javaFX 19版本可以正常使用 1.在pom.xml中引入依赖 GitHub地址https://gi…

利用cnocr库完成中文扫描pdf文件的文字识别

很多pdf文件文字识别软件都会收费&#xff0c;免费的网页版可能会带来信息泄露&#xff0c;还有一些类似于腾讯AI和百度AI的接口都有调用次数限制&#xff0c;因此&#xff0c;利用识别正确率极高且免费的cnocr库来自己动手做个pdf文件文字识别程序就是一个很不错的选择。以下程…