Ai
1 Star 2 Fork 1

旻天信息/mttk-vue-wrap

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
compBaseMisc.ts 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
旻天信息 提交于 2025-02-17 09:57 +08:00 . test sync to gitee
import {computed,defineAsyncComponent,resolveComponent,unref} from 'vue'
import { isPromise } from "./compBaseUtil";
import { compGenerator } from "./compGenerator";
//
export function buildMisc(contextWrap,configStd){
//
// const component = computed(() => configStd["~component"] || configStd["~"]);
// const isFuncComp = computed(() => typeof component == "function");
//Parse component
//if it is a promise, consider it is imported as " import('xxx')"
//if it is a function,consider it as a our function component
//Otherwise consider it is a component(and try to resolve if it is a string)
const baseComponent = computed(() => {
const component = configStd.value["~component"] || configStd.value["~"];
//
if (!component) {
return "div";
}
//
if (isPromise(component)) {
return defineAsyncComponent(() => component);
} else if (typeof component == "function") {
//
return compGenerator(contextWrap, component);
} else if (typeof component == "string") {
//
return smartResolveComponent(component);
} else {
return component;
}
//
// return toRaw(component);
});
//handing possible v-if
const ifFlag = computed(() => {
const ret = configStd.value["~if"];
if (ret == undefined) {
return true;
}
//
// console.log(ret,configStd)
//
return !!unref(ret);
});
//Whether there is a v-sow setting
//true means there is a v-show setting
const hasShowFlag = computed(() => {
return configStd.value["~show"]!=undefined;
});
//handling possible v-show
const showFlag = computed(() => {
const ret = configStd.value["~show"];
if (ret == undefined) {
return true;
}
//
return !!unref(ret);
});
//Component key
const keyComp=computed(()=>{
})
//
return {baseComponent,ifFlag,hasShowFlag,showFlag}
}
//Smart resolve component, skip resolve of some name like 'div','span' to resolve veu3 warning
function smartResolveComponent(component) {
if (component == "div" || component == "span") {
return component;
}
//
return resolveComponent(component);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
TypeScript
1
https://gitee.com/jamie0828/mttk-vue-wrap.git
git@gitee.com:jamie0828/mttk-vue-wrap.git
jamie0828
mttk-vue-wrap
mttk-vue-wrap
master

搜索帮助