element——switch接口成功后赋值打开开关

news2024/10/7 20:36:33

应用场景

基本用法使用v-model双向绑定值,进行开关控制

在这里插入图片描述

例子1:需求:

**点击switch,出弹窗,点击弹窗保存按钮调接口成功后再赋值(row.orderButtonValue=“1”)打开switch开的状态变颜色。
在vue 中使用 :value动态的绑定值。
(在Vue中,冒号(:)被称为v-bind指令的缩写。v-bind指令是Vue中非常强大的一个指令,它用于动态绑定数据到HTML标签的属性中。简而言之,冒号就是v-bind指令的语法糖。
说白了,冒号是用来告诉Vue,我要绑定数据到这个属性里,属性的名称就是冒号后面的部分)
**

 <el-table-column prop="orderButtonValue" label="指令" min-width="100" align="center">
        <template slot-scope="scope">
          <el-switch
            v-show="scope.row.orderButton == 1"
            @change="changeClick(scope.row, scope.$index)"
            :value="scope.row.orderButtonValue"
            active-value="1"//打开为 字符串1
            inactive-value="0"//关闭 字符串0
            active-color="#67C8FF"
            inactive-color="#CCCCCC"
            >{{ scope.row.orderButtonValue }}
          </el-switch>
   
        </template>
      </el-table-column>



  <div class="dialog">
      <el-dialog
        class="params_dialog"
        title="提示"
        :visible.sync="textDialogVisible"
        width="30%"
        center
      >
        <p class="text desc">
          <svg-icon
            icon-class="el-warning"
            style="width: 16px; height: 16px; margin-right: 18px; color: #ff6c00"
          />{{ orderVariableNameDesc }}
        </p>
        <p class="text con">是否确认?</p>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" style="width: 76px; height: 36px" @click="textSaveClick"
            >保存</el-button
          >
          <el-button
            @click="textCancelBtn"
            style="
              border: 1px solid #4683ff;
              background-color: #011948;
              color: #4683ff;
              width: 76px;
              height: 36px;
            "
            >取消</el-button
          >
        </div>
      </el-dialog>
    </div>
 //指令按钮
    changeClick(row, index) {
      let rowPlcValue = row.orderButtonValue;//row.orderButtonValue 接口返回值
      //启动+弹窗
      if (rowPlcValue === '0') {
        this.orderVariableNameDesc = row.orderVariableNameDesc;
        this.textDialogVisible = true;
        this.switchIndex = index;
        return;
      }
    
      if (rowPlcValue === '1') {
        this.tableData.splice(index, 1, this.tableData[index]);
      }

      if (row.testOperator === 'debug_onLine') {
        //调试中--可打开  isAddressShow现场使能按钮
        if (
          (row.orderButtonValue === '0' && this.isAddressShow === true) ||
          (row.orderButtonValue === null && this.isAddressShow === true)
        ) {
          let params = {
               //传参数...
          };
          //write接口
          getWriteInfo(params).then(res => {
            if (res.code == 200) {
              //指令接口:
              let params = {
                  //传参数...
              };
              getOrderButtonInfo(params).then(res => {
                res.data.forEach(item => {
                  this.tableData.forEach(v => {
                    //表格
                    if (item.debugContentId === v.id && item.orderButtonValue === '1') {
                      v.orderButtonValue = '1';//switch打开
                    } else if (item.debugContentId === v.id && item.orderButtonValue === '0') {
                      v.orderButtonValue = '0';//switch关闭
                    }
                  });
                });
              });
            }
          });
        } else if (row.orderButtonValue === '1' && this.isAddressShow === true) {
          //调试中--可关闭
          let params = {
          //传参数...
          };
          getWriteInfo(params).then(res => {
            if (res.code == 200) {
              //指令接口:
              let params = {
                  //传参数...
              };
              getOrderButtonInfo(params).then(res => {
                res.data.forEach(item => {
                  this.tableData.forEach(v => {
                    //表格
                    if (item.debugContentId === v.id && item.orderButtonValue === '1') {
                      v.orderButtonValue = '1';
                    } else if (item.debugContentId === v.id && item.orderButtonValue === '0') {
                      v.orderButtonValue = '0';
                    }
                  });
                });
              });
            }
          });
        } else {
          this.$message.warning('请先点击现场手动调试使能');
        }
      } else if (
        row.orderButtonValue === '1' &&
        row.testOperator !== 'debug_onLine' &&
        this.isAddressShow === true
      ) {
        //可关闭
        let params = {
             //传参数...
        };
        getWriteInfo(params).then(res => {
          if (res.code == 200) {
            console.log('write接口');
            //指令接口:
            let params = {
                //传参数...
            };
            getOrderButtonInfo(params).then(res => {
              res.data.forEach(item => {
                this.tableData.forEach(v => {
                  //表格
                  if (item.debugContentId === v.id && item.orderButtonValue === '1') {
                    v.orderButtonValue = '1';
                  } else if (item.debugContentId === v.id && item.orderButtonValue === '0') {
                    v.orderButtonValue = '0';
                  }
                });
              });
            });
          }
        });
      } else {
        this.$message.warning('请先点击现场手动调试使能');
      }
    },








 //指令弹窗-----保存
    textSaveClick() {
      let params = {
           //传参数...
      };
      this.textDialogVisible = false;
      this.tableData[this.switchIndex].orderButtonValue = '1';
      this.tableData.splice(this.switchIndex, 1, this.tableData[this.switchIndex]);
      getWriteInfo(params).then(res => {
        if (res.code == 200) {
          //指令接口:
          let params = {
           //传参数....
          };
          getOrderButtonInfo(params).then(res => {
            console.log(res.data, '1057');
          });
        }
      });
    },

