语言适配

This commit is contained in:
X1627315083
2024-07-03 17:32:06 +08:00
parent b08a0f85ad
commit 3fd6343e53
17 changed files with 219 additions and 81 deletions

View File

@@ -59,12 +59,12 @@
<!-- 全屏 -->
<i class="fi fi-bs-expand-arrows-alt" @click="showDesignImgDetail(2)"></i>
<!-- 编辑 -->
<i v-show="!body" class="fi fi-rr-edit" @click="showDesignImgDetail(3)"></i>
<i v-show="!body && !deleteShow" class="fi fi-rr-trash" @click="deleteNav(0)"></i>
<i v-show="!body" class="fi fi-rr-edit" :title="$t('DesignDetail.editTitle')" @click="showDesignImgDetail(3)"></i>
<i v-show="!body && !deleteShow" :title="$t('DesignDetail.DetailTitle')" class="fi fi-rr-trash" @click="deleteNav(0)"></i>
<i v-show="!body && deleteShow" class="fi fi-br-check" @click="deleteNav(1)"></i>
<!-- -->
<i class="fi fi-rr-copy" @mousedown="mousedownDesignImg" @mouseup="mouseupDesignImg" @touchstart="mousedownDesignImg" @touchend="mouseupDesignImg"></i>
<i class="fi fi-rr-copy" :title="$t('DesignDetail.compareTitle')" @mousedown="mousedownDesignImg" @mouseup="mouseupDesignImg" @touchstart="mousedownDesignImg" @touchend="mouseupDesignImg"></i>
<i v-show="revocationShow>1" class="icon iconfont icon-chehui" @click="revocation"></i>
<i v-show="oppositeRevocationShow>=1" class="icon iconfont icon-fanchehui" @click="oppositeRevocation"></i>
</div>
@@ -79,7 +79,7 @@
<i class="fi fi-rs-comments"></i>
<div>{{ $t('DesignDetail.CurrentApparel') }}</div>
<i class="fi fi-rr-edit" @click.stop="openCurrent(1)"></i>
<i v-show="current?.id" class="fi fi-rs-pencil-paintbrush" @click.stop="addDetail"></i>
<i v-show="current?.id" :title="$t('DesignDetail.editSketchTitle')" class="fi fi-rs-pencil-paintbrush" @click.stop="addDetail"></i>
</div>
<div class="centent_div" v-if="current?.id" @click="openCurrent(1)">
<img :src="current?.path" alt="" class="" @click="openCurrent(1)">

View File

