diff --git a/src/assets/svgIcons/collapse.svg b/src/assets/svgIcons/collapse.svg new file mode 100644 index 0000000..420f646 --- /dev/null +++ b/src/assets/svgIcons/collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgIcons/expand.svg b/src/assets/svgIcons/expand.svg new file mode 100644 index 0000000..c4e5ec3 --- /dev/null +++ b/src/assets/svgIcons/expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/MockItem.vue b/src/components/MockItem.vue index c1e77e0..2e71883 100644 --- a/src/components/MockItem.vue +++ b/src/components/MockItem.vue @@ -1,10 +1,17 @@ @@ -131,6 +146,7 @@ const { t } = useI18n(); const i18nBase = 'components.MockItem'; interface MockItemProps { + isBriefMode: boolean; basicInfo: MockItemBasicType; selectedSceneId?: string; scenesList: SceneItemType[]; @@ -141,6 +157,7 @@ interface MockItemProps { } const props = withDefaults(defineProps(), { + isBriefMode: false, basicInfo: () => ({ id: '', path: '', @@ -158,13 +175,20 @@ const props = withDefaults(defineProps(), { param: '', }), }) +// textarea的引用 +const textAreaRef = ref(null as any); // mockItem的基础信息(除了场景列表) const mockItemBasicInfo = ref({} as MockItemProps['basicInfo']); +// 当是精简模式时,用于临时展开的mockItem的flag +const isShowFull = ref(false); // mockItem的配置是否发生更改 const hasBasicConfChange = computed(() => { return !isEqual(mockItemBasicInfo.value, props.basicInfo); }); +// 是否是brief模式 +const isBrierf = computed(() => props.isBriefMode && !hasBasicConfChange.value && !isShowFull.value); + const componentEvent = defineEmits(['sceneOperation', 'save', 'delete']); @@ -184,10 +208,16 @@ watch(() => props.basicInfo, () => { }, { immediate: true, deep: true }); +watch(() => isBrierf.value, () => { + if(textAreaRef.value?.textarea) { + textAreaRef.value.textarea.style.height = ''; + } +}); + diff --git a/src/components/SearchBar.vue b/src/components/SearchBar.vue index f7e18b7..10ca1c4 100644 --- a/src/components/SearchBar.vue +++ b/src/components/SearchBar.vue @@ -50,6 +50,16 @@ {{ t(`${i18nBase}.searchBtn`) }} + +
@@ -73,6 +83,8 @@ const props = withDefaults(defineProps(), { mockFromRequest: false, }); const iterationList = defineModel('iterationList', {type: Array, default: []}); +const isBriefMode = defineModel('isBriefMode', {type: Boolean, default: false}); + const componentEvent = defineEmits(['search', 'addMockItem', 'iterationListChange', 'mockFromRequestChange']); const toAddIterationTag = ref(''); diff --git a/src/components/SvgIcon.vue b/src/components/SvgIcon.vue index 93f506d..b2e9904 100644 --- a/src/components/SvgIcon.vue +++ b/src/components/SvgIcon.vue @@ -1,5 +1,5 @@