54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
// 抽离可公用的工具函数等用于系统管理页面逻辑
|
||
import { computed } from "vue";
|
||
import { useDark } from "@pureadmin/utils";
|
||
|
||
export function usePublicHooks() {
|
||
const { isDark } = useDark();
|
||
|
||
const switchStyle = computed(() => {
|
||
return {
|
||
"--el-switch-on-color": "#6abe39",
|
||
"--el-switch-off-color": "#e84749"
|
||
};
|
||
});
|
||
|
||
const tagStyle = computed(() => {
|
||
return (status: number) => {
|
||
return status === 1
|
||
? {
|
||
"--el-tag-text-color": isDark.value ? "#6abe39" : "#389e0d",
|
||
"--el-tag-bg-color": isDark.value ? "#172412" : "#f6ffed",
|
||
"--el-tag-border-color": isDark.value ? "#274a17" : "#b7eb8f"
|
||
}
|
||
: {
|
||
"--el-tag-text-color": isDark.value ? "#e84749" : "#cf1322",
|
||
"--el-tag-bg-color": isDark.value ? "#2b1316" : "#fff1f0",
|
||
"--el-tag-border-color": isDark.value ? "#58191c" : "#ffa39e"
|
||
};
|
||
};
|
||
});
|
||
|
||
const formatHigherDeptOptions = treeList => {
|
||
// 根据返回数据的status字段值判断追加是否禁用disabled字段,返回处理后的树结构,用于上级部门级联选择器的展示(实际开发中也是如此,不可能前端需要的每个字段后端都会返回,这时需要前端自行根据后端返回的某些字段做逻辑处理)
|
||
if (!treeList || !treeList.length) return;
|
||
const newTreeList = [];
|
||
for (let i = 0; i < treeList.length; i++) {
|
||
treeList[i].disabled = treeList[i].status === 0 ? true : false;
|
||
formatHigherDeptOptions(treeList[i].children);
|
||
newTreeList.push(treeList[i]);
|
||
}
|
||
return newTreeList;
|
||
};
|
||
|
||
return {
|
||
/** 当前网页是否为`dark`模式 */
|
||
isDark,
|
||
/** 表现更鲜明的`el-switch`组件 */
|
||
switchStyle,
|
||
/** 表现更鲜明的`el-tag`组件 */
|
||
tagStyle,
|
||
/** 获取上级部门级联选择器的数据结构*/
|
||
formatHigherDeptOptions
|
||
};
|
||
}
|