组件样式交替显示(点击触发tag变input)

效果展示:

默认展示经纬度数值,点击后变为input输入框可以输入
点击前:
在这里插入图片描述点击后:
在这里插入图片描述

代码:

html:
首选是一个组件v-for的循环展示,v-for中再设置两种样式

<div id="item-area">
      <div
        class="item"
        v-for="(i, index) in items"
        :key="index"
      >
        <el-input
          class="input-new-tag"
          v-show="i.isShow"
          ref="saveTagInput"
          v-model="i.VALUE"
          @keyup.enter.native="$event.target.blur()"
          @blur.stop="handleChange(i, index)"
        ></el-input>
        <el-tag
          v-show="!i.isShow"
          closable
          :disable-transitions="false"
          :style="{ backgroundColor: getColor(i.TYPE), color: 'white' }"
          @click.stop="showInput(i, index)"
          @close="deleteItem(index)"
        >
          {{ i.VALUE }}
        </el-tag>
      </div>
    </div>

items是父组件传过来的数组,数组中是对象
v-show中用了每个对象的isShow属性即 i.isShow

<el-input v-show="i.isShow"></el-input>
<el-tag v-show="!i.isShow"></el-tag>

el-input 中绑定的值是i.VALUE
el-tag 中关联数值{{i.VALUE}}
tag点击触发函数showInput()

JS:
props中:

props: {
    items: Array
  },

watch中:
监视对象某属性变化需用deep:true

watch:{
   items:{
     deep:true
   }
  },

methods中:
注意:修改数组对象中某属性要用$set()。否则无法更改。

 methods: {
 showInput(item, index) {
      let _this = this;
      if (!item.isShow) {
        _this.$set(item, "isShow", true);
      } else {
        _this.$set(item, "isShow", false);
      }
    },
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在STM32F4系列中,可以使用定时器触发ADC的交替触发模式。通过配置定时器的中断回调函数和ADC的转换完回调函数,可以实现定时器定时触发ADC的转换。 首先,在定时器的中断回调函数中,使用HAL_ADC_Start_IT函数开启ADC的中断转换。这样,在每次定时器中断发生时,都触发一次ADC的转换。 然后,在ADC的转换完回调函数中,使用HAL_ADC_Stop_IT函数关闭ADC的转换,使用HAL_TIM_Base_Stop_IT函数关闭定时器。然后,可以使用HAL_ADC_GetValue函数获取ADC转换的值,并进行相应的处理,比如打印电压信息。 最后,在转换完回调函数中,使用HAL_TIM_Base_Start_IT函数重新开启定时器,以便下一次定时器中断触发ADC的转换。 需要注意的是,在ADC初始化之后,需要进行AD校准,可以使用HAL_ADCEx_Calibration_Start函数进行校准。 下面是一个示例代码,展示了如何使用定时器触发ADC的交替触发模式: ```c void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { HAL_ADC_Start_IT(&hadc1); // 定时器中断里面开启ADC中断转换,1ms开启一次采集 } void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { HAL_ADC_Stop_IT(&hadc1); // 关闭ADC HAL_TIM_Base_Stop_IT(&htim3); // 关闭定时器 uint32_t AD_Value = HAL_ADC_GetValue(&hadc1); // 获取ADC转换的值 printf("ADC1 Reading: %d \r\n", AD_Value); // 串口打印ADC转换的值 printf("%.4f V\r\n", (AD_Value * 3.3 / 4096)); // 串口打印电压信息 HAL_TIM_Base_Start_IT(&htim3); // 开启定时器 } int main(void) { // 初始化代码省略 MX_ADC1_Init(); // ADC初始化 HAL_ADCEx_Calibration_Start(&hadc1); // AD校准 MX_USART1_UART_Init(); // 串口初始化 HAL_TIM_Base_Start_IT(&htim3); // 开启定时器 while (1) { // 主循环代码省略 } } ``` 这样,定时器每次中断时都触发一次ADC的转换,可以实现定时触发ADC的交替触发模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值