编辑, 抽成组件

news2024/12/22 13:05:46

问题 

错误思路:

1 dept不能修改, 用watch监听一下:赋值给新的变量进行修改,

问题: currentDept 发生改变, depth也发生了改变,因为是浅拷贝, 用了json.pase(json.stringify(value))

还有问题: 修改后,取消,再点进去,发现currentpet 还是变化后的值,

因为watch监听dept,你在进入编辑弹框,还是没有变化,不会重新赋值给currentDept。导致currentDept还是变化后的值

解决:

监听visible,而不是currentDept: 只要进入一次,就重新赋值

<template>
  <el-dialog
    top="48px"
    width="500"
    title="编辑销方信息"
    :modelValue="visible"
    @close="handleClose()"
  >
    <el-form
      ref="ruleFormRef"
      :model="ruleForm"
      label-width="150px"
      class="demo-ruleForm"
      status-icon
    >
      <el-form-item label="分司名称: " prop="companyName">
        <div>{{ ruleForm.companyName }}</div>
      </el-form-item>
      <el-form-item
        label="分公司全称: "
        prop="orgName"
        :rules="{
          required: true,
          message: '请输入分公司全称',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.orgName" placeholder="请输入分公司全称" />
      </el-form-item>
      <el-form-item
        label="地址: "
        prop="address"
        :rules="{
          required: true,
          message: '请输入地址',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.address" placeholder="请输入地址" />
      </el-form-item>
      <el-form-item
        label="纳税人识别号: "
        prop="taxNo"
        :rules="{
          required: true,
          message: '请输入纳税人识别号',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.taxNo" placeholder="请输入纳税人识别号" />
      </el-form-item>
      <el-form-item
        label="电话: "
        prop="telPhone"
        :rules="{
          required: true,
          message: '请输入电话',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.telPhone" placeholder="请输入电话" />
      </el-form-item>
      <el-form-item
        label="开户行: "
        prop="bankName"
        :rules="{
          required: true,
          message: '请输入开户行',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.bankName" placeholder="请输入开户行" />
      </el-form-item>
      <el-form-item
        label="银行账号: "
        prop="bankNumber"
        :rules="{
          required: true,
          message: '请输入银行账号',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.bankNumber" placeholder="请输入银行账号" />
      </el-form-item>
      <el-form-item
        label="开票点编码: "
        prop="openInvoiceCode"
        :rules="{
          required: true,
          message: '请输入开票点编码',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.openInvoiceCode" placeholder="请输入开票点编码" />
      </el-form-item>
      <el-form-item
        label="电子票开票点编码: "
        prop="electronOpenInvoiceCode"
        :rules="{
          required: true,
          message: '请输入电子票开票点编码',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.electronOpenInvoiceCode" placeholder="请输入电子票开票点编码" />
      </el-form-item>
      <el-form-item
        label="预开张数: "
        prop="invoicePreNum"
        :rules="{
          required: true,
          message: '请输入预开张数',
          trigger: 'change'
        }"
      >
        <el-input v-model="ruleForm.invoicePreNum" placeholder="请输入预开张数" />
      </el-form-item>
    </el-form>
    <template #footer>
      <el-button @click="handleClose()">取消</el-button>
      <el-button type="primary" @click="confirm(ruleFormRef)">保存</el-button>
    </template>
  </el-dialog>
</template>

<script setup lang="ts">
import type { FormInstance } from "element-plus"
import { editSellerInformation } from "@/api/sellerInformation/list"
let props = defineProps({
  visible: {
    type: Boolean,
    default: false
  },
  editData: {
    type: Object,
    default: () => ({})
  }
})
const ruleFormRef = ref<FormInstance>()
const ruleForm = reactive({
  companyId: "",
  companyName: "",
  orgName: "",
  address: "",
  taxNo: "",
  telPhone: "",
  bankName: "",
  bankNumber: "",
  openInvoiceCode: "",
  electronOpenInvoiceCode: "",
  invoicePreNum: ""
}) as any
const emits = defineEmits(["closeDialog"])
const handleClose = (getData?: boolean) => {
  emits("closeDialog", getData ? true : false)
}
watch(
  () => props.visible,
  (newVal) => {
    if (newVal) {
      ruleForm.companyId = props.editData.companyId
      ruleForm.companyName = props.editData.companyName
      ruleForm.orgName = props.editData.orgName
      ruleForm.address = props.editData.address
      ruleForm.taxNo = props.editData.taxNo
      ruleForm.telPhone = props.editData.telPhone
      ruleForm.bankName = props.editData.bankName
      ruleForm.bankNumber = props.editData.bankNumber
      ruleForm.openInvoiceCode = props.editData.openInvoiceCode
      ruleForm.electronOpenInvoiceCode = props.editData.electronOpenInvoiceCode
      ruleForm.invoicePreNum = props.editData.invoicePreNum
    }
  }
)
// 确定按钮
const confirm = async (formEl: FormInstance | undefined) => {
  if (!formEl) return
  await formEl.validate((valid, fields) => {
    if (valid) {
      editSellerInformation(ruleForm).then((res: any) => {
        if (res.code == 200) {
          ElMessage.success(res.msg)
          handleClose(true)
        } else {
          ElMessage.error(res.msg)
        }
      })
    } else {
      console.log("error submit!", fields)
    }
  })
}
</script>

