vue3.0数据驱动问题

页面中含apikey,需要脱敏,手动隐藏和显示。但是切换时隐藏和显示的文本无法切换。

问题原因: 渲染层无法接收到按钮文本变量。
解决方法: 将变量添加到返回值即可。const apiKeyMasked = ref(true); // 绑定配置详情中的API Key是否脱敏 const resultApiKeyMasked = ref(true);

json 复制代码
<template>
  <el-dialog v-model="visible" title="Dify API测试" width="90%" :close-on-click-modal="false">
    <el-form :model="form" label-width="140px" size="default">
      ...
      <!-- 绑定配置详情展示(只读) -->
      <div v-if="selectedBindingInfo" class="binding-info-section">
        <el-divider content-position="left">绑定配置详情</el-divider>
        <el-descriptions :column="2" border>
          ...
          <el-descriptions-item label="API Key">
            <div style="display: flex; align-items: center; gap: 8px">
              <span>{{ displayApiKey(selectedBindingInfo.apiKeyName, selectedBindingInfo.apiKeyFull, false) }}</span>
              <el-button
                v-if="selectedBindingInfo.apiKeyFull"
                link
                type="primary"
                size="small"
                @click="toggleApiKeyMask">
                {{ apiKeyMasked ? '显示' : '隐藏' }}
              </el-button>
            </div>
          </el-descriptions-item>
          <el-descriptions-item label="工作流ID">
            {{ selectedBindingInfo.workflowId || '-' }}
          </el-descriptions-item>
          <el-descriptions-item label="完整提示词ID" :span="2">
            {{ selectedBindingInfo.completePromptId || '-' }}
          </el-descriptions-item>
        </el-descriptions>
      </div>
      ...
    </el-form>

    <!-- 测试结果 -->
    <div v-if="testResult" class="test-result">
      <el-divider>测试结果</el-divider>

      <!-- API配置信息 -->
      <el-descriptions title="使用的API配置" :column="2" border>
        <el-descriptions-item label="API名称">
          {{ testResult.apiConfigUsed?.apiName }}
        </el-descriptions-item>
        <el-descriptions-item label="API地址">
          {{ testResult.apiConfigUsed?.apiUrl }}
        </el-descriptions-item>
        <el-descriptions-item label="API Key">
          <div style="display: flex; align-items: center; gap: 8px">
            <span>{{
              displayApiKey(testResult.apiConfigUsed?.apiKeyName, testResult.apiConfigUsed?.apiKeyFull, true)
            }}</span>
            <el-button
              v-if="testResult.apiConfigUsed?.apiKeyFull"
              link
              type="primary"
              size="small"
              @click="toggleResultApiKeyMask">
              {{ resultApiKeyMasked ? '显示' : '隐藏' }}
            </el-button>
          </div>
        </el-descriptions-item>
        ...
      </el-descriptions>

  </el-dialog>
</template>

<script>
import { ref, watch, onMounted, computed } from 'vue';
...
export default {
  name: 'DifyTestDialog',
  props: {
    modelValue: {
      type: Boolean,
      default: false
    }
  },
  emits: ['update:modelValue'],
  setup(props, { emit }) {
    ...
    // API Key脱敏控制
    const apiKeyMasked = ref(true); // 绑定配置详情中的API Key是否脱敏
    const resultApiKeyMasked = ref(true); 
    ...

    // 初始化
    onMounted(() => {
      loadBindingConfigs();
    });

    return {
      ...
      resultApiKeyMasked,
      resultColumns
    };
  }
};
相关推荐
云雾J视界9 天前
AI驱动半导体良率提升:基于机器学习的晶圆缺陷分类系统搭建
人工智能·python·机器学习·智能制造·数据驱动·晶圆缺陷分类
数在表哥1 个月前
从数据孤岛到智能决策:数据驱动+AI如何重构企业运营的技术路径与方法论(一)
人工智能·重构·数据驱动·企业运营
有颜有货6 个月前
什么是数据驱动?以及我们应如何理解数据驱动?
信息可视化·数据驱动
预测及优化6 个月前
新能源集群划分+电压调节!基于分布式能源集群划分的电压调节策略!
分布式·能源·强化学习·数据驱动·综合能源·集群划分·电压调整
零凌林9 个月前
vue3中解决组件间 css 层级问题最佳实践(Teleport的使用)
前端·css·vue.js·新特性·vue3.0·teleport
friend_ship1 年前
Vue3.0都有哪些新特性及优化点
vue.js·vite·vue3.0·es6新特性·proxy响应式对象
青云交1 年前
大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 1)
大数据·数据驱动·用户画像·内容创作·影视娱乐产业·题材选择·角色塑造
qbbmnnnnnn1 年前
【WebGis开发 - Cesium】三维可视化项目教程---图层管理拓展图层顺序调整功能
vue.js·webgl·三维可视化·cesium·vue3.0·webgis·vuedraggable
qbbmnnnnnn1 年前
【WebGis开发 - Cesium】三维可视化项目教程---图层管理基础
前端·wmts·cesium·vue3.0·webgis·3dtiles·图层管理