Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite

This commit is contained in:
X1627315083
2025-09-17 14:02:17 +08:00
11 changed files with 1074 additions and 662 deletions

View File

@@ -4,7 +4,7 @@
<div
class="image-list-trigger"
@click="showPanel = true"
:title="$t('打开图片库')"
:title="$t('Canvas.photoGallery')"
>
<SvgIcon name="CImageList" :size="20" />
</div>

View File

@@ -0,0 +1,134 @@
<template>
<a-modal
class="hsitory_detail_modal_component"
v-model:visible="hsitoryDetailShow"
:footer="null"
width="80%"
:maskClosable="false"
:keyboard="false"
:centered="true"
:closable="false"
>
<!-- <template #closeIcon>
<div class="close_icon" @click.stop="changeDetailShow()">
<span class="icon iconfont icon-guanbi"></span>
</div>
</template> -->
<template #title>
<div class="custom_title">
<div class="title_text">{{ collectionName }}</div>
<div class="close_icon" @click.stop="changeDetailShow()">
<span class="icon iconfont icon-guanbi"></span>
</div>
</div>
</template>
<div class="history_detail_content scroll_style">
<div class="history_img_block" v-for="img in groupDetails" :key="img">
<div class="history_img_item">
<img class="element_img" :src="img.url" />
</div>
</div>
</div>
</a-modal>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
props: {
groupDetails: {
default: {}
},
collectionName: {
default: ''
}
},
setup() {},
data() {
return {
hsitoryDetailShow: false
}
},
methods: {
changeDetailShow() {
this.hsitoryDetailShow = !this.hsitoryDetailShow
}
}
})
</script>
<style lang="less" scoped>
.hsitory_detail_modal_component {
// .ant-modal-close {
// width: 3.6rem;
// height: 3.6rem;
// position: absolute;
// top: -1.8rem;
// right: -1.8rem;
// }
.custom_title {
display: flex;
justify-content: space-between;
align-items: center;
}
.title_text {
font-size: 1.6rem;
}
.ant-modal-header {
background: #f7f7f7;
}
.ant-modal-body {
background: #f2f3fb;
height: 80vh;
min-height: 72rem;
overflow-y: hidden;
padding: 0;
}
.close_icon {
width: 3.6rem;
height: 3.6rem;
background: #000000;
border-radius: 50%;
line-height: 3.6rem;
text-align: center;
cursor: pointer;
.icon-guanbi {
font-size: 2rem;
color: #ffffff;
}
}
.history_detail_content {
padding: 2.6rem 2rem 2.6rem 3.7rem;
height: 100%;
width: 100%;
overflow-y: auto;
background: #ffffff;
.history_img_block {
width: 16.5rem;
height: 16.5rem;
border: 0.1rem solid #343579;
margin: 0 1.7rem 1.7rem 0;
display: inline-block;
.history_img_item {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
.element_img {
max-width: 100%;
max-height: 100%;
}
}
}
}
</style>

View File

@@ -14,27 +14,29 @@
<div class="rename_form_content">
<input class="rename_form_input" :placeholder="$t('LibraryPage.inputContent3')" v-model="newPicName" @keydown.enter="confrimRename()">
</div>
<div class="collection_rename_title">{{$t('LibraryPage.Tag')}}</div>
<el-cascader
:options="options"
:filterable="true"
v-model="value.editLabelValue"
:collapse-tags="true"
:show-all-levels="false"
:placeholder="$t('LibraryPage.Select')"
:clearable="true"
:max-collapse-tags=6
:props="props"
ref="cascader1"
:collapse-tags-tooltip="true"
@visible-change="dropdownVisibleChange1"
>
<template #empty>
<div>
{{$t('LibraryPage.Select')}}
</div>
</template>
</el-cascader>
<template v-if="!isHistory">
<div class="collection_rename_title">{{$t('LibraryPage.Tag')}}</div>
<el-cascader
:options="options"
:filterable="true"
v-model="value.editLabelValue"
:collapse-tags="true"
:show-all-levels="false"
:placeholder="$t('LibraryPage.Select')"
:clearable="true"
:max-collapse-tags=6
:props="props"
ref="cascader1"
:collapse-tags-tooltip="true"
@visible-change="dropdownVisibleChange1"
>
<template #empty>
<div>
{{$t('LibraryPage.Select')}}
</div>
</template>
</el-cascader>
</template>
<div v-show="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="collection_rename_title">{{$t('LibraryPage.Category')}}</div>
<!-- <div v-show="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="collection_rename_title">{{$t('LibraryPage.Category')}}</div> -->
<div v-show="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="rename_form_content">
@@ -90,6 +92,12 @@ import { Modal,message,Upload,CascaderProps } from 'ant-design-vue';
import { ElCascader } from 'element-plus'
export default defineComponent({
props:{
isHistory:{
type:Boolean,
default:false
},
},
components:{
VueCropper,
ElCascader,

View File

@@ -0,0 +1,112 @@
<template>
<div class="table_search_bar flex flex-justify-between flex-align-center">
<div class="search_preset flex flex-1">
<div
class="preset_item gallery_btn white"
v-for="item in buttonList"
:class="{ active: searchParams.currentPreset === item.value }"
:key="item.value"
@click="handleButtonClick(item.value)"
>
{{ item.label }}
</div>
</div>
<div class="search_input flex flex-align-center">
<input
class="search_input_inner flex-1"
v-model="searchParams.searchText"
:bordered="false"
@keydown.enter="handleSearch"
:placeholder="placeholder"
/>
<SearchOutlined @click="handleSearch" />
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { SearchOutlined } from '@ant-design/icons-vue'
interface ButtonItem {
label: string
value: string
}
interface Props {
buttonList: ButtonItem[]
placeholder?: string
}
interface SearchParams {
searchText: string
currentPreset: string
}
interface Emits {
(e: 'search', params: SearchParams): void
}
const props = withDefaults(defineProps<Props>(), {
placeholder: 'batchGeneration.Search'
})
const emit = defineEmits<Emits>()
// 内部状态管理
const searchParams = reactive({
searchText: '',
currentPreset:props.buttonList[0]?.value || ''
})
// 处理按钮点击
const handleButtonClick = (value: string) => {
searchParams.currentPreset = value
handleSearch()
}
// 处理搜索
const handleSearch = () => {
emit('search', searchParams)
}
</script>
<style lang="less" scoped>
.flex {
display: flex;
}
.flex-1 {
flex: 1;
}
.flex-justify-between {
justify-content: space-between;
}
.flex-align-center {
align-items: center;
}
.table_search_bar {
.search_preset {
column-gap: 2rem;
.preset_item {
line-height: 4rem;
min-width: 10rem;
font-weight: normal;
}
}
.search_input {
height: 4rem;
background-color: #fff;
border: 0.1rem solid #000;
border-radius: 43rem;
// column-gap: 3rem;
padding-right: 1rem;
.search_input_inner {
border: none;
height: 100%;
padding-left: 3rem;
border-radius: 4rem;
}
}
}
</style>

View File

@@ -295,6 +295,7 @@ export default defineComponent({
})
let obj = {
value:'mannquin',
// type:'Mannquin',
type:data.locale == "ENGLISH"?'Mannquin':'模特',
imgList:list
}