This commit is contained in:
X1627315083
2024-06-24 09:47:59 +08:00
parent 8b0af784de
commit a5ac4a341f
20 changed files with 160 additions and 761 deletions

View File

@@ -638,8 +638,8 @@ export default defineComponent({
file.resData = res.data;
this.sketchCatecoryList.forEach((item) => {
if(item.value == res.data.level2Type){
file.categoryValue = item?.name;
file.category = item?.value;
file.categoryValue = item?.value;
file.category = item?.name;
}
});
file.designType = res.data.designType
@@ -724,8 +724,8 @@ export default defineComponent({
},
selectImgItem(imgData){
let DesignDetailEnd = this.$refs.DesignDetailEnd
imgData.categoryValue = imgData.level2TypeEnum.value
imgData.category = imgData.level2TypeEnum.name
imgData.categoryValue = imgData.level2TypeEnum.name
imgData.category = imgData.level2TypeEnum.value
if(this.selectCode == 'Sketchboard'){
// this.current.id_ = imgData.id
// this.current.path = imgData.url
@@ -786,8 +786,8 @@ export default defineComponent({
rv.content.forEach((vItem)=>{
this.sketchCatecoryList.forEach((item) => {
if(item.value == vItem.level2Type){
vItem.categoryValue = item.name
vItem.category = item.value
vItem.categoryValue = item.value
vItem.category = item.name
}
});
})

View File

@@ -252,8 +252,8 @@ export default defineComponent({
if(!item.categoryValue){
this.designTypeList.forEach((typeItem)=>{
if(item.level2Type == typeItem.value){
item.categoryValue = typeItem.name
item.category = typeItem.value
item.categoryValue = typeItem.value
item.category = typeItem.name
}
})

View File

@@ -42,7 +42,7 @@
<a-dropdown @click.stop="setOpenType('sex')">
<a-button>
<UserOutlined />
{{ workspaceItem?.sexEnum?.value }}
{{ workspaceItem?.sexEnum?.name }}
<!-- {{ workspaceItem.sex.label }} -->
<DownOutlined />
</a-button>
@@ -50,7 +50,7 @@
<div class="habit_model_show habit_sex_show" v-fade="openType.sex">
<ul class="habit_model_list">
<li v-for="item,index in sex">
<div @click.stop="setSex(item)">{{ item.value }}</div>
<div @click.stop="setSex(item)">{{ item.name }}</div>
</li>
</ul>
</div>
@@ -82,14 +82,14 @@
<a-dropdown @click.stop="setOpenType('singleton')">
<a-button>
<UserOutlined />
{{ workspaceItem?.positionEnum?.value }}
{{ workspaceItem?.positionEnum?.name }}
<DownOutlined />
</a-button>
</a-dropdown>
<div class="habit_model_show habit_singleton_show" v-fade="openType.singleton">
<ul class="habit_model_list">
<li v-for="item,index in singleTypeList">
<div @click.stop="setSingle(item)">{{ item.value }}</div>
<div @click.stop="setSingle(item)">{{ item.name }}</div>
</li>
</ul>
</div>
@@ -412,6 +412,11 @@ export default defineComponent({
async getSex(){
await Https.axiosGet(Https.httpUrls.workspaceenumValues,{params:{enumName:'Sex'}}).then((rv: any) => {
if (rv) {
rv.forEach((item:any) => {
let name = item.name
item.name = item.value
item.value = name
});
this.store.commit("setWorkspaceSex", rv);
this.sex = rv
}
@@ -419,7 +424,7 @@ export default defineComponent({
},
setPosition(str:any){
let num
if(this.workspaceItem.sexEnum.name == 'Female'){
if(this.workspaceItem.sexEnum.value == 'Female'){
num = 0
}else{
num = 1
@@ -428,7 +433,7 @@ export default defineComponent({
this.store.commit("setWorkspacePosition", this.position[num].value);
if(str == 'sex'){
this.workspaceItem.position = this.singleTypeList[0].name
this.workspaceItem.position = this.singleTypeList[0].value
this.workspaceItem.positionEnum = this.singleTypeList[0]
}
},
@@ -504,38 +509,12 @@ export default defineComponent({
}else{
rv.overallSingle = true
}
// rv.allKeywordsByStyle = {
// Moodboard:[{
// name:'Moodboard',
// id:1,
// },{
// name:'Moodboard',
// id:2,
// },{
// name:'Moodboard',
// id:3,
// }],
// Printboard:[{
// name:'Printboard',
// id:1,
// },{
// name:'Printboard',
// id:2,
// },{
// name:'Printboard',
// id:3,
// }],
// Sketchboard:[{
// name:'Sketchboard',
// id:1,
// },{
// name:'Sketchboard',
// id:2,
// },{
// name:'Sketchboard',
// id:3,
// }],
// }
let positionEnumName = rv.positionEnum.name
rv.positionEnum.name = rv.positionEnum.value
rv.positionEnum.value = positionEnumName
let sexEnumName = rv.sexEnum.name
rv.sexEnum.name = rv.sexEnum.value
rv.sexEnum.value = sexEnumName
rv.putName = false
this.workspaceItem = rv
this.setMannequinsSex()
@@ -698,7 +677,7 @@ export default defineComponent({
setSex(v:any){
this.workspaceItem.sexEnum = v
this.openType.sex = false
this.workspaceItem.sex = v.name
this.workspaceItem.sex = v.value
this.getMannequins()
this.setMannequinsSex()
this.setPosition('sex')
@@ -716,12 +695,12 @@ export default defineComponent({
// this.workspaceItem.mannequinType = str
// this.workspaceItem.mannequinUrl = item.presignedUrl
let id
if(this.workspaceItem.sexEnum.name == 'Female'){
if(this.workspaceItem.sexEnum.value == 'Female'){
id = this.workspaceItem.mannequinFemaleId
this.workspaceItem.femalePresignedUrl = item.presignedUrl
this.workspaceItem.mannequinFemaleType = str
this.workspaceItem.mannequinFemaleId = item.id
}else if(this.workspaceItem.sexEnum.name == 'Male'){
}else if(this.workspaceItem.sexEnum.value == 'Male'){
id = this.workspaceItem.mannequinMaleId
this.workspaceItem.malePresignedUrl = item.presignedUrl
this.workspaceItem.mannequinMaleType = str
@@ -745,11 +724,11 @@ export default defineComponent({
},
// FEMALE MALE
setMannequinsSex(){
if(this.workspaceItem.sexEnum.name == 'Female'){
if(this.workspaceItem.sexEnum.value == 'Female'){
this.workspaceItem.mannequinUrl = this.workspaceItem.femalePresignedUrl
this.workspaceItem.mannequinType = this.workspaceItem.mannequinFemaleType
this.workspaceItem.mannequinId = this.workspaceItem.mannequinFemaleId
}else if(this.workspaceItem.sexEnum.name == 'Male'){
}else if(this.workspaceItem.sexEnum.value == 'Male'){
this.workspaceItem.mannequinUrl = this.workspaceItem.malePresignedUrl
this.workspaceItem.mannequinType = this.workspaceItem.mannequinMaleType
this.workspaceItem.mannequinId = this.workspaceItem.mannequinMaleId

View File

@@ -152,7 +152,8 @@ setup(props,{emit}) {
habitSetStyleData.selectStyle.name = ''
}
let setItemSelect = (item:any)=>{
habitSetStyleData.selectStyle = item
habitSetStyleData.selectStyle.name = item.name
habitSetStyleData.selectStyle.id = item.id
}
return {
habitSetStyle,

View File

@@ -456,7 +456,7 @@ export default defineComponent({
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
version:1,//为1就是Print
isTestUser:this.driver__.driver?false:this.isTest,
gender:this.workspace.sexEnum.name,
gender:this.workspace.sexEnum.value,
sloganBase64:base64,
}
this.isGenerate = true
@@ -510,15 +510,15 @@ export default defineComponent({
data = data.filter((item:any) => item !== element.taskId);
if(this.type_.type2 == 'Sketchboard'){
this.sketchCatecoryList.forEach((itemCategory:any) => {
if(itemCategory.value == element.category){
if(itemCategory.value == element.categoryValue){
console.log(element,itemCategory);
element.categoryValue = itemCategory?.name
element.category = itemCategory?.value
element.categoryValue = itemCategory?.value
element.category = itemCategory?.name
}
});
}else{
element.categoryValue = this.scene?.name
element.category = this.scene?.value
element.categoryValue = this.scene?.value
element.category = this.scene?.name
}
}
});
@@ -689,7 +689,7 @@ export default defineComponent({
if(str == 'like'){
let level2Type = ''
if(this.upload.level1Type == "Sketchboard"){
level2Type = item.category
level2Type = item.categoryValue
}else if(this.upload.level1Type == "Printboard"){
level2Type = this.scene?.value
}
@@ -697,7 +697,7 @@ export default defineComponent({
generateDetailId:item.id,
level1Type:this.type_.type2,
level2Type: level2Type,
gender:this.workspace.sexEnum.name,
gender:this.workspace.sexEnum.value,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
}
Https.axiosPost(Https.httpUrls.generateLike, data).then(

View File

@@ -278,8 +278,8 @@ export default defineComponent({
selectImgItem(imgData:any){
let parent:any = this.$parent
if(this.selectCode != 'Moodboard'){
imgData.categoryValue = imgData.level2TypeEnum.value
imgData.category = imgData.level2TypeEnum.name
imgData.categoryValue = imgData.level2TypeEnum.name
imgData.category = imgData.level2TypeEnum.value
}
if(parent.isUseGenerate){
this.setUseGenerate([])
@@ -326,7 +326,7 @@ export default defineComponent({
//选择所有的图片
async getLibraryList(str:any){
let workspace = JSON.parse(JSON.stringify(this.store.state.Workspace.workspace))
if(this.searchPictureName != this.isOldSearchPictureName || this.workspace?.sex != workspace.sex){
if(this.searchPictureName != this.isOldSearchPictureName || this.workspace?.sexEnum?.value != workspace.sexEnum.value){
this.imgList = []
this.currentPage = 1
}else{
@@ -338,7 +338,7 @@ export default defineComponent({
let data = {
level1Type:this.selectCode,
level2Type: this.selectCode == 'Moodboard'?'':this.disignType,
modelSex:workspace?.sex,
modelSex:workspace?.sexEnum.value,
page: this.currentPage,
// page:this.currentPage,
pictureName:this.searchPictureName,
@@ -355,8 +355,8 @@ export default defineComponent({
let arr
if(this.type_.type2 == 'Sketchboard'){
arr = this.store.state.UploadFilesModule.sketchMaterialFiles
item.categoryValue = item.level2TypeEnum.value;
item.category = item.level2Type;
item.categoryValue = item.level2TypeEnum.name;
item.category = item.level2TypeEnum.value;
item.categoryShow = false;
}else if(this.type_.type2 == 'Moodboard'){
arr = this.store.state.UploadFilesModule.moodboardMaterialFiles

View File

@@ -399,7 +399,7 @@ export default defineComponent({
generateDetailId:item.id,
level1Type:"Printboard",
level2Type: '',
gender:this.workspace.sexEnum.name,
gender:this.workspace.sexEnum.value,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
}
Https.axiosPost(Https.httpUrls.generateLike, data).then(
@@ -438,8 +438,8 @@ export default defineComponent({
file.imgUrl = rv.url
file.pin = false
file.id = rv.id
file.category = this.printCatecoryList[0].value
file.categoryValue = this.printCatecoryList[0].name
file.category = this.printCatecoryList[0].name
file.categoryValue = this.printCatecoryList[0].value
file.resData = rv
}
@@ -513,8 +513,8 @@ export default defineComponent({
file.imgUrl = rv.url
file.id = rv.id
file.resData = rv
file.category = this.printCatecoryList[0].value
file.categoryValue = this.printCatecoryList[0].name
file.category = this.printCatecoryList[0].name
file.categoryValue = this.printCatecoryList[0].value
}
}
let fileList = this.fileList.filter((v:any)=> v.status === 'done')
@@ -564,8 +564,8 @@ export default defineComponent({
v.pin = v.pin == 1?true:false
this.printCatecoryList.forEach((item:any) => {
if(v.level2Type == item.value){
v.category=item.value
v.categoryValue=item.name
v.category=item.name
v.categoryValue=item.value
}
});
if(v.type_.type1 == 'generate'){

View File

@@ -280,7 +280,7 @@ export default defineComponent({
"user_id" : this.userInfo?.userId,
"session_id":sessionId,
"message" : this.chatCentent,
gender:this.workspace.sexEnum.name,
gender:this.workspace.sexEnum.value,
}
let interaction = {onDownloadProgress: (progressEvent:any) => {
this.clearTimer()

View File

@@ -294,7 +294,7 @@ export default defineComponent({
watch:{
workspaceCom(newVal,oldVal){
this.workspace = newVal
this.upload.gender = newVal?.sexEnum?.name
this.upload.gender = newVal?.sexEnum?.value
},
sketchboardList:{
handler(newVal:any,oldVal:any){
@@ -388,8 +388,8 @@ export default defineComponent({
file.resData = res.data;
// file.pin = false;
//category用来数据处理
file.categoryValue = category?.name;
file.category = category?.value;
file.categoryValue = category?.value;
file.category = category?.name;
file.categoryShow = false;
file.id_ = GO.id++
file.id = res.data.id
@@ -485,8 +485,8 @@ export default defineComponent({
v.pin = v.pin == 1?true:false
this.sketchCatecoryList.forEach((item:any) => {
if(v.level2Type == item.value){
v.category=item.value
v.categoryValue=item.name
v.category=item.name
v.categoryValue=item.value
}
});
if(v.type_.type1 == 'generate'){

View File

@@ -234,7 +234,7 @@ export default defineComponent({
let numBottom = 0
let top:any
let bottom:any
if(this.workspace.sexEnum.name == "Female"){
if(this.workspace.sexEnum.value == "Female"){
top = ['Outwear','Dress','Blouse']
bottom = ['Trousers','Skirt']
}else{
@@ -246,8 +246,8 @@ export default defineComponent({
this.position.forEach((item:any) => {
let topBor
let botBor
topBor = top.includes(item.name)
botBor = bottom.includes(item.name)
topBor = top.includes(item.value)
botBor = bottom.includes(item.value)
if(topBor){
topStr.push(item.value)
}
@@ -257,12 +257,12 @@ export default defineComponent({
});
list.forEach((item:any,index:number) => {
top.forEach((positionItem:any) => {
if(item.category == positionItem && item.pin){
if(item.categoryValue == positionItem && item.pin){
numTop++
}
});
bottom.forEach((positionItem:any) => {
if(item.category == positionItem && item.pin){
if(item.categoryValue == positionItem && item.pin){
numBottom++
}
});
@@ -287,17 +287,14 @@ export default defineComponent({
},
//完成
async finishCollection(){
console.log(123123);
this.isShowMark = true
let sketchList = this.store.state.UploadFilesModule.sketchboard
let arr:any = []
console.log(sketchList);
sketchList.forEach((item:any) => {
let obj = {
designType:item.resData.designType,
isPin:item.pin ? 1 : 0,
level2Type:item.category,
level2Type:item.categoryValue,
sketchBoardId:item.id?item.id:item.resData.id
}
arr.push(obj)

View File

@@ -6,7 +6,7 @@
:class="driverClass.class1"
@click.stop="showFileCategory(item)"
>
{{ item.categoryValue }}
{{ item.category }}
<div
:class="[
'icon',
@@ -26,7 +26,7 @@
<div
:class="[
'category_item',
item.category == cate.value
item.categoryValue == cate.value
? 'select_category_item'
: '',
]"
@@ -99,8 +99,8 @@
for (let item of props.generateList) {
item.categoryShow = false;
}
file.categoryValue = cate.name;
file.category = cate.value;
file.categoryValue = cate.value;
file.category = cate.name;
if(props.isSetSketchCategory){
setSketchLibrary(props.item)
}
@@ -113,7 +113,7 @@
let setSketchLibrary = (item:any)=>{
let data = {
libraryId:[item.id],
level2Type:item.category,
level2Type:item.categoryValue,
}
Https.axiosPost(Https.httpUrls.setSketchLibrary,data).then(
(rv: any) => {

View File

@@ -23,15 +23,40 @@
</div>
<div class="productImg_content_bottom">
<div class="productImg_left">
<div class="productImg_content_item_title productImg_content_item_title_menu">
<span>{{$t('ProductImg.MagicTools')}}</span>
<generalMenu class="productImg_content_item_title_menubtn" :dataList="productimgMenuList" @setprintModel="setproduct" :item="productimgMenu"></generalMenu>
</div>
<div class="input_border productImg_content_item_generate">
<div class="input_box">
<div class="input_box_btnBox">
<input
class="search_input"
:placeholder="$t('Generate.inputContent1')"
v-model="searchName"
@keydown.enter="getPrductimg()"
/>
<i v-show="!isTextarea" class="fi fi-br-expand" @click.stop="()=>isTextarea = !isTextarea"></i>
<i v-show="isTextarea" class="fi fi-bs-compress" @click.stop="()=>isTextarea = !isTextarea"></i>
</div>
<textarea
v-show="isTextarea"
class="search_textarea "
@keydown.enter="getPrductimg()"
v-model="searchName"
></textarea>
</div>
</div>
<div class="productImg_content_item_title">{{$t('ProductImg.SelectCollection')}}</div>
<div class="productImg_content_item_imgBox generalScroll" v-mousewheel>
<div class="content_item_imgBox_itemImg" v-for="item in likeDesignCollectionList" :key="item.id" >
<div class="content_item_imgBox_itemImg" v-for="item in selectList[productimgMenu.value]" :key="item.id" >
<img @click="setGenerate(item)" v-lazy="item.designOutfitUrl" alt="" :class="{active:item.isChecked}">
</div>
</div>
<div class="productImg_content_item_title">{{$t('ProductImg.Upload')}}</div>
<div class="productImg_content_item_imgBox generalScroll upload_item" v-mousewheel>
<div class="upload_file_item" v-for="(file, index) in fileList" :key="file">
<div class="upload_file_item" v-for="(file, index) in fileList[productimgMenu.value]" :key="file">
<div class="upload_file_item_content" v-show="file?.status === 'uploading'" >
<a-spin
:indicator="indicator"
@@ -60,7 +85,7 @@
}"
:headers="{ Authorization: token }"
:before-upload="beforeUpload"
v-model:file-list="fileList"
v-model:file-list="fileList[productimgMenu.value]"
:multiple="true"
:maxCount="8"
accept=".jpg,.png,.jpeg,.bmp"
@@ -76,28 +101,8 @@
</a-upload>
</div>
</div>
<div class="productImg_content_item_title productImg_content_item_title_menu">
<span>{{$t('ProductImg.MagicTools')}}</span>
<generalMenu class="productImg_content_item_title_menubtn" :dataList="productimgMenuList" @setprintModel="setproduct" :item="productimgMenu"></generalMenu>
</div>
<div class="input_border productImg_content_item_generate">
<div class="productImg_content_item_generate_btn input_border">
<div class="input_box">
<div class="input_box_btnBox">
<input
class="search_input"
:placeholder="$t('Generate.inputContent1')"
v-model="searchName"
@keydown.enter="getPrductimg()"
/>
<i v-show="!isTextarea" class="fi fi-br-expand" @click.stop="()=>isTextarea = !isTextarea"></i>
<i v-show="isTextarea" class="fi fi-bs-compress" @click.stop="()=>isTextarea = !isTextarea"></i>
</div>
<textarea
v-show="isTextarea"
class="search_textarea "
@keydown.enter="getPrductimg()"
v-model="searchName"
></textarea>
<div v-show="!isProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
{{ $t('Generate.Generate') }}
</div>
@@ -108,6 +113,7 @@
{{$t('Generate.Close')}}
</div>
</div>
<div class="input_clear started_btn">清空</div>
</div>
</div>
<div class="productImg_right">
@@ -181,7 +187,7 @@ export default defineComponent({
let productImgData:any = reactive({
isShowMark:false,
beenPublished:0,
fileList:[],
fileList:{},
searchName:'',
isTextarea:false,//是否展开
remProductimg:false,//是否出现取消按钮
@@ -198,10 +204,14 @@ export default defineComponent({
{
value:'ProductImage',
label:useI18n().t('ProductImg.ProductImage')
},{
value:'ProductImage1',
label:'123123'
}
])
let productimgMenu = ref(productimgMenuList.value[0])
let productimgMenu:any = ref(productimgMenuList.value[0])
let ExportModel = ref()
let selectList:any = ref({})
let likeDesignCollectionList: any = computed(() => {
return store.state.HomeStoreModule.likeDesignCollectionList;
});
@@ -209,6 +219,7 @@ export default defineComponent({
let init = (userGroupId:any,beenPublished:any)=>{
productImg.value = true
productImgData.beenPublished = beenPublished
selectList.value['ProductImage'] = JSON.parse(JSON.stringify(likeDesignCollectionList.value))
upload.value = {
userlikeGroupId:userGroupId
}
@@ -261,7 +272,7 @@ export default defineComponent({
file.id = res.data.id
file.isChecked = true
file.type = 'ProductElement'
productImgData.fileList.filter((v: any) => v.status === "done");
productImgData.fileList[productimgMenu.value.value].filter((v: any) => v.status === "done");
}else{
bor = false
}
@@ -286,7 +297,7 @@ export default defineComponent({
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
}
let deleteFile = (index:any)=>{
productImgData.fileList.splice(index,1)
productImgData.fileList[productimgMenu.value.value].splice(index,1)
}
let setGenerate = (item:any)=>{
item.isChecked = !item.isChecked
@@ -342,14 +353,14 @@ export default defineComponent({
"toProductImageRecordId": 0,
"url": ""
}
productImgData.fileList.forEach((item:any)=>{
productImgData.fileList[productimgMenu.value.value].forEach((item:any)=>{
if(item.isChecked){
obj.elementId = item.id
obj.elementType = item.type
selectArr.push(JSON.parse(JSON.stringify(obj)))
}
})
likeDesignCollectionList.value.forEach((item:any)=>{
selectList.value[productimgMenu.value.value].forEach((item:any)=>{
if(item.isChecked){
obj.elementId = item.designOutfitId
obj.elementType = 'DesignOutfit'
@@ -460,6 +471,7 @@ export default defineComponent({
...toRefs(productImgData),
productimgMenuList,
productimgMenu,
selectList,
likeDesignCollectionList,
ExportModel,
init,
@@ -633,6 +645,7 @@ export default defineComponent({
}
.productImg_left{
width: 25%;
position: relative;
.upload_file_item{
display: flex;
margin-right: 1rem;
@@ -651,7 +664,20 @@ export default defineComponent({
}
}
.productImg_content_item_generate{
--width:60%;
--width:100%;
}
.productImg_content_item_generate_btn{
position: absolute;
bottom: 0;
top: auto;
width: 100%;
justify-content: space-around;
.input_box{
flex: 0;
.generage_btn{
margin: 0;
}
}
}
}
.productImg_right{

View File

@@ -6,7 +6,7 @@
:class="driverClass.class1"
@click.stop="showFileCategory(item)"
>
{{ item.categoryValue }}
{{ item.category }}
<div
v-show="!isSpread"
:class="[
@@ -28,7 +28,7 @@
<div
:class="[
'category_item',
item.category == cate.value
item.categoryValue == cate.value
? 'select_category_item'
: '',
]"
@@ -108,8 +108,8 @@ export default defineComponent({
for (let item of props.generateList) {
item.categoryShow = false;
}
file.categoryValue = cate.name;
file.category = cate.value;
file.categoryValue = cate.value;
file.category = cate.name;
if(props.isSetSketchCategory){
setSketchLibrary(props.item)
}
@@ -123,7 +123,7 @@ export default defineComponent({
let data = {
libraryId:[item.id],
level2Type:item.category,
level2Type:item.categoryValue,
}
Https.axiosPost(Https.httpUrls.setSketchLibrary,data).then(
(rv: any) => {

View File

@@ -58,6 +58,7 @@
ref="select"
v-model:value="editDesignType"
:options="disignTypeList"
:fieldNames="{ label: 'name', value: 'value' }"
>
<template #suffixIcon>
<!-- <span
@@ -235,13 +236,13 @@ export default defineComponent({
let arr:any = []
rv.forEach((item:any) => {
arr.push({
value:item.name,
label:item.value,
name:item.name,
value:item.value,
})
});
this.designType = arr[0]
this.editDesignType = arr[0]
this.disignTypeList = arr
this.designType = rv[0]
this.editDesignType = rv[0]
this.disignTypeList = rv
// this.workspaceItem.position = this.singleTypeList[0].label
}
})

View File

@@ -35,9 +35,9 @@
</div>
<div class="newScaleImage_right">
<div class="newScaleImage_right_content">
<div class="newScaleImage_right_content_type">
<!-- <div class="newScaleImage_right_content_type">
<div class="generate_item_title_left scaleImage_chunk_title">{{$t('newScaleImage.Type')}}{{ scaleImageData?.portfolioType=='History'? 'Collection' : 'Printboard' }}</div>
</div>
</div> -->
<div v-if="true" class="newScaleImage_right_content_collection">
<div class="scaleImage_chunk_item content_left_collection_detail">
<!-- <div class="scaleImage_chunk_title">设计模式:</div>
@@ -48,7 +48,7 @@
<div class="scaleImage_chunk_title_intro">{{scaleImageData.portfolioDes}}</div>
</div>
<div class="scaleImage_chunk_item content_left_collection_content">
<div class="scaleImage_chunk_title">Finished Products</div>
<div class="scaleImage_chunk_title">{{scaleImageData.Collection}}</div>
<div class="content_left_collection_content_list">
<img v-for="item in scaleImageData?.designPythonOutfitList" v-lazy="item.designUrl">
</div>
@@ -146,10 +146,10 @@
</div>
<div class="newScaleImage_right_comment scaleImage_chunk_item">
<div class="scaleImage_chunk_title">{{$t('newScaleImage.Comment')}}</div>
<div v-show="commentList.length === 0" class="newScaleImage_right_comment_null">
<!-- <div v-show="commentList.length === 0" class="newScaleImage_right_comment_null">
<div class="scaleImage_chunk_title">{{$t('newScaleImage.NoComments')}}</div>
<div class="scaleImage_chunk_title">{{$t('newScaleImage.first')}}</div>
</div>
</div> -->
<div v-show="commentList.length !== 0" class="newScaleImage_right_comment_content">
<div class="detail_left_content_item" v-for="item in commentList" :key="item.id">
<!-- <div class="detail_left_content_item_img">
@@ -170,6 +170,7 @@
<span>123</span>
</div> -->
<div class="left_content_item_btn">
{{userInfo.userName }}{{item.userName}}
<div class="left_content_item_delete" v-if="userInfo.userName === item.userName" @click="setDelete(item)">删除</div>
<div class="left_content_item_unfold" @click="()=>item.detailUnfold = !item.detailUnfold">{{item.detailUnfold?$t('newScaleImage.Collapse'):$t('newScaleImage.unfold')}}</div>
</div>
@@ -243,7 +244,6 @@ export default defineComponent({
setup() {
let {t} = useI18n()
//首先在setup中定义
console.log(getCookie('userInfo'));
let userInfo = ref({});
const store = useStore();
const router = useRouter()
@@ -441,7 +441,14 @@ export default defineComponent({
}
Https.axiosGet(url, {params:data})
.then((rv) => {
getDetail(getDeatilData,'zan')
if(imgData.scaleImageData.isLike == 1){
imgData.scaleImageData.likeNum -= 1
imgData.scaleImageData.isLike = 0
}else{
imgData.scaleImageData.likeNum += 1
imgData.scaleImageData.isLike = 1
}
// getDetail(getDeatilData,'zan')
})
.catch((rv) => {
});
@@ -833,7 +840,6 @@ export default defineComponent({
flex-direction: column;
padding-bottom: 0;
>.scaleImage_chunk_title{
text-align: center;
}
.newScaleImage_right_comment_null,.newScaleImage_right_comment_content{
flex: 1;
@@ -843,9 +849,9 @@ export default defineComponent({
flex-direction: column;
align-items: center;
justify-content: center;
.scaleImage_chunk_title{
font-size: 3rem;
}
// .scaleImage_chunk_title{
// font-size: 3rem;
// }
}
.newScaleImage_right_comment_content{
@@ -958,7 +964,7 @@ export default defineComponent({
align-items: center;
height: 8rem;
justify-content: center;
margin-top: 5rem;
margin-top: 3rem;
position: sticky;
z-index: 2;
padding-bottom: var(--padding);

View File

@@ -477,7 +477,7 @@ export default {
jsContent4:'发布成功!你可以在我的作品中找到',
},
newScaleImage:{
Type:'类型',
Collection:'系列',
SecondaryCreation:'二次创作',
CreationTime:'创建时间',
UpdateTime:'更新时间',

View File

@@ -478,7 +478,7 @@ export default {
jsContent4:'Release success! You can find it in my work',
},
newScaleImage:{
Type:'Type',
Collection:'Collection',
SecondaryCreation:'Secondary Creation',
CreationTime:'CreationTime',
UpdateTime:'UpdateTime',

View File

@@ -1,7 +1,5 @@
import { createRouter, createWebHistory, RouteRecordRaw, createWebHashHistory } from 'vue-router'
import { defineAsyncComponent } from 'vue'
import { getBrowserInfo, murmur } from '@/tool/util'
import { useStore } from "vuex";
import store from "@/store"
import { getCookie, setCookie } from "@/tool/cookie";
const _import = (path: string) => defineAsyncComponent(() => import(`../views/${path}.vue`));
@@ -17,7 +15,6 @@ const routes: Array<RouteRecordRaw> = [
name: "HomeRecommend",
component: _import('HomeRecommend'),
children:[]
},
{
path: '/login',
@@ -107,11 +104,6 @@ const routes: Array<RouteRecordRaw> = [
},
]
},
// {//老版本history
// path: '/oldHistory',
// name: 'oldHistory',
// component: _import('OldHistoryPage')
// },
{
path: '/paySucceed',
name: 'paySucceed',

View File

@@ -1299,8 +1299,8 @@ export default defineComponent({
element.imgUrl = element.url
this.designTypeList[this.selectCode].forEach((itemCategory:any) => {
if(itemCategory.value == element.category){
element.categoryValue = itemCategory?.name
element.category = itemCategory?.value
element.categoryValue = itemCategory?.value
element.category = itemCategory?.name
}
});
// element.categoryValue = this.scene?.name

View File

@@ -1,603 +0,0 @@
<template>
<div class="history_page">
<div class="page_content">
<img
class="page_content_bg"
src="@/assets/images/homePage/bg.png"
/>
<div class="page_content_body">
<!-- <HeaderComponent></HeaderComponent> -->
<div class="history_page_body">
<!-- <div class="history_header">{{ $t('HistoryPage.History') }}</div> -->
<div class="history_table_search">
<a-range-picker class="range_picker" v-model:value="rangePickerValue" :placeholder="[$t('HistoryPage.StartDate'), $t('HistoryPage.EndDate')]" valueFormat="YYYY-MM-DD">
<template #suffixIcon>
<span class="icon iconfont range_picker_icon icon-rili"></span>
</template>
</a-range-picker>
<div class="content_search_block">
<input class="search_input" :placeholder="$t('HistoryPage.inputContent1')" v-model="searchCollectionName" @keydown.enter="searchHistoryList()">
<div class="search_icon_block" @click="searchHistoryList()"><span class="icon iconfont icon-sousuo"></span></div>
</div>
</div>
<div class="history_table_content" ref="historyTable">
<a-table :columns="columns" :data-source="collectionList" :scroll="{ y: historyTableHeight }" @change="changePage"
:pagination="{
showSizeChanger:true,
current: currentPage,
pageSize:pageSize,
total: total,
showQuickJumper:true,
bordered:false
}">
<template #bodyCell="{ column, text, record ,index}">
<div class="operate_list" v-if="column?.Operations">
<div class="operate_item" @click="turnToDetail(record)">{{ $t('HistoryPage.Detail') }}</div>
<!-- <div class="operate_item" @click="renameCollection(record,index)">{{ $t('HistoryPage.Rename') }}</div> -->
<div class="operate_item" @click="setExport(record,'')">{{ $t('HomeView.Export') }}</div>
<!-- <div class="operate_item" @click="deleteGroup(record, index)">{{ $t('HistoryPage.Delete') }}</div> -->
</div>
</template>
</a-table>
</div>
</div>
</div>
</div>
<oldHistoryDetail ref="historyDetail" :groupDetails="groupDetails" :collectionName="collectionName"></oldHistoryDetail>
<!-- <a-modal class="rename_modal_component"
v-model:visible="renameVisivle"
:footer="null"
:title="renameData?.name"
:keyboard="false"
width="56rem"
:maskClosable="false"
:centered="true"
>
<div class="collection_rename_content">
<div class="rename_form_content">
<input class="rename_form_input" :placeholder="$t('HistoryPage.inputContent2')" v-model="newCollectionName" @keydown.enter="confrimRename()">
</div>
<div class="rename_submit_button" @click="confrimRename()">{{ $t('HistoryPage.Submit') }}</div>
</div>
</a-modal> -->
<!-- <RobotAssist></RobotAssist> -->
</div>
<OldExportNewCoolection id="oldExportNewCoolection" ref="OldExportNewCoolection" allBoardData="allBoardData"></OldExportNewCoolection>
</template>
<script lang="ts">
import { defineComponent,ref,createVNode,computed, nextTick} from 'vue'
import HeaderComponent from "@/component/HomePage/Header.vue";
import oldHistoryDetail from "@/component/Detail/oldHistoryDetail.vue";
import { Https } from "@/tool/https";
import { formatTime } from "@/tool/util"
import { Modal,message } from 'ant-design-vue';
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { rgbToHsv, dataURLtoBlob } from "@/tool/util";
import JSZip, { forEach } from "jszip";
import html2canvas from "html2canvas";
import { useStore } from "vuex";
import { useI18n } from 'vue-i18n';
import { getCookie } from "@/tool/cookie";
import OldExportNewCoolection from "@/component/HomePage/OldExportNewCoolection.vue";
const FileSaver = require("file-saver");
export default defineComponent({
components: {
HeaderComponent,
oldHistoryDetail,
RobotAssist,
OldExportNewCoolection
},
setup() {
let rangePickerValue:any = ref([])
const store = useStore();
let renameData:any = ref({}) //修改名字选中的数据
const columns:any = computed(()=>{
return [
{ title: useI18n().t('HistoryPage.CollectionsName'), align:'center', ellipsis: true, width: 150, dataIndex: 'name', key: 'collectionName' },
{ title: useI18n().t('HistoryPage.UptateTime'), align:'center', ellipsis: true,width: 150, dataIndex: 'updateDate', key: 'updateTime',customRender:(record:any)=>{
let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return time
}},
{ title: useI18n().t('HistoryPage.SketchCounts'), align:'center', ellipsis: true, width: 150, dataIndex: 'sketchCount', key: 'sketchCounts' },
{
title: useI18n().t('HistoryPage.Operations'),
key: 'operation',
align:'center',
fixed: 'right',
width: 100,
// slots:{customRender:'action'}
Operations:true,
},
]
});
let collectionList:any = ref([])
let {t} = useI18n()
let userInfo:any = ref()
let allBoardData:any = ref({})
return {
rangePickerValue,
columns,
collectionList,
renameData,
t,
store,
userInfo,
allBoardData,
}
},
data(){
return{
currentPage:1,
pageSize:10,
total:0,
historyTableHeight:0,
newCollectionName:'',
renameVisivle:false,//修改名字弹窗
groupDetails:{},//每个collection的详情
collectionName:'',//选中的名字
isShowMark: false, //导出的loading蒙层
searchCollectionName:'',
}
},
mounted(){
let userInfo:any = getCookie("userInfo")
let str = window.location.search.substring(1)
if(!userInfo){
this.$router.push(`/login?${str}`).then(()=>{
window.location.reload();
});
}
this.userInfo = JSON.parse(userInfo);
let historyTable:any = this.$refs.historyTable
this.historyTableHeight = historyTable.clientHeight - 130
this.getHistoryList()
},
methods:{
turnToDetail(record:any){
// this.groupDetails = record.groupDetails
let historyDetail:any = this.$refs.historyDetail
this.collectionName = record.name
// historyDetail.init(this.data)
this.setExport(record,'look')
// historyDetail.changeDetailShow()
},
//改变页码
changePage(e:any){
this.currentPage = e.current
this.pageSize = e.pageSize
this.getHistoryList()
},
//查询列表
searchHistoryList(){
this.currentPage = 1
this.getHistoryList()
},
getHistoryList(){
let startDate:any = this.rangePickerValue ? new Date(this.rangePickerValue[0]).getTime(): ''
let endDate:any = this.rangePickerValue ? new Date(this.rangePickerValue[1]).getTime(): ''
let data = {
page:this.currentPage,
size:this.pageSize,
collectionName:this.searchCollectionName,
startDate:startDate,
endDate:endDate,
userId:this?.userInfo?.userId,
}
Https.axiosPost('https://old.api.aida.com.hk/api/history/queryUserGroup', data).then(
(rv: any) => {
this.collectionList = rv.content
this.total = rv.total
}
);
},
//删除分组
deleteGroup(record:any,index:number){
let deleteGroupFun = (id:any,index:number) =>{
let data = {
userGroupId:id
}
Https.axiosPost(Https.httpUrls.deleteUserGroup,data).then(
(rv: any) => {
message.success(this.t('HistoryPage.jsContent1'))
this.collectionList.splice(index,1)
}
);
}
Modal.confirm({
title: this.t('HistoryPage.jsContent2'),
icon: createVNode(ExclamationCircleOutlined),
okText: 'Yes',
cancelText: 'No',
centered:true,
mask:false,
onOk() {
deleteGroupFun(record.id,index)
}
});
},
dealViewChooseData(data:any){
if(!data){
return []
}
let filesList = data.map((v:any)=>{
let newData:any = {
imgUrl:v.url.replace(/www\.aida\.com\.hk/, 'files.aida.com.hk'),
id:v.id,
status:'done',
resData:v,
}
if(v.level1Type === 'Sketchboard'){
newData.pin = v.isPin
newData.category = v.level2Type
}
if(v.level1Type === 'Printboard'){
newData.pin = v.isPin
}
return newData
})
return filesList
},
dealLikeDesign(data:any){
let filesList = data.map((v:any)=>{
let newData:any = {
designItemUrl:v.url.replace(/www\.aida\.com\.hk/, 'files.aida.com.hk'),
imgUrl:v.url.replace(/www\.aida\.com\.hk/, 'files.aida.com.hk'),
id:v.designId,
}
return newData
})
return filesList
},
dealHistoryChooseData(data:any,str:any){
let collectionData = {
moodboardFiles:this.dealViewChooseData(data.collection.moodBoards),
printboardFiles:this.dealViewChooseData(data.collection.printBoards),
generatePrintFiles:[],
colorBoards:this.dealViewChooseColor(data.collection.colorBoards),
skecthboardFiles:this.dealViewChooseData(data.collection.sketchBoards),
marketingSketchFiles:this.dealViewChooseData(data.collection.marketingSketchs),
moodTemplateId:data.collection.moodTemplateId,
likeDesignCollectionList:this.dealLikeDesign(data.userLikeDetails)
}
this.allBoardData = collectionData
if(str == 'look'){
let historyDetail:any = this.$refs.historyDetail
historyDetail.init(collectionData)
}else{
let OldExportNewCoolection:any = this.$refs.OldExportNewCoolection
OldExportNewCoolection.init(collectionData)
}
},
dealViewChooseColor(data:any){
let colorList = data.map((v:any)=>{
let rgbValue = v.rgbValue.split(' ')
let newData:any = {
id:v.id,
name:v.name,
tcx:v.tcx || '',
rgbValue:{r:rgbValue[0],g:rgbValue[1],b:rgbValue[2],a:1}
}
return newData
})
return colorList
},
setExport(recold:any,str:any){
let url = 'https://old.api.aida.com.hk/api/history/choose' + `?userGroupId=${recold.id}`
Https.axiosGet(url).then(
(rv: any) => {
this.dealHistoryChooseData(rv,str)
if(str == 'look'){
}else{
nextTick().then(()=>{
this.exportCanvas()
})
}
}
).catch(rv=>{
});
},
async exportCanvas(){
let collectionReview:any = document.querySelector("#oldExportNewCoolection")
let a = document.createElement('a');
this.isShowMark = true
let img:any = []
await html2canvas(collectionReview, { useCORS: true, scale: 3 }).then(
async (canvas) => {
let blob: any = dataURLtoBlob(
canvas.toDataURL("image/png")
);
let index = 0;
img.push({
imgUrl: URL.createObjectURL(blob),
name: "collection.png",
})
let num = 0
for (let key in this.allBoardData) {
if (key !== "colorBoards" && key !== "moodTemplateId") {
for (let item of this.allBoardData[key]) {
if(this.allBoardData[key][0]==undefined){
break
}
let nameTail = item?.imgUrl?.split(".").pop().split("?").shift();
// console.log(item);
let data = {
imgUrl: item.imgUrl,
name:
(item?.resData?.name?item?.resData?.name:'') +
index +
"." +
nameTail,
};
img.push(data);
index++;
}
num++
}
}
// a.setAttribute('href', URL.createObjectURL(blob));
// a.setAttribute('download', `collection.png`);
// a.click();
}
);
this.downImg(img);
},
getImgArrayBuffer(url:any) {
return new Promise((resolve, reject) => {
//通过请求获取文件blob格式
let xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url, true);
xmlhttp.responseType = "blob";
xmlhttp.onload = function () {
if (this.status == 200) {
resolve(this.response);
} else {
reject(this.status);
}
};
xmlhttp.send();
});
},
downImg(imagesParams:any) {
let _this:any = this;
let zip = new JSZip();
let cache:any = {};
let promises = [];
for (let item of imagesParams) {
const promise = _this.getImgArrayBuffer(item.imgUrl).then((data:any) => {
// 下载文件, 并存成ArrayBuffer对象(blob)
zip.file(item.name, data, { binary: true }); // 逐个添加文件
cache[item.title] = data;
});
promises.push(promise);
}
Promise.all(promises)
.then(() => {
zip.generateAsync({ type: "blob" }).then((content:any) => {
// 生成二进制流
FileSaver.saveAs(
content,
'DesignFiles'
); // 利用file-saver保存文件 自定义文件名
this.isShowMark = false
});
})
.catch((res) => {
_this.message.error("Failed to export the file");
this.isShowMark = false
});
},
}
})
</script>
<style lang="less">
.history_page {
width: 100%;
height: 100%;
padding: 0 9rem;
overflow: hidden;
// min-width: 1440px;
position: relative;
.page_content {
position: relative;
.page_content_bg {
position: absolute;
width: 100%;
height: 100%;
}
.page_content_body {
position: absolute;
width: 100%;
height: 100%;
box-sizing: border-box;
.history_page_body{
width: 100%;
height: 100%;
padding: 4rem 2.5rem 4rem;
margin-top: 4rem;
box-sizing: border-box;
top: 50%;
position: relative;
transform: translateY(-50%);
.history_header{
font-size: 1.8rem;
height: 6.3rem;
line-height: 6.3rem;
font-weight: 500;
color: #333333;
}
.history_table_search{
display: flex;
align-items: center;
.range_picker{
width: 36rem;
height: 4.8rem;
.ant-picker-input > input{
font-size: 1.6rem;
}
.range_picker_icon{
font-size: 2.2rem;
}
}
.content_search_block{
margin-left: 4rem;
display: flex;
.search_input{
width: 32.8rem;
padding-left: 1.5rem;
height: 4.8rem;
line-height: 4.6rem;
background: #FFFFFF;
border: 0.1rem solid #F1F1F1;
font-size: 1.6rem;
font-weight: 400;
&::placeholder {
color: #C2C2C2;
}
}
.search_icon_block{
width: 7.2rem;
height: 4.8rem;
line-height: 4.8rem;
text-align: center;
background: #343579;
cursor: pointer;
.icon-sousuo{
font-size: 2rem;
color: #FFFFFF;
}
}
}
}
.history_table_content{
margin-top: 2.6rem;
width: 100%;
height: calc(100% - 13.7rem);
background: rgba(255, 255, 255, 0.6);
padding-bottom: 3rem;
.ant-table{
background: transparent;
}
.ant-table-body{
overflow-y: auto !important;
-ms-overflow-style: none;
overflow: -moz-scrollbars-none;
&::-webkit-scrollbar { width: 0 !important }
}
.ant-table-thead > tr > th{
background: #FFFFFF;
}
.ant-table-tbody > tr > td{
border: none;
background: transparent;
}
.ant-table-tbody > tr{
&:hover > td{
background: #FFFFFF;
}
}
.ant-table-pagination-right{
padding-right: 3.5rem;
}
.operate_list{
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 1rem;
.operate_item{
font-size: 1.4rem;
font-family: Roboto;
font-weight: 400;
color: #343579;
cursor: pointer;
}
}
}
}
}
}
}
.rename_modal_component{
.collection_rename_content{
padding:2rem 9.2rem 3rem;
.rename_form_content{
.rename_form_input{
width: 100%;
height: 4.6rem;
margin-top: 1rem;
border: 0.1rem solid #B4BED7;
padding-left: 2.1rem;
line-height: 4.6rem;
font-size: 1.8rem;
box-sizing: border-box;
&::placeholder {
color:#A5B0C2,
}
}
}
.rename_submit_button{
height: 4.8rem;
line-height: 4.8rem;
background: #343579;
font-size: 2.4rem;
font-weight: 500;
color: #FFFFFF;
width: 16rem;
text-align: center;
cursor: pointer;
margin: 4.5rem auto 0;
}
}
}
</style>