Merge branch 'develop' into localDevelop

This commit is contained in:
X1627315083
2024-05-20 13:09:06 +08:00
8 changed files with 211 additions and 16 deletions

View File

@@ -1227,6 +1227,10 @@ i {
opacity: 0.5;
transform: scale(0.9);
}
textarea:focus {
outline: none;
/* 清除默认焦点样式 */
}
.collection_modal_body .input_border,
.design_detail_modal_component .input_border,
.library_page .input_border {
@@ -1288,6 +1292,38 @@ i {
.library_page .input_border input.forbidden {
cursor: no-drop;
}
.collection_modal_body .input_border .icon-xiala,
.design_detail_modal_component .input_border .icon-xiala,
.library_page .input_border .icon-xiala {
margin-left: 1rem;
display: inline-block;
cursor: pointer;
transition: all 0.3s;
}
.collection_modal_body .input_border .icon-xiala.active,
.design_detail_modal_component .input_border .icon-xiala.active,
.library_page .input_border .icon-xiala.active {
transform: rotate(180deg);
}
.collection_modal_body .input_border .icon-xiala.forbidden,
.design_detail_modal_component .input_border .icon-xiala.forbidden,
.library_page .input_border .icon-xiala.forbidden {
cursor: no-drop;
}
.collection_modal_body .input_border .search_textarea,
.design_detail_modal_component .input_border .search_textarea,
.library_page .input_border .search_textarea {
z-index: 3;
height: auto;
position: absolute;
left: 0;
font-size: calc(1.6rem*1.2);
width: 70%;
border-radius: 4px;
height: 20rem;
top: 0.2rem;
border: 1px solid #dcdfe6;
}
.collection_modal_body .input_border span,
.design_detail_modal_component .input_border span,
.library_page .input_border span {

View File

@@ -1326,6 +1326,9 @@ i{
transform: scale(.9);
}
textarea:focus{
outline: none; /* 清除默认焦点样式 */
}
//设计input和上传按钮样式
.collection_modal_body,.design_detail_modal_component,.library_page{
.input_border{
@@ -1376,6 +1379,31 @@ i{
cursor: no-drop;
}
}
.icon-xiala{
margin-left:1rem;
display: inline-block;
cursor: pointer;
transition: all .3s;
&.active{
transform: rotate(180deg);
}
&.forbidden{
cursor: no-drop;
}
}
.search_textarea{
z-index:3;
height: auto;
position: absolute;
left: 0;
font-size: calc(1.6rem*1.2);
// width: 30rem;
width: 70%;
border-radius: 4px;
height: 20rem;
top: .2rem;
border: 1px solid #dcdfe6;
}
span{
position: absolute;
// bottom: calc(0rem*1.2);

View File

@@ -90,13 +90,18 @@
<a-slider id="system_silder"
v-model:value="workspaceItem.systemDesignerPercentage"
@afterChange="systemDesigner"
:tooltip-visible="openType.slider"
:tip-formatter="formatter"
>
</a-slider>
<div class="habit_System_Designer_text_max">
<div class="habit_System_Designer_text">{{ $t('Habit.System') }}</div>
<div class="habit_System_Designer_text">{{ $t('Habit.Designer') }}</div>
<div class="habit_System_Designer_text">
{{ $t('Habit.System') }}<span>(100%)</span>
</div>
<div class="habit_System_Designer_text">
{{ $t('Habit.Designer') }}<span>(100%)</span>
</div>
</div>
</div>
<div class="habit_model" :class="[driver__.index == 3?driver__.driver?'Guide_active':'':'']">
@@ -615,7 +620,8 @@ export default defineComponent({
this.workspaceItem.systemDesignerPercentage = num
},
formatter(value: number) {
return `${value}%`;
let num = Math.abs((value-50)*2)
return `${num}%`;
},
//根据id设置当前参数
@@ -915,7 +921,14 @@ export default defineComponent({
.habit_System_Designer_text_max {
display: flex;
justify-content: space-between;
text-align: center;
.habit_System_Designer_text {
>span{
font-size: 1.2rem;
font-weight: 600;
color: #2d2e76;
}
}
}
}

View File

@@ -54,7 +54,7 @@
<div v-if="item[0] && key == 'colorBoards'" class="exportCanvasBox_intro">Color</div>
<div v-if="item[0] && key == 'sketchboardFiles'" class="exportCanvasBox_intro">Sketch</div>
<div v-if="item[0] && key == 'likeDesignCollectionList'" class="exportCanvasBox_intro">Selected Design</div>
<div class="exportCanvasBox_item_color" v-if="key == 'colorBoards'" v-for="colorItem in item" draggable="true" @dragstart="onDragstart(key,colorItem)">
<div class="exportCanvasBox_item_color" v-if="key == 'colorBoards'" v-for="colorItem in item" :class="{active:colorItem.checked}" draggable="true" @dragstart="onDragstart(key,colorItem)" @click="isMoible?setDragstart(key,colorItem):''">
<img src="" alt="">
<div class="exportCanvasBox_item_BGcolor" :style="{'background-color': 'rgb('+colorItem.rgbValue.r+','+colorItem.rgbValue.g+','+colorItem.rgbValue.b+')'}"></div>
<div>{{colorItem.tcx}}</div>
@@ -63,10 +63,11 @@
<div
class="exportCanvasBox_item"
:class="[key == 'disposeMoodboard'?'exportCanvasBox_item_dispose':'']"
v-for="imgItem in item"
:class="[key == 'disposeMoodboard'?'exportCanvasBox_item_dispose':'',imgItem?.checked?'active':'']"
draggable
@dragstart="onDragstart(key,imgItem)"
@click="isMoible?setDragstart(key,imgItem):''"
>
<div class="exportCanvasBox_img">
<!-- <div v-if="key == 'likeDesignCollectionList'">{{ imgItem.designOutfitUrl }}</div> -->
@@ -806,6 +807,18 @@ export default defineComponent({
currentType.value.type = type
currentType.value.data = imgItem
}
let present = {}
let setDragstart = (type,imgItem)=>{
currentType.value.type = type
present.checked = false
present = {}
if(imgItem.checked){
}else{
imgItem.checked = true
present = imgItem
}
currentType.value.data = imgItem
}
let canvasOnDrop = ()=>{
canvas.on('drop', (opt)=> {
let offset = {
@@ -1357,7 +1370,27 @@ export default defineComponent({
}
//设置再画布上按下
let setCanvasDown = (event)=>{
//设置移动端按下添加元素
if(isMoible && present.checked){
present.checked = false
present = {}
let pointerVpt = canvas.restorePointerVpt(event.pointer)
switch (currentType.value.type) {
case 'colorBoards':
let rect = setGroup(currentType.value.data)
setCanvasColor(pointerVpt.y, pointerVpt.x,rect)
break
case 'moodboardFiles':
createImage(pointerVpt.y, pointerVpt.x,currentType.value.type)
break
default :
createImage(pointerVpt.y, pointerVpt.x,currentType.value.type)
break
}
// 创建完元素,把当前操作的元素类型设置回 null
currentType.value.type = null
currentType.value.data = null
}
downPoint = event.absolutePointer
let arr = ['rect','line','circle','triangle','ellipse','fold']
if(arr.indexOf(operation.value) > -1){
@@ -1634,6 +1667,7 @@ export default defineComponent({
setCloseNav,//给图片导航或者工具收起来或者展开
multiselect,//获取整体高度
onDragstart,//拖拽函数
setDragstart,//的移动端拖拽改为按下
historyState,//执行撤回或者反撤回
operation,//设置当前鼠标状态绘画或者矩形或者移动
operationMode,//设置矩形是边框还是填充
@@ -1894,6 +1928,10 @@ export default defineComponent({
max-height: 100%;
}
}
.active{
opacity: .5;
transform: scale(.9);
}
}
}
.exportCanvasBox_left_tool{

View File

@@ -53,6 +53,15 @@
v-model="searchPictureName"
@keydown.enter="getgenerate()"
/>
<i class="icon iconfont icon-xiala" :class="{active:isTextarea}" @click.stop="setTextareaShow"></i>
<textarea
v-show="isTextarea"
class="search_textarea "
@input="ifMaximumLength"
:maxlength='inputShow?0:9999'
@keydown.enter="getgenerate()"
v-model="searchPictureName"
></textarea>
<!-- <div class="generage_btn started_btn" @click.stop="getgenerate">{{ $t('Generate.Generate') }}</div> -->
<div v-show="!isGenerate" class="generage_btn started_btn" @click.stop="getgenerate">
{{ $t('Generate.Generate') }}
@@ -302,6 +311,7 @@ export default defineComponent({
type2: prop.msg,
},
workspaceCom:{},
isTextarea:false
};
},
@@ -504,7 +514,7 @@ export default defineComponent({
// }
if(this.searchPictureName){
let arr = this.searchPictureName.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('Generate.jsContent4')
);
@@ -638,6 +648,9 @@ export default defineComponent({
});
}
},
setTextareaShow(){
this.isTextarea = !this.isTextarea
},
ifMaximumLength(){
clearTimeout(this.inputTime)
let inputBox = document.getElementsByClassName('generate')[0].getElementsByClassName('input_box')[0]

View File

@@ -106,6 +106,9 @@
<div class="input_border">
<div class="Guide_1_2_8 input_box" :class="[inputShow?'active':'',driver__.driver?'showEvents':'']">
<input class="search_input" @input="ifMaximumLength" @keydown.enter="getgenerate" :maxlength='inputShow?0:9999' :class="{forbidden:generateCheckbox}" :readonly="generateCheckbox" :placeholder="$t('PrintboardUpload.inputContent1')" v-model="captionGeneration">
<i class="icon iconfont icon-xiala" :class="{active:isTextarea,forbidden:generateCheckbox}" @click.stop="setTextareaShow"></i>
<textarea class="search_textarea" v-show="isTextarea && !generateCheckbox" @input="ifMaximumLength" @keydown.enter="getgenerate" :maxlength='inputShow?0:9999' :class="{forbidden:generateCheckbox}" :readonly="generateCheckbox" v-model="captionGeneration">
</textarea>
<!-- <div class="generage_btn started_btn" @click.stop="getgenerate">{{ $t('PrintboardUpload.Generate') }}</div> -->
<!-- <div v-show="!isGenerate" class="generage_btn started_btn" @click.stop="getgenerate">
{{ $t('PrintboardUpload.Generate') }}
@@ -290,7 +293,8 @@ export default defineComponent({
printboardList:computed(()=>{
return useStore().state.UploadFilesModule.printboard
}),
source:axios.CancelToken.source()
source:axios.CancelToken.source(),
isTextarea:false,
}
},
@@ -661,6 +665,10 @@ export default defineComponent({
getgenerateCheckbox(value:any){
this.generateCheckbox = value
},
setTextareaShow(){
if(this.generateCheckbox) return
this.isTextarea = !this.isTextarea
},
ifMaximumLength(){
this.inputTime = setTimeout(()=>{
if(this.captionGeneration?.split(/\s+/).length > 75){
@@ -723,7 +731,7 @@ export default defineComponent({
// this.beforeUpload(false)
if(this.captionGeneration){
let arr = this.captionGeneration.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('PrintboardUpload.jsContent5')
);
@@ -740,7 +748,7 @@ export default defineComponent({
if(this.useGenerate.imgId){
if(this.captionGeneration){
let arr = this.captionGeneration.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('PrintboardUpload.jsContent5')
);

View File

@@ -140,6 +140,9 @@
<div class="input_border">
<div class="Guide_1_9_2 input_box" :class="[inputShow?'active':'',driver__.driver?'showEvents':'']">
<input class="search_input" @input="ifMaximumLength" @keydown.enter="getgenerate" :maxlength='inputShow?0:9999' :class="{forbidden:generateCheckbox}" :readonly="generateCheckbox" :placeholder="$t('PrintboardUpload.inputContent1')" v-model="captionGeneration">
<i class="icon iconfont icon-xiala" :class="{active:isTextarea,forbidden:generateCheckbox}" @click.stop="setTextareaShow"></i>
<textarea class="search_textarea" v-show="isTextarea && !generateCheckbox" @input="ifMaximumLength" @keydown.enter="getgenerate" :maxlength='inputShow?0:9999' :class="{forbidden:generateCheckbox}" :readonly="generateCheckbox" v-model="captionGeneration">
</textarea>
<!-- <div class="generage_btn started_btn" @click.stop="getgenerate">{{ $t('PrintboardUpload.Generate') }}</div> -->
<div v-show="!isGenerate" class="generage_btn started_btn" @click.stop="getgenerate">
{{ $t('LibraryPage.Generate') }}
@@ -294,7 +297,8 @@ export default defineComponent({
token: "",
uploadUrl: "",
captionGeneration:'',
workspaceCom:{}
workspaceCom:{},
isTextarea:false,
};
},
computed: {
@@ -509,6 +513,10 @@ export default defineComponent({
}
return (isJpgOrPng && isLt2M) || Upload.LIST_IGNORE;
},
setTextareaShow(){
if(this.generateCheckbox) return
this.isTextarea = !this.isTextarea
},
ifMaximumLength(){
clearTimeout(this.inputTime)
let inputBox = document.getElementsByClassName('sketchboard_upload_modal')[0].getElementsByClassName('input_box')[0]
@@ -686,7 +694,7 @@ export default defineComponent({
// this.beforeUpload(false)
if(this.captionGeneration){
let arr = this.captionGeneration.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('PrintboardUpload.jsContent5')
);
@@ -703,7 +711,7 @@ export default defineComponent({
if(this.useGenerate.imgId){
if(this.captionGeneration){
let arr = this.captionGeneration.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('PrintboardUpload.jsContent5')
);

View File

@@ -213,6 +213,15 @@
@keydown.enter="getgenerate" :readonly="checkbox[0].type && selectCode != 'Moodboard'"
:placeholder="$t('LibraryPage.inputContent2')"
v-model="captionGeneration">
<i class="icon iconfont icon-xiala" :class="{active:isTextarea, forbidden:checkbox[0].type&& selectCode != 'Moodboard'}" @click.stop="setTextareaShow"></i>
<textarea
v-show="isTextarea "
class="search_textarea "
@input="ifMaximumLength"
:maxlength='inputShow?0:9999'
@keydown.enter="getgenerate" :readonly="checkbox[0].type && selectCode != 'Moodboard'"
v-model="captionGeneration"
></textarea>
<div v-show="!isGenerate[selectCode]" class="generage_btn started_btn" @click.stop="getgenerate">
{{ $t('LibraryPage.Generate') }}
<!-- <div v-show="isGenerate"><a-spin size="large" /></div> -->
@@ -490,6 +499,7 @@ export default defineComponent({
value:'id',
label:'classificationName',
}
let isTextarea = ref(false)
return {
menuList,
selectImgList,
@@ -531,6 +541,7 @@ export default defineComponent({
getLibraryListInputTime,
props,
options,
isTextarea,
}
},
data(this_) {
@@ -660,6 +671,7 @@ export default defineComponent({
// this.sex = 'Female',
// this.designType = 'Outwear',
this.selectImgList = []
this.isTextarea = false
this.value.labelValue = []
this.getLibraryList('')
this.getClass()
@@ -1033,6 +1045,10 @@ export default defineComponent({
}
})
},
setTextareaShow(){
if(this.checkbox[0].type && this.selectCode != 'Moodboard') return
this.isTextarea = !this.isTextarea
},
ifMaximumLength(){
clearTimeout(this.inputTime)
this.inputTime = setTimeout(()=>{
@@ -1152,7 +1168,7 @@ export default defineComponent({
// this.beforeUpload(false)
if(this.captionGeneration){
let arr = this.captionGeneration.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('LibraryPage.jsContent6')
);
@@ -1170,7 +1186,7 @@ export default defineComponent({
if(generageImg?.id){
if(this.captionGeneration){
let arr = this.captionGeneration.split(/\s+/).length
if(arr > 75){
if(arr > 250){
message.info(
this.t('LibraryPage.jsContent6')
);
@@ -1192,6 +1208,7 @@ export default defineComponent({
}
// this.isShowMark = true
this.isGenerate[selectCodeStr] = true
this.isTextarea = false
Https.axiosPost(Https.httpUrls.generatePrepare, data).then(
(rv) => {
if(data.isTestUser){
@@ -1528,6 +1545,7 @@ export default defineComponent({
color: #C2C2C2;
}
}
.search_cascader{
// width: 53%;
width: 38rem;
@@ -1681,8 +1699,15 @@ export default defineComponent({
padding: 0;
.input_box{
background:initial;
position: relative;
padding: 1.5rem 0;
padding: 0;
// &:hover{
// .search_textarea{
// display: block
// }
// }
input{
width: 30rem;
height: 3rem;
@@ -1690,6 +1715,32 @@ export default defineComponent({
cursor: no-drop;
}
}
.icon-xiala{
display: inline-block;
cursor: pointer;
transition: all .3s;
&.active{
transform: rotate(180deg);
}
&.forbidden{
cursor: no-drop;
}
}
.search_textarea{
z-index:3;
height: auto;
position: absolute;
left: 0;
width: 30rem;
border-radius: 4px;
height: 20rem;
top: .5rem;
border: 1px solid #dcdfe6;
&.forbidden{
cursor: no-drop;
}
}
.started_btn{
}