<style scoped lang="scss">
.demo-ruleForm {
  padding-right: 30px;
  padding-bottom: 20px;
}
</style>

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

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

相关文章

<项目代码>YOLO Visdrone航拍目标识别<目标检测>

项目代码下载链接 &#xff1c;项目代码&#xff1e;YOLO Visdrone航拍目标识别&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90163918YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一…

如何从全局视角规划项目与战略决策(“精准接送”案例、技术架构设计与选型、业务逻辑及产品商业模式探讨)

文章目录 1. 引言2. 项目背景与需求分析2.1 业务背景&#xff08;5W分析法&#xff09;2.2 需求概述功能需求非功能需求 2.3 典型挑战 3. 技术架构设计与选型3.1 技术选型扩展表3.2 架构设计的深度思考3.2.1 核心架构原则3.2.2 实际架构实践 4. 业务逻辑及产品商业模式探讨4.1 …

QT exe文件设置图标【终极解决方案!】

会报错&#xff1a;makefile error 1 将图片转换成ico文件&#xff0c;不能自己改后缀&#xff01;多试几个转换的网站&#xff0c;下面是我使的转换网站【成功了】 在线转换网址&#xff1a; https://onlineconvertfree.com/zh/convert/jpg/ 将图片放在.pro同级下 .pro和…

JAVA:组合模式(Composite Pattern)的技术指南

1、简述 组合模式(Composite Pattern)是一种结构型设计模式,旨在将对象组合成树形结构以表示“部分-整体”的层次结构。它使客户端对单个对象和组合对象的使用具有一致性。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什么是组合模式 组合模式…

CTFHUB 历年真题 afr-1

发现传参为 ?phello&#xff0c;尝试 ?pflag 发现都是 no 尝试假设它是个PHP文件&#xff0c;利用php伪协议 ?pphp://filter/readconvert.base64-encode/resourceflag 得到 base64 编码再解码发现了本题的 flag n1book{afr_1_solved}

共创共建!葡萄城 SpreadJS 完成 HarmonyOS NEXT 操作系统兼容认证

最新技术资源&#xff08;建议收藏&#xff09; https://www.grapecity.com.cn/resources/ 近日&#xff0c;华为“企业工作必备应用鸿蒙化论坛”在北京圆满落幕&#xff0c;论坛汇聚了众多行业精英和合作伙伴&#xff0c;聚焦讨论企业数字化转型与原生鸿蒙生态融合等话题。葡萄…

Android学习(二)-Kotlin编程语言学习

接上篇文章&#xff0c;我们写如下语法&#xff0c;重新赋值&#xff0c;你会发现报错了&#xff0c;是因为val关键字等同于Java中的final&#xff0c;是无法被改变的&#xff0c;如果想更改数值&#xff0c;换成var即可 函数学习 函数的基本概念 函数是用于封装一段代码的载…

【JavaEE进阶】第一个Spring Boot程序

目录 &#x1f334;安装插件 &#x1f384;Spring Boot介绍 &#x1f333;Spring Boot项目创建 &#x1f6a9;创建Spring Boot项目 &#x1f3c0;jar 包下载不下来问题 &#x1f6a9;启动项目 &#x1f332;目录介绍 &#x1f6a9;src文件 &#x1f6a9;target文件 &…

Oracle 中间件 Webcenter Portal服务器环境搭建

