This commit is contained in:
X1627315083
2024-06-28 17:34:28 +08:00
parent ade36d899a
commit 8e694ce2c4
15 changed files with 210 additions and 66 deletions

View File

@@ -9,4 +9,4 @@ VUE_APP_BASE_URL = 'https://develop.api.aida.com.hk'
# 佩佩
# VUE_APP_BASE_URL = 'http://192.168.1.7:5567'
# 海波
# VUE_APP_BASE_URL = 'http://192.168.1.9:5567'
VUE_APP_BASE_URL = 'http://192.168.1.9:5567'

View File

@@ -79,6 +79,27 @@ li {
margin-top: -0.4rem;
border: solid 0.2rem #343579;
}
.ant-slider:hover .ant-slider-track {
background-color: #e1e1e1;
}
.ant-slider:hover .ant-slider-handle {
box-shadow: rgba(41, 62, 141, 0.16) 0px 0 0 4px;
}
.ant-slider-track,
.ant-slider-rail {
height: calc(0.6rem*1.2);
background-color: #e1e1e1;
background-size: 100% 100%;
border-radius: calc(0.5rem*1.2);
}
.ant-slider .ant-slider-handle:not(.ant-tooltip-open),
.ant-slider-handle {
background-color: #2d2e76 !important;
border: none !important;
}
.ant-slider-handle:hover {
box-shadow: 0 0 0 5px rgba(45, 46, 118, 0.2);
}
.cliAdmin_like {
animation: adminLike 0.5s ease-in-out forwards;
transform-origin: center;
@@ -921,14 +942,22 @@ li {
box-shadow: none !important;
}
.ant-switch {
min-width: 4.4rem;
min-width: 5.4rem;
height: 2.2rem;
line-height: 2.2rem;
}
.ant-switch .ant-switch-handle {
top: 50%;
transform: translateY(-50%);
width: 1.8rem;
height: 1.8rem;
}
.ant-switch .ant-switch-inner {
margin: 0 1rem 0 3rem;
}
.ant-switch-checked .ant-switch-inner {
margin: 0 3rem 0 1rem;
}
.ant-message {
z-index: 1049 !important;
top: 6rem;

View File

@@ -87,6 +87,30 @@ input:focus{
}
}
}
.ant-slider:hover{
.ant-slider-track{
background-color: #e1e1e1;
}
.ant-slider-handle{
box-shadow: rgba(41,62,141,.16) 0px 0 0 4px;
}
}
.ant-slider-track,
.ant-slider-rail {
height: calc(.6rem*1.2);
background-color: #e1e1e1;
// background-image: url(@../../../../assets/images/homePage/slider.png);
background-size: 100% 100%;
border-radius: calc(0.5rem*1.2);
}
.ant-slider .ant-slider-handle:not(.ant-tooltip-open),
.ant-slider-handle {
background-color: #2d2e76 !important;
border: none !important;
}
.ant-slider-handle:hover {
box-shadow: 0 0 0 5px rgba(45, 46, 118, 0.2);
}
.cliAdmin_like{
animation: adminLike .5s ease-in-out forwards;
transform-origin: center;
@@ -1043,13 +1067,21 @@ input:focus{
box-shadow: none !important;
}
.ant-switch{
min-width: 4.4rem;
min-width: 5.4rem;
height: 2.2rem;
line-height: 2.2rem;
.ant-switch-handle{
top: 50%;
transform: translateY(-50%);
width: 1.8rem;
height: 1.8rem;
}
.ant-switch-inner{
margin: 0 1rem 0 3rem;
}
}
.ant-switch-checked .ant-switch-inner{
margin: 0 3rem 0 1rem;
}
.ant-message{
z-index: 1049 !important;

View File

@@ -96,7 +96,6 @@ export default defineComponent({
align: "center",
width: 50,
ellipsis: true,
width: 50,
dataIndex: "country",
key: "country",
},

View File

@@ -64,7 +64,7 @@
v-show="file?.status === 'done'"
>
<img :src="file?.url" class="upload_img" />
<sketchCategory v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" :disignTypeList="sketchCatecoryList" :generateList="uploadList" :item="file" ></sketchCategory>
<sketchCategory v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" :disignTypeList="designTypeList" :generateList="uploadList" :item="file" ></sketchCategory>
<div
class="delete_file_block"
@click.stop="deleteFile(index)"

View File

@@ -18,7 +18,7 @@
<div class="addDetails_center">
<div class="modal_title_text">
<div>Add Details</div>
<div>{{ $t('addDetails.AddDetails') }}</div>
<div class="modal_title_text_intro"></div>
</div>
<div class="exportCanvasBox_center">
@@ -37,7 +37,7 @@
</div>
<div class="exportCanvasBox_submit" @click="setSubmit">
<div class="started_btn">
submit
{{ $t('addDetails.submit') }}
</div>
</div>
@@ -260,7 +260,7 @@ export default defineComponent({
let setSubmit = ()=>{
var allObjects = canvas.getObjects();
if(allObjects.length == 0){
return
return message.info(t('addDetails.jsContent1'))
}
var canvasDom = document.createElement("canvas");
let exportCanvas = new fabric.Canvas(canvasDom, {

View File

@@ -987,23 +987,7 @@ export default defineComponent({
}
.habit_System_Designer {
// margin-top: calc(8rem*1.2);
:deep(.ant-slider-track),
:deep(.ant-slider-rail) {
height: calc(.6rem*1.2);
background-color: #e1e1e1;
// background-image: url(@../../../../assets/images/homePage/slider.png);
background-size: 100% 100%;
border-radius: calc(0.5rem*1.2);
}
:deep(.ant-slider .ant-slider-handle:not(.ant-tooltip-open)),
:deep(.ant-slider-handle) {
background-color: #2d2e76 !important;
border: none !important;
}
:deep(.ant-slider-handle:hover) {
box-shadow: 0 0 0 5px rgba(45, 46, 118, 0.2);
}
.habit_System_Designer_text_max {
display: flex;

View File

@@ -130,7 +130,10 @@
<img src="#" :title="pantongNameList[index]">
</div>
</div>
<div class="started_btn upload_color_btn" v-show="selectColorList.length>0" @click="()=>isSelectSuccessively = !isSelectSuccessively">{{isSelectSuccessively?$t('ColorboardUpload.SelectSuccessively'):$t('ColorboardUpload.SelectSeparately')}}</div>
<div class="upload_color_btn" v-show="selectColorList.length>0">
<span>{{$t('ColorboardUpload.SelectSuccessively')}}</span>
<a-switch :checked="isSelectSuccessively" @click="()=>isSelectSuccessively = !isSelectSuccessively" checked-children="ON" un-checked-children="OFF"/>
</div>
</div>
</div>
<div class="right_content_line">
@@ -1025,6 +1028,14 @@ export default defineComponent({
transform: translateX(-50%);
bottom: 0;
white-space: nowrap;
display: flex;
align-items: center;
height: 4rem;
font-weight: 600;
font-size: 1.8rem;
>span{
margin-right: 1rem;
}
}
.color_setting_block{
margin: auto;

View File

@@ -38,12 +38,12 @@
<div class="my_material_content">
<div class="material_content_body scroll_style">
<div v-for="item,index in imgList" :key="item" class="content_img_item" :class="[ item?.checked ? 'active':'' , selectCode == 'Moodboard' ? 'moodb':'' ]" >
<div v-for="item,index in imgList" :key="item" class="content_img_item" :class="[ item?.libraryChecked ? 'active':'' , selectCode == 'Moodboard' ? 'moodb':'' ]" >
<img :src="item?.imgUrl" @click.stop="selectImgItem(item)">
<sketchCategory v-if="selectCode == 'Sketchboard'" :disignTypeList="disignTypeList" :generateList="imgList" :item="item" :isSetSketchCategory="true" @upTypeSucced='upTypeSucced'></sketchCategory>
<!-- <printCategory v-if="selectCode == 'Printboard'" :disignTypeList="disignTypeList" :generateList="imgList" :item="item" :isSetSketchCategory="true"></printCategory> -->
<!-- <div v-if="selectCode == 'Sketchboard' || selectCode == 'Printboard'" class="pin_block">
<a-checkbox v-model:checked="item.pin">{{ $t('Material.PIN') }}</a-checkbox>
<a-checkbox v-model:libraryChecked="item.pin">{{ $t('Material.PIN') }}</a-checkbox>
</div> -->
</div>
<div v-show="total > imgList?.length && total != 0" class="material_content_list_loding" v-observe>
@@ -205,7 +205,7 @@ export default defineComponent({
if(newVal.findIndex((newValItem:any) =>newValItem.id == item.id) == -1){
this.imgList.forEach((i:any)=>{
if(i.id == item.id){
i.checked = false
i.libraryChecked = false
}
})
}
@@ -219,7 +219,7 @@ export default defineComponent({
if(newVal.findIndex((newValItem:any) =>newValItem.id == item.id) == -1){
this.imgList.forEach((i:any)=>{
if(i.id == item.id){
i.checked = false
i.libraryChecked = false
}
})
}
@@ -234,7 +234,7 @@ export default defineComponent({
if(newVal.findIndex((newValItem:any) =>newValItem.id == item.id) == -1){
this.imgList.forEach((i:any)=>{
if(i.id == item.id){
i.checked = false
i.libraryChecked = false
}
})
}
@@ -261,14 +261,14 @@ export default defineComponent({
setUseGenerate(arr:any){
let parent:any = this.$parent
this.imgList.forEach((item:any) => {
item.checked = false
item.libraryChecked = false
});
if(parent.isUseGenerate){
}else{
arr.forEach((item:any) => {
this.imgList.forEach((imgListItem:any) => {
if(item.id == imgListItem.id){
imgListItem.checked = true
imgListItem.libraryChecked = true
}
});
});
@@ -281,9 +281,10 @@ export default defineComponent({
imgData.categoryValue = imgData.level2TypeEnum.name
imgData.category = imgData.level2TypeEnum.value
}
imgData.libraryChecked = true
imgData.like = true
if(parent.isUseGenerate){
this.setUseGenerate([])
imgData.checked = true
let obj = {
imgId : imgData.id,
imgUr: imgData.imgUrl,
@@ -370,7 +371,7 @@ export default defineComponent({
arr.forEach((v:any)=>{
if(item.id == v.id){
item.id_ = v.id_?v.id_:GO.id++
item.checked = true
item.libraryChecked = true
item.pin = v.pin
}
})

View File

@@ -123,13 +123,13 @@
<img v-lazy="item.imgUrl">
<sketchCategory :disignTypeList="printCatecoryList" :generateList="printboardList" :isSpread="true" :item="item" ></sketchCategory>
<!-- <div
<div
class="delete_like_file_block left1"
:class="[driver__.driver?'hideEvents':'']"
>
<i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i>
<i v-if="!item.like || item.libraryChecked" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i>
<i v-else class="fi fi-sr-heart" :adminLike="!!item.like" @click.stop="likeFile(item,'noLike')"></i>
</div> -->
</div>
<div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
</div>

View File

@@ -140,13 +140,13 @@
<img v-lazy="item.imgUrl">
<sketchCategory :disignTypeList="sketchCatecoryList" :generateList="sketchboardList" :isSpread="true" :item="item" :driver__="driver__.driver"></sketchCategory>
<!-- <div
<div
class="delete_like_file_block left1"
:class="[driver__.driver?'hideEvents':'']"
>
<i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like')"></i>
<i v-else class="fi fi-sr-heart" :adminLike="!!item.like" @click.stop="likeFile(item,'noLike')"></i>
</div> -->
</div>
<div class="delete_like_file_block left" :class="[driver__.driver?'hideEvents':'']">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
</div>
@@ -462,6 +462,35 @@ export default defineComponent({
this.store.commit("setSketchboardFile", this.fileList);
}
},
likeFile(item:any,str:string){
if(str == 'like'){
let data = {
generateDetailId:item.id,
level1Type:"Sketchboard",
level2Type: item.categoryValue?item.categoryValue:item.level2Type,
gender:this.workspace.sexEnum.value,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
}
Https.axiosPost(Https.httpUrls.generateLike, data).then(
(rv) => {
item.like = true
}
).catch(res=>{
});
}else{
let data = {
generateDetailId:item.id,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
}
Https.axiosGet(Https.httpUrls.generateDislike, {params:data}).then(
(rv) => {
item.like = false
}
).catch(res=>{
});
}
},
recollection() {
this.useGenerate = {
imgId : '',

View File

@@ -48,6 +48,19 @@
</div>
</div>
<div class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.Similarity')}}</span>
</div>
<div>
<input type="text" v-model="similarity">
<a-slider id="system_silder"
v-model:value="similarity"
@afterChange="setSimilarity"
:tooltipVisible="false"
:step=".05"
>
</a-slider>
</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 selectList[productimgMenu.value]" :key="item.id" >
@@ -112,27 +125,34 @@
{{$t('Generate.Close')}}
</div>
</div>
<!-- <div class="input_clear started_btn" @click="clearPrductimg">{{$t('ProductImg.Clear')}}</div> -->
</div>
</div>
<div class="productImg_right">
<div class="productImg_content_item_title">{{$t('ProductImg.GenerateProduct')}}</div>
<div class="productImg_right_item_box generalScroll" v-mousewheel>
<div class="productImg_right_item" v-for="item,index in generateList[productimgMenu.value]" :key="item">
<img :src="item.url" alt="">
<div class="productImg_right_item_like">
<i class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
<div class="productImg_right_item_imgBox" v-if="item.status != 'Success'">
<img class="loadingImg" src="@/assets/images/homePage/loading.gif" alt="">
</div>
<div class="productImg_right_item_scale iconLeft">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
</div>
<div class="productImg_right_item_menu iconLeft">
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
<ul v-show="item.menuShow">
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
</ul>
<div class="productImg_right_item_imgBox" v-else>
<img :src="item.url" alt="">
<div class="productImg_right_item_like">
<i class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
</div>
<div class="productImg_right_item_scale iconLeft">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
</div>
<div class="productImg_right_item_menu iconLeft">
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
<ul v-show="item.menuShow">
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
</ul>
</div>
</div>
</div>
<div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
</div>
<div class="productImg_content_item_title productImg_right_titleBtn">
{{$t('ProductImg.SelectedProduct')}}
@@ -158,9 +178,7 @@
</div>
</div>
</div>
<div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
<ExportModel ref="ExportModel" @setTask="setTask"></ExportModel>
<scaleImage ref="scaleImage"></scaleImage>
</a-modal>
@@ -206,6 +224,7 @@ export default defineComponent({
selectProductimgList:[],
generateList:{},
likeList:[],
similarity:0,
})
let productimgMenuList = ref([
{
@@ -265,7 +284,6 @@ export default defineComponent({
}
let cleardata = ()=>{
productImg.value = false
productImgData.isShowMark = false
productImgData.likeList = []
productImgData.generateList = {}
productimgMenu.value = productimgMenuList.value[0]
@@ -369,7 +387,8 @@ export default defineComponent({
"isLike": 0,
"taskId": "",
"toProductImageRecordId": 0,
"url": ""
"url": "",
imageStrength:.3
}
if(productImgData.fileList[productimgMenu.value.value]){
productImgData.fileList[productimgMenu.value.value].forEach((item:any)=>{
@@ -411,15 +430,23 @@ export default defineComponent({
if(productimgMenu.value.value == 'Relight'){
url = Https.httpUrls.relight
}
productImgData.isShowMark = true
Https.axiosPost(url, data).then(
(rv) => {
productImgData.isShowMark = false
let arr:any = []
if(!productImgData.generateList[productimgMenu.value.value]){
productImgData.generateList[productimgMenu.value.value] = []
}
rv.forEach((item:any)=>{
arr.push(item.taskId)
})
productImgData.generateList[productimgMenu.value.value].push(...rv)
setPrductimg(arr)
}
).catch(res=>{
productImgData.isShowMark = false
productImgData.isProductimg = false
clearInterval(remPrductimgTime)
productImgData.remProductimg= false
@@ -427,7 +454,6 @@ export default defineComponent({
}
let generateProceedList:any = []
let setPrductimg = (dataList:any)=>{
let data = dataList
let dataNum = dataList.length
let state = true
@@ -447,10 +473,15 @@ export default defineComponent({
rv.forEach((element:any) => {
if(element.status == 'Success'){
element.imgUrl = element.url
if(!productImgData.generateList[productimgMenu.value.value]){
productImgData.generateList[productimgMenu.value.value] = []
}
productImgData.generateList[productimgMenu.value.value].unshift(element)
// if(!productImgData.generateList[productimgMenu.value.value]){
// productImgData.generateList[productimgMenu.value.value] = []
// }
let index = productImgData.generateList[productimgMenu.value.value].findIndex((obj:any) => obj.taskId === element.taskId);
productImgData.generateList[productimgMenu.value.value][index] = element
// productImgData.generateList[productimgMenu.value.value].unshift(element)
}else if(element.status == 'Fail'){
let index = productImgData.generateList[productimgMenu.value.value].findIndex((obj:any) => obj.taskId === element.taskId);
productImgData.generateList[productimgMenu.value.value].splice(index,1)
}
data = data.filter((item:any) => item !== element.taskId);
});
@@ -522,9 +553,10 @@ export default defineComponent({
generalIsMenuShow = {}
document.removeEventListener('click',removeMenuShow)
}
let clearPrductimg = ()=>{
let setSimilarity = ()=>{
}
//超分
let setTask = (data:any)=>{
emit('setTask',data)
@@ -555,7 +587,7 @@ export default defineComponent({
setScaleImage,
setMenu,
setMenuShow,
clearPrductimg,
setSimilarity,
setTask,
};
},
@@ -655,6 +687,9 @@ export default defineComponent({
font-weight: 500;
}
}
&.productImg_content_item_title_similarity{
// margin-bottom: 8rem;
}
}
.productImg_content_item_intro{
font-size: 1.4rem;
@@ -765,12 +800,23 @@ export default defineComponent({
border-radius: 2rem;
margin-bottom: 2%;
padding: 1rem 1.5rem;
position: relative;
.mark_loading{
position: absolute
}
.productImg_right_item{
height: 100%;
padding: 1rem 0;
margin-right: 1rem;
position: relative;
background: #fff;
.productImg_right_item_imgBox{
height: 100%;
.loadingImg{
width: 14rem;
object-fit: contain;
}
}
img{
height: 100%;
}

View File

@@ -28,8 +28,9 @@
<div class="falls_item_user">
<!-- <img src="http://121.40.53.210:3000/falls/5.png" alt=""> -->
<div class="falls_item_user_detail">
<span>@{{ item.userName }}</span>
<div>{{item.portfolioName}}</div>
<span :title="item.portfolioDes">{{item.portfolioDes}}</span>
<!-- <span :title="item.portfolioDes">{{item.portfolioDes}}</span> -->
</div>
</div>
<div class="falls_item_detail">

View File

@@ -147,6 +147,7 @@ export default {
SelectCollection:'选择的系列',
Upload:'上传',
MagicTools:'魔法工具',
Similarity:'相似度',
GenerateProduct:'生成的产品',
SelectedProduct:'选择的产品',
Export:'导出',
@@ -433,6 +434,11 @@ export default {
jsContent5:'Image must smaller than 5MB!',
jsContent6:"找不到这个TCX的颜色",
},
addDetails:{
AddDetails:'添加细节',
submit:'保存',
jsContent1:'请至少绘制一条线段',
},
DesignDetailEnd:{
NewApparel:'选择的服装',
NewPrint:'选择的印花',

View File

@@ -146,6 +146,7 @@ export default {
Finalize:'Finalize',
SelectCollection:'Select Collection',
Upload:'Upload',
Similarity:'Similarity',
MagicTools:'Magic Tools',
GenerateProduct:'Generate Product',
SelectedProduct:'Selected Product',
@@ -311,7 +312,7 @@ export default {
RGBA:'RGBA',
UploadImage:'Upload Image',////////////
ColorCode:'Color Code',
SelectSuccessively:'Select Successively',
SelectSuccessively:'Mutil',
SelectSeparately:'Select Separately',
ExtractColor:'Extract Color',
Single:'Single',
@@ -434,6 +435,11 @@ export default {
jsContent5:'Image must smaller than 5MB!',
jsContent6:"Can't find the TCX color",
},
addDetails:{
AddDetails:'Add Details',
submit:'Submit',
jsContent1:'Please draw at least one line segment',
},
DesignDetailEnd:{
NewApparel:'New Apparel',
NewPrint:'New Print',