例子2

 <div class="left-link">
              <span class="left-title link-btn">通信连接</span>
              <el-switch
                :value="linkValue"
                active-color="#4683FF"
                inactive-color="#CCCCCC"
                @change="switchClick"
              >
              </el-switch>
            </div>
 //通信连接
    switchClick() {
      if (this.linkValue === false) {
        if (this.isValueNum === 2) {
          this.linkValue = true;
          let params = {
          //传参数...
          };
          //打开通信
          hubConnectInfo(params).then(res => {
            if (res.code === 200) {
              this.$message.success(res.message);
              this.slaveId = res.data.slaveId;
              this.slaveIdCopy = res.data.slaveId;
              this.acquireInfo(res.data.slaveId);
              this.$emit('switchType', true);
            }
          });
        } else {
          this.$message.error('请先打开串口号!');
        }
      } else if (this.linkValue === true) {
        this.linkValue = false;
        //关闭通信
        offDebugInfo().then(res => {
          if (res.code === 200) {
            clearInterval(this.timer);
            this.timer = null;
            this.$emit('switchType', false);
            //关闭机器把调桨控制值清,颜色恢复默认
            this.clearColorValue();
          }
        });
      }
    },

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

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

相关文章

【openEuler创新项目探索】一个Java端的向量化BLAS库VectorBLAS

VectorBLAS简介 VectorBLAS是一个使用Java语言实现的向量化BLAS高性能库&#xff0c;目前已在openEuler社区开源。 VectorBLAS通过循环展开、矩阵分块和内存布局优化等算法优化&#xff0c;对BLAS函数进行了深度优化&#xff0c;并利用VectorAPI JDK提供的多种向量化API实现。…

快速学习ES6新特性Promise之实例代码

&#xff08;一&#xff09;首先用setTimeout模拟一个异步请求&#xff0c;然后封装成一个new Promise <script type"text/javascript">function createAudioFileAsync() {console.log(调用返回数据前);let newPromise new Promise((resolve, reject) > {…

电子邮件营销模板怎么写?如何做营销邮件?怎么设计EDM邮件模板?

推荐的电子邮件营销模板有哪些&#xff1f; 电子邮件营销模板是现代营销策略中的重要组成部分。通过精心设计的邮件模板&#xff0c;您可以有效地吸引客户&#xff0c;传达信息&#xff0c;并提高销售率。在本文中&#xff0c;我们将介绍如何撰写出色的电子邮件营销模板&#x…

猫头虎博主赠书一期:《Kubernetes原生微服务开发》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

C语言(第三十三天)

3.1.2 画图推演 3.2 举例2&#xff1a;顺序打印一个整数的每一位 输入一个整数m&#xff0c;打印这个按照顺序打印整数的每一位。 比如&#xff1a; 输入&#xff1a;1234 输出&#xff1a;1 2 3 4 输入&#xff1a;520 输出&#xff1a;5 2 0 3.2.1 分析和代码实现 这个题目&a…

算法通关村第8关【黄金】| 寻找祖先问题

思路&#xff1a;递归三部曲 第一步&#xff1a;确定参数和返回值 题目要求找到指定的结点&#xff0c;就需要返回结点。 题目又涉及到p,q就需要传入p,q&#xff0c;需要遍历传入root 第二步&#xff1a;确定终止条件 当遍历到结点为空说明到底没找到返回空 或者遍历到p,…

cyclictest stress 工具 使用

工具介绍 1. Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异&#xff0c;以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟 2.stress是Linux的一个压力测试工具&#xff0c;可以对CPU、Memory、IO、磁盘进行…

ZQGZ-08、61、44、80 导轨安装系列中间继电器 JOSEF约瑟 增加保护和控制线路