环境信息 服务器基本信息 如下表&#xff0c;本次安装总共使用2台服务器&#xff0c;具体信息如下&#xff1a; Webcenter1服务器 归类 SOA服务器 Ip Address 172.xx.xx.xx.xx HostName wcc01.xxxxxx.com Alias wccprd01 Webcenter2服务器 归类 OSB服务器 Ip Addr…

浅谈文生图Stable Diffusion(SD)相关模型基础

1.U-Net模型基础 1.基础概念 UNet模型是一种基于卷积神经网络的图像分割算法&#xff0c;它采用了U型的网络结构&#xff0c;由编码器&#xff08;下采样路径&#xff09;和解码器&#xff08;上采样路径&#xff09;两部分组成。 编码器负责提取输入图像的特征&#xff0c;…

【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析

目录 一、前言 二、Spring Boot 简介 三、Spring Boot 核心模块 四、Spring Boot 项目实战&#xff1a;构建一个简单的 RESTful API 1. 创建 Spring Boot 项目 2. 配置数据库 3. 创建实体类 4. 创建 JPA 仓库接口 5. 创建服务层 6. 创建控制器层 7. 测试 API 8. 运…

css 动画实现从中间到两边亮度逐渐变暗的流水灯效果

先看效果&#xff1a; 快结束效果 随着离中心点距离逐渐边远&#xff0c;亮度逐渐变暗 完整的视线代码如下&#xff1a; <template><div class"container"><div class"runner bottom to-right"></div><div class"runner …

k8s迁移——岁月云实战笔记

新系统使用rockylinux9.5&#xff0c;旧系统虚拟机装的是centos7 1 目标服务器 1.1 禁止swap swapoff -a vi /etc/fstab #/dev/mapper/rl-swap none swap defaults 0 0 #执行&#xff0c;swap一行都是0 free -h 1.2 关闭防火墙 只是为了减…

Vulnhub靶场Apache解析漏洞

一.apache_parsing 原理&#xff1a;Apache HTTPD ⽀持⼀个⽂件拥有多个后缀&#xff0c;并为不同后缀执⾏不同的指令。在Apache1.x/2.x中Apache 解析⽂件的规则是从右到左开始判断解析,如果后缀名为不可识别⽂件解析,就再往左判断。如 1.php.xxxxx 打开靶场 创建一个名为1.p…

《Java核心技术I》Swing中单选按钮

单选按钮 构造ButtonGroup类型对象。 将JRadioButton对象添加到按钮组中。 new JRadioButton("Small",false)&#xff0c;第二个参数是初始状态。 buttonGroup.getSelection().getActionCommand()获得当前选中的按钮动作命令。 选择字体大小案例 package swing…

在window环境下安装openssl生成钥私、证书和签名,nodejs利用express实现ssl的https访问和测试

在生成我们自己的 SSL 证书之前&#xff0c;让我们创建一个简单的 Express应用程序。 要创建一个新的 Express 项目&#xff0c;让我们创建一个名为node-ssl -server 的目录&#xff0c;用终端cmd中进入node-ssl-server目录。 cd node-ssl-server 然后初始化一个新的 npm 项目…

Webpack学习笔记(5)

1.拆分开发环境和生产环境配置 很多配置在开发环境和生产环境存在不一致的情况&#xff0c;比如开发环境没有必要设置缓存&#xff0c;生产环境需要设置公共路径等等。 2.公共路径 使用publicPath配置项&#xff0c;可以通过它指定应用程序中所有资源的基础路径。 webpack.…

桌面图形界面生成原理:从流水灯到电脑屏幕

桌面图形界面是我们在使用电脑时接触最多的一个部分。它的美观、简洁、易用都给我们的生活带来了极大的便利。但是&#xff0c;你是否想过&#xff0c;这样的界面是如何生成的呢&#xff1f;让我们从流水灯的原理开始&#xff0c;一步步揭开桌面图形界面生成的奥秘。 一、流水…

html+css网页设计 美食 百味美食4个页面

htmlcss网页设计 美食 百味美食4个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

WPF DataTemplate 数据模板

DataTemplate 顾名思义&#xff0c;数据模板&#xff0c;在 wpf 中使用非常频繁。 它一般用在带有 DataTemplate 依赖属性的控件中&#xff0c;如 ContentControl、集合控件 ListBox、ItemsControl 、TabControls 等。 1. 非集合控件中使用 <UserControl.Resources>&l…