修改标签名字自动获取焦点

This commit is contained in:
X1627315083
2023-12-18 14:36:20 +08:00
parent 38bbfa5259
commit f8ba824bb9
14 changed files with 66 additions and 29 deletions

View File

@@ -38,7 +38,8 @@
<ul v-show="printModel.optype" class="Guide_1_2_5" :class="[driver__.driver?'showEvents':'']">
<li class="printModel_item" @click="setprintModel(1)">{{ $t('Generate.Model1') }}</li>
<li class="printModel_item" @click="setprintModel(2)">{{ $t('Generate.Model2') }}</li>
<li v-show="printBoards.length >= 1" class="printModel_item" @click="setprintModel(3)">{{ $t('Generate.Generate') }}</li>
<li class="printModel_item" @click="setprintModel(3)">{{ $t('Generate.Model3') }}</li>
<li v-show="printBoards.length >= 1" class="printModel_item" @click="setprintModel(4)">{{ $t('Generate.Generate') }}</li>
</ul>
</div>
</div>
@@ -424,7 +425,7 @@ export default defineComponent({
document.removeEventListener('click',this.removePrintModel)
},
setprintModel(num:any){
if(num == 3){
if(num == 4){
this.printModel = {
num : 'Generate',
optype:false,

View File

@@ -27,7 +27,7 @@
<div class="icon iconfont icon-fanhui1 operate_icon"></div>
<div class="operate_item_des">{{ $t('ModelPlacement.Back') }}</div>
</div>
<div class="operate_item" @click="restoreLocationList">
<div class="operate_item" v-show="!perviewUrl" @click="restoreLocationList">
<div class="icon iconfont icon-huifu operate_icon"></div>
<div class="operate_item_des">{{ $t('ModelPlacement.Restore') }}</div>
</div>
@@ -72,12 +72,12 @@
</div>
</div>
<div class="placement_content_operate_list">
<!-- <div class="placement_content_operate_list">
<div class="placement_content_operate_item" @click="changeRemoveStatus">
<div class="placement_remove_point_block"></div>
<div class="placement_content_operate_des">{{ $t('ModelPlacement.RemovePoint') }}</div>
</div>
</div>
</div> -->
<div class="placement_tip_content">{{ $t('ModelPlacement.mannequinHint') }}</div>
@@ -277,20 +277,27 @@ export default defineComponent({
},
setCropperWH(){
let cropper:any = this.$refs.cropper
if(cropper.h != cropper.cropH){
if(cropper.h != cropper.cropH && this.locationList.length < 6){
this.getDefaultPointList(this.imgBox,' ')
return
}else if(cropper.h == cropper.cropH){
cropper.cropH = cropper.scale*cropper.trueHeight
cropper.cropW = cropper.cropH/2.125
cropper.cropOffsertX = cropper.getImgAxis().x1+(cropper.scale*cropper.trueWidth/2-cropper.cropW/2)
cropper.cropOffsertY = cropper.getImgAxis().y1
}
cropper.cropH = cropper.scale*cropper.trueHeight
cropper.cropW = cropper.cropH/2.125
cropper.cropOffsertX = cropper.getImgAxis().x1+(cropper.scale*cropper.trueWidth/2-cropper.cropW/2)
cropper.cropOffsertY = cropper.getImgAxis().y1
},
realTime(data:any) {
clearTimeout(this.cropperTime)
this.cropperTime = setTimeout(()=>{
this.setImageSize()
},100)
let cropper:any = this.$refs.cropper
// if(cropper.h == cropper.cropH){
this.cropperTime = setTimeout(()=>{
this.setImageSize()
clearTimeout(this.cropperTime)
},100)
// }
},
setImageSize(){
@@ -544,6 +551,7 @@ export default defineComponent({
this.locationList = []
this.pointList = JSON.parse(JSON.stringify(this.oldPointList))
this.locationList = JSON.parse(JSON.stringify(this.oldLocationList))
// this.locationList = JSON.parse(JSON.stringify(this.locationList))
},
submitPlacement(){

View File

@@ -27,7 +27,7 @@
<div class="icon iconfont icon-fanhui1 operate_icon"></div>
<div class="operate_item_des">{{ $t('ModelPlacement.Back') }}</div>
</div>
<div class="operate_item" @click="restoreLocationList">
<div class="operate_item" v-show="!perviewUrl" @click="restoreLocationList">
<div class="icon iconfont icon-huifu operate_icon"></div>
<div class="operate_item_des">{{ $t('ModelPlacement.Restore') }}</div>
</div>
@@ -72,12 +72,12 @@
</div>
</div>
<div class="placement_content_operate_list">
<!-- <div class="placement_content_operate_list">
<div class="placement_content_operate_item" @click="changeRemoveStatus">
<div class="placement_remove_point_block"></div>
<div class="placement_content_operate_des">{{ $t('ModelPlacement.RemovePoint') }}</div>
</div>
</div>
</div> -->
<div class="placement_tip_content">{{ $t('ModelPlacement.mannequinHint') }}</div>
@@ -277,19 +277,20 @@ export default defineComponent({
},
setCropperWH(){
let cropper:any = this.$refs.cropper
if(cropper.h != cropper.cropH){
if(cropper.h != cropper.cropH && this.locationList.length < 6){
this.getDefaultPointList(this.imgBox,' ')
return
}else if(cropper.h == cropper.cropH){
cropper.cropH = cropper.scale*cropper.trueHeight
cropper.cropW = cropper.cropH/2.125
cropper.cropOffsertX = cropper.getImgAxis().x1+(cropper.scale*cropper.trueWidth/2-cropper.cropW/2)
cropper.cropOffsertY = cropper.getImgAxis().y1
}
cropper.cropH = cropper.scale*cropper.trueHeight
cropper.cropW = cropper.cropH/2.125
cropper.cropOffsertX = cropper.getImgAxis().x1+(cropper.scale*cropper.trueWidth/2-cropper.cropW/2)
cropper.cropOffsertY = cropper.getImgAxis().y1
},
realTime(data:any) {
clearTimeout(this.cropperTime)
this.cropperTime = setTimeout(()=>{
this.setImageSize()
clearTimeout(this.cropperTime)
},100)
},

View File

@@ -15,7 +15,7 @@
<div class="setLabel_text" :class="{active:optionsItem.checkAll}">
<a-checkbox v-model:checked="optionsItem.checkAll" @change="onCheckAllChange(optionsItem)"></a-checkbox>
<span v-show="!optionsItem.openType" :title="optionsItem.classificationName">{{ optionsItem.classificationName }}</span>
<input v-show="optionsItem.openType" type="text" v-model="itemName" @keydown.enter="putName(optionsIndex,'affirm',optionsItem)">
<input v-show="optionsItem.openType" type="text" class="inputName" v-model="itemName" @keydown.enter="putName(optionsIndex,'affirm',optionsItem)">
<i v-show="optionsItem.openType" @click.stop="putName(optionsIndex,'affirm',optionsItem)" class="fi fi-br-check"></i>
<i v-show="!optionsItem.openType" @click.stop="putName(optionsIndex,'put',optionsItem)" class="fi fi-rr-edit"></i>
</div>
@@ -24,12 +24,12 @@
<li class="childrenItem_title setLabel_text" v-for="childrenItem,childrenIndex in optionsItem.childList" :class="{active:childrenItem.checkAll}" :key="childrenItem.id">
<a-checkbox v-model:checked="childrenItem.checkAll" @change="onCheckAllchildrenItem(optionsItem)"></a-checkbox>
<span v-show="!childrenItem.openType" :title="childrenItem.classificationName">{{ childrenItem.classificationName }}</span>
<input v-show="childrenItem.openType" type="text" v-model="itemName" @keydown.enter="putName(childrenIndex,'affirm',childrenItem)">
<input v-show="childrenItem.openType" type="text" class="inputName" v-model="itemName" @keydown.enter="putName(childrenIndex,'affirm',childrenItem)">
<i v-show="childrenItem.openType" @click.stop="putName(childrenIndex,'affirm',childrenItem)" class="fi fi-br-check"></i>
<i v-show="!childrenItem.openType" @click.stop="putName(childrenIndex,'put',childrenItem)" class="fi fi-rr-edit"></i>
</li>
<li class="newLabel setLabel_text">
<input v-show="optionsItem.addOpenType" type="text" v-model="itemName" @keydown.enter="putName(-1,'affirm',optionsItem)">
<input v-show="optionsItem.addOpenType" type="text" class="inputName" v-model="itemName" @keydown.enter="putName(-1,'affirm',optionsItem)">
<i @click.stop="putName(-1,'affirm',optionsItem)" v-show="optionsItem.addOpenType" class="fi fi-br-check"></i>
<div class="addLabel" v-show="!optionsItem.addOpenType" @click="newLabel(optionsItem,optionsItem.id)">+</div>
</li>
@@ -37,7 +37,7 @@
</li>
<li class="newLabel setLabel_text optionsItem_title">
<div>
<input v-show="openType" type="text" v-model="itemName" @keydown.enter="putName(-1,'affirm','')">
<input v-show="openType" type="text" class="inputName" v-model="itemName" @keydown.enter="putName(-1,'affirm','')">
<i @click.stop="putName(-1,'affirm','')" v-show="openType" class="fi fi-br-check"></i>
<div class="addLabel" v-show="!openType" @click="newLabel('','')">+</div>
</div>
@@ -91,6 +91,7 @@ export default defineComponent({
}
},
mounted(){
this.clearOpenType()
},
watch: {
@@ -172,7 +173,7 @@ export default defineComponent({
},
putName(index:number,v:string,item:any){
let e:any = window.event
e.target.parentNode.
let input = e.target.parentNode.querySelectorAll('.inputName')[0]
let data:any
if(v == 'put'){
this.clearOpenType()
@@ -181,6 +182,9 @@ export default defineComponent({
this.itemName = item.classificationName
// this.options[index].openType = true
// this.itemName = this.workspace.workspaceList[index].workSpaceName
nextTick().then(()=>{
input.focus()
})
}else if(v == 'affirm'){
if(index == -1){
if(this.itemName == ''){
@@ -217,12 +221,16 @@ export default defineComponent({
newLabel(item:any,id:any){
this.itemName = ''
this.clearOpenType()
let e:any = window.event
let input = e.target.parentNode.querySelectorAll('.inputName')[0]
if(item){
item.addOpenType = true
}else{
this.openType = true
}
nextTick().then(()=>{
input.focus()
})
},
removeLabel(val:any){
let data = {

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'输入的内容超过允许输入的最大长度',
Model1:'模型1',
Model2:'模型2',
Model3:'模型3',
inputContent3:'输入生成图片的标题',
Cancel:'取消',
Sure:'确定',
@@ -248,6 +249,7 @@ export default {
TextImage:'图片-文字',
Model1:'模型1',
Model2:'模型2',
Model3:'模型3',
inputContent1:'输入生成图片的标题',
Generate:'生成',
maximumLength:'输入的内容超过允许输入的最大长度',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'The entered content exceeds the maximum length.',
Model1:'Model1',
Model2:'Model2',
Model3:'Model3',
inputContent3:'Input name',
Cancel:'Cancel',
Sure:'Sure',
@@ -248,6 +249,7 @@ export default {
TextImage:'Text-Image',
Model1:'Model1',
Model2:'Model2',
Model3:'Model3',
inputContent1:'Prompt input',
Generate:'Generate',
maximumLength:'The entered content exceeds the maximum length.',

View File

@@ -75,6 +75,7 @@ export default {
maximumLength:'Le contenu saisi dépasse la longueur maximale.',
Model1:'Modèle1',
Model2:'Modèle2',
Model3:'Modèle3',
inputContent3:'Saisie rapide',
Cancel:'Annuler',
Sure:'Bien sûr',
@@ -249,6 +250,7 @@ export default {
TextImage:'Texte-Image',
Model1:'Modèle1',
Model2:'Modèle2',
Model3:'Modèle3',
inputContent1:'Saisie rapide',
Generate:'Générer',
maximumLength:'Le contenu saisi dépasse la longueur maximale.',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'Il contenuto inserito supera la lunghezza massima.',
Model1:'Modello1',
Model2:'Modello2',
Model3:'Modello3',
inputContent3:'Immissione rapida',
Cancel:'Annulla',
Sure:'Sicuro',
@@ -248,6 +249,7 @@ export default {
TextImage:'Testo-immagine',
Model1:'Modello1',
Model2:'Modello2',
Model3:'Modello3',
inputContent1:'Immissione rapida',
Generate:'creare',
maximumLength:'Il contenuto inserito supera la lunghezza massima.',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'入力した内容が最大長を超えています.',
Model1:'モデル1',
Model2:'モデル2',
Model3:'モデル3',
inputContent3:'プロンプト入力',
Cancel:'キャンセル',
Sure:'もちろん',
@@ -248,6 +249,7 @@ export default {
TextImage:'テキスト-画像',
Model1:'モデル1',
Model2:'モデル2',
Model3:'モデル3',
inputContent1:'プロンプト入力',
Generate:'生成する',
Model:'モデル',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'입력한 내용이 최대 길이를 초과했습니다.',
Model1:'모델1',
Model2:'모델2',
Model3:'모델3',
inputContent3:'프롬프트 입력',
Cancel:'취소',
Sure:'확신하는',
@@ -248,6 +249,7 @@ export default {
TextImage:'텍스트-이미지',
Model1:'모델1',
Model2:'모델2',
Model3:'모델3',
inputContent1:'프롬프트 입력',
Generate:'생성하다',
maximumLength:'입력한 내용이 최대 길이를 초과했습니다.',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'Введенный контент превышает максимальную длину.',
Model1:'Модель1',
Model2:'Модель2',
Model3:'Модель3',
inputContent3:'Быстрый ввод',
Cancel:'Отмена',
Sure:'Конечно',
@@ -248,6 +249,7 @@ export default {
TextImage:'Текст-изображение',
Model1:'Модель1',
Model2:'Модель2',
Model3:'Модель3',
inputContent1:'Быстрый ввод',
Generate:'Генерировать',
maximumLength:'Введенный контент превышает максимальную длину.',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'เนื้อหาที่ป้อนเกินความยาวสูงสุด.',
Model1:'แบบอย่าง1',
Model2:'แบบอย่าง2',
Model3:'แบบอย่าง3',
inputContent3:'ป้อนข้อมูลทันที',
Cancel:'ยกเลิก',
Sure:'ได้เลย',
@@ -248,6 +249,7 @@ export default {
TextImage:'ข้อความ-รูปภาพ',
Model1:'แบบอย่าง1',
Model2:'แบบอย่าง2',
Model3:'แบบอย่าง3',
inputContent1:'ป้อนข้อมูลทันที',
Generate:'กำเนิด',
maximumLength:'เนื้อหาที่ป้อนเกินความยาวสูงสุด.',

View File

@@ -74,6 +74,7 @@ export default {
maximumLength:'Nội dung đã nhập vượt quá độ dài tối đa.',
Model1:'Người mẫu1',
Model2:'Người mẫu2',
Model3:'Người mẫu3',
inputContent3:'Nhập liệu nhanh chóng',
Cancel:'Hủy bỏ',
Sure:'Chắc chắn',
@@ -248,6 +249,7 @@ export default {
TextImage:'Văn bản-Hình ảnh',
Model1:'Người mẫu1',
Model2:'Người mẫu2',
Model3:'Người mẫu3',
inputContent1:'Nhập liệu nhanh chóng',
Generate:'Phát ra',
maximumLength:'Nội dung đã nhập vượt quá độ dài tối đa.',

View File

@@ -230,6 +230,7 @@
<ul v-show="printModel.optype">
<li class="printModel_item" @click="setprintModel(1)">{{ $t('LibraryPage.Model1') }}</li>
<li class="printModel_item" @click="setprintModel(2)">{{ $t('LibraryPage.Model2') }}</li>
<li class="printModel_item" @click="setprintModel(3)">{{ $t('LibraryPage.Model3') }}</li>
</ul>
</div>
<div v-show="selectCode != 'Moodboard'" class="upload_item">