1. 创建自定义钩子 useDeviceStatus.js
:
import { computed } from 'vue';
export function useDeviceStatus(status) {
const statusMap = computed(() => {
const map = {
0: { text: '闲置', color: '' },
1: { text: '在用', color: 'blue' },
2: { text: '待修', color: 'lime' },
3: { text: '在修', color: 'cyan' },
4: { text: '备用', color: 'red' },
5: { text: '调剂', color: 'magenta' },
6: { text: '待报废', color: 'warning' },
7: { text: '报废', color: 'error' },
8: { text: '带病运行', color: 'volcano' }
};
return map[status.value] || { text: '未知状态', color: 'default' };
});
return {
statusMap
};
}
2. 在组件中使用自定义钩子:
<script setup>
import { ref } from 'vue';
import { useDeviceStatus } from './useDeviceStatus.js';
const props = defineProps({
status: {
type: Number,
required: true
}
});
const { statusMap } = useDeviceStatus(ref(props.status));
</script>
<template>
<a-tag :color="statusMap.color">{{ statusMap.text }}</a-tag>
</template>
3. 在表格中使用该组件:
<vxe-column field="device_status" title="设备状态">
<template #default="{ row }">
<DeviceStatusTag :status="row.device_status" />
</template>
</vxe-column>
解释
useDeviceStatus
是一个自定义的 Composition API 钩子,用于根据设备状态返回对应的文本和颜色。
- 在组件中,通过
useDeviceStatus
钩子获取状态映射,并在模板中使用 a-tag
来展示。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2023-08-23 js将 2023-07-13T10:12:23+0800转为 YYYY-MM-DD HH:mm:ss格式