diff --git a/components/form/NodeScheduling.vue b/components/form/NodeScheduling.vue index 2f38daa721..07123d4a58 100644 --- a/components/form/NodeScheduling.vue +++ b/components/form/NodeScheduling.vue @@ -65,9 +65,14 @@ export default { update() { const { nodeName, nodeSelector, nodeAffinity } = this; - if (this.selectNode === 'nodeSelector') { + switch (this.selectNode) { + case 'nodeSelector': Object.assign(this.value, { nodeSelector, nodeName }); - } else { + if (this.value?.affinity?.nodeAffinity) { + delete this.value.affinity.nodeAffinity; + } + break; + case 'affinity': delete this.value.nodeName; delete this.value.nodeSelector; if (!this.value.affinity) { @@ -75,6 +80,13 @@ export default { } else { Object.assign(this.value.affinity, { nodeAffinity }); } + break; + default: + delete this.value.nodeName; + delete this.value.nodeSelector; + if (this.value?.affinity?.nodeAffinity) { + delete this.value.affinity.nodeAffinity; + } } }, isEmpty @@ -91,6 +103,7 @@ export default { :options="[null, 'nodeSelector', 'affinity']" :labels="[ t('workload.scheduling.affinity.anyNode'), t('workload.scheduling.affinity.specificNode'), t('workload.scheduling.affinity.schedulingRules') ]" :mode="mode" + @input="update" />