大数据模型练习2

html 复制代码
<template>
  <el-dialog v-model="visible" title="搜索项配置" width="700px" @open="initTransferData">
    <div style="text-align: center">
      <el-transfer
        v-model="targetKeys"
        :data="transferData"
        :titles="['全部搜索项', '已选搜索项']"
        target-order="original"
        filterable
      />
    </div>

    <template #footer>
      <span class="dialog-footer">
        <el-button @click="visible = false">取消</el-button>
        <el-button type="primary" @click="handleConfirm">确定</el-button>
      </span>
    </template>
  </el-dialog>
</template>

<script setup>
import { computed, ref, watch } from 'vue'
import { useSearchStore } from '../../stores/searchStore'

const props = defineProps(['modelValue'])
const emit = defineEmits(['update:modelValue'])

const searchStore = useSearchStore()
const targetKeys = ref([]) // 右侧已选的 key 数组

// 计算属性实现 v-model
const visible = computed({
  get: () => props.modelValue,
  set: (val) => emit('update:modelValue', val),
})

// 将 Store 中的字段转换为 Transfer 需要的格式 { key, label }
const transferData = computed(() => {
  return searchStore.allFields.map((f) => ({
    key: f.key,
    label: f.label,
    disabled: false,
  }))
})

// 弹窗打开时,从 Store 同步当前状态
const initTransferData = () => {
  targetKeys.value = [...searchStore.activeFieldKeys]
}

const handleConfirm = () => {
  // 更新 Store
  searchStore.updateActiveFields(targetKeys.value)
  visible.value = false
}
</script>
相关推荐
于先生吖1 小时前
国际版JAVA婚恋交友系统源码:多语言适配,可商用的跨境婚恋解决方案
java·大数据·交友
JGDT_1 小时前
筑牢数字底座,驱动智慧未来——全方位数据中台解决方案
大数据·人工智能·科技·系统架构
2501_943695331 小时前
2026大专大数据科学工资水平高吗?
大数据
geneculture3 小时前
从“三亲三同”到“信智序位”:数字时代社会关系范式的重构
大数据·人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)
zylyyyyyy4 小时前
虚拟机X OpenClaw——一键“幻”养“龙虾”
大数据·人工智能·云计算
Smoothcloud润云4 小时前
Seedance 2.0深度解析:从“抽卡地狱”到工业化视频创作的革命
大数据·人工智能·计算机视觉·语言模型·ai作画·音视频·语音识别
sunxunyong5 小时前
spark History Server 重启失败
大数据·分布式·spark
方向研究6 小时前
浮法玻璃FG生产
大数据
YangYang9YangYan6 小时前
2026大专大数据科学专业就业市场竞争激烈吗?
大数据
KKKlucifer7 小时前
能源行业数据分类分级标准与落地实践
大数据