修复页面bug
This commit is contained in:
1
components.d.ts
vendored
1
components.d.ts
vendored
@@ -20,7 +20,6 @@ declare module 'vue' {
|
||||
AModal: typeof import('ant-design-vue/es')['Modal']
|
||||
APagination: typeof import('ant-design-vue/es')['Pagination']
|
||||
APopover: typeof import('ant-design-vue/es')['Popover']
|
||||
AProgress: typeof import('ant-design-vue/es')['Progress']
|
||||
ARangePicker: typeof import('ant-design-vue/es')['RangePicker']
|
||||
ASelect: typeof import('ant-design-vue/es')['Select']
|
||||
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
|
||||
|
||||
BIN
src/assets/images/homePage/toolsGuide/productCN.png
Normal file
BIN
src/assets/images/homePage/toolsGuide/productCN.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
BIN
src/assets/images/homePage/toolsGuide/productEN.png
Normal file
BIN
src/assets/images/homePage/toolsGuide/productEN.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
BIN
src/assets/images/homePage/toolsGuide/relightCN.png
Normal file
BIN
src/assets/images/homePage/toolsGuide/relightCN.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
BIN
src/assets/images/homePage/toolsGuide/relightEN.png
Normal file
BIN
src/assets/images/homePage/toolsGuide/relightEN.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
@@ -4,6 +4,7 @@ body,
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
font-weight: 500;
|
||||
font-family: pingfang_medium, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
overflow: hidden;
|
||||
--aida-fsize2: calc(2.6rem);
|
||||
@@ -19,6 +20,19 @@ input {
|
||||
outline: none;
|
||||
border: 0.1rem solid #dcdfe6;
|
||||
}
|
||||
input[type="radio"] {
|
||||
accent-color: #000;
|
||||
/* 统一修改选中颜色 */
|
||||
}
|
||||
input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
/* Firefox */
|
||||
}
|
||||
/* Chrome/Safari等Webkit浏览器 */
|
||||
input[type="number"]::-webkit-outer-spin-button,
|
||||
input[type="number"]::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.mdhidden {
|
||||
display: none !important;
|
||||
@@ -62,19 +76,25 @@ li {
|
||||
width: calc(100% - 2rem);
|
||||
}
|
||||
.ant-slider.system_silder .ant-slider-rail {
|
||||
height: 0.6rem;
|
||||
border-radius: 0.3rem;
|
||||
height: 1rem;
|
||||
border-radius: 4rem;
|
||||
background: #F2F0FD;
|
||||
}
|
||||
.ant-slider.system_silder .ant-slider-track {
|
||||
height: 0.6rem;
|
||||
border-radius: 0.3rem;
|
||||
height: 1rem;
|
||||
border-radius: 3rem;
|
||||
background: #000;
|
||||
}
|
||||
.ant-slider.system_silder .ant-slider-handle {
|
||||
margin-top: -0.4rem;
|
||||
margin-top: 0.1rem;
|
||||
top: 0;
|
||||
height: 1.7rem;
|
||||
width: 1.7rem;
|
||||
border: solid 0.2rem #000;
|
||||
}
|
||||
.ant-slider.system_silder .ant-slider-step {
|
||||
height: 1rem;
|
||||
}
|
||||
.ant-slider:hover .ant-slider-handle {
|
||||
box-shadow: rgba(0, 0, 0, 0.16) 0px 0 0 4px;
|
||||
}
|
||||
@@ -88,7 +108,6 @@ li {
|
||||
.ant-slider-handle {
|
||||
background-color: #000000 !important;
|
||||
border: none !important;
|
||||
margin-top: -4px;
|
||||
}
|
||||
.ant-slider-handle:hover {
|
||||
box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.2);
|
||||
@@ -233,7 +252,7 @@ li {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
.gallery_btn.gallery_btn_radius {
|
||||
border-radius: 1.4rem;
|
||||
border-radius: 1.3rem;
|
||||
}
|
||||
.gallery_btn.gallery_btn:hover {
|
||||
background-color: #fff;
|
||||
@@ -913,6 +932,11 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
||||
box-shadow: none;
|
||||
height: calc(65rem*1.2);
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.generalModel {
|
||||
height: calc(48rem*1.2);
|
||||
}
|
||||
}
|
||||
.generalModel.fullScreen {
|
||||
max-width: 100%;
|
||||
}
|
||||
@@ -938,7 +962,6 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
||||
font-size: 1.4rem;
|
||||
padding: 6rem 7rem;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.generalModel .fi-rr-down-to-line,
|
||||
.generalModel .fi-rr-arrow-small-right,
|
||||
@@ -989,6 +1012,12 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
|
||||
justify-content: center;
|
||||
z-index: 2;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.generalModel .generalModel_btn .generalModel_closeIcon {
|
||||
width: 2.5rem;
|
||||
height: 2.5rem;
|
||||
}
|
||||
}
|
||||
.generalModel .generalModel_btn .generalModel_closeIcon > svg {
|
||||
flex-shrink: 0;
|
||||
border-radius: 50%;
|
||||
@@ -1792,6 +1821,7 @@ textarea:focus {
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
.collection_modal_body .input_border .input_box .inputShowText,
|
||||
.design_detail_modal_component .input_border .input_box .inputShowText,
|
||||
@@ -2156,14 +2186,15 @@ textarea:focus {
|
||||
.generalMenu_printModel_upload .input_border .fi,
|
||||
.generate .input_border .fi {
|
||||
margin-right: 1rem;
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s;
|
||||
position: relative;
|
||||
z-index: 4;
|
||||
width: 4rem;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
min-height: 3rem;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.collection_modal_body .input_border .fi.fi-br-loading,
|
||||
.design_detail_modal_component .input_border .fi.fi-br-loading,
|
||||
|
||||
@@ -2126,6 +2126,11 @@ textarea:focus{
|
||||
width: 4rem;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
display: flex;
|
||||
min-height: 3rem;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
&.fi-br-loading{
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
@@ -2146,6 +2151,7 @@ textarea:focus{
|
||||
span{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
.ant-upload-select-picture-card{
|
||||
width: 100%;
|
||||
|
||||
@@ -139,6 +139,7 @@ export default defineComponent({
|
||||
width: 100%;
|
||||
.account_generalMessage_center{
|
||||
.account_generalMessage_item{
|
||||
font-size: var(--aida-fsize1-6);
|
||||
.account_generalMessage_item_right{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -147,6 +147,7 @@ export default defineComponent({
|
||||
width: 100%;
|
||||
.account_generalMessage_center{
|
||||
.account_generalMessage_item{
|
||||
font-size: var(--aida-fsize1-6);
|
||||
.account_generalMessage_item_right{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<template>
|
||||
<transition name="fade">
|
||||
<div v-if="visible" class="liquify-panel">
|
||||
<div v-if="visible" class="liquify-panel" :class="{active:!closePanel}">
|
||||
<div class="btn" @click="setClosePanel"><i class="fi fi-br-angle-left"></i></div>
|
||||
<div class="liquify-panel-header">
|
||||
<div class="header-title">液化工具</div>
|
||||
<div class="header-title">{{ $t('liquifyPanel.LiquefactionTool') }}</div>
|
||||
<!-- <div class="header-actions">
|
||||
<button class="header-btn cancel-btn" @click="cancel">取消</button>
|
||||
<button class="header-btn confirm-btn" @click="confirm">完成</button>
|
||||
@@ -251,6 +252,12 @@ const showDistortion = computed(() => {
|
||||
return ["crystal", "edge"].includes(currentMode.value);
|
||||
});
|
||||
|
||||
//打开隐藏操作面板
|
||||
const closePanel = ref(false)
|
||||
const setClosePanel = ()=>{
|
||||
closePanel.value = !closePanel.value
|
||||
}
|
||||
|
||||
// 监听当前工具变化 - 参考 SelectionPanel 的实现方式
|
||||
watch(
|
||||
() => props.activeTool,
|
||||
@@ -262,6 +269,7 @@ watch(
|
||||
// 如果面板未显示且有合适的目标对象,则显示面板
|
||||
if (!visible.value) {
|
||||
visible.value = true;
|
||||
closePanel.value = true
|
||||
// 检查是否有可液化的对象
|
||||
checkAndShowPanel();
|
||||
}
|
||||
@@ -451,6 +459,7 @@ function showPanel(event) {
|
||||
console.log("未选择有效图像或图层不适合液化操作");
|
||||
}
|
||||
visible.value = true; // 仍然显示面板以便用户看到提示
|
||||
closePanel.value = true
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -463,6 +472,7 @@ function showPanel(event) {
|
||||
if (!targetObj) {
|
||||
console.log("未选择有效的图像对象");
|
||||
visible.value = true; // 仍然显示面板以便显示提示
|
||||
closePanel.value = true
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -509,6 +519,7 @@ function showPanel(event) {
|
||||
}
|
||||
|
||||
visible.value = true;
|
||||
closePanel.value = true
|
||||
isEditing.value = true;
|
||||
|
||||
// 初始化液化管理器并准备液化环境
|
||||
@@ -1623,6 +1634,25 @@ function stopPressTimer() {
|
||||
color: #333;
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
padding-bottom: 12px;
|
||||
&.active{
|
||||
transform: translateY(100%);
|
||||
> .btn{
|
||||
> i{
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
> .btn{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
> i{
|
||||
font-size: 1.4rem;
|
||||
display: block;
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fade-enter-active,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<transition name="fade">
|
||||
<div class="selection-toolbar" v-if="visible">
|
||||
<div class="selection-toolbar" v-if="visible" :class="{active:!closePanel}">
|
||||
<div class="btn" @click="setClosePanel"><i class="fi fi-br-angle-left"></i></div>
|
||||
<!-- 顶部选区类型工具栏 -->
|
||||
<div class="toolbar-section">
|
||||
<div class="toolbar-header">
|
||||
@@ -238,6 +239,11 @@ const fillColor = ref("#000000");
|
||||
const hasSelection = ref(false);
|
||||
const showFeatherDialog = ref(false);
|
||||
const showColorPicker = ref(false);
|
||||
//打开隐藏操作面板
|
||||
const closePanel = ref(false)
|
||||
const setClosePanel = ()=>{
|
||||
closePanel.value = !closePanel.value
|
||||
}
|
||||
|
||||
// 国际化
|
||||
const { t } = useI18n();
|
||||
@@ -289,6 +295,7 @@ watch(
|
||||
*/
|
||||
function show() {
|
||||
visible.value = true;
|
||||
closePanel.value = true
|
||||
checkSelectionStatus();
|
||||
}
|
||||
|
||||
@@ -512,6 +519,25 @@ function confirmColorPicker() {
|
||||
color: #333;
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
user-select: none;
|
||||
&.active{
|
||||
transform: translateY(100%);
|
||||
> .btn{
|
||||
> i{
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
> .btn{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
> i{
|
||||
font-size: 1.4rem;
|
||||
display: block;
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 平板和手机适配 */
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
<!-- filepath: /Users/aaron/work/pc/air/canvasEdit/src/components/CanvasEditor/components/TextEditorPanel.vue -->
|
||||
<template>
|
||||
<div v-if="visible" class="text-editor-panel" :class="{ 'is-active': visible }">
|
||||
<div v-if="visible" class="text-editor-panel" :class="{ 'is-active': visible,active:!closePanel }">
|
||||
<div class="btn" @click="setClosePanel"><i class="fi fi-br-angle-left"></i></div>
|
||||
|
||||
<div class="text-editor-panel-header">
|
||||
<div class="header-btn import-btn">编辑文本样式</div>
|
||||
<div class="header-btn import-btn">{{ $t('Canvas.EditTextStyle') }}</div>
|
||||
<div class="header-actions">
|
||||
<div class="header-btn cancel-btn" @click="close">取消</div>
|
||||
<div class="header-btn confirm-btn" @click="confirmEdit">完成</div>
|
||||
<div class="header-btn cancel-btn" @click="close">{{ $t('Canvas.close') }}</div>
|
||||
<div class="header-btn confirm-btn" @click="confirmEdit">{{ $t('Canvas.confirmEdit') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-editor-content">
|
||||
<!-- 字体选择列表 -->
|
||||
<div class="edit-column font-column">
|
||||
<div class="column-header">字体</div>
|
||||
<div class="column-header">{{ $t('Canvas.fontFamily') }}</div>
|
||||
<div class="font-list">
|
||||
<div
|
||||
v-for="font in availableFonts"
|
||||
@@ -28,7 +30,7 @@
|
||||
|
||||
<!-- 样式选择区域 -->
|
||||
<div class="edit-column style-column">
|
||||
<div class="column-header">样式</div>
|
||||
<div class="column-header">{{ $t('Canvas.fontStyle') }}</div>
|
||||
<div class="style-preview">
|
||||
<div class="style-name">Regular</div>
|
||||
<div class="style-sample" :style="{ fontFamily }">Regular</div>
|
||||
@@ -37,10 +39,10 @@
|
||||
|
||||
<!-- 设计参数区域 -->
|
||||
<div class="edit-column design-column">
|
||||
<div class="column-header">设计</div>
|
||||
<div class="column-header">{{ $t('Canvas.design') }}</div>
|
||||
|
||||
<div class="param-item">
|
||||
<div class="param-label">尺寸</div>
|
||||
<div class="param-label">{{ $t('Canvas.size') }}</div>
|
||||
<div class="param-control">
|
||||
<input
|
||||
type="range"
|
||||
@@ -55,7 +57,7 @@
|
||||
</div>
|
||||
|
||||
<div class="param-item">
|
||||
<div class="param-label">字符间距</div>
|
||||
<div class="param-label">{{ $t('Canvas.charSpacing') }}</div>
|
||||
<div class="param-control">
|
||||
<input
|
||||
type="range"
|
||||
@@ -71,7 +73,7 @@
|
||||
</div>
|
||||
|
||||
<div class="param-item">
|
||||
<div class="param-label">行距</div>
|
||||
<div class="param-label">{{ $t('Canvas.lineHeight') }}</div>
|
||||
<div class="param-control">
|
||||
<input
|
||||
type="range"
|
||||
@@ -102,7 +104,7 @@
|
||||
</div> -->
|
||||
|
||||
<div class="param-item">
|
||||
<div class="param-label">不透明度</div>
|
||||
<div class="param-label">{{ $t('Canvas.opacity') }}</div>
|
||||
<div class="param-control">
|
||||
<input
|
||||
type="range"
|
||||
@@ -120,7 +122,7 @@
|
||||
|
||||
<!-- 字体属性区域 -->
|
||||
<div class="edit-column props-column">
|
||||
<div class="column-header">字体属性</div>
|
||||
<div class="column-header">{{ $t('Canvas.property') }}</div>
|
||||
|
||||
<div class="text-alignment">
|
||||
<div
|
||||
@@ -178,7 +180,7 @@
|
||||
</div>
|
||||
<!-- 添加字体色控制区域 -->
|
||||
<div class="background-controls">
|
||||
<div class="bg-header">字体色</div>
|
||||
<div class="bg-header">{{ $t('Canvas.fontColor') }}</div>
|
||||
<div class="bg-options">
|
||||
<div class="style-btn color-btn" @click="openColorPicker('text')">
|
||||
<div class="style-icon color-icon" :style="{ backgroundColor: textColor }"></div>
|
||||
@@ -187,7 +189,7 @@
|
||||
</div>
|
||||
<!-- 添加背景色控制区域 -->
|
||||
<div class="background-controls">
|
||||
<div class="bg-header">背景色</div>
|
||||
<div class="bg-header">{{ $t('Canvas.BGColor') }}</div>
|
||||
<div class="bg-options">
|
||||
<div class="style-btn color-btn" @click="openColorPicker('background')">
|
||||
<div
|
||||
@@ -207,7 +209,7 @@
|
||||
:class="{ active: hasTransparentBg }"
|
||||
@click="setTransparentBackground"
|
||||
>
|
||||
透明
|
||||
{{ $t('Canvas.BGOpacity') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -218,7 +220,7 @@
|
||||
<div v-if="showColorPicker" class="color-picker-modal">
|
||||
<div class="color-picker-container">
|
||||
<div class="color-picker-header">
|
||||
<span>{{ colorPickerMode === "text" ? "选择文字颜色" : "选择背景颜色" }}</span>
|
||||
<span>{{ colorPickerMode === "text" ? $t('Canvas.SelectTextColor') : $t('Canvas.SelectBGColor') }}</span>
|
||||
<div class="close-color-picker" @click="closeColorPicker">×</div>
|
||||
</div>
|
||||
<div class="color-picker-content">
|
||||
@@ -232,7 +234,7 @@
|
||||
@click="selectPresetColor(color)"
|
||||
></div>
|
||||
</div>
|
||||
<div class="confirm-color-btn" @click="confirmColorSelection">确定</div>
|
||||
<div class="confirm-color-btn" @click="confirmColorSelection">{{ $t('Canvas.ok') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -349,6 +351,11 @@ export default {
|
||||
return Math.round(lineHeight.value * fontSize.value);
|
||||
});
|
||||
|
||||
//打开隐藏操作面板
|
||||
const closePanel = ref(false)
|
||||
const setClosePanel = ()=>{
|
||||
closePanel.value = !closePanel.value
|
||||
}
|
||||
// 方法
|
||||
const showEditor = (event) => {
|
||||
const { textObject: eventTextObject, layer: eventLayer } = event.detail;
|
||||
@@ -362,6 +369,8 @@ export default {
|
||||
|
||||
// 显示面板
|
||||
visible.value = true;
|
||||
closePanel.value = true
|
||||
|
||||
};
|
||||
|
||||
const close = () => {
|
||||
@@ -626,6 +635,8 @@ export default {
|
||||
textColor,
|
||||
backgroundColor,
|
||||
opacity,
|
||||
setClosePanel,
|
||||
closePanel,
|
||||
hasTransparentBg,
|
||||
fontWeight,
|
||||
fontStyle,
|
||||
@@ -692,6 +703,25 @@ export default {
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.05);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
||||
overflow: hidden;
|
||||
&.active{
|
||||
transform: translateY(100%);
|
||||
> .btn{
|
||||
> i{
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
> .btn{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
> i{
|
||||
font-size: 1.4rem;
|
||||
display: block;
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.text-editor-panel.is-active {
|
||||
|
||||
@@ -290,7 +290,7 @@ export default defineComponent({
|
||||
color,
|
||||
designType:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.designType:list[i].designType,
|
||||
id:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.id:list[i].id,
|
||||
// maskMinioUrl:'',
|
||||
maskMinioUrl:list[i]?.maskMinioUrl,
|
||||
// maskUrl:'',
|
||||
maskUrl:list[i].maskUrl,
|
||||
offset,
|
||||
@@ -333,7 +333,7 @@ export default defineComponent({
|
||||
modelType:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.type:detailData.designDetail.oldModel?detailData.designDetail.oldModel.type:'',
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
processId:userDetail.value.userId,
|
||||
probjectId:store.state.Workspace.probjects,
|
||||
probjectId:store.state.Workspace.probjects.id,
|
||||
}
|
||||
detailData.loadingShow = true
|
||||
Https.axiosPost(Https.httpUrls.designSingle, data).then((rv)=>{
|
||||
@@ -363,7 +363,7 @@ export default defineComponent({
|
||||
modelType:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.type:detailData.designDetail.oldModel?detailData.designDetail.oldModel.type:'',
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
processId:userDetail.value.userId,
|
||||
probjectId:store.state.Workspace.probjects,
|
||||
probjectId:store.state.Workspace.probjects.id,
|
||||
}
|
||||
detailData.loadingShow = true
|
||||
Https.axiosPost(Https.httpUrls.designSingle, data).then((rv)=>{
|
||||
|
||||
@@ -221,9 +221,10 @@ export default defineComponent({
|
||||
const index = detailData.designDetail.clothes.findIndex(item => item.id === detailData.selectDetail.id);
|
||||
console.log(index,detailData.selectDetail.id)
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
let canvasJSON = detailDom.editCanvas.getJSON()
|
||||
if(!detailDom?.editCanvas)return resolve()
|
||||
let canvasJSON = detailDom?.editCanvas?.getJSON()
|
||||
let canvasData = JSON.parse(canvasJSON)
|
||||
if(!canvasData)return
|
||||
if(!canvasData)return resolve()
|
||||
canvasData.canvas.objects.forEach((objectsItem:any) => {
|
||||
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
|
||||
});
|
||||
|
||||
@@ -943,6 +943,8 @@ export default defineComponent({
|
||||
width: auto;
|
||||
height: auto;
|
||||
min-width: 60%;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
// max-height: 80%;
|
||||
position: relative;
|
||||
>img{
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="modelindex">
|
||||
<div class="modelindex_left">
|
||||
<div class="back" v-show="isEditPattern.value">
|
||||
<i class="fi fi-br-angle-left" @click="setBack"></i>
|
||||
</div>
|
||||
<modelNav @canvasReload="()=>$emit('canvasReload')" @addSketch="()=>$emit('addSketch')" @deleteItem="deleteItem"></modelNav>
|
||||
</div>
|
||||
<div class="modelindex_right">
|
||||
@@ -112,6 +115,9 @@ export default defineComponent({
|
||||
|
||||
},1000)
|
||||
}
|
||||
const setBack = ()=>{
|
||||
emit('detailEdit','edit')
|
||||
}
|
||||
onMounted(()=>{
|
||||
window.addEventListener('resize', handleResize);
|
||||
})
|
||||
@@ -128,6 +134,7 @@ export default defineComponent({
|
||||
deleteItem,
|
||||
oppositeRevocation,
|
||||
mousedownDesignImg,
|
||||
setBack,
|
||||
}
|
||||
},
|
||||
|
||||
@@ -196,6 +203,30 @@ export default defineComponent({
|
||||
}
|
||||
.modelindex_left{
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
> .back{
|
||||
position: absolute;
|
||||
font-size: 3.6rem;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 1.2rem;
|
||||
top: 8rem;
|
||||
left: 0;
|
||||
> i {
|
||||
margin-right: 2.8rem;
|
||||
font-size: 2rem;
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
width: 4.6rem;
|
||||
height: 4.6rem;
|
||||
border-radius: 1.2rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border: 1px solid #D8DADC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="modelNavBox">
|
||||
<div class="modelNavBox" :class="{'modelNavBox_active':designDetail.clothes.length == 5}">
|
||||
<div class="modelNav" ref="modelNav" :style="{height:prentHeight}">
|
||||
<div class="modelNav_item item"
|
||||
v-for="item,index in designDetail.clothes"
|
||||
@@ -259,6 +259,9 @@ export default defineComponent({
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.modelNavBox{
|
||||
&.modelNavBox_active{
|
||||
margin-top: 12rem;
|
||||
}
|
||||
.modelNav_item{
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
|
||||
@@ -187,8 +187,8 @@
|
||||
v-show="item?.imgUrl"
|
||||
class="delete_like_file_block left1"
|
||||
>
|
||||
<i v-if="!item.like" class="fi fi-rr-heart" @click="likeFile(item,'like')"></i>
|
||||
<i v-else class="fi fi-sr-heart" :adminLike="!!item.like" @click.stop="likeFile(item,'noLike')"></i>
|
||||
<i v-if="!item.like" class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
|
||||
<i v-else class="fi fi-sr-heart" :adminLike="!!item.like" @click.stop="likeFile(item,'noLike',index)"></i>
|
||||
</div>
|
||||
<div v-show="item?.imgUrl" class="delete_like_file_block left">
|
||||
<i class="fi fi-bs-expand-arrows-alt" @click.stop="scaleImage(index)"></i>
|
||||
@@ -938,7 +938,7 @@ export default defineComponent({
|
||||
// }
|
||||
// }
|
||||
},
|
||||
likeFile(item:any,str:string){
|
||||
likeFile(item:any,str:string,index:number){
|
||||
if(str == 'like'){
|
||||
let level2Type = ''
|
||||
if(this.upload.level1Type == "Sketchboard"){
|
||||
@@ -960,8 +960,11 @@ export default defineComponent({
|
||||
}
|
||||
).catch(res=>{
|
||||
});
|
||||
this.fileList[index].state = ''
|
||||
this.generageAdd(item)
|
||||
}else{
|
||||
|
||||
this.fileList[index].state = 'delete'
|
||||
this.generageAdd(item)
|
||||
let data = {
|
||||
generateDetailId:item.id,
|
||||
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="generalModel_btn" :class="[driver__.driver?'hideEvents':'']">
|
||||
<div class="generalModel_closeIcon" @click.stop="cancelDsign()">
|
||||
<!-- <i class="fi fi-rr-cross-small"></i> -->
|
||||
<svg width="100%" height="100%" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="23" cy="23" r="23" fill="white" fill-opacity="0.3"/>
|
||||
<rect x="32.5063" y="12" width="3" height="29" rx="1.5" transform="rotate(45 32.5063 12)" fill="white"/>
|
||||
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="white"/>
|
||||
|
||||
@@ -524,7 +524,7 @@ export default defineComponent({
|
||||
message.info(t('ProductImg.jsContent2'))
|
||||
return
|
||||
}
|
||||
let imageStrength = productImgData.similarity == 100? 95 :productImgData.similarity
|
||||
let imageStrength = 70 / 100 * productImgData.similarity
|
||||
let data:any ={
|
||||
prompt:productImgData.searchName[productimgMenu.value.value],
|
||||
toProductImageVOList:selectArr,
|
||||
@@ -606,7 +606,16 @@ export default defineComponent({
|
||||
// productImgData.generateList[productimgMenu.value.value] = []
|
||||
// }
|
||||
let index = productImgData.generateList.findIndex((obj:any) => obj.taskId === element.taskId);
|
||||
productImgData.generateList[index] = element
|
||||
console.log(123123)
|
||||
productImgData.generateList[index] = {
|
||||
...element,
|
||||
prompt:productImgData.searchName[productimgMenu.value.value],
|
||||
modelName:productimgMenu.value.value,
|
||||
sourceUrl:productImgData.selectGenerate?.sourceUrl || productImgData.selectGenerate?.productImage,
|
||||
status:null,
|
||||
resultType:productImgData.selectGenerate?.resultType,
|
||||
}
|
||||
console.log(productImgData.generateList)
|
||||
// productImgData.generateList[productimgMenu.value.value].unshift(element)
|
||||
}else if(element.status == 'Fail'){
|
||||
let index = productImgData.generateList.findIndex((obj:any) => obj.taskId === element.taskId);
|
||||
|
||||
@@ -34,9 +34,10 @@
|
||||
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||
<span>{{$t('ProductImg.SelectionFunction')}}</span>
|
||||
</div>
|
||||
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_Direction generalModel_state_item" style="margin-bottom: 1rem;">
|
||||
<!-- 暂时去掉 -->
|
||||
<!-- <div v-show="scaleImageList[scaleImageIndex]?.resultType == 'Relight'" class="productImg_content_item_Direction generalModel_state_item" style="margin-bottom: 1rem;">
|
||||
<a-select size="large" style="width: 100%;" v-model:value="speedData.value" :options="speedList" :field-names="{ label: 'relightLabel', value: 'value' }"></a-select>
|
||||
</div>
|
||||
</div> -->
|
||||
<div v-show="scaleImageList[scaleImageIndex]?.resultType == 'ToProductImage' && speedData.value != 'flux'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||
<span>{{$t('ProductImg.Similarity')}}</span>
|
||||
</div>
|
||||
@@ -46,7 +47,7 @@
|
||||
:tooltipVisible="false"
|
||||
:step="5"
|
||||
@afterChange="()=>{}"
|
||||
:max="70"
|
||||
:max="100"
|
||||
>
|
||||
</a-slider>
|
||||
<input style="margin-left: 2rem;" type="number" readonly v-model="productimgSimilarity">
|
||||
@@ -295,7 +296,8 @@ export default defineComponent({
|
||||
elementId:scaleImageList.value[scaleImageIndex.value].elementId,
|
||||
elementType:scaleImageList.value[scaleImageIndex.value].elementType,
|
||||
}
|
||||
let imageStrength = productimg.productimgSimilarity == 100? 95 :productimg.productimgSimilarity
|
||||
// let imageStrength = productimg.productimgSimilarity == 100? 95 :productimg.productimgSimilarity
|
||||
let imageStrength = 70 / 100 * productimg.productimgSimilarity
|
||||
let data:any ={
|
||||
direction:productimg.productimgRelightDirection,
|
||||
prompt:productimg.productimgSearchName,
|
||||
@@ -527,22 +529,20 @@ export default defineComponent({
|
||||
},
|
||||
methods: {
|
||||
setUserData(item:any){
|
||||
console.log(item)
|
||||
this.productimgSearchName = item.prompt
|
||||
this.productimgSimilarity = 100 - item.imageStrength * 100
|
||||
this.productimgRelightDirection = item.direction
|
||||
console.log(this.productimgSearchName)
|
||||
let list = this.speedTypeList.toPorductImg
|
||||
if(list.length == 0)return
|
||||
// let list = this.speedTypeList.toPorductImg
|
||||
if(this.speedList.length == 0)return
|
||||
let modelName = ''
|
||||
if(!item.modelName){
|
||||
modelName = ''
|
||||
}else{
|
||||
modelName = item.modelName
|
||||
}
|
||||
list.forEach((item:any)=>{
|
||||
this.speedList.forEach((item:any)=>{
|
||||
if(modelName == item.value){
|
||||
this.speedData = item
|
||||
this.speedData = {...item}
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -562,7 +562,7 @@ export default defineComponent({
|
||||
}else{
|
||||
this.speedList = this.speedTypeList.toPorductImg
|
||||
}
|
||||
this.speedData = JSON.parse(JSON.stringify(this.speedList[0]))
|
||||
// this.speedData = JSON.parse(JSON.stringify(this.speedList[0]))
|
||||
document.addEventListener('keydown',this.setKeydown)
|
||||
this.setUserData(list[index])
|
||||
this.$nextTick()
|
||||
|
||||
@@ -41,10 +41,33 @@
|
||||
<i v-else class="fi fi-br-check" @click="editChek('brandSlogan')"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div style="flex:1;text-align: right;" v-show="fall?.list?.length > 0">
|
||||
<div class="gallery_btn" v-show="schedule.num == 1||(schedule.num == 0 && !schedule.state)" @click="compute">{{$t('brandDNA.Compute')}}</div>
|
||||
<div v-show="schedule.num != 1">
|
||||
<a-progress style="width:20rem;" :percent="schedule.num * 100" size="small" :showInfo="false" />
|
||||
<div class="compute" style="flex:1;text-align: right;" v-show="fall?.list?.length > 0">
|
||||
<!-- <div @click="setProgress(50)">123123123</div> -->
|
||||
<div class="gallery_btn" @click="compute" :class="{'loading':!(schedule.num == 1||(schedule.num == 0 && !schedule.state))}">
|
||||
{{$t('brandDNA.Compute')}}
|
||||
<svg width="15" height="15" viewBox="0 0 100 100" v-show="!(schedule.num == 1||(schedule.num == 0 && !schedule.state))">
|
||||
<circle
|
||||
cx="50"
|
||||
cy="50"
|
||||
r="40"
|
||||
fill="none"
|
||||
stroke="#1a1a1a"
|
||||
stroke-width="15"
|
||||
/>
|
||||
|
||||
<circle
|
||||
cx="50"
|
||||
cy="50"
|
||||
r="40"
|
||||
fill="none"
|
||||
stroke="#fff"
|
||||
stroke-width="15"
|
||||
stroke-linecap="round"
|
||||
:stroke-dasharray="circumference"
|
||||
:stroke-dashoffset="dashOffset"
|
||||
transform="rotate(-90 50 50)"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -335,7 +358,9 @@ export default defineComponent({
|
||||
Https.axiosPost(Https.httpUrls.getInitializeProgress,{brandId:data.detail.id}).then((res:any)=>{
|
||||
data.schedule.num = res.percent
|
||||
data.schedule.state = res.analyzed
|
||||
if(res.percent == 1 || !res.analyzed){return clearTimeout(data.getProgressTime)}
|
||||
if(res.percent == 1 || !res.analyzed){
|
||||
return clearTimeout(data.getProgressTime)
|
||||
}
|
||||
data.getProgressTime = setTimeout(()=>{
|
||||
getProgress()
|
||||
},5000)
|
||||
@@ -406,8 +431,27 @@ export default defineComponent({
|
||||
data.selectImgList.push(item.id)
|
||||
}
|
||||
}
|
||||
const progress = ref(50);
|
||||
const radius = 40; // 半径调整
|
||||
const strokeWidth = 15; // 描边加粗以便在小尺寸下可见
|
||||
const circumference = computed(() => {
|
||||
return 2 * Math.PI * radius;
|
||||
});
|
||||
const dashOffset = computed(() => {
|
||||
const progressDecimal = data.schedule.num / 100;
|
||||
return circumference.value * (1 - progressDecimal);
|
||||
});
|
||||
const adjustProgress = (amount) => {
|
||||
data.schedule.num = Math.min(Math.max(data.schedule.num + amount, 0), 100);
|
||||
};
|
||||
|
||||
// 设置特定进度值
|
||||
const setProgress = (value) => {
|
||||
data.schedule.num = value;
|
||||
};
|
||||
onBeforeUnmount(()=>{
|
||||
clearInterval(data.getProgressTime)
|
||||
clearTimeout(data.getProgressTime)
|
||||
})
|
||||
return{
|
||||
...toRefs(dataDom),
|
||||
@@ -425,6 +469,9 @@ export default defineComponent({
|
||||
deleteBatchPic,
|
||||
deleteSinglePic,
|
||||
selectImg,
|
||||
circumference,
|
||||
dashOffset,
|
||||
setProgress,
|
||||
}
|
||||
},
|
||||
directives:{
|
||||
@@ -463,6 +510,25 @@ export default defineComponent({
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding-bottom: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
.compute{
|
||||
> div{
|
||||
position: relative;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
.gallery_btn{
|
||||
&.loading{
|
||||
pointer-events: none;
|
||||
color: #5F5F5F;
|
||||
}
|
||||
}
|
||||
svg{
|
||||
transform: translateY(2.5px);
|
||||
circle{
|
||||
transition: all .3s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .logo{
|
||||
position: relative;
|
||||
margin-right: 3rem;
|
||||
|
||||
@@ -191,11 +191,11 @@ export default defineComponent({
|
||||
//获取列表
|
||||
getCreditsDetailList() {
|
||||
let startTime = '00:00:00'
|
||||
let endTime = '00:00:00'
|
||||
let startDate: any = this.rangePickerValue[0]
|
||||
let endTime = '23:59:59'
|
||||
let startDate: any = this.rangePickerValue?.[0]
|
||||
? this.rangePickerValue[0]+' '+startTime
|
||||
: "";
|
||||
let endDate: any = this.rangePickerValue[1]
|
||||
let endDate: any = this.rangePickerValue?.[1]
|
||||
? this.rangePickerValue[1]+' '+endTime
|
||||
: "";
|
||||
let data = {
|
||||
|
||||
@@ -130,12 +130,13 @@ export default defineComponent({
|
||||
let value:any = {
|
||||
projectId:data.selectObject.id,
|
||||
}
|
||||
console.log(str)
|
||||
store.dispatch('getProjectData',str).then((data)=>{
|
||||
if(!data[str])return
|
||||
value[str] = data[str]
|
||||
if(!value[str] || value[str]?.length == 0)return
|
||||
// if(!value[str] || value[str]?.length == 0)return
|
||||
Https.axiosPost(Https.httpUrls.saveModuleContent, value).then((rv)=>{
|
||||
if(rv?.boundingBox)store.commit('setShowSketchboard',rv.boundingBox)
|
||||
if(str == 'sketchBoard')store.commit('setShowSketchboard',rv.boundingBox)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -154,8 +154,8 @@
|
||||
</div>
|
||||
<div class="modal_accomplish">
|
||||
<div class="modal_img">
|
||||
<div v-for="item,index in sketchboardList" :key="item" class="modal_imgItem" :class="[driver__.driver?'showEvents':'']" >
|
||||
<img v-lazy="item.imgUrl">
|
||||
<div v-for="item,index in sketchboardList" :key="item.id" class="modal_imgItem" :class="[driver__.driver?'showEvents':'']" >
|
||||
<img v-lazy="item.imgUrl" :key="item.imgUrl">
|
||||
<sketchCategory :disignTypeList="sketchCatecoryList" :generateList="sketchboardList" :isSpread="true" :item="item" :driver__="driver__.driver"></sketchCategory>
|
||||
<!-- 在sketch 和print暂时关闭like -->
|
||||
<!-- <div
|
||||
@@ -173,7 +173,7 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="moreBox" @click.stop>
|
||||
<more level1Type="Sketchboard" :moreList="['edit','down','enlargement','delete']" :item="item" :index="index" @deleteFile="deleteFile" @scaleImage="scaleImage"></more>
|
||||
<more level1Type="Sketchboard" :moreList="['edit','down','enlargement','delete']" :item="item" :list="sketchboardList" :index="index" @deleteFile="deleteFile" @scaleImage="scaleImage"></more>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -107,7 +107,6 @@ export default defineComponent({
|
||||
originalIdSource:props.item.resData.designType,
|
||||
type:props.level1Type,
|
||||
}
|
||||
console.log(data)
|
||||
Https.axiosPost(Https.httpUrls.modifySketch, data).then(
|
||||
(rv) => {
|
||||
// rv.imgUrl = rv.url
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
v-model:value="productimgSimilarity"
|
||||
:tooltipVisible="false"
|
||||
:step="5"
|
||||
:max="70"
|
||||
:max="100"
|
||||
@afterChange="()=>{}"
|
||||
>
|
||||
</a-slider>
|
||||
@@ -354,7 +354,8 @@ setup(props:any,{emit}) {
|
||||
}
|
||||
let getPrductimg = async ()=>{
|
||||
let obj = getData()
|
||||
let imageStrength = productimg.productimgSimilarity == 100? 95 :productimg.productimgSimilarity
|
||||
// let imageStrength = productimg.productimgSimilarity == 100? 95 :productimg.productimgSimilarity
|
||||
let imageStrength = 70 / 100 * productimg.productimgSimilarity
|
||||
let data:any ={
|
||||
direction:productimg.productimgRelightDirection,
|
||||
prompt:productimg.productimgSearchName,
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
@mouseenter.stop="gifPlay($event,design)"
|
||||
@mouseleave.stop="gifPause($event,design)" >
|
||||
<!-- <div :style="{'background-image': `url(${design?.designOutfitUrl||design?.url})`}" class="content_img" v-if="design?.designOutfitUrl||design?.url" :key="design?.designOutfitUrl" designType="like" :index="index"></div> -->
|
||||
<img class="content_img" v-if="design?.designOutfitUrl||design?.url" :src="design?.designOutfitUrl||design?.url"
|
||||
<img class="content_img" v-else-if="design?.designOutfitUrl||design?.url" :src="design?.designOutfitUrl||design?.url"
|
||||
:key="design?.status" designType="like" :index="index"/>
|
||||
<a-spin v-show="!design?.designOutfitUrl && !design?.url && !design?.firstFrameUrl" size="large"></a-spin>
|
||||
|
||||
@@ -910,6 +910,7 @@ export default defineComponent({
|
||||
}
|
||||
const addGenerateImg = async (data:any)=>{
|
||||
if(!data.id)return
|
||||
console.log(data)
|
||||
await nextTick().then(()=>{
|
||||
designData.isUnfold = true
|
||||
uploadLikeDom()
|
||||
@@ -1035,6 +1036,11 @@ export default defineComponent({
|
||||
designData.selectLikeDesign[index].elementType = element.elementType
|
||||
designData.selectLikeDesign[index].elementId = element.elementId
|
||||
designData.selectLikeDesign[index].id = element.id
|
||||
if(element?.videoUrl){
|
||||
designData.selectLikeDesign[index].firstFrameUrl = element.firstFrameUrl
|
||||
designData.selectLikeDesign[index].videoUrl = element.videoUrl
|
||||
designData.selectLikeDesign[index].gifUrl = element.gifUrl
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1047,6 +1053,11 @@ export default defineComponent({
|
||||
likeItem.childList[index].elementType = element.elementType
|
||||
likeItem.childList[index].elementId = element.elementId
|
||||
likeItem.childList[index].id = element.id
|
||||
if(element?.videoUrl){
|
||||
likeItem.childList[index].id.firstFrameUrl = element.firstFrameUrl
|
||||
likeItem.childList[index].id.videoUrl = element.videoUrl
|
||||
likeItem.childList[index].id.gifUrl = element.gifUrl
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1203,9 +1214,9 @@ export default defineComponent({
|
||||
state = false
|
||||
Https.axiosPost(url, data).then(
|
||||
(rv) => {
|
||||
if(type == 'PoseTransfer'){
|
||||
rv = [rv]
|
||||
}
|
||||
// if(type == 'PoseTransfer'){
|
||||
// rv = [rv]
|
||||
// }
|
||||
state = true
|
||||
rv.forEach((element:any) => {
|
||||
if(element?.status == 'Success'){
|
||||
|
||||
@@ -127,6 +127,9 @@ export default defineComponent({
|
||||
data.libraryList = item.modelList
|
||||
}
|
||||
});
|
||||
if(rv.length == 1){
|
||||
data.libraryList = []
|
||||
}
|
||||
if(data.libraryList?.[0]==null)data.systemUser=true
|
||||
if(!data.systemUser){
|
||||
data.modelList = data.libraryList
|
||||
@@ -396,6 +399,7 @@ export default defineComponent({
|
||||
// max-height: calc(100% - 20rem);
|
||||
height: 100%;
|
||||
position: relative;
|
||||
flex: 1;
|
||||
> .item{
|
||||
width: 25rem;
|
||||
height: 55rem;
|
||||
@@ -461,9 +465,10 @@ export default defineComponent({
|
||||
position: sticky;
|
||||
flex-shrink: 0;
|
||||
background: #fff;
|
||||
margin: auto 0;
|
||||
// margin: auto 0;
|
||||
> .upload{
|
||||
height: 55rem;
|
||||
height: 100%;
|
||||
// height: 55rem;
|
||||
width: 29rem;
|
||||
border: 1px dashed transparent;
|
||||
background: linear-gradient(#fff, #fff) padding-box, repeating-linear-gradient(-45deg, #fff 0, #fff 0.3em, #000 0, #000 0.6em);
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
:isState="openType =='relight'"
|
||||
v-if="openType == 'relight'"
|
||||
></toProductRelight>
|
||||
<poseTransfer v-if="openType == 'poseTransfer'" :source="source" :isDesignPage="true" @setLike="designLike" ref="poseTransfer"></poseTransfer>
|
||||
<poseTransfer v-if="openType == 'poseTransfer'" @unLike="unLike" :source="source" :isDesignPage="true" @setLike="designLike" ref="poseTransfer"></poseTransfer>
|
||||
<div v-if="openType == 'editCanvas'" class="canvasBox" :class="{editCanvas:openType == 'editCanvas'}">
|
||||
<div class="canvas" ref="canvasBox">
|
||||
<editCanvas
|
||||
|
||||
@@ -52,6 +52,7 @@ export default defineComponent({
|
||||
chatData:null as any,
|
||||
dataLoad:true as any,
|
||||
})
|
||||
console.log(data.selectObject)
|
||||
let settingGetHistory:any = inject('settingGetHistory')
|
||||
const setIsShowMark = (boolean:boolean)=>{
|
||||
data.isShowMark = boolean
|
||||
@@ -62,6 +63,12 @@ export default defineComponent({
|
||||
newPorject:null as any,
|
||||
chatDom:null as any,
|
||||
})
|
||||
watch(() => data.selectObject.styleId,()=>{
|
||||
if((data.selectObject?.id == route.query?.history) && route.query?.history){
|
||||
getHistory(route.query.history)
|
||||
}
|
||||
})
|
||||
|
||||
watch(() => route.query,
|
||||
(query:any, oldQuery:any) => {
|
||||
data.routeQuery = query
|
||||
|
||||
@@ -90,12 +90,15 @@
|
||||
<div v-show="isGenerate && !remGenerate" class="generage_btn started_btn">
|
||||
<i class="fi fi-br-loading"></i>
|
||||
</div>
|
||||
<div v-show="remGenerate" @click="removeGenerate" class="generage_btn started_btn">
|
||||
<div v-show="remGenerate" @click="setRemoveGenerate" class="generage_btn started_btn">
|
||||
{{$t('Generate.Close')}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="likeBox">
|
||||
<!-- {{ locale }}
|
||||
<img src="@/assets/images/homePage/toolsGuide/productCN.png" alt="">
|
||||
<img src="@/assets/images/homePage/toolsGuide/productEN.png" alt=""> -->
|
||||
<div class="element">
|
||||
<div class="title"><i class="fi fi-rs-comments"></i><span>{{$t('poseTransfer.LikeVideo')}}</span></div>
|
||||
<div class="content">
|
||||
@@ -148,7 +151,7 @@ export default defineComponent({
|
||||
},
|
||||
emit:['unLike'],
|
||||
setup(props,{emit}) {
|
||||
const {t} = useI18n()
|
||||
const {t,locale} = useI18n()
|
||||
const store = useStore();
|
||||
const data:any = reactive({
|
||||
button:{
|
||||
@@ -302,7 +305,7 @@ export default defineComponent({
|
||||
})
|
||||
}
|
||||
const setGenerate = (dataList:any)=>{
|
||||
let list:any = dataList
|
||||
let list:any = [dataList]
|
||||
data.waitList = list
|
||||
let state = true
|
||||
data.generateTime = setInterval(()=>{
|
||||
@@ -347,7 +350,7 @@ export default defineComponent({
|
||||
});
|
||||
},10000)
|
||||
}
|
||||
const removeGenerate = ()=>{
|
||||
const setRemoveGenerate = ()=>{
|
||||
//取消操作
|
||||
data.isGenerate = false
|
||||
data.remGenerate = false
|
||||
@@ -355,7 +358,7 @@ export default defineComponent({
|
||||
if(data.waitList){
|
||||
// let str = data.waitList.map((obj:any) => obj.taskId).join(',');
|
||||
let value = {
|
||||
uniqueId:data.waitList,
|
||||
uniqueId:data.waitList[0],
|
||||
userId:store.state.UserHabit.userDetail.userId,
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
type: 'PoseTransferation'
|
||||
@@ -476,13 +479,18 @@ export default defineComponent({
|
||||
if(props.isDesignPage){
|
||||
emit('unLike',item)
|
||||
}
|
||||
console.log(props.isDesignPage)
|
||||
}
|
||||
Https.axiosPost(Https.httpUrls.poselikeOrDisike, {},{params:value}).then(
|
||||
(rv) => {
|
||||
if(str == 'like'){
|
||||
item.newLike = true
|
||||
let value = {
|
||||
likedList:[item],
|
||||
likedList:[{
|
||||
...item,
|
||||
sort:rv.sort,
|
||||
parentId:rv.parentId,
|
||||
}],
|
||||
str:'add',
|
||||
index:-1,
|
||||
}
|
||||
@@ -490,7 +498,9 @@ export default defineComponent({
|
||||
data.noLikeList.splice(index,1)
|
||||
}else{
|
||||
let value = {
|
||||
likedList:[item],
|
||||
likedList:[{
|
||||
...item,
|
||||
}],
|
||||
str:'splice',
|
||||
index:index,
|
||||
}
|
||||
@@ -539,13 +549,11 @@ export default defineComponent({
|
||||
watch(()=>data.noLikeList.length,(newVal,oldVal)=>{
|
||||
nextTick(()=>{
|
||||
let list = store.state.HomeStoreModule.poseTransfer.list
|
||||
let taskIdList = list.filter((item:any)=>!item.videoUrl)
|
||||
console.log(taskIdList)
|
||||
let taskIdList = list.filter((item:any)=>!item.videoUrl)[0]
|
||||
if(taskIdList.length > 0){
|
||||
data.isGenerate = true
|
||||
data.remGenerate = true
|
||||
console.log(taskIdList)
|
||||
setGenerate([taskIdList[0].taskId])
|
||||
setGenerate(taskIdList[0].taskId)
|
||||
}
|
||||
})
|
||||
},{immediate: true })
|
||||
@@ -569,13 +577,14 @@ export default defineComponent({
|
||||
getUploadUrl,
|
||||
beforeUpload,
|
||||
fileUploadChange,
|
||||
removeGenerate,
|
||||
setRemoveGenerate,
|
||||
likeSetBtn,
|
||||
noLikeSetBtn,
|
||||
selectPose,
|
||||
openSpeed,
|
||||
setSpeed,
|
||||
setUploadDelete,
|
||||
locale,
|
||||
}
|
||||
},
|
||||
directives:{
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
@afterChange="setSimilarity"
|
||||
:tooltipVisible="false"
|
||||
:step="5"
|
||||
:max="70"
|
||||
:max="100"
|
||||
>
|
||||
</a-slider>
|
||||
<input style="margin-left: 2rem;" type="number" readonly v-model="similarity">
|
||||
@@ -78,9 +78,10 @@
|
||||
<div v-show="productimgMenu.value == 'Relight'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||
<span>{{$t('ProductImg.SelectionFunction')}}</span>
|
||||
</div>
|
||||
<div v-show="productimgMenu.value == 'Relight'" class="productImg_content_item_Direction generalModel_state_item">
|
||||
<!-- 暂时去掉 -->
|
||||
<!-- <div v-show="productimgMenu.value == 'Relight'" class="productImg_content_item_Direction generalModel_state_item">
|
||||
<a-select size="large" style="width: 100%;" v-model:value="speedData.value" :options="speedList" :field-names="{ label: 'relightLabel', value: 'value' }"></a-select>
|
||||
</div>
|
||||
</div> -->
|
||||
<div v-show="productimgMenu.value == 'Relight' && speedData.value != 'flux'" class="productImg_content_item_title productImg_content_item_title_similarity">
|
||||
<span>{{$t('ProductImg.RelightDirection')}}</span>
|
||||
</div>
|
||||
@@ -145,6 +146,7 @@
|
||||
|
||||
|
||||
<div class="productImg_right">
|
||||
|
||||
<div class="productImg_right_item_box generalScroll">
|
||||
<div class="content_header_left">
|
||||
<i class="fi fi-rs-comments"></i><span class="content_header_des">
|
||||
@@ -152,6 +154,14 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img
|
||||
class="guide"
|
||||
v-if="locale == 'ENGLISH' && likeList[productimgMenu.value] == 0 && generateList[productimgMenu.value] == 0"
|
||||
:src="'/src/assets/images/homePage/toolsGuide/' + (productimgMenu.value == 'ToProductImage'?'productEN':'relightEN') + '.png'" alt="">
|
||||
<img
|
||||
class="guide"
|
||||
v-else-if="likeList[productimgMenu.value] == 0 && generateList[productimgMenu.value] == 0"
|
||||
:src="'/src/assets/images/homePage/toolsGuide/' + (productimgMenu.value == 'ToProductImage'?'productCN':'relightCN') + '.png'" alt="">
|
||||
<generalDrag ref="generalDragLeft" :type="productimgMenu.value" :isCopy="!isDesignPage" @setBtn="selectSetBtn" :isDelete="false" :isLike="true" :list="likeList[productimgMenu.value]"></generalDrag>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
@@ -243,7 +253,7 @@ export default defineComponent({
|
||||
let userDetail:any= computed(()=>{
|
||||
return store.state.UserHabit.userDetail
|
||||
})
|
||||
const {t} = useI18n()
|
||||
const {t,locale} = useI18n()
|
||||
const upload:any = ref({
|
||||
projectId:computed(()=>store.state.Workspace.probjects.id)
|
||||
})
|
||||
@@ -563,7 +573,7 @@ export default defineComponent({
|
||||
message.info(t('ProductImg.jsContent2'))
|
||||
return
|
||||
}
|
||||
let imageStrength = productImgData.similarity == 100? 95 :productImgData.similarity
|
||||
let imageStrength = 70 / 100 * productImgData.similarity
|
||||
let data:any ={
|
||||
prompt:productImgData.searchName[props.productimgMenu.value],
|
||||
toProductImageVOList:selectArr,
|
||||
@@ -644,7 +654,10 @@ export default defineComponent({
|
||||
if(element.status == 'Success'){
|
||||
element.imgUrl = element.url
|
||||
let index = productImgData.generateList[props.productimgMenu.value].findIndex((obj:any) => obj.taskId === element.taskId);
|
||||
productImgData.generateList[props.productimgMenu.value][index] = element
|
||||
productImgData.generateList[props.productimgMenu.value][index] = {
|
||||
...element,
|
||||
modelName:speed.speedData.value,
|
||||
}
|
||||
// productImgData.generateList[props.productimgMenu.value].unshift(element)
|
||||
data = data.filter((item:any) => item !== element.taskId);
|
||||
}else if(element.status == 'Fail'){
|
||||
@@ -899,6 +912,7 @@ export default defineComponent({
|
||||
ifMaximumLength,
|
||||
openSpeed,
|
||||
setSpeed,
|
||||
locale,
|
||||
};
|
||||
},
|
||||
directives:{
|
||||
@@ -1285,6 +1299,15 @@ export default defineComponent({
|
||||
position: relative;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
.guide{
|
||||
position: absolute;
|
||||
width: 50rem;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%,-50%);
|
||||
max-height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
> .btnLeft,> .btnRight{
|
||||
position: absolute;
|
||||
|
||||
@@ -280,13 +280,18 @@ methods: {
|
||||
}
|
||||
}
|
||||
.habitSetStyle_ok{
|
||||
width: 60%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
justify-content: flex-end;
|
||||
>div{
|
||||
width: 40%;
|
||||
width: 12rem;
|
||||
line-height: 6rem;
|
||||
text-align: center;
|
||||
border-radius: 3rem;
|
||||
height: auto;
|
||||
margin-left: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import { fontFamily } from "html2canvas/dist/types/css/property-descriptors/font-family";
|
||||
import { opacity } from "html2canvas/dist/types/css/property-descriptors/opacity";
|
||||
|
||||
export default {
|
||||
Header: {
|
||||
hello: "你好",
|
||||
@@ -1253,6 +1256,24 @@ export default {
|
||||
MediumCoarse:'中粗',
|
||||
Pachytene:'粗线',
|
||||
Watercolour:'水彩',
|
||||
//添加文字弹窗面板
|
||||
EditTextStyle:'编辑文本样式',
|
||||
close:'取消',
|
||||
confirmEdit:'确认',
|
||||
fontFamily:'字体',
|
||||
fontStyle:'样式',
|
||||
design:'设计',
|
||||
size:'尺寸',
|
||||
charSpacing:'字符间距',
|
||||
lineHeight:'行高',
|
||||
opacity:'透明度',
|
||||
property:'字体属性',
|
||||
fontColor:'字体颜色',
|
||||
BGColor:'背景色',
|
||||
BGOpacity:'透明',
|
||||
SelectTextColor:'选择文字颜色',
|
||||
SelectBGColor:'选择背景颜色',
|
||||
ok:'确定',
|
||||
},
|
||||
speedList:{
|
||||
High:'高级',
|
||||
@@ -1273,6 +1294,7 @@ export default {
|
||||
pressure:'压力',
|
||||
distortion:'失真',
|
||||
power:'动力',
|
||||
LiquefactionTool:'液化工具',
|
||||
},
|
||||
event:{
|
||||
back:'返回'
|
||||
|
||||
@@ -185,7 +185,7 @@ export default {
|
||||
generationSetting: "Generation Setting",
|
||||
GenerationParameters: "Generation Parameters",
|
||||
AdjustYourGenerationSetting: "Adjust your generation setting",
|
||||
ProjectName: "Project name",
|
||||
ProjectName: "Project Name",
|
||||
Role: "Role",
|
||||
Adult: "Adult",
|
||||
Child: "Child",
|
||||
@@ -1253,6 +1253,24 @@ export default {
|
||||
MediumCoarse:'Medium Coarse',
|
||||
Pachytene:'Coarse',
|
||||
Watercolour:'Watercolour',
|
||||
//添加文字弹窗面板
|
||||
EditTextStyle:'Edit Text Style',
|
||||
close:'Close',
|
||||
confirmEdit:'OK',
|
||||
fontFamily:'Font Family',
|
||||
fontStyle:'Font Style',
|
||||
design:'Design',
|
||||
size:'Size',
|
||||
charSpacing:'Character Pitch',
|
||||
lineHeight:'Line Height',
|
||||
opacity:'Opacity',
|
||||
property:'Font Property',
|
||||
fontColor:'Font Color',
|
||||
BGColor:'Background Color',
|
||||
BGOpacity:'Opacity',
|
||||
SelectTextColor:'Select Text Color',
|
||||
SelectBGColor:'Select Background Color',
|
||||
ok:'OK',
|
||||
},
|
||||
speedList:{
|
||||
High:'High',
|
||||
@@ -1273,6 +1291,7 @@ export default {
|
||||
pressure:'Pressure',
|
||||
distortion:'Distortion',
|
||||
power:'Power',
|
||||
LiquefactionTool:'Liquefaction Tool',
|
||||
},
|
||||
event:{
|
||||
back:'Back'
|
||||
|
||||
@@ -254,9 +254,16 @@ const routes: Array<RouteRecordRaw> = [
|
||||
path: "affiliateAudit",
|
||||
name: "affiliateAudit",
|
||||
meta: { enter: 3 },
|
||||
component: () =>
|
||||
import("@/component/Administrator/affiliate/affiliateAudit.vue"),
|
||||
component: () =>import("@/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue"),
|
||||
},
|
||||
{
|
||||
path: "affiliateReferral",
|
||||
name: "affiliateReferral",
|
||||
meta: {
|
||||
enter: 3,
|
||||
},
|
||||
component: () =>import("@/component/Administrator/affiliate/affiliateReferral/index.vue"),
|
||||
},
|
||||
{
|
||||
path: "TransactionTable",
|
||||
name: "TransactionTable",
|
||||
@@ -311,6 +318,14 @@ const routes: Array<RouteRecordRaw> = [
|
||||
},
|
||||
component: () => import("@/views/affiliate/affiliatePage.vue"),
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
name: "defaultAffiliateHome",
|
||||
meta: {
|
||||
enter: 2,
|
||||
},
|
||||
component: () => import("@/component/affiliate/home.vue"),
|
||||
},
|
||||
{
|
||||
path: "/affiliateHome",
|
||||
name: "affiliateHome",
|
||||
@@ -318,14 +333,6 @@ const routes: Array<RouteRecordRaw> = [
|
||||
enter: 2,
|
||||
},
|
||||
component: () => import("@/component/affiliate/home.vue"),
|
||||
},
|
||||
{
|
||||
path: "/affiliateReferral",
|
||||
name: "affiliateReferral",
|
||||
meta: {
|
||||
enter: 2,
|
||||
},
|
||||
component: () => import("@/component/affiliate/Referral/index.vue"),
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -34,6 +34,7 @@ const DesignDetail : Module<DesignDetail,RootState> = {
|
||||
}
|
||||
let front:any = []
|
||||
let back:any = []
|
||||
console.log(data)
|
||||
// let printZIndex =
|
||||
data.clothes.forEach((v:any,index:any)=>{
|
||||
// if(!v?.partialDesignDTO){
|
||||
@@ -49,6 +50,8 @@ const DesignDetail : Module<DesignDetail,RootState> = {
|
||||
left:0,
|
||||
top:0,
|
||||
}
|
||||
v.maskMinioUrl = v.layersObject?.[0]?.maskMinioUrl
|
||||
v.maskUrl = v.layersObject?.[0]?.maskUrl
|
||||
v.layersObject[i].designOpenrtionBtn = false
|
||||
if(v.layersObject[i].imageCategory.indexOf("back") == -1){
|
||||
front[index] = v.layersObject[i]
|
||||
|
||||
@@ -200,7 +200,7 @@ const UploadFilesModule : Module<UploadFiles,RootState> = {
|
||||
|
||||
},
|
||||
setShowSketchboard(state,files){
|
||||
state.showSketchboard = files
|
||||
state.showSketchboard = files?files:[]
|
||||
},
|
||||
clearShowSketchboard(state,files){
|
||||
state.showSketchboard = []
|
||||
|
||||
@@ -261,7 +261,7 @@ const userHabit : Module<UserHabit,RootState> = {
|
||||
*/
|
||||
state.userDetail.affiliate = data.affiliate
|
||||
state.userDetail.systemUser = data.systemUser
|
||||
// state.userDetail.systemUser = 3
|
||||
state.userDetail.systemUser = 3
|
||||
// 身份列表1:可以使用aida系统,2:可以使用affiliate页面,3:系统管理员用户
|
||||
state.userDetail.systemList = []
|
||||
if(data.systemUser != 0)state.userDetail.systemList.push(1)
|
||||
|
||||
@@ -70,7 +70,6 @@ const Workspace : Module<DesignDetail,RootState> = {
|
||||
state.projectList = list
|
||||
},
|
||||
setProbject(state,data){
|
||||
console.log(data)
|
||||
for (const key in data) {
|
||||
if(data[key] == undefined)continue
|
||||
state.probjects[key] = data[key]
|
||||
|
||||
@@ -120,11 +120,27 @@ const adminRouter = {
|
||||
// },
|
||||
],
|
||||
},{
|
||||
name:'Approval Affiliate',
|
||||
name:'Affiliate',
|
||||
icon:'usetime',
|
||||
route:'/administrator/affiliateAudit',
|
||||
expandIcon:'icon-xiala',
|
||||
key:'sub10',
|
||||
isShow:true,
|
||||
children: [
|
||||
{
|
||||
name:'Approval Affiliate',
|
||||
route:'/administrator/affiliateAudit',
|
||||
icon:'',
|
||||
key:'sub10-1',
|
||||
isShow:true,
|
||||
},
|
||||
{
|
||||
name:'Affiliate Referral',
|
||||
route:'/administrator/affiliateReferral',
|
||||
icon:'',
|
||||
key:'sub10-2',
|
||||
isShow:true,
|
||||
},
|
||||
],
|
||||
},{
|
||||
name:'Transaction',
|
||||
icon:'usetime',
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="homeMain_max">
|
||||
|
||||
<div class="leftBox" :class="{leftHide:leftShow}">
|
||||
<div class="left">
|
||||
<div class="title">
|
||||
@@ -43,7 +44,7 @@
|
||||
<div class="timeType" v-if="historyTypeItem == 'Yesterdaylist' && item.Yesterdaylist.length>0">{{$t('Header.Yesterday')}}</div>
|
||||
<div class="timeType" v-if="historyTypeItem == 'WithinAWeeklist' && item.WithinAWeeklist.length>0">{{$t('Header.WithinAWeek')}}</div>
|
||||
<div class="timeType" v-if="historyTypeItem == 'Earlierlist' && item.Earlierlist.length>0">{{$t('Header.Earlier')}}</div>
|
||||
<div v-for="childItem,index in item[historyTypeItem]" class="detailItem history" @click="setHistory(item,childItem)" :class="{active:openTypeChild == childItem.id}">
|
||||
<div v-for="childItem,index in item[historyTypeItem]" :key="childItem.name" class="detailItem history" @click="setHistory(item,childItem)" :class="{active:openTypeChild == childItem.id}">
|
||||
<div class="text" style="width: 100%;">
|
||||
<span :title="childItem.name" v-show="!childItem.editName">{{ childItem.name }}</span>
|
||||
<textarea v-model="historyData.historyTextarea" v-show="childItem.editName" @click.stop></textarea>
|
||||
@@ -129,10 +130,10 @@
|
||||
<div class="right">
|
||||
<div class="user">
|
||||
<div class="left" v-show="leftShow">
|
||||
<svg @click="()=>leftShow=!leftShow" class="leftShowOrHide" xmlns="http://www.w3.org/2000/svg" width="2rem" height="2rem" fill="currentColor" viewBox="0 0 24 24" data-v-1c7326d6=""><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2V5H6Zm4 0v14h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-8ZM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Z" clip-rule="evenodd" data-v-1c7326d6=""></path></svg>
|
||||
<div class="newObj marginT2" @click="newProject">
|
||||
<svg @click="()=>leftShow=!leftShow" class="leftShowOrHide" xmlns="http://www.w3.org/2000/svg" width="3rem" height="3rem" fill="currentColor" viewBox="0 0 24 24" data-v-1c7326d6=""><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2V5H6Zm4 0v14h8a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-8ZM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6Z" clip-rule="evenodd" data-v-1c7326d6=""></path></svg>
|
||||
<div class="newObj marginT2" @click="newProject" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.5 5v14m-7-7h14"></path></svg>
|
||||
<p>{{$t('Header.NewProject')}}</p>
|
||||
<p style="white-space: nowrap;">{{$t('Header.NewProject')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="trialApproval">
|
||||
@@ -317,7 +318,7 @@ export default defineComponent({
|
||||
openTypeChild:'',
|
||||
isLanguage:false,
|
||||
userDetailLanguage:computed(()=>store.state.UserHabit.userDetail.language),
|
||||
openTypeList:computed(()=>openTypeList(t)),
|
||||
openTypeList:[],
|
||||
projectSetting:null,
|
||||
historyData:{
|
||||
isNoData:false,
|
||||
@@ -336,6 +337,10 @@ export default defineComponent({
|
||||
},
|
||||
bathGenerationList:["poseTransfer","SERIES_DESIGN","toProduct","relight"]
|
||||
})
|
||||
watch(()=>locale.value,(newVal)=>{
|
||||
homeMainData.openTypeList = openTypeList(t)
|
||||
}, { immediate: true })
|
||||
|
||||
const historyData = reactive({
|
||||
|
||||
})
|
||||
@@ -561,10 +566,15 @@ export default defineComponent({
|
||||
}
|
||||
const settingGetHistory = ()=>{
|
||||
homeMainData.historyData.page = 1
|
||||
homeMainData.openTypeList.history.Todaylist = []
|
||||
homeMainData.openTypeList.history.Yesterdaylist = []
|
||||
homeMainData.openTypeList.history.WithinAWeeklist = []
|
||||
homeMainData.openTypeList.history.Earlierlist = []
|
||||
homeMainData.openTypeList.history = {
|
||||
icon:"fi-br-time-past",
|
||||
label:"History",
|
||||
value:"history",
|
||||
Todaylist:[],
|
||||
Yesterdaylist:[],
|
||||
WithinAWeeklist:[],
|
||||
Earlierlist:[],
|
||||
}
|
||||
homeMainData.historyData.isShowLoading = false
|
||||
homeMainData.historyData.isNoData = false
|
||||
isFound = 0//表示是否找到当前id的记录,
|
||||
|
||||
@@ -108,15 +108,6 @@ export default defineComponent({
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
{
|
||||
name:'Affiliate Referral',
|
||||
route:'/affiliateReferral',
|
||||
icon:'yonghu',
|
||||
expandIcon:'icon-xiala',
|
||||
key:'sub2',
|
||||
isShow:true,
|
||||
|
||||
},
|
||||
],
|
||||
openKeys: [],
|
||||
selectedKeys: ['sub1'],
|
||||
|
||||
@@ -702,7 +702,7 @@ export default defineComponent({
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@400;700&display=swap");
|
||||
// @import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@400;700&display=swap");
|
||||
.feedbackSurvey {
|
||||
font-family: "Quicksand", sans-serif;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
|
||||
Reference in New Issue
Block a user