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