Javascript 如何在VueJS中覆盖单个文件组件中的类星体QTree组件
我想从 我已经创建了下面的组件,但它没有覆盖方法Javascript 如何在VueJS中覆盖单个文件组件中的类星体QTree组件,javascript,vue.js,quasar-framework,Javascript,Vue.js,Quasar Framework,我想从 我已经创建了下面的组件,但它没有覆盖方法\uu onTickedClick <script> import QTree from 'quasar'; export default { name: 'MyTree', mixins: [QTree], data() { return { ticked: [], }; }, props: { tickSubStrategy: { type: String,
\uu onTickedClick
<script>
import QTree from 'quasar';
export default {
name: 'MyTree',
mixins: [QTree],
data() {
return {
ticked: [],
};
},
props: {
tickSubStrategy: {
type: String,
default: 'none',
validator: v => ['leaf'].includes(v),
},
tree: {
type: Array,
required: true,
},
},
methods: {
__onTickedClick(meta, state) {
if (meta.indeterminate === true) {
state = meta.indeterminateNextState;
}
if (meta.strictTicking) {
const keys = [];
if (this.tickSubStrategy === 'leaf') {
const travel = meta => {
if (meta.isParent) {
keys.push(meta.key);
meta.children.forEach(travel);
} else if (
meta.noTick !== true &&
meta.tickable === true &&
(meta.leafFilteredTicking !== true || meta.matchesFilter === true)
) {
keys.push(meta.key);
}
};
travel(meta);
} else {
keys.push(meta.key);
}
this.setTicked(keys, state);
} else if (meta.leafTicking) {
const keys = [];
const travel = meta => {
if (meta.isParent) {
if (state !== true && meta.noTick !== true && meta.tickable === true) {
keys.push(meta.key);
}
if (meta.leafTicking === true) {
meta.children.forEach(travel);
}
} else if (
meta.noTick !== true &&
meta.tickable === true &&
(meta.leafFilteredTicking !== true || meta.matchesFilter === true)
) {
keys.push(meta.key);
}
};
travel(meta);
this.setTicked(keys, state);
}
},
},
};
</script>
<template>
<q-tree
:nodes="tree"
ref="tree"
node-key="id"
tick-strategy="strict"
:tick-sub-strategy="tickSubStrategy"
:ticked.sync="ticked"
>
<template v-slot:default-header="prop">
<div class="row items-center">
<div class="text-weight-bold text-primary">{{ prop.node.title }}</div>
</div>
</template>
</q-tree>
</template>
<style lang="stylus" scoped></style>
从“类星体”导入QTree;
导出默认值{
名称:“MyTree”,
mixins:[QTree],
数据(){
返回{
勾选:[],
};
},
道具:{
战略:{
类型:字符串,
默认值:“无”,
验证程序:v=>['leaf']。包括(v),
},
树:{
类型:数组,
要求:正确,
},
},
方法:{
__onTickedClick(元,状态){
if(meta.undeterminate==true){
state=meta.indeterinextstate;
}
if(meta.stricking){
常量键=[];
如果(this.tickSubStrategy=='leaf'){
常量旅行=元=>{
如果(meta.isParent){
按键(meta.key);
元。儿童。forEach(旅行);
}否则如果(
meta.notik!==真&&
meta.tickable==真&&
(meta.leaftfilteredticking!==true | | meta.matchesFilter===true)
) {
按键(meta.key);
}
};
旅行(元);
}否则{
按键(meta.key);
}
此。设置勾选(键、状态);
}else if(meta.leafTicking){
常量键=[];
常量旅行=元=>{
如果(meta.isParent){
if(state!==true&&meta.notik!==true&&meta.tickable==true){
按键(meta.key);
}
if(meta.leafTicking===true){
元。儿童。forEach(旅行);
}
}否则如果(
meta.notik!==真&&
meta.tickable==真&&
(meta.leaftfilteredticking!==true | | meta.matchesFilter===true)
) {
按键(meta.key);
}
};
旅行(元);
此。设置勾选(键、状态);
}
},
},
};
{{prop.node.title}
代码笔覆盖按预期工作