系型型号 ZQGZ-08 ZQGZ-61 ZQGZ-44 ZQGZ-80 ZQGZ-RJ08 ZQGZ-RJ61 ZQGZ-RJ44 ZQGZ-RJ80 ZQGZ-PJ08 ZQGZ-PJ61 ZQGZ-PJ44 ZQGZ-PJ80 ZQGZ-RY08 ZQGZ-RY61 ZQGZ-RY44 ZQGZ-RY80 ZQGZ-PY08 ZQGZ-PY61 ZQGZ-PY44 ZQGZ-PY80 ZQGZ-08、61、44、80 导轨安装系列中间继电器用…

以太网交换机高稳定性时钟系统应用方案

随着网络技术的不断发展&#xff0c;我们的生活也发生着巨大的变化&#xff0c;这离不开以太网起到的重大作用&#xff0c;全球大部分地区的以太网交换机市场都出现了增长。 那么&#xff0c;平常我们所说的以太网交换机到底是什么&#xff1f;今天小扬给大家科普科普以太网交…

ModaHub魔搭社区:WinPlan经营大脑查询业务表单详情

查询业务表单详情 ●URL:https://open.shulead.com/api/schema/detail ●Method:POST 请求参数 WinPlan决策系统 算力 阿里云 腾讯云 AWS亚马逊 框架 业务数据基座 WinPlan垂直大模型 模型 分析模型 预测模型 决策模型 应用 精准预测

Java之API详解之Runtime的详细解析

3.1 概述 Runtime表示Java中运行时对象&#xff0c;可以获取到程序运行时设计到的一些信息 3.2 常见方法 常见方法介绍 我们要学习的Object类中的常见方法如下所示&#xff1a; public static Runtime getRuntime() //当前系统的运行环境对象 public void exit(int statu…

ssm+vue医院医患管理系统源码和论文

ssmvue医院医患管理系统源码和论文077 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm vue.js 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已…

尚硅谷宋红康MySQL笔记 14-18

是记录&#xff0c;不会太详细&#xff0c;受本人知识限制会有错误&#xff0c;会有个人的理解在里面 第14章 视图 了解一下&#xff0c;数据库的常见对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是记…

计算机毕设 基于机器学习与大数据的糖尿病预测

文章目录 1 课题背景2 数据导入处理3 数据可视化分析4 特征选择4.1 通过相关性进行筛选4.2 多重共线性4.3 RFE&#xff08;递归特征消除法&#xff09;4.4 正则化 5 机器学习模型建立与评价5.1 评价方式的选择5.2 模型的建立与评价5.3 模型参数调优5.4 将调参过后的模型重新进行…

vscode 对模型train、detect脚本进行Debug时配置参数

我们训练yolov5代码时&#xff0c;一般会配置一些参数&#xff0c;比如模型权重文件--weights, 模型的配置文件--cfg, 以及训练的数据--data, 对应的训练脚本为: 训练train python train.py -- weights ./yolov5s.pt --cfg models\yolov5s.yaml --data ./data/coco128.yaml…

3.卷积层相关概念

3.1 卷积原理 ① Conv1d代表一维卷积&#xff0c;Conv2d代表二维卷积&#xff0c;Conv3d代表三维卷积。 ② kernel_size在训练过程中不断调整&#xff0c;定义为3就是3 * 3的卷积核&#xff0c;实际我们在训练神经网络过程中其实就是对kernel_size不断调整。 ③ 可以根据输入…

企业注册小程序流程

一、准备资料&#xff1a; 1、未被微信公众平台注册&#xff0c;未被微信开放平台注册&#xff0c;未被个人微信号绑定的邮箱 2、企业名称&#xff08;与企业注册证上的一致&#xff09;3、营业执照注册号&#xff08;15位&#xff09;&#xff08;或18位统一社会信用代码&am…

基于Servlet实现博客系统--- 前后端分离

目录 一.博客系统概述 1.软件的生命周期 2.学习目标 二.数据库的建立 2.插入数据 三.创建项目 1.建立maven项目 2.导入相关的依赖 3.编写工具类 1.编写数据库相关的工具类 2.编写字符串的工具类 3.编写用户的工具类 4.创建实体类 1.创建user实体类 2.创建blog…

window系统中如何判断是物理机还是虚拟机及VMPROTECT无法检测云主机

为什么要判断物理机&#xff0c;因为授权不能对虚拟机安装后的软件进行授权。虚拟机可以复制可以克隆&#xff0c;无法作为一个不可复制ID来使用。 总结了如何判断物理机&#xff1a; 1. 用systeminfo的系统型号。&#xff08;注&#xff0c;有资料是看处理器和bios。但是我这…

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

本站以分享各种运维经验和运维所需要的技能为主 《python》&#xff1a;python零基础入门学习 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…