用户指引部署

This commit is contained in:
X1627315083
2024-08-16 15:40:25 +08:00
parent d36cf4332e
commit 426a125c26
16 changed files with 237 additions and 159 deletions

View File

@@ -270,13 +270,16 @@ li {
pointer-events: auto !important;
overflow-y: initial !important;
}
.Guide_.showEvents * {
.Guide_.showEvents *,
.Guide_ .showEvents * {
pointer-events: auto !important;
}
.Guide_.showEvents .hideEvents {
.Guide_.showEvents .hideEvents,
.Guide_ .showEvents .hideEvents {
pointer-events: none !important;
}
.Guide_.showEvents .hideEvents * {
.Guide_.showEvents .hideEvents *,
.Guide_ .showEvents .hideEvents * {
pointer-events: none !important;
}
.Guide_ .Guide_active {
@@ -299,6 +302,8 @@ li {
filter: drop-shadow(0px 0px 2px #ff5f5f) drop-shadow(0px 0px 1px #ff5f5f);
animation: identifier_img 1s infinite linear;
display: block !important;
cursor: pointer;
pointer-events: auto !important;
}
@keyframes identifier_img {
0% {
@@ -532,6 +537,9 @@ li {
.ant-modal {
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);
}
.ant-modal div[aria-hidden="true"] {
display: none !important;
}
.ant-modal-confirm-confirm .ant-modal-content {
border-radius: 1rem;
}

View File

@@ -287,7 +287,7 @@ input:focus{
.Guide_{
pointer-events:auto !important;
overflow-y: initial !important;
&.showEvents{
&.showEvents,.showEvents{
*{
pointer-events:auto !important;
}
@@ -322,6 +322,8 @@ input:focus{
filter: drop-shadow(0px 0px 2px rgb(255, 95, 95))drop-shadow(0px 0px 1px rgb(255, 95, 95));
animation: identifier_img 1s infinite linear;
display: block !important;
cursor: pointer;
pointer-events:auto !important;
@keyframes identifier_img {
0% {
filter: none;
@@ -596,6 +598,7 @@ input:focus{
//弹窗公共样式
.ant-modal{
box-shadow: 0px 0px 6px rgba(0, 0, 0, .2);
div[aria-hidden="true"] {display: none !important;}
&.ant-modal-confirm{
&.ant-modal-confirm-confirm{
// top: 50%;

View File

@@ -230,7 +230,7 @@
<div class="upload_color_item_bg" :style="{'background-color':`rgba(${color.rgba.r},${color.rgba.g},${color.rgba.b},${color.rgba.a})`}">
</div>
<!-- <div class="upload_color_item_text">{{ pantongNameList[index] }}</div> -->
<img src="#" :title="pantongNameList[index]">
<img :title="pantongNameList[index]">
</div>
</div>
</div>

View File

@@ -829,7 +829,9 @@ export default defineComponent({
}
this.designOpenrtion = false
if(this.driver__.driver){
driverObj__.moveNext();
nextTick(()=>{
driverObj__.moveNext();
})
}
},
clearModal(){

View File

@@ -833,7 +833,9 @@ export default defineComponent({
this.designItemDetailTS = {}
}
if(this.driver__.driver){
driverObj__.moveNext();
nextTick(()=>{
driverObj__.moveNext();
})
}
},
clearModal(){

View File

@@ -61,7 +61,7 @@
<span :title="workspaceItem.styleName">{{ workspaceItem.styleName }}</span>
</div>
<!-- <div class="button_second">选择</div> -->
<div class="started_btn" @click="setStyle">{{ $t('Habit.Select') }}</div>
<div class="started_btn" :class="[driver__.driver?'hideEvents':'']" @click="setStyle">{{ $t('Habit.Select') }}</div>
</div>
<div class="habit_Overal_Single">
<div

View File

@@ -129,7 +129,7 @@
<div class="upload_color_item_bg" :style="{'background-color':`rgba(${color.rgba.r},${color.rgba.g},${color.rgba.b},${color.rgba.a})`}">
</div>
<!-- <div class="upload_color_item_text">{{ pantongNameList[index] }}</div> -->
<img src="#" :title="pantongNameList[index]">
<img :title="pantongNameList[index]">
</div>
</div>
<div class="upload_color_btn" :title="isSelectSuccessively?$t('ColorboardUpload.SelectSuccessivelyOnTitle'):$t('ColorboardUpload.SelectSuccessivelyOffTitle')" v-show="selectColorList.length>0">
@@ -151,7 +151,7 @@
<span class="get_color_des">{{ $t('ColorboardUpload.ExtractColor') }}</span>
</div>
<div v-show="getColorBg" class="get_color_bg" @click="setUplpadColor(reviewColor)" :style="{'background-color':`rgba(${getSelectRGB(reviewColor).r},${getSelectRGB(reviewColor).g},${getSelectRGB(reviewColor).b},${getSelectRGB(reviewColor).a})`}">
<img src="#" :title="pantongName">
<img :title="pantongName">
</div>
</div>
</div>

View File

@@ -204,11 +204,11 @@
<div class="exportCanvasBox_left_credits" v-show="credits<1">
<div><span class="icon iconfont icon-zhuyi"></span>{{ $t('exportModel.insufficient') }}</div>
</div>
<div class="exportCanvasBox_left_btn">
<div class="exportCanvasBox_left_btn Guide_1_38">
<!-- <div class="subitOkPreviewBtn" :class="{active:allBoardData.printboardFiles.length<=0}" :title="allBoardData.printboardFiles.length<=0?$t('exportModel.jsContent2'):''" @click="setHDExport">{{ $t('exportModel.HDExport') }}</div> -->
<div class="subitOkPreviewBtn" @click="setSubmit">{{ $t('exportModel.Save') }}</div>
<div class="subitOkPreviewBtn" @click="setShare">{{ $t('exportModel.Share') }}</div>
<div class="subitOkPreviewBtn Guide_1_32" @click="setExport">{{ $t('exportModel.Export') }}</div>
<div class="subitOkPreviewBtn" @click="setExport">{{ $t('exportModel.Export') }}</div>
</div>
</div>
</div>
@@ -320,10 +320,10 @@ export default defineComponent({
props: ["msg", "sketchCatecoryList"],
setup(props,{emit}) {
const {t} = useI18n()
const store = useStore();
let driver__ = computed(()=>{
return store.state.Guide.guide
})
const store = useStore();
let showUpgradePlan = ref(false);
let canvas = reactive({});
@@ -569,7 +569,6 @@ export default defineComponent({
}
}
})
isShowMark.value = false
}
updateCanvasState('')//加载完成后记录一下
@@ -809,9 +808,6 @@ export default defineComponent({
FileSaver.saveAs(content, "DesignFiles"); // 利用file-saver保存文件 自定义文件名
isShowMark.value = false;
});
if(driver__.value.driver){
driverObj__.moveNext()
}
setSubmit()//导出的时候保存
initAligningGuidelines(canvas,true)

View File

@@ -91,10 +91,10 @@
{{ $t('Generate.Generate') }}
<!-- <div v-show="isGenerate"><a-spin size="large" /></div> -->
</div>
<div v-show="isGenerate && !remGenerate" class="generage_btn started_btn" @click="getgenerate">
<div v-show="isGenerate && !remGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}" @click="getgenerate">
<i class="fi fi-br-loading"></i>
</div>
<div v-show="remGenerate" @click="removeGenerate" class="generage_btn started_btn">
<div v-show="remGenerate" @click="removeGenerate" class="generage_btn started_btn" :class="{Guide_1_2_8:type_.type2 == 'Printboard'}">
{{$t('Generate.Close')}}
</div>
<span class="inputShowText" ref="inputShowText"></span>
@@ -148,7 +148,7 @@
:class="[item.status != 'Success'?'hideEvents':'',item?.checked?'active':'']"
>
<img v-lazy="item.imgUrl" @click.stop="generageAdd(item)">
<sketchCategory v-if="type_.type2 == 'Sketchboard' || type_.type2 == 'Printboard'" :isSpread="type_.type2 == 'Printboard'" :disignTypeList="sketchCatecoryList" :generateList="fileList" :item="item" :driver__="driver__.driver" :driverClass="{class1: type_.type2 == 'Sketchboard'?'Guide_1_13':'',class2:type_.type2 == 'Sketchboard'?'Guide_1_13_1':''}"></sketchCategory>
<sketchCategory v-if="type_.type2 == 'Sketchboard' || type_.type2 == 'Printboard'" :isSpread="type_.type2 == 'Printboard'" :disignTypeList="sketchCatecoryList" :generateList="fileList" :item="item" :driver__="driver__.driver" :driverClass="{'class1': type_.type2 == 'Sketchboard'?'Guide_1_13':'','class2':type_.type2 == 'Sketchboard'?'Guide_1_13_1':''}"></sketchCategory>
<div
class="delete_like_file_block left1"
:class="[driver__.driver?'hideEvents':'',]"
@@ -387,7 +387,8 @@ export default defineComponent({
// console.log(this.fileList);
let moodboard = this.store.state.UploadFilesModule.moodboardGenerateFiles
let sketch = this.store.state.UploadFilesModule.sketchGenerateFiles
if((moodboard.length >= 2 || sketch.length >= 2) && this.driver__.driver){
let print = this.store.state.UploadFilesModule.printGenerateFiles
if((moodboard.length >= 2 || print.length >= 2 || sketch.length >= 2) && this.driver__.driver){
driverObj__.moveNext()
}
},

View File

@@ -23,112 +23,115 @@
</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"
<div class="Guide_1_32">
<div class="productImg_content_item_title productImg_content_item_title_menu">
<span>{{$t('ProductImg.MagicTools')}}</span>
<generalMenu class="productImg_content_item_title_menubtn hideEvents" :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()"
/>
<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>
v-model="searchName"
></textarea>
</div>
<textarea
v-show="isTextarea"
class="search_textarea "
@keydown.enter="getPrductimg()"
v-model="searchName"
></textarea>
</div>
</div>
<div v-show="productimgMenu.value == 'ToProductImage'" class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.Similarity')}}</span>
</div>
<div v-show="productimgMenu.value == 'ToProductImage'" class="productImg_content_item_similarity">
<a-slider class="system_silder"
v-model:value="similarity"
@afterChange="setSimilarity"
:tooltipVisible="false"
:step="5"
>
</a-slider>
<input type="number" readonly v-model="similarity">
</div>
<div v-show="productimgMenu.value == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.RelightDirection')}}</span>
</div>
<div v-show="productimgMenu.value == '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="RelightDirection" :options="RelightDirectionList"></a-select>
</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" >
<img @click="setGenerate(item)" v-lazy="item.designOutfitUrl?item.designOutfitUrl:item.url" alt="" :class="{active:item.isChecked}">
<div v-show="productimgMenu.value == 'ToProductImage'" class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.Similarity')}}</span>
</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[productimgMenu.value]" :key="file">
<div class="upload_file_item_content" v-show="file?.status === 'uploading'" >
<a-spin
:indicator="indicator"
tip="Uploading..."
/>
</div>
<div
class="upload_file_item_content content_item_imgBox_itemImg"
v-show="file?.status === 'done'"
<div v-show="productimgMenu.value == 'ToProductImage'" class="productImg_content_item_similarity">
<a-slider class="system_silder"
v-model:value="similarity"
@afterChange="setSimilarity"
:tooltipVisible="false"
:step="5"
>
</a-slider>
<input type="number" readonly v-model="similarity">
</div>
<div v-show="productimgMenu.value == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.RelightDirection')}}</span>
</div>
<div v-show="productimgMenu.value == '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="RelightDirection" :options="RelightDirectionList"></a-select>
</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,index in selectList[productimgMenu.value]" :key="item.id" >
<img @click="setGenerate(item)" v-lazy="item.designOutfitUrl?item.designOutfitUrl:item.url" alt="" :class="[driver__.driver?index == 0?driver__.index == 45?'Guide_img showEvents':'hideEvents':'hideEvents':'',item?.isChecked?'active':'']">
</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[productimgMenu.value]" :key="file">
<div class="upload_file_item_content" v-show="file?.status === 'uploading'" >
<a-spin
:indicator="indicator"
tip="Uploading..."
/>
</div>
<div
class="upload_file_item_content content_item_imgBox_itemImg"
v-show="file?.status === 'done'"
>
<img @click="setGenerate(file)" :class="[file?.isChecked?'active':'']" :src="file?.imgUrl" class="upload_img"/>
<!-- <div class="content_item_imgBox_itemImg_delete" @click="deleteFile(index)">
<i class="fi fi-rr-trash"></i>
</div> -->
</div>
</div>
<div class="upload_file_item upload_component ">
<!-- :action="uploadUrl + '/api/history/toProductImageElementUpload'" -->
<a-upload
:action="uploadUrl + '/api/history/toProductImageElementUpload'"
list-type="picture-card"
:capture="null"
:data="{
...upload,
}"
:headers="{ Authorization: token }"
:before-upload="beforeUpload"
v-model:file-list="fileList[productimgMenu.value]"
:multiple="true"
:maxCount="8"
accept=".jpg,.png,.jpeg,.bmp"
@change="(file) => fileUploadChange(file)"
>
<div
class="upload_tip_block"
>
<i class="fi fi-br-upload"></i>
<!-- <img class="upload_img_icon" src="@/assets/images/homePage/add_file.png"> -->
</div>
</a-upload>
</div>
</div>
</div>
>
<img @click="setGenerate(file)" :src="file?.imgUrl" class="upload_img" :class="{active:file?.isChecked}"/>
<!-- <div class="content_item_imgBox_itemImg_delete" @click="deleteFile(index)">
<i class="fi fi-rr-trash"></i>
</div> -->
</div>
</div>
<div class="upload_file_item upload_component ">
<!-- :action="uploadUrl + '/api/history/toProductImageElementUpload'" -->
<a-upload
:action="uploadUrl + '/api/history/toProductImageElementUpload'"
list-type="picture-card"
:capture="null"
:data="{
...upload,
}"
:headers="{ Authorization: token }"
:before-upload="beforeUpload"
v-model:file-list="fileList[productimgMenu.value]"
:multiple="true"
:maxCount="8"
accept=".jpg,.png,.jpeg,.bmp"
@change="(file) => fileUploadChange(file)"
>
<div
class="upload_tip_block"
>
<i class="fi fi-br-upload"></i>
<!-- <img class="upload_img_icon" src="@/assets/images/homePage/add_file.png"> -->
</div>
</a-upload>
</div>
</div>
<div class="productImg_content_item_generate_btn input_border">
<div class="input_box">
<div class="input_box Guide_1_33">
<div v-show="!isProductimg" class="generage_btn started_btn" @click.stop="getPrductimg">
{{ $t('Generate.Generate') }}
</div>
@@ -151,17 +154,17 @@
<div class="productImg_right_item_imgBox" v-else>
<img :src="item.url" alt="">
<div class="productImg_right_item_iconRight">
<div class="productImg_right_item_like" @click.stop="likeFile(item,'like',index)">
<div class="productImg_right_item_like Guide_1_36" :style="[(driver__.index == 49 || driver__.index == 50 )?'display: flex;':'']" @click.stop="likeFile(item,'like',index)">
<i class="fi fi-rr-heart"></i>
</div>
</div>
<div class="productImg_right_item_iconLeft">
<div class="productImg_right_item_scale" @click.stop="setScaleImage(generateList,index,true)">
<div class="productImg_right_item_iconLeft" >
<div class="productImg_right_item_scale hideEvents" :style="[(driver__.index == 46 || driver__.index == 47 || driver__.index == 48)?'display: flex;':'']" @click.stop="setScaleImage(generateList,index,true)">
<i class="fi fi-bs-expand-arrows-alt"></i>
</div>
<div v-show="item.resultType != 'Relight'" class="productImg_right_item_menu" @click.stop="setMenuShow(item)">
<div v-show="item.resultType != 'Relight'" class="productImg_right_item_menu Guide_1_34" :style="[(driver__.index == 46 || driver__.index == 47 || driver__.index == 48)?'display: flex;':'']" @click.stop="setMenuShow(item)">
<i class="fi fi-rr-circle-ellipsis"></i>
<ul v-show="item.menuShow">
<ul v-show="item.menuShow" class="Guide_1_35">
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
</ul>
</div>
@@ -175,10 +178,10 @@
</div>
<div class="productImg_content_item_title productImg_right_titleBtn">
{{$t('ProductImg.SelectedProduct')}}
<div class="button_second" @click="setExport">{{$t('ProductImg.Export')}}</div>
<div class="button_second Guide_1_37" @click="setExport">{{$t('ProductImg.Export')}}</div>
</div>
<div class="productImg_right_item_box generalScroll" v-mousewheel>
<div class="productImg_right_item" v-for="item,index in likeList" :key="item">
<div class="productImg_right_item" v-for="item,index in likeList" :key="item" >
<img :src="item.url" alt="">
<div class="productImg_right_item_iconRight">
<div class="productImg_right_item_like" @click.stop="likeFile(item,'noLike',index)">
@@ -230,6 +233,7 @@ import ExportModel from "@/component/HomePage/ExportModel.vue";
import { useStore } from "vuex";
import scaleImage from "@/component/HomePage/scaleImage.vue";
import generalMenu from "@/component/HomePage/generalMenu.vue";
import { openGuide,driverObj__ } from "@/tool/guide";
export default defineComponent({
components:{
@@ -241,6 +245,9 @@ export default defineComponent({
const store = useStore();
const {t} = useI18n()
const upload:any = ref({})
let driver__:any = computed(()=>{
return store.state.Guide.guide
})
let productImg: any = ref(false);//弹窗
let productImgMask:any = ref(false)//弹窗遮罩
let productImgData:any = reactive({
@@ -295,6 +302,11 @@ export default defineComponent({
}
userlikeGroupId = userGroupId
getLikeProductImage(userGroupId)
if(driver__.value.driver){
nextTick(()=>{
driverObj__.moveNext();
})
}
}
let setproduct = (value:any)=>{
productimgMenu.value = value
@@ -348,6 +360,11 @@ export default defineComponent({
// file.type = "ToProductImage"
// }
productImgData.fileList[productimgMenu.value.value].filter((v: any) => v.status === "done");
if(driver__.value.driver){
nextTick(()=>{
driverObj__.moveNext();
})
}
}else{
bor = false
}
@@ -376,6 +393,13 @@ export default defineComponent({
}
let setGenerate = (item:any)=>{
item.isChecked = !item.isChecked
if(item.isChecked){
if(driver__.value.driver){
nextTick(()=>{
driverObj__.moveNext();
})
}
}
// productImgData.selectProductimgList
}
let likeFile = (item:any,str:any,index:any) =>{
@@ -397,7 +421,9 @@ export default defineComponent({
productImgData.generateList.push(item)
productImgData.likeList.splice(index,1)
}
if(driver__.value.driver){
driverObj__.moveNext();
}
}
).catch(res=>{
});
@@ -411,7 +437,6 @@ export default defineComponent({
userlikeGroupId,
}
let exportModel:any = ExportModel.value
exportModel.init(data)
}
let remPrductimgTime:any = null
@@ -529,11 +554,16 @@ export default defineComponent({
if((data.length == 0)|| (rv.filter((item:any)=>item.status == 'Invalid').length ==data.length)){
// if(rv.filter((item:any)=>item.status == 'Invalid').length ==dataNum){
// }
store.state.store.dispatch('getCredits')
store.dispatch('getCredits')
clearInterval(prductimgTime)
clearInterval(remPrductimgTime)
productImgData.remProductimg = false
productImgData.isProductimg = false
if(driver__.value.driver){
nextTick(()=>{
driverObj__.moveNext();
})
}
}
}
}
@@ -581,6 +611,11 @@ export default defineComponent({
item.menuShow = true
generalIsMenuShow = item
document.addEventListener('click',removeMenuShow)
if(driver__.value.driver){
nextTick(()=>{
driverObj__.moveNext();
})
}
}
let setMenu=(menuItem:any,item:any)=>{
productimgMenu.value = menuItem
@@ -595,6 +630,11 @@ export default defineComponent({
selectList.value[menuItem.value].push(item)
}
generalIsMenuShow.menuShow = false
if(driver__.value.driver){
nextTick(()=>{
driverObj__.moveNext();
})
}
}
let removeMenuShow = ()=>{
generalIsMenuShow.menuShow = false
@@ -614,6 +654,7 @@ export default defineComponent({
upload,
productImg,
productImgMask,
driver__,
...toRefs(productImgData),
productimgMenuList,
productimgMenu,

View File

@@ -94,10 +94,12 @@ import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Modal,message } from 'ant-design-vue';
import { downloadIamge,base64ToFile } from "@/tool/util";
import { useI18n } from 'vue-i18n';
import { useStore } from "vuex";
export default defineComponent({
setup(prop,{emit}) {
let {t} = useI18n()
const store = useStore();
let publish: any = ref(false);//弹窗
let publishMask:any = ref(false)//弹窗遮罩
let setBeenPublished:any = inject('setBeenPublished')
@@ -225,7 +227,6 @@ export default defineComponent({
emit('setPublish')
message.success(t('Publish.jsContent4'))
setBeenPublished()
})
.catch((rv) => {
publishData.isShowMark = false

View File

@@ -564,12 +564,12 @@ export default {
guide9:"输入捕捉您希望表达的情绪的关键词,然后单击<strong>生成</strong>按钮。",
guide10:'为您的心情板选择两个图像。',
guide11:"点击此处布局您的情绪版。",
guide12:"点击此处生成印花图片。",
guide12:"点击这里进入下一步。",
guide13:"点击此处生成印花图片。",
// guide14:"我们为生成图片提供三个输入选项:仅图片、仅文本和图片文本。",
// guide15:"选择此选项,我们将使用您上传的图片和输入的文本生成四张印花图片。",
// guide16:"在此处选择生成模型;不同的模型将以不同的风格生成图片。",
guide17:"在此处选择生成模型;不同的模型将以不同的风格生成图片。",
guide16:"在此处选择生成模型;不同的模型将以不同的风格生成图片。",
// guide17:"在此处选择生成模型;不同的模型将以不同的风格生成图片。",
guide18:"在此处上传输入图片。",
// guide19:"点击此图片进行选择。",
guide20:"输入关于您希望创建的印花的关键词,然后点击<strong>生成</strong>按钮。",
@@ -601,7 +601,15 @@ export default {
guide46:"在此处预览印刷设计。",
guide47:"在此处保存印刷设计。",
guide48:"点击此处完成修改。",
guide49:"点击此处导出您刚刚设计的系列。",
guide49:"点击此完成出您刚刚设计的系列。",
guide51:"这个界面允许您将设计结果转换为产品图。您可以通过调整文字和相似度来获得理想的效果。点击此产品图进入下一步。",
guide52:"点击此处生成产品图。",
guide53:"点击此按钮可对产品图应用更多工具。",
guide54:"我们可以改变这张图片的光照方向和背景。",
guide55:"点击此处生成一张从右侧打光的产品图。",
guide56:"如果您喜欢这个结果,可以点击小红心保存。",
guide57:"点击此处进入导出页面。",
guide58:"您可以将作品分享到作品广场或者导出到本地。",
guide50:"您的指南已经完成,现在您可以自由创作。要了解更多见解和细节,请查看我们主页上的演示视频:<a href='https://code-create.com.hk/aida/' style='pointer-events: auto;' target='_blank'>https://code-create.com.hk/aida/</a>。您可以随时告诉机器人您想重新开始教程。",
},
}

View File

@@ -570,9 +570,9 @@ export default {
// guide14:"We provide three input options for generating images: Image Only, Text Only, and Text-Image.",
// guide15:"Select this option and we will generate four print images using both the picture you upload and the text you enter.",
guide16:"Choose a generation model here; different models will generate images in various styles.",
guide17:"Choose a generation model here; different models will generate images in various styles.",
// guide17:"Choose a generation model here; different models will generate images in various styles.",
guide18:"Upload the input picture here.",
guide19:"Click on this image to select it.",
// guide19:"Click on this image to select it.",
guide20:"Enter keywords about the print you wish to create and then click the <strong>Generate</strong> button.",
guide21:"Select the generated prints you like best.",
guide22:"Click here for next step.",
@@ -582,7 +582,7 @@ export default {
guide26:"Choose the color you want from these color blocks.",
guide27:"Click here for next step.",
guide28:"Click here to generate clothing sketches.",
guide29:"Using text only option for generation.",
// guide29:"Using text only option for generation.",
guide30:"Enter keywords about the sketch you wish to create and then click the <strong>Generate</strong> button.",
guide31:"Click here to choose a category for the generated sketch.",
guide32:"Choose correct category for the sketch.",
@@ -602,8 +602,16 @@ export default {
guide46:"Preview printed design here.",
guide47:"Save printed design here.",
guide48:"Click here to finalize your modification.",
guide49:"Click here to access the export page.",
guide50:"Click here to export the collection you just designed.",
guide51:"Your guide is complete, and now the canvas is yours to create freely. For more insights and details, check out our demo video on the homepage at <a href='https://code-create.com.hk/aida/' style='pointer-events: auto;' target='_blank'>https://code-create.com.hk/aida/</a><br>You can restart the tutorial at any time by simply telling the robot that you want to.",
guide49:"Click here to access the finalize page.",
guide51:"This interface allows you to transform design results into product images. You can achieve your desired effect by adjusting the text and similarity. Click this product image to proceed to the next step.",
guide52:"Click here to generate the product image.",
guide53:"Click this button to apply more tools to the product image. ",
guide54:"We can adjust the lighting and background of this image. ",
guide55:"Click here to generate a product image with lighting from the right side.",
guide56:"If you like this result, click the little heart to save it.",
guide57:"Click here to go to the export page. ",
guide58:"You can share your work to the gallery or export to your local device.",
// guide50:"Click here to export the collection you just designed.",
guide50:"Your guide is complete, and now the canvas is yours to create freely. For more insights and details, check out our demo video on the homepage at <a href='https://code-create.com.hk/aida/' style='pointer-events: auto;' target='_blank'>https://code-create.com.hk/aida/</a><br>You can restart the tutorial at any time by simply telling the robot that you want to.",
},
}

View File

@@ -111,15 +111,23 @@ function createDriver(){
{ element: '.Guide_1_25_1', popover: { title: '', description: i18n.guide47 ,side: "right",align: 'end' } },
{ element: '.Guide_1_26', popover: { title: '', description: i18n.guide48 } },
{ element: '.Guide_1_31', popover: { title: '', description: i18n.guide49 } },
{ element: '.Guide_1_32', popover: { title: '', description: i18n.guide50 } },
{ element: '.Guide_1_99', popover: { title: 'Begin Your Design', description: i18n.guide51 } },
{ element: '.Guide_1_32', popover: { title: '', description: i18n.guide51 ,side: "right",align: 'center'} },
{ element: '.Guide_1_33', popover: { title: '', description: i18n.guide52 } },
{ element: '.Guide_1_34', popover: { title: '', description: i18n.guide53 } },
{ element: '.Guide_1_35', popover: { title: '', description: i18n.guide54 } },
{ element: '.Guide_1_33', popover: { title: '', description: i18n.guide55 } },
{ element: '.Guide_1_36', popover: { title: '', description: i18n.guide56 } },
{ element: '.Guide_1_37', popover: { title: '', description: i18n.guide57 } },
{ element: '.Guide_1_38', popover: { title: '', description: i18n.guide58 } },
{ element: '.Guide_1_99', popover: { title: '', description: i18n.guide50 ,side: "right",align: 'center'} },
// { element: '.Guide_1_99', popover: { title: 'Begin Your Design', description: i18n.guide51 } },
],
// showProgress: true,//控制总页数和当前页数是否显示
allowClose:false,
showButtons:false,
stagePadding:10,//切口到元素的距离
stageRadius:5,//切口圆弧度
allowKeyboardControl:true,//控制是否可以键盘控制下一步
allowKeyboardControl:false,//控制是否可以键盘控制下一步
disableActiveInteraction:false,//是否禁用显示元素的交互
overlayOpacity:.4,
overlay: true,
@@ -137,10 +145,10 @@ function createDriver(){
driver : true,
stepsLenth:stepsLenth,
}
console.log(options.state.activeIndex);
// console.log(driverIndex__);
store?.commit("setGuide", data);
if(options.state.activeIndex == 0 ||
options.state.activeIndex == 34
options.state.activeIndex == 34
){
popover.wrapper.style.display = 'none'
}else{
@@ -152,13 +160,14 @@ function createDriver(){
}else if(options.state.activeIndex == 6 || options.state.activeIndex == 7){
popover.wrapper.style.transform = 'translateY(4rem)'
}else if(options.state.activeIndex == 41){
popover.wrapper.style.transform = 'translateY(-6rem)'
popover.wrapper.style.transform = 'translateY(-9rem)'
}else{
popover.wrapper.style.transform = 'initial'
}
if(
options.state.activeIndex >= 6 && options.state.activeIndex < 9 ||
options.state.activeIndex >= 14 && options.state.activeIndex < 15 ||
options.state.activeIndex == 52 ||
driverObj__.isLastStep()
){
popover.footer.style.display = 'block'
@@ -167,10 +176,10 @@ function createDriver(){
popover.footer.style.display = 'none'
popover.footerButtons.style.pointerEvents = 'none';
}
nextTick().then(()=>{
if(element){
element.classList.remove('Guide_')
}
if(element){
element.classList.remove('Guide_')
}
nextTick(()=>{
element = options.state.activeElement
element.classList.add('Guide_')
})
@@ -229,7 +238,6 @@ function removeDiv(element){
}
const openGuide = () =>{
return
let isTest = JSON.parse(getCookie('isTest'))
let isBeginner = JSON.parse(getCookie('isBeginner'))
// console.log(isBeginner);

View File

@@ -77,7 +77,7 @@
</div>
<div class="right_content_body">
<div class="right_content_img_block scroll_style Guide_1_17" v-mousewheel :class="[designCollectionList.length != 0?'active':'',driver__.driver?'showEvents':'']">
<div class="right_content_img_block scroll_style Guide_1_17 active" v-mousewheel :class="[driver__.driver?'showEvents':'']">
<div class="right_content_img_item">
<!-- <draggable
group="people" > -->
@@ -85,7 +85,7 @@
design, index
) in designCollectionList" :key="design?.designItemId">
<div class="content_img_flex"
:class="[driver__.driver?driver__.index == 32?'hideEvents':'':'']"
:class="[(driver__.driver && driver__.index == 32)?'hideEvents':'']"
@click="
designDetail(
design,
@@ -95,8 +95,8 @@
)
">
<img class="content_img" :src="design.designOutfitUrl" />
</div>
<div class="icon iconfont icon-jushoucang icon_like" :class="[driver__.driver?index == 0?driver__.index == 32?'Guide_active showEvents':'hideEvents':'hideEvents':'']" @click.stop="
</div>
<div class="icon iconfont icon-jushoucang icon_like" :class="[driver__.driver?index == 0?driver__.index == 32?'Guide_img showEvents':'':'':'']" @click.stop="
likeDesignCollection(
design,
index
@@ -1115,10 +1115,10 @@ export default defineComponent({
document.removeEventListener("click", this.closeShowOperateContent);
},
exportModel(){
let productImg:any = this.$refs.productImg
productImg.productImgMask = true
productImg.init(this.userGroupId)
},
//打开图片详情