用户指引部署

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

@@ -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