@@ -89,6 +89,7 @@ export default defineComponent({
let reverseCanvasState = ref([])//存放canvas操作
let normalCanvasState = ref([])//存放canvas操作
let canvasState = ref()//存放canvas操作
let keyDown = []//监听键盘的 keydown 和 keyup 事件
let init = (data,index)=>{
normalCanvasState.value = []
reverseCanvasState.value = []
@@ -103,6 +104,10 @@ export default defineComponent({
canvasBox.style.width = height+'px'
canvasWH.value = height
var canvasDom = document.createElement("canvas");
document.addEventListener("keydown", canvasKeyDown);
document.addEventListener("keyup", canvasKeyUp);
let oldCanvasDom = canvasBox.querySelector('.canvas-container')
if(oldCanvasDom)oldCanvasDom.remove()
canvasBox.appendChild(canvasDom);
@@ -128,12 +133,7 @@ export default defineComponent({
scale = img.height/canvas.height
JSchangeType(canvas,'init')
// 鼠标抬起事件
canvas.on('mouse:up', function(event) {
if(canvasBtn.canvasState != 'move'){
updateCanvasState()
}
});
fabric.Object.prototype.cornerSize = 10
fabric.Object.prototype.transparentCorners = false
exportUrl = data.path
@@ -150,11 +150,17 @@ export default defineComponent({
fabric.Object.prototype.controls.deleteControl.mouseUpHandler = deleteObj
}
updateCanvasState()
// img.selectable = false
// canvas.add(img)
},{ crossOrigin: "Anonymous" });
// 鼠标抬起事件
canvas.on('mouse:up', function(event) {
if(canvasBtn.canvasState != 'move'){
updateCanvasState('mouseUp')
}
});
//画布上移动
canvas.on("mouse:move", event =>setCanvasMove(event));
canvas.add(brushIndicator)
loadingShow.value = false
setOperation('pencil')
img.remove()
@@ -163,23 +169,58 @@ export default defineComponent({
})
}
let canvasKeyDown = (event) => {
if(keyDown.indexOf(event.key)>-1){
}else{
keyDown.push(event.code)
if(keyDown.indexOf('ControlLeft') > -1 && keyDown.indexOf('KeyZ') > -1 && keyDown.indexOf('ShiftLeft') > -1){
historyState('reverse')
}else if(keyDown.indexOf('ControlLeft') > -1 && keyDown.indexOf('KeyZ') > -1){
historyState('')
}
}
}
let canvasKeyUp = (event) =>{
keyDown = keyDown.filter(function(item) {
return event.code !== item;
})
}
let clearCanvas = ()=>{
canvasBtn.canvasState = 'move'
canvasBtn.spreadState = false
}
let rgba = 'rgba(0, 0, 0, 1)'
let brushIndicator = new fabric.Circle({
radius:(canvasBtn.canvasPencilWidth[canvasBtn.canvasState]/2),
fill: '#fff',
radius:2,
fill: 'rgba(0, 0, 0, 0)',
stroke: '#000',
strokeWidth: 1,
originX: 'center',
originY: 'center',
visible :true,
left: -100,
top: -100,
// left: -100,
// top: -100,
erasable: false,
});
let setCanvasMove = (event)=>{
var pointer = canvas.getPointer(event.e);
if(canvas.isDrawingMode){
canvas.setCursor('none');
console.log(12,canvas.contains(brushIndicator));
if(!canvas.contains(brushIndicator)){
canvas.add(brushIndicator)
brushIndicator.set({// left:0,
// top:0,
radius:(canvasBtn.canvasPencilWidth[canvasBtn.canvasState])/2
})
canvas.bringToFront(brushIndicator);//设置优先级最高
}
// brushIndicator.fill = canvasPencilColor.value
brushIndicator.set({ left: pointer.x, top: pointer.y, visible: true,radius:(canvasBtn.canvasPencilWidth[canvasBtn.canvasState])/2 });
}
canvas.requestRenderAll()
}
let setOperation = (str)=>{
canvasBtn.canvasState = str
if(str == 'move'){
@@ -237,9 +278,12 @@ export default defineComponent({
canvas.freeDrawingBrush.width = Number(canvasBtn.canvasPencilWidth[canvasBtn.canvasState])
},300)
}
let updateCanvasState = () =>{
const canvasAsJson = JSON.stringify(canvas.toJSON());
normalCanvasState.value.push(canvasAsJson);
let updateCanvasState = (str) =>{
if(str != 'mouseUp'){
canvas.remove(brushIndicator)
}
const canvasAsJson = JSON.stringify(canvas.toJSON());
normalCanvasState.value.push(canvasAsJson);
}
//撤回
let historyState = (str)=> {
@@ -295,17 +339,20 @@ export default defineComponent({
exportCanvas.add(obj)
if(allObjects.length-1 == index){
let data = exportCanvas.toDataURL('jpg')
showPayOrder.value = false;
cancelDsign()
clearCanvas()
emit('setSloganData',data)
}
})
})
}
let cancelDsign = ()=>{
canvas.dispose();
showPayOrder.value = false
document.removeEventListener('keydown',canvasKeyDown);
document.removeEventListener('keyup', canvasKeyUp);
}
return {
presentState,
showPayOrder,
@@ -317,6 +364,7 @@ export default defineComponent({
setPencilWidth,
historyState,
setSubmit,
cancelDsign,
};
},
data() {
@@ -326,10 +374,6 @@ export default defineComponent({
mounted() {},
methods: {
cancelDsign(){
this.showPayOrder = false
}
},
});
</script>

View File

@@ -461,6 +461,7 @@ export default defineComponent({
})
resolve('')
})
this.store.commit("setWorkspaceAllPosition", [...this.position[0].value,...this.position[1].value]);
// this.getworkspace()
// this.setPosition('')
},

View File

@@ -104,6 +104,7 @@
</div>
<div class="upload_file_item_scale">
<a-upload
:title="$t('ColorboardUpload.uploadTitle')"
:capture="null"
:max-count="1"
list-type="picture-card"
@@ -116,7 +117,7 @@
<i class="fi fi-br-upload"></i>
</div>
</a-upload>
<div class="upload_file_item" @click="setPrintImg()">
<div :title="$t('ColorboardUpload.selectTitle')" class="upload_file_item" @click="setPrintImg()">
<i class="fi fi-rr-picture"></i>
</div>
</div>
@@ -130,7 +131,7 @@
<img src="#" :title="pantongNameList[index]">
</div>
</div>
<div class="upload_color_btn" v-show="selectColorList.length>0">
<div class="upload_color_btn" :title="isSelectSuccessively?$t('ColorboardUpload.SelectSuccessivelyOnTitle'):$t('ColorboardUpload.SelectSuccessivelyOffTitle')" 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>

View File

@@ -376,7 +376,7 @@ export default defineComponent({
likeDesignCollectionList;
allBoardData.value[productData.key] = productData.imgList;
nextTick().then(async () => {
let exportCanvasBoxCanvas = document.querySelector('.exportCanvasBox_center')
let exportCanvasBoxCanvas = document.querySelector('.Export .exportCanvasBox_center')
canvasWH.value.width = exportCanvasBoxCanvas.offsetWidth - 10
let canvasBox = document.querySelector(
@@ -647,25 +647,33 @@ export default defineComponent({
// data
let imgId = 0
let minioUrl = ''//表示收藏或者generate
if(key == 'likeDesignCollectionList'){
imgId = data.designOutfitId
minioUrl = data.url
}else if(key == 'upImgFiles'){
imgId = data
minioUrl = data.url
}else if(key == 'FinalizeImage'){
imgId = data.id
let url = data.imgUrl.split('?')[0]
var match = url.match(/:(\d+)\/(.*)/);
minioUrl = match[2]
}else if(key == 'disposeMoodboard'){
let url = data.imgUrl.split('?')[0]
var match = url.match(/:(\d+)\/(.*)/);
minioUrl = match[2]
// data.imgUrl
}else{
minioUrl = data.minIOPath?data.minIOPath:data.resData.minIOPath
// if(key == 'likeDesignCollectionList'){
// imgId = data.designOutfitId
// minioUrl = data.url
// }else if(key == 'upImgFiles'){
// imgId = data
// minioUrl = data.url
// }else if(key == 'FinalizeImage'){
// imgId = data.id
// let url = data.imgUrl.split('?')[0]
// var match = url.match(/:(\d+)\/(.*)/);
// minioUrl = match[2]
// }else if(key == 'disposeMoodboard'){
// let url = data.imgUrl.split('?')[0]
// var match = url.match(/:(\d+)\/(.*)/);
// minioUrl = match[2]
// // data.imgUrl
// }else{
// minioUrl = data.minIOPath?data.minIOPath:data.resData.minIOPath
// }
let imgUrl = data.imgUrl
if (key == "likeDesignCollectionList") {
imgUrl = data.designOutfitUrl;
}
console.log(data);
let url = imgUrl.split('?')[0]
var match = url.match(/:(\d+)\/(.*)/);
minioUrl = match[2]
// let id =
let proportion = img.height / img.width; //计算图形宽高比例
let imgWidth = setImageWidth(key)
@@ -830,6 +838,7 @@ export default defineComponent({
centered:true,
onOk() {
showUpgradePlan.value = false;
canvas.dispose();
position = {
//设置每个图形位置的初始值
x: 0,

View File

@@ -55,7 +55,7 @@
@keydown.enter="getgenerate()"
@click="inputFocus()"
/>
<i class="fi fi-br-upload" v-show="!isTextarea && upload.level1Type !== 'Moodboard' && scene?.value != 'Slogan' && scene?.value != 'Logo'">
<i class="fi fi-br-upload" :title="$t('Generate.uploadTitle')" v-show="!isTextarea && upload.level1Type !== 'Moodboard' && scene?.value != 'Slogan' && scene?.value != 'Logo'">
<a-upload
class="search_upImg"
:capture="null"
@@ -73,7 +73,7 @@
>
</a-upload>
</i>
<i v-show="scene?.value == 'Slogan'" @click.stop="setSlogan" class="fi fi-rr-poll-h"></i>
<i v-show="scene?.value == 'Slogan'" :title="$t('Generate.sloganTitle')" @click.stop="setSlogan" class="fi fi-rr-poll-h"></i>
<i v-show="!isTextarea" class="fi fi-br-expand" @click.stop="setTextareaShow"></i>
<i v-show="isTextarea" class="fi fi-bs-compress" @click.stop="setTextareaShow"></i>
</div>
@@ -171,7 +171,7 @@
<script lang="ts">
import { LoadingOutlined } from "@ant-design/icons-vue";
import { message, Upload, Modal } from "ant-design-vue";
import { defineComponent, computed, createVNode, h, ref, nextTick, inject } from "vue";
import { defineComponent, computed, createVNode, h, ref,watch, nextTick, inject } from "vue";
import { Https } from "@/tool/https";
import { useStore } from "vuex";
import GO from "@/tool/GO";
@@ -605,8 +605,10 @@ export default defineComponent({
str = ','
}
if(this.upload.level1Type == "Moodboard"){
this.styleRecommend.push(value)
this.styleRecommend = [...new Set(this.styleRecommend)]
if(this.workspace?.allKeywordsByStyle['Printboard'].indexOf(value) == -1){
this.styleRecommend.push(value)
this.styleRecommend = [...new Set(this.styleRecommend)]
}
}
this.searchPictureName += str + value
},

View File

@@ -30,7 +30,14 @@
<div v-show="openClick == 3" class="generalMenu_printModel printMenu">
<div @click.stop="openPrintModel">{{ scene.name }} <i class="icon iconfont icon-xiala" :class="{forbidden:openMenu}"></i></div>
<ul v-show="openMenu">
<li v-for="item,index in printCatecoryList" class="printModel_item" @click.stop="setSceneList(item)">{{ item.name }}</li>
<li
v-for="item,index in printCatecoryList"
class="printModel_item"
@click.stop="setSceneList(item)"
:title="item.value == 'Pattern'?$t('PrintboardUpload.PatternTitle'):
item.value == 'Logo'?$t('PrintboardUpload.LogoTitle'):
item.value == 'Slogan'?$t('PrintboardUpload.SloganTitle'):''"
>{{ item.name }}</li>
</ul>
</div>
</div>

View File

@@ -196,6 +196,9 @@ export default defineComponent({
let sketchCatecoryList:any = computed(()=>{
return store.state.Workspace.workspacePosition
})
let sketchCatecoryAllList:any = computed(()=>{
return store.state.Workspace.workspaceAllPosition
})
let workspace:any = ref({})
let sketchboardList:any = computed(()=>{
return store.state.UploadFilesModule.sketchboard
@@ -216,6 +219,7 @@ export default defineComponent({
openClick,
store,
sketchCatecoryList,
sketchCatecoryAllList,
workspace,
sketchboardList,
t,
@@ -512,7 +516,7 @@ export default defineComponent({
}
arr.forEach((v:any)=>{
v.pin = v.pin == 1?true:false
this.sketchCatecoryList.forEach((item:any) => {
this.sketchCatecoryAllList.forEach((item:any) => {
if(v.level2Type == item.value){
v.category=item.name
v.categoryValue=item.value

View File

@@ -90,11 +90,11 @@
<div v-show="modeOfPayment == 'alipay'" class="UpgradePlan_payAffirm_content_detail">
<label>
<input name="location" type="radio" value="ALIPAYHK" v-model="modeOfPaymentDetail">
<span>HK</span>
<span>Hong Kong</span>
</label>
<label>
<input name="location" type="radio" value="ALIPAYCN" v-model="modeOfPaymentDetail">
<span>大陆</span>
<span>Mainland China</span>
</label>
</div>
</label>

View File

@@ -385,6 +385,7 @@ export default defineComponent({
cancelDsign(){
canvas.dispose();
this.showPayOrder = false
}
},

View File

@@ -181,7 +181,7 @@
<div class="productImg_right_item_scale iconLeft" @click.stop="setScaleImage(likeList,index,false)">
<i class="fi fi-bs-expand-arrows-alt"></i>
</div>
<div class="productImg_right_item_menu iconLeft" @click.stop="setMenuShow(item)">
<div class="productImg_right_item_menu iconLeft" :title="$t('ProductImg.moreTitle')" @click.stop="setMenuShow(item)">
<i class="fi fi-rr-circle-ellipsis"></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>
@@ -198,6 +198,8 @@
:productData="{
upload:upload,
similarity:similarity,
RelightDirection:RelightDirection,
RelightDirectionList:RelightDirectionList,
}"
:isProductimg="true"></scaleImage>
</a-modal>
@@ -562,7 +564,8 @@ export default defineComponent({
arr.forEach((item:any)=>{
item.imgUrl = item.url
})
scaleImage.value.isProductimg = isLike
// scaleImage.value.isProductimg = isLike
scaleImage.value.isProductimg = false
scaleImage.value.init(arr,index)
scaleImage.value.isLike = false
scaleImage.value.isComparison = true

View File

@@ -58,6 +58,20 @@
</a-slider>
<input type="number" readonly v-model="productimgSimilarity">
</div>
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.RelightDirection')}}</span>
</div>
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_Direction">
<!-- <a-slider class="system_silder"
v-model:value="similarity"
@afterChange="setSimilarity"
:tooltipVisible="false"
:step="5"
>
</a-slider> -->
<a-select style="width: 100%;" v-model:value="productimgRelightDirection" :options="productimgRelightDirectionList"></a-select>
</div>
<div class="productImg_content_item_generate_btn input_border">
<div class="input_box">
<div v-show="!productimgIsProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
@@ -140,6 +154,8 @@ export default defineComponent({
productimgIsProductimg:false,
productimgSimilarity:props.productData.similarity,
productimgUpload:props.productData.upload,
productimgRelightDirection:props.productData.RelightDirection,
productimgRelightDirectionList:props.productData.RelightDirectionList,
})
let scaleImage: any = ref(false);
let isShowMark = ref(false)

View File

@@ -63,7 +63,7 @@ export default {
requiresCredits:'执行超分的图片需要消耗{data}积分',
Scale:'倍率',
Cancel:'取消',
jsContent1:'您是否已经保存画布内容如果没有保存请点击保存后再关闭。',
jsContent1:"您是否已经保存画布内容如果没有,请再关闭前点击'保存'。",
jsContent2:'我们只支持对印花进行超分',
jsContent3:'您的积分小于一次超分',
jsContent4:'您的积分余额不足',
@@ -139,8 +139,7 @@ export default {
jsContent7:"友情提示",
jsContent5:"我们很高兴让您体验AiDA 3.0。请注意,部分服务在试用期间可能会受到限制。如果您已经准备好全身心投入并享受完整的体验,我们诚挚地邀请您订阅。只需访问",
jsContent6:" 就可以开始订阅。感谢您试用我们的服务!",
jsContent9:"是否清除当前收集?",
jsContent10:"请完成标语图片",
jsContent9:"您确定要清除当前系列并重新开始吗?",
},
ProductImg:{
Finalize:'完成',
@@ -152,6 +151,7 @@ export default {
GenerateProduct:'生成的产品',
SelectedProduct:'选择的产品',
Export:'导出',
moreTitle:'更多工具',
ProductImage:'产品图',
Relight:'打光',
RightLight:'右侧光',
@@ -220,6 +220,7 @@ export default {
inputContent2:'请输入新名称',
Submit:'保存',
CollectionsName:'名字',
source:'来源',
UptateTime:'修改时间',
SketchCounts:'草图数量',
Operations:'Operations',
@@ -279,7 +280,7 @@ export default {
Close:'取消',
currently:'您排在队列中的第{generateLineUp}位',
PIN:'PIN',
Maximum:'最多可上传{maxImg}张图片每张图片最大2M',
Maximum:'最多可上传{maxImg}张图片每张图片最大2MB',
Thumbnail:'选择的线稿',
inputContent1:'生成图片的标题',
maximumLength:'输入的内容超过允许输入的最大长度',
@@ -298,10 +299,13 @@ export default {
Close:'取消',
currently:'您排在队列中的第{generateLineUp}位',
PIN:'PIN',
Maximum:'最多可上传8张图片每张图片最大2M',
Maximum:'最多可上传16张图片每张图片最大2MB',
Thumbnail:'选择的印花',
inputContent1:'生成图片的标题',
maximumLength:'输入的内容超过允许输入的最大长度',
PatternTitle:'生成可在服装上完全平铺的重复设计图案。',
LogoTitle:'为文字内容创建艺术字体设计,适用于各种标语或短语。',
SloganTitle:'输入的内容超过允许输入的最大长度',
jsContent1:"您只能上传图片文件!",
jsContent2:'图片必须小于5MB',
jsContent3:"超过允许上传的最大图片数量",
@@ -318,11 +322,15 @@ export default {
UploadImage:'上传图片',
ColorCode:'颜色代码',
SelectSuccessively:'连选',
SelectSuccessivelyOnTitle:'连续选色模式开启.',
SelectSuccessivelyOffTitle:'连续选色模式关闭.',
SelectSeparately:'单选',
ExtractColor:'提取颜色',
Single:'单色',
Gradual:'渐变',
Alignment:'线性',
uploadTitle:'从本地上传图片',
selectTitle:'从情绪版或印花版选择图片',
jsContent1:"您的浏览器不支持",
jsContent2:"找不到这个TCX的颜色",
jsContent3:"您只能上传图片文件!",
@@ -339,7 +347,7 @@ export default {
Library:'收藏',
Generate:'生成',
Delete:'删除',
Maximum:'最多可上传8张图片每张图片最大2M',
Maximum:'最多可上传8张图片每张图片最大2MB',
Thumbnail:'选择的情绪板',
layout:'布局',
selected:'当前的情绪版布局',
@@ -390,6 +398,8 @@ export default {
maximumLength:'输入的内容超过允许输入的最大长度',
effectPoor:'当前生成的图像质量低于标准。请考虑调整您的提示词并再次尝试。',
Model:'模型',
uploadTitle:'上传参考图',
sloganTitle:'输入文字内容',
jsContent1:"您只能上传图片文件!",
jsContent2:'图片必须小于5MB',
jsContent3:"请输入内容~",
@@ -417,8 +427,12 @@ export default {
DesignDetail:{
Details:'详情',
EditDetails:'编辑设计的细节',
editTitle:'修改单品',
DetailTitle:'删除单品',
compareTitle:'对比',
Submit:'保存',
CurrentApparel:'当前服装',
editSketchTitle:'修改草图',
CurrentPrint:'当前印花',
CurrentColor:'当前颜色',
},
@@ -465,7 +479,7 @@ export default {
inputContent:'输入名字进行搜索',
preview:'预览',
isOverall:'图案图像不能在单件模式下使用',
jsContent1:'以上操作没有保存,是否继续? ',
jsContent1:'以上更改尚未保存,您确定要继续吗?',
},
uploadFile:{
jsContent1:'您最多可以选择{maxImg}张图片哦',
@@ -492,7 +506,7 @@ export default {
CollectionTitle:'系列名字',
Description:'描述',
Permissions:'权限',
PermissionsItem1:'是否允许其他用户进行二次创。',
PermissionsItem1:'允许其他用户进行二次创。',
Close:'关闭',
UpdatePublish:'更新发布',
jsContent1:'如果您离开此页,您的更改将会丢失。您确定要离开这一页吗?',

View File

@@ -64,7 +64,7 @@ export default {
requiresCredits:'Performing upscale image requires a {data} credits',
Scale:'Scale',
Cancel:'Cancel',
jsContent1:'Have you saved the canvas content? If not, please click "Save" first before closing.',
jsContent1:"Have you saved your canvas content? If not, please click 'Save' before closing.",
jsContent2:'We only provide super-resolution capabilities for printboard images.',
jsContent3:'Your points are less than one SR',
jsContent4:'Your points balance is insufficient',
@@ -140,7 +140,7 @@ export default {
jsContent7:"Friendly Reminder",
jsContent5:"We're delighted to have you experience AiDA 3.0. Please be aware that some services may be limited during the trial period. If you're ready to fully dive in and enjoy the complete experience, we warmly invite you to subscribe. Just visit ",
jsContent6:" to get started. Thank you for trying our services!",
jsContent9:"Whether to clear the current collection?",
jsContent9:"Are you sure to erase current collection and start over?",
},
ProductImg:{
Finalize:'Finalize',
@@ -152,6 +152,7 @@ export default {
GenerateProduct:'Generate Product',
SelectedProduct:'Selected Product',
Export:'Export',
moreTitle:'More tools',
ProductImage:'Product Image',
Relight:'Relight',
RightLight:'Right Light',
@@ -220,6 +221,7 @@ export default {
inputContent2:'Enter a new name',
Submit:'Submit',
CollectionsName:'Collections Name',
source:'Source',
UptateTime:'Uptate Time',
SketchCounts:'Sketch Counts',
Operations:'Operations',
@@ -267,7 +269,7 @@ export default {
},
Upload:{
Delete:'Delete',
Maximum2M:'Maximum 8 images can be uploaded, Maximum 2M per image',
Maximum2M:'Maximum 8 images can be uploaded, Maximum 5MB per image',
jsContent1:'You can only upload Image file!',
jsContent2:'Image must smaller than 5MB!',
jsContent3:'upload failed',
@@ -279,7 +281,7 @@ export default {
Close:'Cancel',
currently:'You are currently in the {generateLineUp} th position in the queue',
PIN:'PIN',
Maximum:'Maximum {maxImg} images can be uploaded, Maximum 2M per image',
Maximum:'Maximum {maxImg} images can be uploaded, Maximum 5MB per image',
Thumbnail:'Selected sketchboard',
inputContent1:'Input prompt',
maximumLength:'The entered content exceeds the maximum length.',
@@ -298,10 +300,13 @@ export default {
Close:'Cancel',
currently:'You are currently in the {generateLineUp} th position in the queue',
PIN:'PIN',
Maximum:'Maximum 8 images can be uploaded, Maximum 2M per image',
Maximum:'Maximum 16 images can be uploaded, Maximum 5MB per image',
Thumbnail:'Selected printboard',
inputContent1:'Input prompt',
maximumLength:'The entered content exceeds the maximum length.',
PatternTitle:'Generates repeatable designs that can be fully tiled across garments.',
LogoTitle:'Creates standalone graphic designs that can be placed individually or tiled.',
SloganTitle:'Produces artistic typography for text, suitable for various slogans or phrases.',
jsContent1:"You can only upload Image file!",
jsContent2:'Image must smaller than 5MB!',
jsContent3:"Maximum number of allowable file uploads has been exceeded",
@@ -317,12 +322,16 @@ export default {
RGBA:'RGBA',
UploadImage:'Upload Image',////////////
ColorCode:'Color Code',
SelectSuccessively:'Mutil',
SelectSuccessively:'Successive',
SelectSuccessivelyOnTitle:'Enable successive color selection.',
SelectSuccessivelyOffTitle:'Disable successive color selection.',
SelectSeparately:'Select Separately',
ExtractColor:'Extract Color',
Single:'Single',
Gradual:'Gradual',
Alignment:'Alignment',
uploadTitle:'Upload image from local file',
selectTitle:'Choose image from moodboard or printboard',
jsContent1:"Your browser does not support it",
jsContent2:"Can't find the TCX color",
jsContent3:"You can only upload Image file!",
@@ -339,7 +348,7 @@ export default {
Library:'Library',
Generate:'Generate',
Delete:'Delete',
Maximum:'Maximum 8 images can be uploaded, Maximum 2M per image',
Maximum:'Maximum 8 images can be uploaded, Maximum 5MB per image',
Thumbnail:'Selected moodboard',
layout:'Layout',
selected:'Layout of selected moodboard',
@@ -363,7 +372,7 @@ export default {
MarketingSketchUpload:{
Upload:'Upload',
MyLibrary:'My Library',
maximumLength:'Maximum 15 images can be uploaded, Maximum 2M per image',
maximumLength:'Maximum 15 images can be uploaded, Maximum 5MB per image',
jsContent1:'upload failed',
jsContent2:"You can only upload Image file!",
jsContent3:'Image must smaller than 5MB!',
@@ -390,6 +399,8 @@ export default {
maximumLength:'The entered content exceeds the maximum length.',
effectPoor:'The quality of the generated images currently falls below standard. Please consider adjusting your prompt and trying again.',
Model:'Model',
uploadTitle:'Upload reference image',
sloganTitle:'Input text content',
jsContent1:"You can only upload Image file!",
jsContent2:'Image must smaller than 5MB!',
jsContent3:"Please enter content",
@@ -418,8 +429,12 @@ export default {
DesignDetail:{
Details:'Details',
EditDetails:'Edit the details of your design',
editTitle:'Modify item',
DetailTitle:'Deleta item',
compareTitle:'Compare',
Submit:'Submit',
CurrentApparel:'Current Apparel',
editSketchTitle:'Modify sketch',
CurrentPrint:'Current Print',
CurrentColor:'Current Color',
},
@@ -466,7 +481,7 @@ export default {
inputContent:'Please input',
preview:'Preview',
isOverall:'Pattern images cannot be used in Single mode',
jsContent1:'The above changes are not saved, being sure to continue? ',
jsContent1:'The above changes are not saved.Are you sure you want to continue? ',
},
uploadFile:{
jsContent1:'You can select up to {maxImg} images',
@@ -493,7 +508,7 @@ export default {
CollectionTitle:'Collection Title',
Description:'Description',
Permissions:'Permissions',
PermissionsItem1:'Whether to allow other users to perform secondary creation.',
PermissionsItem1:'Allow other users to perform secondary creation.',
Close:'Close',
UpdatePublish:'Update Publish',
jsContent1:'Your changes will be lost if you navigate away from this page. Are you sure you want to leave this page?',

View File

@@ -5,6 +5,7 @@ interface DesignDetail{
workspace:any,
workspaceSex:any,
workspacePosition:any,
workspaceAllPosition:any,//所有位置
}
@@ -13,6 +14,7 @@ const Workspace : Module<DesignDetail,RootState> = {
workspace:{},
workspaceSex:{},
workspacePosition:{},
workspaceAllPosition:{},
},
mutations:{
setWorkspace(state,files){
@@ -23,6 +25,9 @@ const Workspace : Module<DesignDetail,RootState> = {
},
setWorkspacePosition(state,files){
state.workspacePosition = files
},
setWorkspaceAllPosition(state,files){
state.workspaceAllPosition = files
},
},

View File

@@ -125,6 +125,22 @@ export default defineComponent({
let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return time
}},
{
title: useI18n().t('HistoryPage.source'),
align:'center', ellipsis: true, width: 150,
dataIndex: 'original', key: 'original',
customRender:(record:any)=>{
console.log(record);
let str = ''
if(record.text == 1){
str = useI18n().t('newScaleImage.Original')
}else{
str = `@${record.record.originalAccountName}/${record.record.originalPortfolioName}`
}
// let time = formatTime(record.text / 1000, 'YYYY-MM-DD hh:mm:ss')
return str
}
},
{ title: useI18n().t('HistoryPage.SketchCounts'), align:'center', ellipsis: true, width: 120, dataIndex: 'sketchCount', key: 'sketchCounts' },
{
title: useI18n().t('HistoryPage.Operations'),

View File

@@ -243,7 +243,7 @@
@click="inputFocus()"
:placeholder="(scene?.value == 'Slogan' && selectCode == 'Printboard')?isSloganHint:$t('LibraryPage.inputContent2')"
v-model="captionGeneration">
<i class="fi fi-br-upload" v-show="!isTextarea && upload.level1Type !== 'Moodboard' && scene?.value != 'Slogan' && scene?.value != 'Logo'">
<i class="fi fi-br-upload" :title="$t('Generate.uploadTitle')" v-show="!isTextarea && upload.level1Type !== 'Moodboard' && scene?.value != 'Slogan' && scene?.value != 'Logo'">
<a-upload
class="search_upImg"
:capture="null"
@@ -262,7 +262,7 @@
>
</a-upload>
</i>
<i v-show="selectCode == 'Printboard' && scene?.value == 'Slogan'" @click.stop="setSlogan" class="fi fi-rr-poll-h"></i>
<i v-show="selectCode == 'Printboard' && scene?.value == 'Slogan'" :title="$t('Generate.sloganTitle')" @click.stop="setSlogan" class="fi fi-rr-poll-h"></i>
<i v-show="!isTextarea" class="fi fi-br-expand" @click.stop="setTextareaShow"></i>
<i v-show="isTextarea" class="fi fi-bs-compress" @click.stop="setTextareaShow"></i>
</div>