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

12
components.d.ts vendored
View File

@@ -9,14 +9,11 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
ABadge: typeof import('ant-design-vue/es')['Badge']
ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
ADatePicker: typeof import('ant-design-vue/es')['DatePicker']
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
ADrawer: typeof import('ant-design-vue/es')['Drawer']
AImage: typeof import('ant-design-vue/es')['Image']
AInputNumber: typeof import('ant-design-vue/es')['InputNumber']
AMenu: typeof import('ant-design-vue/es')['Menu']
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
AModal: typeof import('ant-design-vue/es')['Modal']
APagination: typeof import('ant-design-vue/es')['Pagination']
APopover: typeof import('ant-design-vue/es')['Popover']
@@ -24,16 +21,17 @@ declare module 'vue' {
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
ASlider: typeof import('ant-design-vue/es')['Slider']
ASpace: typeof import('ant-design-vue/es')['Space']
ASpin: typeof import('ant-design-vue/es')['Spin']
ASubMenu: typeof import('ant-design-vue/es')['SubMenu']
ASwitch: typeof import('ant-design-vue/es')['Switch']
ATable: typeof import('ant-design-vue/es')['Table']
ATabPane: typeof import('ant-design-vue/es')['TabPane']
ATabs: typeof import('ant-design-vue/es')['Tabs']
ATimeRangePicker: typeof import('ant-design-vue/es')['TimeRangePicker']
AUpload: typeof import('ant-design-vue/es')['Upload']
ElCascader: typeof import('element-plus/es')['ElCascader']
ElLoading: typeof import('element-plus/es')['ElLoading']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
}

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
}

View File

@@ -351,8 +351,8 @@ export default {
CollectionsName: "名字",
source: "来源",
UptateTime: "修改时间",
SketchCounts: "项目名字",
Operations: "Operations",
SketchCounts: "草图数量",
Operations: "操作",
jsContent1: "删除成功",
jsContent2: "您确定要删除这个收藏吗?",
jsContent3: "修改成功",

View File

@@ -353,7 +353,7 @@ export default {
CollectionsName: "Collections Name",
source: "Source",
UptateTime: "Uptate Time",
SketchCounts: "Project Name",
SketchCounts: "SketchCounts",
Operations: "Operations",
jsContent1: "Deleted successfully",
jsContent2: "Do you really want to delete this collection? ",

View File

@@ -348,18 +348,24 @@ const navTypeList = (t)=>{
},
]
},
history:{
// history:{
// icon:'fi-br-time-past',
// label:t('HistoryPage.History'),
// value:'history',
// Todaylist:[
// ],
// Yesterdaylist:[
// ],
// WithinAWeeklist:[
// ],
// Earlierlist:[
// ],
// },
history111:{
icon:'fi-br-time-past',
label:t('HistoryPage.History'),
value:'history',
Todaylist:[
],
Yesterdaylist:[
],
WithinAWeeklist:[
],
Earlierlist:[
],
value:'history111',
router:'/home/history111'
},
gallery:{
icon:'fi-rr-gallery',

View File

@@ -18,17 +18,17 @@
<p>{{$t('Header.NewProject')}}</p>
</div>
<div class="navList ">
<div class="tools list" v-for="item in navTypeList" :class="{active:openType == item.value,history:item.value == 'history'}">
<div class="tools list" v-for="item in navTypeList" :class="{active:openType == item.value,history:item.value == 'history','show-history' : showHistory && item.value === 'history111','isHistory' : item.value === 'history111'}">
<div class="titleBox" @click="setOpenType(item.value,item.list)">
<div class="left">
<i :class="['fi',item.icon]"></i>
<span>{{item.label}}</span>
</div>
<div class="right">
<div class="right" v-if="item.value !== 'history111' ">
<i class="fi fi-br-angle-small-down"></i>
</div>
</div>
<div class="detailBox" v-show="openType">
<div class="detailBox" v-if="item.value != 'history111'" v-show="openType">
<div class="detail" v-if="item.value != 'history' && item.value != 'cloud'" v-show="openType == item.value">
<div class="detailItem" v-for="childItem in item.list" @click="setRouter(item,childItem)" :class="{active:openTypeChild == childItem.value}">
<i v-show="childItem.icon" :class="['fi',childItem.icon]"></i>
@@ -342,7 +342,8 @@ export default defineComponent({
isWithinAWeek:false,
isEarlier:false,
},
bathGenerationList:["poseTransfer","SERIES_DESIGN","toProduct","relight"]
bathGenerationList: ["poseTransfer", "SERIES_DESIGN", "toProduct", "relight"],
showHistory:false
})
let userDetail= computed(()=>{
return store.state.UserHabit.userDetail
@@ -366,6 +367,8 @@ export default defineComponent({
}
}
})
// watch(()=>locale.value,(newVal,oldVal)=>{
// if(newVal == oldVal)return
// console.log(newVal , oldVal)
@@ -420,7 +423,21 @@ export default defineComponent({
},
{ immediate: true } // 立即触发一次以处理初始参数
);
// watch(()=>homeMainData.navTypeList,()=>{
// 监听路由,当路由地址为/home/history111时homeMainData.showHistory为true,改变左侧菜单颜色
watch(() => route.path, () => {
if(route.path == '/home/history111'){
homeMainData.showHistory = true
}else{
homeMainData.showHistory = false
}
},
{ immediate: true }
)
// watch(()=>homeMainData.openTypeList,()=>{
// homeMainData.historyData.page = 1
// })
@@ -547,16 +564,15 @@ export default defineComponent({
let imgParent = document.querySelector('.homeMain_max .detail .material_content_list_loding .historyPage_loading')
if(Observer?.unobserve)Observer.unobserve(imgParent);
})
const setOpenType = (type,list)=>{
const setOpenType = (type, list) => {
if(homeMainData.openType == type){
homeMainData.openType = ''
}else {
homeMainData.openType = type
// if(type == 'history'){
// if(list.length == 0){
// }
// }
if (type === 'history111') {
router.push('/home/history111')
}
}
}
let Observer = null
@@ -1129,6 +1145,10 @@ export default defineComponent({
// padding: 1.2rem;
max-height: 5rem;
border-radius: 2rem;
&.show-history{
background: #fff;
border-radius: 0.8rem;
}
&.active{
> .detailBox{
flex: 1;
@@ -1377,6 +1397,11 @@ export default defineComponent({
overflow: hidden;
max-height: 100%;
background: #00000008;
&.isHistory{
background: #fff;
border-radius: 0.8rem;
max-height: 5rem;
}
> .titleBox{
padding: 0;
margin-bottom: 1.6rem;
@@ -1388,6 +1413,7 @@ export default defineComponent({
}
}
}
&.language{
> .titleBox{
padding: .8rem;

File diff suppressed because it is too large Load Diff