布局修改 部分bug修复

This commit is contained in:
X1627315083
2025-08-22 10:27:48 +08:00
parent 141821a843
commit 594bf5ce0a
275 changed files with 5675 additions and 13049 deletions

View File

@@ -3,14 +3,20 @@
<div class="leftBox" :class="{leftHide:leftShow}">
<div class="left">
<div class="title">
<span>AiDA</span>
<!-- <span>AiDA</span> -->
<img src="@/assets/images/homePage/aidaIcon.png" alt="">
<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>
<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>
<div class="newObj" @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 width="19" height="16" viewBox="0 0 19 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<line x1="9.83398" y1="1" x2="9.83398" y2="15" stroke="black" stroke-width="4" stroke-linecap="round"/>
<path d="M1.5 8H17.5" stroke="black" stroke-width="4" stroke-linecap="round"/>
</svg>
<p>{{$t('Header.NewProject')}}</p>
</div>
<div class="navList marginT2">
<div class="navList ">
<div class="tools list" v-for="item in openTypeList" :class="{active:openType == item.value,history:item.value == 'history'}">
<div class="titleBox" @click="setOpenType(item.value,item.list)">
@@ -42,9 +48,10 @@
<span :title="childItem.name" v-show="!childItem.editName">{{ childItem.name }}</span>
<textarea v-model="historyData.historyTextarea" v-show="childItem.editName" @click.stop></textarea>
</div>
<div class="type" v-if="childItem.process == 'THREE_D_PLATE_MAKING'">3D Pattern Making</div>
<div class="type" v-else>{{ childItem.process.replace(/_/g, ' ').toLowerCase().replace(/\b\w/g, char => char.toUpperCase()) }}</div>
<div class="time">{{ childItem.updateTime.replace('T', ' ') }}</div>
<!-- <div class="type" v-if="childItem.process == 'THREE_D_PLATE_MAKING'">3D Pattern Making</div>
<div class="type" v-else>{{ childItem.process.replace(/_/g, ' ').toLowerCase().replace(/\b\w/g, char => char.toUpperCase()) }}</div> -->
<div class="type">{{ $t(`Header.${childItem.process}`) }}</div>
<div class="time">{{ childItem?.updateTime?.replace('T', ' ') }}</div>
<div class="btn">
<i class="fi fi-br-menu-dots-vertical" v-show="!childItem.editName" @click.stop="editHistory(childItem,index,$event,item[historyTypeItem])"></i>
<i class="fi fi-br-check" v-show="childItem.editName" @click.stop="accomplishHistory(childItem,index,$event)"></i>
@@ -57,10 +64,10 @@
<i class="fi fi-rr-settings-sliders"></i>
<span>{{$t('Header.Setting')}}</span>
</div>
<div class="item" v-if="bathGenerationList.indexOf(childItem.process)>-1" @click.stop="bathGeneration(childItem)">
<!-- <div class="item" v-if="bathGenerationList.indexOf(childItem.process)>-1" @click.stop="bathGeneration(childItem)">
<i class="fi fi-rr-cloud-upload-alt"></i>
<span>{{$t('Header.BatchGeneration')}}</span>
</div>
</div> -->
<div class="item" @click.stop="deleteItem(childItem)">
<i class="icon iconfont icon-shanchu operate_icon"></i>
<span>{{$t('Header.Delete')}}</span>
@@ -82,14 +89,14 @@
</div>
</div>
<div class="navListBottom">
<div class="tools marginT2 marginB2 list" :class="{active:$route.name == 'cloud'}" @click="()=>$router.push('/home/cloud')">
<!-- <div class="tools marginT2 marginB2 list" :class="{active:$route.name == 'cloud'}" @click="()=>$router.push('/home/cloud')">
<div class="titleBox" style="margin-bottom: 0;">
<div class="left">
<i class="fi fi-rr-cloud-upload-alt"></i>
<span>{{$t('Header.BatchGeneration')}}</span>
</div>
</div>
</div>
</div> -->
<div class="tools list" :class="{active:isLanguage}">
<div class="titleBox" @click="()=>isLanguage = !isLanguage">
<div class="left">
@@ -110,22 +117,12 @@
</div>
</div>
</div>
<div class="homeMain_right_content">
<div
class="button_second credits hideChecked"
>
{{$t('Header.Credits')}}:&nbsp;
<span :title="credits">
<div class="credits_item" v-for="item in String(credits)" :style="{'transform': 'translateY('+item*-100+'%)'}">
<div v-if="item != '.'" v-for="numItem in 10">{{ numItem-1 }}</div>
<div v-else>{{item}}</div>
</div>
</span>
<i @click="getCredits" class="fi fi-br-refresh" :class="[activeCredits?'active':'']"></i>
<i @click="UpgradePlan" title="Purchase" class="fi fi-rr-shop"></i>
</div>
<div class="segmentation"></div>
<div v-if="userDetail.systemUser != 0 || userDetail.systemUser == 3" @click="openUpgradeToPro" class="gallery_btn gallery_btn_radius" style="width: 100%;display: flex;justify-content: center;align-items: center;">
<i class="fi fi-br-dollar" style="margin-right: .6rem;display: flex;"></i>
{{$t('Header.openUpgrade')}}
</div>
<div v-if="userDetail.systemUser != 0 || userDetail.systemUser == 3" @click="openUpgradeToPro" class="gallery_btn gallery_btn_radius" style="width: 100%;">{{$t('Header.openUpgrade')}}</div>
</div>
</div>
<div class="rightBox">
@@ -139,21 +136,39 @@
</div>
</div>
<div class="trialApproval">
<div class="message_iconItem" style="display: flex;margin-left: .5rem">
<div class="message_iconItem" style="display: flex;">
<i class="fi fi-rs-interrogation" style="font-size: 2.4rem" @click="toUserManual"></i>
</div>
<div class="message_iconItem" style="display: flex;">
<a-badge :count="messageNum">
<i class="fi fi-rr-envelope" style="font-size: 2rem" @click="openMessage"></i>
<i class="fi fi-rr-envelope" style="font-size: 2.4rem" @click="openMessage"></i>
</a-badge>
</div>
<div class="message_iconItem" style="display: flex;margin-left: .5rem">
<div class="message_iconItem" style="display: flex;">
<a-badge :count="messageType?.newPosted">
<!-- <i class="fi fi-rr-envelope" @click="openMessage"></i> -->
<i class="fi fi-rr-bell" style="font-size: 2rem" @click.stop="openNewPosted"></i>
<i class="fi fi-rr-bell" style="font-size: 2.4rem" @click.stop="openNewPosted"></i>
</a-badge>
<div class="message_iconItem_value select_block" v-show="isNewPosted" style="width: 40rem">
<newPosted ref="newPosted"></newPosted>
</div>
</div>
</div>
<div class="homeMain_right_content">
<div
class="button_second credits hideChecked"
>
{{$t('Header.Credits')}}:&nbsp;
<span :title="credits">
<div class="credits_item" v-for="item in String(credits)" :style="{'transform': 'translateY('+item*-100+'%)'}">
<div v-if="item != '.'" v-for="numItem in 10">{{ numItem-1 }}</div>
<div v-else>{{item}}</div>
</div>
</span>
<i @click="getCredits" class="fi fi-br-refresh" :class="[activeCredits?'active':'']"></i>
<i @click="UpgradePlan" title="Purchase" class="fi fi-rr-shop"></i>
</div>
</div>
<div class="homeMain_user">
<div class="homeMain_user_icon" @click="openAccount">
<img :src="userDetail.avatar" alt="">
@@ -178,8 +193,8 @@
<div class="homeMain_subscribe">
<div>
<span class="font">Status</span>
<span v-if="userDetail.timeData.isExpiration" class="stateSucsess font">Valid <i class="fi fi-ss-check-circle"></i></span>
<span v-else class="stateError font">Expire <i class="fi fi-ss-check-circle"></i></span>
<span v-if="userDetail.timeData.isExpiration" class="stateSucsess font">{{$t('account.Valid')}} <i class="fi fi-ss-check-circle"></i></span>
<span v-else class="stateError font">{{$t('account.Expire')}} <i class="fi fi-ss-check-circle"></i></span>
<span class="time">{{ userDetail.timeData.text }}</span>
</div>
</div>
@@ -243,6 +258,8 @@
<!-- 进行续订 -->
<renew ref="renew"></renew>
<projectSetting ref="projectSetting" @getHistory="settingGetHistory"></projectSetting>
<!-- 未绑定邮箱弹窗 -->
<bindEmail ref="bindEmail"></bindEmail>
</div>
</template>
<script >
@@ -250,7 +267,6 @@ import { defineComponent, createVNode, ref,toRefs, reactive, computed, onMounted
import { isEmail } from "@/tool/util";
import { setCookie, getCookie, WriteCookie,clonAllCookie } from "@/tool/cookie";
import payOrder from "@/component/Pay/payOrder.vue";
import VerificationCodeInput from "@/component/LoginPage/verificationCodeInput.vue";
import renew from "@/component/HomePage/renew.vue";
// import Habit from "@/component/Detail/habit.vue";
import TaskPage from "@/component/HomePage/TaskPage.vue";
@@ -273,9 +289,10 @@ import { useRouter,useRoute } from 'vue-router'
import {openTypeList} from "@/tool/listData.js";
import home from "@/component/home/index.vue";
import projectSetting from '@/component/home/newProject/setting.vue'
import bindEmail from "@/component/HomePage/bindEmail.vue";
export default defineComponent({
components: {
VerificationCodeInput,
renew,
// Habit,
RobotAssist,
@@ -286,6 +303,7 @@ export default defineComponent({
TaskPage,
home,
projectSetting,
bindEmail,
},
setup(){
const store = useStore();
@@ -438,6 +456,10 @@ export default defineComponent({
const openUpgradeToPro = ()=>{
renew.value.init()
}
const toUserManual = ()=>{
const route = router.resolve({ name: 'userManual' });
window.open(route.href, '_blank');
}
onMounted(async ()=>{
if((route.query?.id || route.query?.history) && !await getIdExistToHistory()){
router.push('/home')
@@ -516,7 +538,7 @@ export default defineComponent({
const setHistory = (item,childItem)=>{
// router.push(`/home/tools?tools=toProduct&id=${childItem.id}`)
if(childItem.process == 'SERIES_DESIGN' || childItem.process == "SINGLE_DESIGN"){
router.push(`/home?history=${childItem.id}`)
router.push(`/home?history=${childItem?.id}`)
}else{
let processList = {
toProduct:'TO_PRODUCT_IMAGE',
@@ -689,6 +711,7 @@ export default defineComponent({
}
const setting = (item)=>{
homeMainData.projectSetting.init(item)
homeMainData.historyData.selectHistoryId = -1
}
const accomplishHistory = (item)=>{
let data = {
@@ -744,6 +767,7 @@ export default defineComponent({
accomplishHistory,
newProject,
bathGeneration,
toUserManual,
}
},
data() {
@@ -969,7 +993,7 @@ export default defineComponent({
);
},
setLang(v){
this.getLangIsShowMark = true
Https.axiosGet(Https.httpUrls.changeUserLanguage,{params:{language:v}}).then((rv) => {
if (rv) {
if (rv) {
@@ -982,10 +1006,13 @@ export default defineComponent({
// this.$router.push("/home")
// }
this.store.commit('clearAllData')
// window.location.reload()
window.location.href = '/home';
window.location.reload()
// window.location.href = '/home';
}
this.getLangIsShowMark = false
}
}).catch(()=>{
this.getLangIsShowMark = false
})
},
@@ -1016,15 +1043,16 @@ export default defineComponent({
height: 100%;
background: #f5f5f5;
overflow: hidden;
width: 26rem;
width: 29.5rem;
transition: width .3s;
&.leftHide{
width: 0;
}
> .left{
width: 26rem;
// width: 26rem;
width: 29.5rem;
height: 100%;
padding: 2rem;
padding: 2.4rem 2.2rem;
display: flex;
flex-direction: column;
.marginT2{
@@ -1058,24 +1086,26 @@ export default defineComponent({
> .titleBox{
padding: 1.2rem;
display: flex;
font-size: 1.4rem;
font-size: 1.8rem;
cursor: pointer;
justify-content: space-between;
align-items: center;
font-weight: 600;
font-weight: 500;
i{
display: flex;
font-size: 1.8rem;
}
> .left{
display: flex;
align-items: center;
> i{
margin-right: .8rem;
margin-right: 1rem;
}
> span{
line-height: 2.4rem;
color: #52525b;
// color: #52525b;
transition: all .3s;
color: #000000BF;
}
}
> .right{
@@ -1098,6 +1128,7 @@ export default defineComponent({
> .detail{
position: relative;
height: 100%;
padding: 0 .5rem;
> img{
width: 100%;
}
@@ -1110,8 +1141,10 @@ export default defineComponent({
}
.detailItem{
cursor: pointer;
padding: 1.2rem 1.1rem 1.2rem 2.2rem;
font-size: 1.4rem;
padding: .8rem;
// padding: 1.2rem 1.1rem 1.2rem 2.2rem;
font-size: 1.8rem;
// font-size: 1.4rem;
font-weight: 400;
margin-bottom: .4rem;
border-radius: .8rem;
@@ -1121,6 +1154,8 @@ export default defineComponent({
// flex-wrap: nowrap;
&.history{
padding: 1.2rem 1.1rem 1.2rem 2.2rem;
margin-bottom: 1rem;
> .text{
flex-basis: 100%;
}
@@ -1130,7 +1165,8 @@ export default defineComponent({
opacity: .5;
}
> i{
margin-right: .8rem;
font-size: 1.8rem;
margin-right: 1rem;
display: flex;
}
> .text{
@@ -1146,18 +1182,23 @@ export default defineComponent({
}
}
&.active{
background: #f5f5f5;
// background: #f5f5f5;
background-color: #ffffff;
}
&:hover{
background: #f5f5f5;
// background: #f5f5f5;
background-color: #ffffff;
}
&.history{
background: #f5f5f5;
// background-color: #ffffff;
&:hover{
background: #fdfdfd;
// background-color: #ffffff;
}
&.active{
background: #fdfdfd;
// background-color: #ffffff;
}
> .text{
> span{
@@ -1189,6 +1230,8 @@ export default defineComponent({
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 40%;
text-align: center;
}
> .btn{
border: 1px solid #0000000d;
@@ -1271,13 +1314,14 @@ export default defineComponent({
}
}
&.active{
padding: 1.2rem;
padding: 1.2rem 0;
overflow: hidden;
max-height: 100%;
background: #00000008;
> .titleBox{
padding: 0;
margin-bottom: 1.6rem;
padding: 0 1.2rem;
> .right{
> i{
transform: rotate(180deg);
@@ -1332,6 +1376,9 @@ export default defineComponent({
font-size: 2rem;
font-weight: 600;
}
> img{
width: 2.7rem;
}
> svg{
cursor: pointer;
}
@@ -1342,108 +1389,45 @@ export default defineComponent({
overflow: hidden;
display: flex;
flex-direction: column;
margin-top: 2.8rem;
}
> .segmentation{
height: 2px;
background: #0000000d;
margin-top: 2rem;
width: 100%;
}
> .navListBottom{
display: flex;
flex-direction: column;
}
> .homeMain_right_content {
top: 0;
left: 0;
display: flex;
align-items: center;
width: 100%;
.homeMain_icon {
font-size: 3.6rem;
position: relative;
top: 0.3rem;
}
.username {
font-size: 1.6rem;
color: #1a1a1a;
margin: 0 0.8rem;
font-weight: 900;
span{
margin: .7rem;
}
}
.credits{
font-size: 1.6rem;
color: #1a1a1a;
font-weight: 900;
width: auto;
padding: 0 1.6rem;
cursor: auto;
display: flex;
line-height: 6rem;
height: 6rem;
box-sizing: content-box;
border-radius: 4rem;
span{
width: 5rem;
display: inline-block;
overflow: hidden;
display: flex;
margin-right: .9rem;
.credits_item{
transition: .3s all;
// height: 4rem;
height: 100%;
// height: 3.2rem;
div{
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
}
}
i{
height: 100%;
border-left: .1rem solid ;
padding-left: 1.3rem;
margin-left: 1.5rem;
font-size: 1.6rem;
cursor: pointer;
display: flex;
align-items: center;
}
.fi-br-refresh{
margin-left: 0;
border-left: none;
padding-left: 0;
&.active{
transition: all .3s;
transform: rotate(360deg);
}
}
}
}
> .gallery_btn{
margin-top: 1.2rem;
margin-top: 2rem;
}
}
}
.newObj{
border-radius: 1.2rem;
padding: 1.6rem 1.2rem;
border: 1px solid #0003;
border-radius: 2rem;
border: 2px solid #000;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
margin-top: 4.2rem;
width: 25.1rem;
// height: 6.8rem;
padding: calc(2rem - 2px) 0;
> svg{
margin-right: .4rem;
width: 2.4rem;
height: 2.4rem;
margin-right: 1.3rem;
width: 1.6rem;
height: 1.6rem;
}
> p{
font-size: 1.6rem;
font-weight: 600;
font-size: 2rem;
font-weight: 500;
margin: 0;
}
}
@@ -1460,31 +1444,118 @@ export default defineComponent({
margin-bottom: 1rem;
display: flex;
justify-content: flex-end;
padding: 2rem 2rem 1.2rem;
padding: 3.2rem 2.1rem 1.2rem;
align-items: center;
> .left{
display: flex;
align-items: center;
margin-right: auto;
> .newObj{
background: #f5f5f5;
padding: 1.2rem;
background: #fff;
padding: 1.2rem 2.5rem;
margin: 0;
width: 17.7rem;
border-radius: 3rem;
p{
font-size: 1.6rem;
font-weight: 600;
}
}
> svg{
margin-right: 2rem;
cursor: pointer;
}
}
> .homeMain_right_content {
top: 0;
left: 0;
display: flex;
align-items: center;
margin-right: 1.2rem;
.homeMain_icon {
font-size: 3.6rem;
position: relative;
top: 0.3rem;
}
.username {
font-size: 1.6rem;
color: #1a1a1a;
margin: 0 0.8rem;
font-weight: 900;
span{
margin: .7rem;
}
}
.credits{
font-size: 1.6rem;
color: #1a1a1a;
font-weight: 500;
cursor: auto;
display: flex;
line-height: calc(5rem - 4px);
height: 5rem;
border-radius: 3.4rem;
justify-content: center;
width: auto;
// width: calc(25.3rem - 4px);
padding: 0 1.2rem;
border: 1.72px solid #000;
span{
width: 5rem;
display: inline-block;
overflow: hidden;
display: flex;
margin-right: 1.2rem;
.credits_item{
transition: .3s all;
// height: 4rem;
height: 100%;
// height: 3.2rem;
div{
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
}
}
i{
height: 100%;
border-left: 1.72px solid ;
padding-left: 1.3rem;
margin-left: 1.5rem;
font-size: 2.2rem;
cursor: pointer;
display: flex;
align-items: center;
}
.fi-rr-shop{
font-size: 2.4rem;
}
.fi-br-refresh{
margin-left: 0;
border-left: none;
padding-left: 0;
&.active{
transition: all .3s;
transform: rotate(360deg);
}
}
}
}
> .trialApproval{
display: flex;
margin-right: 1rem;
align-items: center;
> .message_iconItem{
position: relative;
cursor: pointer;
margin: 0;
margin-right: 1.4rem;
i{
width: 3rem;
height: 3rem;
width: 2.4rem;
height: 2.4rem;
display: flex;
align-items: center;
justify-content: center;
@@ -1492,16 +1563,16 @@ export default defineComponent({
}
}
.homeMain_user{
height: 6rem;
width: 6rem;
height: 5.6rem;
width: 5.6rem;
// margin-left: auto;
display: flex;
position: relative;
align-items: center;
position: relative;
.homeMain_user_icon{
height: 5rem;
width: 5rem;
height: 5.6rem;
width: 5.6rem;
position: relative;
// transform-origin: top;
overflow: hidden;
@@ -1519,11 +1590,11 @@ export default defineComponent({
// transition: all .3s;
}
.homeMain_user_detail{
z-index: 999;
z-index: 1050;
position: absolute;
top: calc(100% + .5rem);
background: #fff;
width: 32rem;
width: 34rem;
height: auto;
opacity: 0;
right: 0px;
@@ -1803,7 +1874,6 @@ export default defineComponent({
.email_last_step_content {
margin-left: 1rem;
font-size: 2.2rem;
font-family: PingFang SC;
font-weight: bold;
color: #030303;
}