Files
Yi.Framework/Yi.Vben5.Vue3/apps/web-antd/src/components/dict/src/data.tsx
2026-01-04 13:45:07 +08:00

45 lines
1.3 KiB
TypeScript

import type { VNode } from 'vue';
import { Tag } from 'ant-design-vue';
interface TagType {
[key: string]: { color: string; label: string };
}
export const tagTypes: TagType = {
cyan: { color: 'cyan', label: 'cyan' },
danger: { color: 'error', label: '危险(danger)' },
/** 由于和elementUI不同 用于替换颜色 */
default: { color: 'default', label: '默认(default)' },
green: { color: 'green', label: 'green' },
info: { color: 'default', label: '信息(info)' },
orange: { color: 'orange', label: 'orange' },
/** 自定义预设 color可以为16进制颜色 */
pink: { color: 'pink', label: 'pink' },
primary: { color: 'processing', label: '主要(primary)' },
purple: { color: 'purple', label: 'purple' },
red: { color: 'red', label: 'red' },
success: { color: 'success', label: '成功(success)' },
warning: { color: 'warning', label: '警告(warning)' },
};
// 字典选择使用 { label: string; value: string }[]
interface Options {
label: string | VNode;
value: string;
}
export function tagSelectOptions() {
const selectArray: Options[] = [];
Object.keys(tagTypes).forEach((key) => {
if (!tagTypes[key]) return;
const label = tagTypes[key].label;
const color = tagTypes[key].color;
selectArray.push({
label: <Tag color={color}>{label}</Tag>,
value: key,
});
});
return selectArray;
}