Skip to content
This repository has been archived by the owner on Sep 16, 2024. It is now read-only.

Commit

Permalink
fix: variable ref not work in clone resource
Browse files Browse the repository at this point in the history
  • Loading branch information
hibig committed Mar 15, 2024
1 parent b2155e3 commit 66f05b2
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,7 @@
watch(
() => props.hintData,
() => {
console.log('props.hintData', props.hintData);
completeData.value = props.hintData;
},
{
Expand Down
43 changes: 40 additions & 3 deletions src/views/application-management/environments/pages/edit.vue
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@
<CloneService
key="resourceRef"
ref="resourceRef"
v-model:hint-data="completeData"
:hint-data="cloneCompleteData"
:data-list="resourceList"
:title="$t('menu.applicationManagement.resource')"
clone-type="environment"
Expand Down Expand Up @@ -286,7 +286,8 @@
InputWidth,
EnvironmentTypeMap,
EnvironmentTypeOrder,
SaveActions
SaveActions,
HintKeyMaps
} from '@/views/config';
import { ref, computed, provide, onMounted, nextTick } from 'vue';
import _, {
Expand Down Expand Up @@ -315,6 +316,7 @@
import useProjectBreadcrumbData from '@/views/application-management/projects/hooks/use-project-breadcrumb-data';
import useCompleteData from '@/views/application-management/services/hooks/use-complete-data';
import { BreadcrumbOptions } from '@/views/config/interface';
import { queryProjectVairables } from '@/views/application-management/variables/api';
import CloneService from '../components/clone-service.vue';
import { EnvironFormData } from '../config/interface';
import connectorsTable from '../components/connectors.vue';
Expand All @@ -329,7 +331,6 @@
const {
setCompleteData,
getProjectVariables,
getServiceList,
serviceDataList,
completeData,
Expand Down Expand Up @@ -370,6 +371,7 @@
labels: {},
list: []
});
const projectVariables = ref<any[]>([]);
const formData = ref<EnvironFormData>({
projectID: route.params.projectId as string,
Expand All @@ -384,6 +386,21 @@
resources: []
});
const cloneCompleteData = computed(() => {
const variables = _.map(formData.value.variables, (item) => {
return {
value: item.name,
label: item.name,
tips: item.value,
showTips: false,
sensitive: item.sensitive
};
});
return {
...completeData.value,
[HintKeyMaps.var]: [...projectVariables.value, ...variables]
};
});
const EnvironmentTypeList = computed(() => {
return _.map(userStore.applicableEnvironmentTypes, (item) => {
return {
Expand Down Expand Up @@ -617,6 +634,26 @@
}
handleSubmit();
};
const getProjectVariables = async () => {
try {
const params = {
page: -1,
includeInherited: true
};
const { data } = await queryProjectVairables(params);
projectVariables.value = _.map(data?.items || [], (item) => {
return {
label: item.name,
value: item.name,
tips: item.value,
showTips: false,
sensitive: item.sensitive
};
});
} catch (error) {
projectVariables.value = [];
}
};
const cancelCallback = () => {
if (route.name === PROJECT.EnvDetail) {
getItemEnvironmentInfo();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ export default function useCompleteData(props?) {
} else {
await getTemplates();
}
console.log('dataType.value==========', dataType.value);
};
// get item template version, isOnSelect is a flag for select event
const getTemplateVersions = async (
Expand All @@ -136,7 +135,6 @@ export default function useCompleteData(props?) {
) {
return;
}
console.log('formTemplateData==========', formTemplateData);
const templateID = formTemplateData.template?.id;
const isVisited = _.find(
allTemplateVersions.value,
Expand Down Expand Up @@ -172,20 +170,19 @@ export default function useCompleteData(props?) {
}
};

// optional args includeInherited, default is true
const getProjectVariables = async () => {
try {
const params = {
page: -1,
includeInherited: true
};
const workflowParams = {
projectID: props.value?.flow?.projectId,
environmentID: props.value?.flow?.environmentId
};
if (props.value?.flow?.projectId) {

if (props?.value?.flow?.projectId) {
const { data } = await queryEnvironmentVariables({
...params,
...workflowParams
projectID: props.value?.flow?.projectId,
environmentID: props.value?.flow?.environmentId
});
variableList.value = data.items || [];
} else {
Expand Down
10 changes: 10 additions & 0 deletions src/views/application-management/variables/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ export interface ResultType {
pagination: Pagination;
}

export const queryProjectVairables = (params: QueryType) => {
let url = VARIABLE_API;
url = `${PROJECT_API_PREFIX()}${VARIABLE_API}`;
return axios.get<ResultType>(`${url}`, {
params,
paramsSerializer: (obj) => {
return qs.stringify(obj);
}
});
};
export const queryVariables = (params: QueryType) => {
let url = VARIABLE_API;
if (isProjectContext()) {
Expand Down

0 comments on commit 66f05b2

Please sign in to comment.