要确保在 taskMessage
拿到值后再传递给子组件,您可以使用一个计算属性来监测 taskMessage
的变化,然后将其传递给子组件。这样可以保证只有在 taskMessage
有效数据时,才会更新子组件的 props。
以下是您可以考虑的实现方式:
1. 使用计算属性
首先定义一个计算属性,它将在 taskMessage
更新时自动执行。
<template>
<div>
<approvalProcess
:isCanAccept="isCanAccept"
:form="taskDetailData"
:getBizModel="getBizModel"
:appId="appId"
:actName="$route.query.actName"
@getDetail="getApprovalDetail"
class="bottom-btns"
@flowCode='flowCode'
/>
<h-workflow-common
v-bind="{
ref: 'workFlowCommon',
workFlowInfo: true,
registerRemark: true,
isHistory,
codeMark,
taskDetail,
taskDetailData,
headerMessage,
projectBaseInfo,
// 使用计算属性传递 taskMessage
taskMessage: processedTaskMessage,
approveRecordList,
projectExtensionInfo,
tabbs,
showSearch: true
}">
</h-workflow-common>
</div>
</template>
<script>
export default {
data() {
return {
taskDetailData: {},
isCanAccept: false, // 初始化为适当的值
// 其他 data 属性...
};
},
computed: {
processedTaskMessage() {
// 确保在 taskMessage 有效时才返回值,否则返回 null 或默认值
return this.taskMessage || {}; // 可以根据实际情况调整这里的逻辑
}
},
methods: {
getApprovalDetail(e) {
let data = {};
if (typeof e === 'string') {
data = JSON.parse(e);
} else {
data = e;
}
try {
this.taskDetailData = data;
if (!this.isReSubmitCode && !this.isDesignCode && !this.isCompletionCode) {
setTimeout(() => {
const refEl = this.$refs.workFlowCommon;
if (refEl) {
refEl.tabsActive = 'registerInfo';
}
}, 300);
}
this.showForm = true;
const codes = [
"PROVIDE_AMEND_PLAN",
"PLAN_FILL_OUT_AFFIRM_RESULT",
"PROVIDE_AMEND_PLAN_HISTORY",
];
let code = '';
if (codes.includes(this.codeMark + '')) {
code = 'CONTROL_MEETING';
}
if (data.fileList && data.fileList.length && code) {
this.$set(this.taskDetail, 'nonProjectFileVOS', data.fileList.filter(d => d.categoryCode === code));
}
} catch (error) {
console.log(error);
}
},
watch: {
taskMessage(newVal) {
// 当 taskMessage 更新时,可以在这里做一些额外操作,比如:
console.log('taskMessage has been updated:', newVal);
}
}
}
</script>
注意事项
- 在计算属性中,如果
taskMessage
是个对象或数组,确保它有合理的初始值,以免在没有数据的时候造成错误。 - 如果您的逻辑复杂,也可以考虑使用 watcher 来监听
taskMessage
的变化,并在获取到数据后直接调用某个方法或进行相应操作。 - 请根据实际需求修改上述代码中的逻辑,以确保符合您的业务规则和预期行为。
内容由零声教学AI助手提供,问题来源于学员提问