chat聊天功能
This commit is contained in:
@@ -6,13 +6,13 @@
|
||||
<span>AiDA</span>
|
||||
<svg 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">
|
||||
<div class="newObj marginT2" @click="newProject">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.5 5v14m-7-7h14"></path></svg>
|
||||
<p>New Chat</p>
|
||||
<p>New Project</p>
|
||||
</div>
|
||||
<div class="navList marginT2">
|
||||
<div class="tools list" v-for="item in openTypeList" :class="{active:openType == item.value}">
|
||||
<div class="titleBox" @click="setOpenType(item.value)">
|
||||
<div class="titleBox" @click="setOpenType(item.value,item.list)">
|
||||
<div class="left">
|
||||
<i :class="['fi',item.icon]"></i>
|
||||
<span>{{item.label}}</span>
|
||||
@@ -22,21 +22,54 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="detailBox">
|
||||
<div class="detail" v-show="openType == item.value">
|
||||
<div class="detail" v-if="item.value != 'history'" v-show="openType == item.value">
|
||||
<div class="detailItem" v-for="childItem in item.list" @click="setRouter(item,childItem)" :class="{active:openTypeChild == childItem.value}">
|
||||
<i v-show="childItem.icon" :class="['fi',childItem.icon]"></i>
|
||||
<span>{{ childItem.label }}</span>
|
||||
<div class="text">
|
||||
<span>{{ childItem.label }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail" v-else>
|
||||
<div class="detailItem history" v-for="childItem,index in item.list" @click="setHistory(item,childItem)" :class="{active:openTypeChild == childItem.id}">
|
||||
<div class="text" style="width: 100%;">
|
||||
<span :title="childItem.name" v-show="!childItem.editName">{{ childItem.name }}</span>
|
||||
<textarea v-model="historyTextarea" v-show="childItem.editName"></textarea>
|
||||
</div>
|
||||
<div class="type">{{ childItem.process }}</div>
|
||||
<div class="btn">
|
||||
<i class="fi fi-br-menu-dots-vertical" v-show="!childItem.editName" @click.stop="editHistory(childItem,index,$event)"></i>
|
||||
<i class="fi fi-br-check" v-show="childItem.editName" @click.stop="accomplishHistory(childItem,index,$event)"></i>
|
||||
<div class="operation" v-show="selectHistoryIndex == index">
|
||||
<div class="item" @click.stop="editName(childItem)">
|
||||
<i class="fi fi-rr-edit"></i>
|
||||
<span>Rename</span>
|
||||
</div>
|
||||
<div class="item" @click.stop="deleteItem(childItem)">
|
||||
<i class="icon iconfont icon-shanchu operate_icon"></i>
|
||||
<span>Delete</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="!isNoData" class="material_content_list_loding">
|
||||
<span class="page_loading" v-show="!isShowLoading"></span>
|
||||
<span v-show="isShowLoading">
|
||||
<a-spin size="large" />
|
||||
</span>
|
||||
</div>
|
||||
<img v-show="isNoData && isNull" src="@/assets/images/homePage/null_img.png">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navListBottom">
|
||||
<!-- <div class="navListBottom">
|
||||
<div class="tools marginT2 list language" :class="{active:isLanguage}">
|
||||
<div class="titleBox" @click="()=>isLanguage = !isLanguage">
|
||||
<div class="left">
|
||||
<i class="fi fi-br-angle-small-down"></i>
|
||||
<span>Advanced Tools</span>
|
||||
<i class="fi fi-br-globe"></i>
|
||||
<span>Language</span>
|
||||
</div>
|
||||
<div class="right">
|
||||
<i class="fi fi-br-angle-small-down"></i>
|
||||
@@ -45,7 +78,6 @@
|
||||
<div class="detailBox">
|
||||
<div class="detail" v-show="isLanguage">
|
||||
<div class="detailItem">
|
||||
<!-- <i class="fi fi-br-angle-small-down"></i> -->
|
||||
<span>AI Image Generator</span>
|
||||
</div>
|
||||
<div class="detailItem active">
|
||||
@@ -55,6 +87,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="homeMain_right_content">
|
||||
<div
|
||||
class="button_second credits hideChecked"
|
||||
>
|
||||
{{$t('Header.Credits')}}:
|
||||
<span :title="credits">
|
||||
<div class="credits_item" v-for="item in String(credits)" :style="{'transform': 'translateY('+item*-100+'%)'}">
|
||||
<div v-for="numItem in 10">{{ numItem-1 }}</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 v-if="userDetail.systemUser == 0 || userDetail.systemUser == 3" @click="openUpgradeToPro" class="gallery_btn gallery_btn_radius" style="width: 100%;">Upgrade to Pro</div>
|
||||
</div>
|
||||
@@ -62,6 +108,22 @@
|
||||
<div class="rightBox">
|
||||
<div class="right">
|
||||
<div class="user">
|
||||
<div class="trialApproval">
|
||||
<div class="message_iconItem">
|
||||
<a-badge :count="messageNum">
|
||||
<i class="fi fi-rr-envelope" @click="openMessage"></i>
|
||||
</a-badge>
|
||||
</div>
|
||||
<div class="message_iconItem">
|
||||
<a-badge :count="messageType?.newPosted">
|
||||
<!-- <i class="fi fi-rr-envelope" @click="openMessage"></i> -->
|
||||
<i class="fi fi-rr-bell" @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_user">
|
||||
<div class="homeMain_user_icon" @click="openAccount">
|
||||
<img :src="userDetail.avatar" alt="">
|
||||
@@ -130,55 +192,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="router">
|
||||
<router-view v-if="!getLangIsShowMark" @setTask="setTask" :getLangIsShowMark="getLangIsShowMark">
|
||||
</router-view>
|
||||
<div class="userSystem" v-if="userDetail.systemList.indexOf(1) == -1">
|
||||
You can use these features only after becoming a regular user~
|
||||
</div>
|
||||
<div class="router" v-else-if="!getLangIsShowMark">
|
||||
<home ref="home" @setTask="setTask" ></home>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<header class="homeMain_heade" v-show="false">
|
||||
<div class="homeMain_right_content">
|
||||
|
||||
<div
|
||||
class="trialApproval button_second credits hideChecked"
|
||||
>
|
||||
{{$t('Header.Credits')}}:
|
||||
<span :title="credits">
|
||||
<div class="credits_item" v-for="item in String(credits)" :style="{'transform': 'translateY('+item*-100+'%)'}">
|
||||
<div v-for="numItem in 10">{{ numItem-1 }}</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>
|
||||
<!-- <navRouter :routerList="navRouterList"></navRouter> -->
|
||||
<div class="homeMain_right">
|
||||
<div class="trialApproval credits message">
|
||||
<div class="message_iconItem">
|
||||
<a-badge :count="messageNum">
|
||||
<i class="fi fi-rr-envelope" @click="openMessage"></i>
|
||||
</a-badge>
|
||||
</div>
|
||||
<div class="message_iconItem">
|
||||
<a-badge :count="messageType?.newPosted">
|
||||
<!-- <i class="fi fi-rr-envelope" @click="openMessage"></i> -->
|
||||
<i class="fi fi-rr-bell" @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>
|
||||
<!-- <Habit></Habit> -->
|
||||
</div>
|
||||
|
||||
<payOrder ref="payOrder"></payOrder>
|
||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||
<TaskPage ref="TaskPage"></TaskPage>
|
||||
</header>
|
||||
|
||||
|
||||
<payOrder ref="payOrder"></payOrder>
|
||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||
<TaskPage ref="TaskPage"></TaskPage>
|
||||
|
||||
<div class="mark_loading" v-show="getLangIsShowMark">
|
||||
<a-spin size="large" />
|
||||
</div>
|
||||
@@ -186,8 +212,6 @@
|
||||
<scaleVideo ref="scaleVideo"></scaleVideo>
|
||||
<!-- 进行续订 -->
|
||||
<renew ref="renew"></renew>
|
||||
<!-- 绑定邮箱 -->
|
||||
<bindEmail ref="bindEmail"></bindEmail>
|
||||
</div>
|
||||
</template>
|
||||
<script >
|
||||
@@ -206,8 +230,6 @@ import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
import scaleVideo from "@/component/HomePage/scaleVideo.vue";
|
||||
import newPosted from "@/component/HomePage/newPosted.vue";
|
||||
import navRouter from "@/component/modules/navRouter.vue";
|
||||
import bindEmail from "@/component/HomePage/bindEmail.vue";
|
||||
import { useStore } from "vuex";
|
||||
import { setLang } from "@/tool/guide";
|
||||
import showViewVideo from "@/tool/mount";
|
||||
@@ -218,6 +240,7 @@ import MyWs from "@/tool/webSocket";
|
||||
import MyEvent from "@/tool/myEvents";
|
||||
import { useRouter,useRoute } from 'vue-router'
|
||||
import {openTypeList} from "@/tool/listData.js";
|
||||
import home from "@/component/home/index.vue";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
VerificationCodeInput,
|
||||
@@ -229,8 +252,7 @@ export default defineComponent({
|
||||
UpgradePlan,
|
||||
payOrder,
|
||||
TaskPage,
|
||||
navRouter,
|
||||
bindEmail,
|
||||
home,
|
||||
},
|
||||
setup(){
|
||||
const store = useStore();
|
||||
@@ -243,17 +265,31 @@ export default defineComponent({
|
||||
openTypeChild:'',
|
||||
isLanguage:false,
|
||||
openTypeList:openTypeList(t),
|
||||
|
||||
})
|
||||
const historyData = reactive({
|
||||
isNoData:false,
|
||||
isShowLoading:false,
|
||||
isNull:false,
|
||||
searchCollectionName:'',
|
||||
historyTextarea:'',
|
||||
historyList:[],
|
||||
selectHistoryIndex:-1,
|
||||
page:1,
|
||||
size:10,
|
||||
})
|
||||
watch(() => route.query,
|
||||
(query, oldQuery) => {
|
||||
// if(oldQuery && query?.works == oldQuery?.works)return
|
||||
console.log(query,oldQuery,Object.keys(query)[0]);
|
||||
// homeMainData.openTypeList[Object.keys(query)[0]]
|
||||
nextTick(()=>{
|
||||
const key = Object.keys(query)?.[0]
|
||||
if(key){
|
||||
homeMainData.openType = Object.keys(query)[0]
|
||||
homeMainData.openTypeChild = query[Object.keys(query)[0]]
|
||||
if(query.id){
|
||||
homeMainData.openType = 'history'
|
||||
homeMainData.openTypeChild = query.id
|
||||
}else{
|
||||
homeMainData.openType = Object.keys(query)[0]
|
||||
homeMainData.openTypeChild = query[Object.keys(query)[0]]
|
||||
}
|
||||
}else{
|
||||
homeMainData.openType = ''
|
||||
homeMainData.openTypeChild = ''
|
||||
@@ -272,7 +308,6 @@ export default defineComponent({
|
||||
|
||||
let activeCredits = ref(false)
|
||||
let getLangIsShowMark = ref(true)
|
||||
let navRouterList = ref([])
|
||||
let messageNum = computed(()=>{
|
||||
return store.state.UserHabit.messageSystem.messageNum
|
||||
})
|
||||
@@ -314,13 +349,6 @@ export default defineComponent({
|
||||
store.commit('setMessageSystem',data)
|
||||
}
|
||||
MyEvent.add('getMessage',getWsMessage)
|
||||
// setTimeout(() => {
|
||||
// MyWs.sendMessage('aaaa')
|
||||
// }, 3000);
|
||||
// MyWs.ws.onmessage = (data)=>{
|
||||
// console.log(JSON.parse(data.data),232);
|
||||
// }
|
||||
|
||||
let openNewPosted = ()=>{
|
||||
stateList.isNewPosted = !stateList.isNewPosted
|
||||
newPosted.value.init()
|
||||
@@ -350,58 +378,182 @@ export default defineComponent({
|
||||
const openUpgradeToPro = ()=>{
|
||||
renew.value.init()
|
||||
}
|
||||
onMounted(()=>{
|
||||
onMounted(async ()=>{
|
||||
let test = getCookie('isTest')
|
||||
let isTest =JSON.parse(test)
|
||||
//判断账号剩余时间是否太短
|
||||
let isModalOne = JSON.parse(sessionStorage.getItem("isTimeOne"))
|
||||
if(!isModalOne){//判断是否是试用用户
|
||||
await new Promise(async (resolve) => {
|
||||
if(isTest){
|
||||
resolve('')
|
||||
}else{
|
||||
await Https.axiosPost(Https.httpUrls.getExpiredTime,{}).then((rv) => {
|
||||
if (rv) {
|
||||
let dateNow = Date.now()
|
||||
let date = new Date(dateNow)
|
||||
let rvDate = new Date(rv);
|
||||
let diffInMilliseconds = Math.abs(date - rvDate); // 获取时间差的毫秒数
|
||||
let days = Math.floor(diffInMilliseconds / (24 * 60 * 60 * 1000)); // 计算天数
|
||||
let hours = Math.floor((diffInMilliseconds % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000)); // 计算小时数
|
||||
let minutes = Math.floor((diffInMilliseconds % (60 * 60 * 1000)) / (60 * 1000)); // 计算分钟数
|
||||
if(days < 5){
|
||||
setTimeout(() => {
|
||||
let text = {
|
||||
str:`${t('HomeView.jsContent4',{days:days,hours:hours})}<a href="https://code-create.com.hk/aida" target="_blank">${t('HomeView.jsContent8')}</a>`,
|
||||
title:`${t('HomeView.jsContent7')}`,
|
||||
}
|
||||
dataDom.affiche.init(text)
|
||||
}, 500);
|
||||
}
|
||||
resolve('')
|
||||
}else{
|
||||
resolve('')
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
getUnreadCount()
|
||||
navRouterList.value = [
|
||||
{
|
||||
routerName:['homePage'],
|
||||
router:'/home/homePage',
|
||||
name:t('Header.HOME')
|
||||
},{
|
||||
routerName:['library'],
|
||||
router:'/home/library',
|
||||
name:t('Header.LIBRARY')
|
||||
},{
|
||||
routerName:['history'],
|
||||
router:'/home/history',
|
||||
name:t('Header.HISTORY')
|
||||
},{
|
||||
routerName:['works'],
|
||||
router:'/home/works',
|
||||
name:t('Header.WORKS')
|
||||
},{
|
||||
routerName:['events','eventsDetail'],
|
||||
router:'/home/events',
|
||||
name:t('Header.EVENTS')
|
||||
},
|
||||
]
|
||||
nextTick(()=>{
|
||||
setPorfolioDom()
|
||||
})
|
||||
})
|
||||
const setOpenType = (type)=>{
|
||||
const setOpenType = (type,list)=>{
|
||||
if(homeMainData.openType == type){
|
||||
homeMainData.openType = ''
|
||||
}else {
|
||||
homeMainData.openType = type
|
||||
if(type == 'history'){
|
||||
|
||||
if(list.length == 0){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
let setPorfolioDom = ()=>{
|
||||
historyData.isShowLoading = false
|
||||
historyData.isNoData = false
|
||||
let imgParent = document.querySelector('.homeMain_max .detailBox .material_content_list_loding .page_loading')
|
||||
new IntersectionObserver(
|
||||
(entries, observer) => {
|
||||
// 如果不是相交,则直接返回
|
||||
if (!entries[0].intersectionRatio) return;
|
||||
getHistory()
|
||||
historyData.page += 1
|
||||
},
|
||||
).observe(imgParent);
|
||||
}
|
||||
const setRouter = (item,childItem)=>{
|
||||
let itemRouter = item.router
|
||||
if(childItem.router)itemRouter = itemRouter + '?' + childItem.router
|
||||
router.push(itemRouter)
|
||||
}
|
||||
const setHistory = (item,childItem)=>{
|
||||
router.push(`/home?history=${childItem.id}`)
|
||||
// router.push(`/home?history=${childItem.id}`)
|
||||
}
|
||||
const getHistory = ()=>{
|
||||
if(historyData.isShowLoading && !historyData.isNoData)return
|
||||
historyData.isShowLoading = true
|
||||
let data = {
|
||||
classificationIdList:[],
|
||||
page:historyData.page,
|
||||
size:historyData.size,
|
||||
collectionName:historyData.searchCollectionName,
|
||||
// startDate:startDate,
|
||||
// endDate:endDate,
|
||||
// intersection:1,
|
||||
}
|
||||
Https.axiosPost( Https.httpUrls.historyProject, data).then(
|
||||
// Https.axiosPost( Https.httpUrls.queryUserGroup, data).then(
|
||||
(rv) => {
|
||||
if(data.page == 1 && rv.content.length == 0){
|
||||
historyData.isNull = true
|
||||
}else{
|
||||
historyData.isNull = false
|
||||
}
|
||||
if (rv.content.length > 0) {
|
||||
historyData.isNull = false
|
||||
homeMainData.openTypeList.history.list.push(...rv.content)
|
||||
} else {
|
||||
historyData.isNoData = true
|
||||
}
|
||||
historyData.isShowLoading = false
|
||||
}
|
||||
).catch(res=>{
|
||||
historyData.isShowMark = false
|
||||
if(data.page == 1){
|
||||
historyData.isNull = true
|
||||
}
|
||||
historyData.isNoData = true
|
||||
});
|
||||
}
|
||||
const editHistory = (item,index,el)=>{
|
||||
if(historyData.selectHistoryIndex == -1){
|
||||
let top = el.target.parentNode.parentNode.getBoundingClientRect().top
|
||||
let parentTop = el.target.parentNode.parentNode.parentNode.offsetTop
|
||||
let parentHeight = el.target.parentNode.parentNode.parentNode.offsetHeight
|
||||
let operation = el.target.parentNode.querySelector('.operation')
|
||||
historyData.selectHistoryIndex = index
|
||||
//判断弹窗是加载按钮上面还是下面
|
||||
if((parentTop+parentHeight)/2 < top){//加在按钮上面
|
||||
operation.classList.add('active')
|
||||
}else{
|
||||
operation.classList.remove('active')
|
||||
}
|
||||
}else{
|
||||
historyData.selectHistoryIndex = -1
|
||||
}
|
||||
let operationCli = ()=>{
|
||||
historyData.selectHistoryIndex = -1
|
||||
document.removeEventListener("click", operationCli);
|
||||
}
|
||||
document.addEventListener("click",operationCli,);
|
||||
}
|
||||
const editName = (item)=>{
|
||||
historyData.selectHistoryIndex = -1
|
||||
homeMainData.openTypeList.history.list.forEach((item)=>{
|
||||
item.editName = false
|
||||
})
|
||||
item.editName = true
|
||||
historyData.historyTextarea = item.name
|
||||
}
|
||||
const deleteItem = ()=>{
|
||||
|
||||
}
|
||||
const accomplishHistory = (item)=>{
|
||||
let data = {
|
||||
libraryIds:[],
|
||||
libraryName:historyData.historyTextarea,//library名字
|
||||
userGroupName:historyData.historyTextarea,//history名字
|
||||
userGroupId :item.id,//history id
|
||||
timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,
|
||||
}
|
||||
Https.axiosPost(Https.httpUrls.saveOrUpdate, data).then(
|
||||
(rv) => {
|
||||
item.name = historyData.historyTextarea
|
||||
item.editName = false
|
||||
historyData.historyTextarea = ''
|
||||
}
|
||||
).catch((res)=>{
|
||||
});
|
||||
|
||||
}
|
||||
const newProject = ()=>{
|
||||
router.push('/home')
|
||||
}
|
||||
return {
|
||||
store,
|
||||
userDetail,
|
||||
t,
|
||||
...toRefs(homeMainData),
|
||||
...toRefs(historyData),
|
||||
locale,
|
||||
isMurmur,
|
||||
credits,
|
||||
activeCredits,
|
||||
getLangIsShowMark,
|
||||
navRouterList,
|
||||
messageNum,
|
||||
messageType,
|
||||
...toRefs(stateList),
|
||||
@@ -413,6 +565,12 @@ export default defineComponent({
|
||||
openUpgradeToPro,
|
||||
setOpenType,
|
||||
setRouter,
|
||||
setHistory,
|
||||
editHistory,
|
||||
editName,
|
||||
deleteItem,
|
||||
accomplishHistory,
|
||||
newProject,
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -440,10 +598,6 @@ export default defineComponent({
|
||||
};
|
||||
},
|
||||
directives:{
|
||||
moveOpenDetal:{
|
||||
mounted (el,binding) {
|
||||
},
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
await new Promise((resolve, reject) => {
|
||||
@@ -473,9 +627,7 @@ export default defineComponent({
|
||||
|
||||
|
||||
let tl1 = gsap.timeline({ paused: true });
|
||||
let heradeRight = document.querySelector('.homeMain_max .homeMain_right_content')
|
||||
let userDetailMax = document.querySelector('.homeMain_max .homeMain_user')
|
||||
let userDetailIcon = document.querySelector('.homeMain_max .homeMain_user_icon')
|
||||
let userDetail = document.querySelector('.homeMain_max .homeMain_user_detail')
|
||||
// let anmiation = TweenMax.to(userDetailMax,1, {'margin-top':'30px',opacity:1})
|
||||
// anmiation.stop()
|
||||
@@ -495,7 +647,7 @@ export default defineComponent({
|
||||
tl1.play()
|
||||
}, 500);
|
||||
})
|
||||
heradeRight.addEventListener('mouseleave',(event)=>{
|
||||
userDetailMax.addEventListener('mouseleave',(event)=>{
|
||||
if(overTime){
|
||||
clearTimeout(overTime)
|
||||
}
|
||||
@@ -574,7 +726,6 @@ export default defineComponent({
|
||||
let data = {
|
||||
userId: this.userDetail.userId,
|
||||
};
|
||||
// console.log(getCookie("token"));
|
||||
if(this.userDetail.systemUser == 3){
|
||||
await Https.axiosGet(Https.httpUrls.trialUserLogout,).then((rv) => {
|
||||
Https.axiosPost(Https.httpUrls.accountLogout, data).then((rv) => {
|
||||
@@ -764,7 +915,11 @@ export default defineComponent({
|
||||
scrollbar-width: none;
|
||||
flex: 1;
|
||||
> .detail{
|
||||
position: relative;
|
||||
height: 100%;
|
||||
> img{
|
||||
width: 100%;
|
||||
}
|
||||
> .detailItem{
|
||||
cursor: pointer;
|
||||
padding: 1.2rem 1.1rem 1.2rem 2.2rem;
|
||||
@@ -774,20 +929,139 @@ export default defineComponent({
|
||||
border-radius: .8rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
> i{
|
||||
margin-right: .8rem;
|
||||
display: flex;
|
||||
}
|
||||
> .text{
|
||||
> span{
|
||||
//只在一行显示
|
||||
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
&.active{
|
||||
background: #f5f5f5;
|
||||
}
|
||||
&:hover{
|
||||
background: #f5f5f5;
|
||||
}
|
||||
&.history{
|
||||
background: #f5f5f5;
|
||||
&:hover{
|
||||
background: #fdfdfd;
|
||||
}
|
||||
&.active{
|
||||
background: #fdfdfd;
|
||||
}
|
||||
> .text{
|
||||
> span{
|
||||
width: 100%;
|
||||
font-weight: 600;
|
||||
line-height: 2rem;
|
||||
margin-bottom: .8rem;
|
||||
font-size: 1.8rem;
|
||||
display: inline-block;
|
||||
}
|
||||
> textarea{
|
||||
resize: none;
|
||||
border: none;
|
||||
background: rgba(0, 0, 0, 0);
|
||||
font-weight: 600;
|
||||
line-height: 2rem;
|
||||
height: 4rem;
|
||||
width: 100%;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
}
|
||||
|
||||
> .type{
|
||||
border: 1px solid #0000000d;
|
||||
padding: .4rem .8rem;
|
||||
border-radius: .8rem;
|
||||
color: #71717a;
|
||||
font-size: 1.4rem;
|
||||
max-width: 70%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
> .btn{
|
||||
border: 1px solid #0000000d;
|
||||
border-radius: .8rem;
|
||||
margin-left: auto;
|
||||
position: relative;
|
||||
> i{
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
> .fi-br-check{
|
||||
border-radius: 50%;
|
||||
background: #38c793;
|
||||
color: #fff;
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
}
|
||||
> .operation{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 3rem;
|
||||
background: #e4e4e7;
|
||||
border: 1px solid #d4d4d8;
|
||||
border-radius: 1rem;
|
||||
z-index: 7;
|
||||
padding: .8rem;
|
||||
box-shadow: 0 0 3.2rem -.8rem #1a1b1e33;
|
||||
position: absolute;
|
||||
&.active{
|
||||
top: auto;
|
||||
bottom: 3rem;
|
||||
}
|
||||
> .item{
|
||||
padding: .8rem;
|
||||
color: #52525b;
|
||||
display: flex;
|
||||
border-radius: .8rem;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
> i{
|
||||
font-size: 1.6rem;
|
||||
display: flex;
|
||||
}
|
||||
> span{
|
||||
margin-left: .5rem;
|
||||
}
|
||||
&:hover{
|
||||
background: #efeff1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
> .detailItem:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
> .material_content_list_loding{
|
||||
text-align: center;
|
||||
height: 50px;
|
||||
.page_loading{
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
img{
|
||||
height: calc(10rem*1.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.active{
|
||||
@@ -884,6 +1158,81 @@ export default defineComponent({
|
||||
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;
|
||||
}
|
||||
@@ -898,12 +1247,33 @@ export default defineComponent({
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
> .user{
|
||||
margin-bottom: 1rem;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding: 2rem 2rem 0 0;
|
||||
> .trialApproval{
|
||||
display: flex;
|
||||
margin-right: 1rem;
|
||||
align-items: center;
|
||||
> .message_iconItem{
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
i{
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
.homeMain_user{
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
margin-left: auto;
|
||||
// margin-left: auto;
|
||||
|
||||
position: relative;
|
||||
.homeMain_user_icon{
|
||||
height: 6rem;
|
||||
@@ -1064,170 +1434,39 @@ export default defineComponent({
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
padding: 0 6rem;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.homeMain_heade {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
// padding: 0 30px;
|
||||
padding: 2rem 6rem;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-bottom: 1px solid #e1e1e1;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
z-index: 9;
|
||||
background-color: #fff;
|
||||
padding-right: 1rem;
|
||||
.homeMain_right{
|
||||
// width: 33%;
|
||||
width: auto;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
margin-left: auto;
|
||||
.message{
|
||||
display: flex;
|
||||
width: 6rem;
|
||||
justify-content: space-between;
|
||||
margin: 0 2rem;
|
||||
// padding: 1rem;
|
||||
i{
|
||||
margin-left: 0rem;
|
||||
border-left: none;
|
||||
padding-left: 0rem;
|
||||
height: auto;
|
||||
font-size: 2rem;
|
||||
width: 3rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
span{
|
||||
overflow: initial;
|
||||
align-items: center;
|
||||
width: auto;
|
||||
margin: auto;
|
||||
height: auto;
|
||||
}
|
||||
.message_iconItem{
|
||||
position: relative;
|
||||
display: flex;
|
||||
.message_iconItem_value{
|
||||
padding: 1rem;
|
||||
left: 50%;
|
||||
transform: translateX(-96%);
|
||||
top: 4rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.homeMain_logo {
|
||||
width: 14.4rem;
|
||||
height: 3.2rem;
|
||||
margin: 2.1rem 2.8rem 0 ;
|
||||
// position: absolute;
|
||||
line-height: 2rem;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.homeMain_right_content {
|
||||
// position: absolute;
|
||||
top: 0;
|
||||
// right: 3.2rem;
|
||||
left: 0;
|
||||
display: flex;
|
||||
// width: 36%;
|
||||
margin-right: 7rem;
|
||||
width: auto;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
.homeMain_icon {
|
||||
font-size: 3.6rem;
|
||||
position: relative;
|
||||
top: 0.3rem;
|
||||
}
|
||||
|
||||
.username {
|
||||
font-size: 1.8rem;
|
||||
color: #1a1a1a;
|
||||
margin: 0 0.8rem;
|
||||
font-weight: 900;
|
||||
span{
|
||||
margin: .7rem;
|
||||
}
|
||||
}
|
||||
.credits{
|
||||
font-size: 1.8rem;
|
||||
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{
|
||||
> .userSystem{
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
border-left: .1rem solid ;
|
||||
padding-left: 1.3rem;
|
||||
margin-left: 1.5rem;
|
||||
font-size: 1.8rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fi-br-refresh{
|
||||
margin-left: 0;
|
||||
border-left: none;
|
||||
padding-left: 0;
|
||||
&.active{
|
||||
transition: all .3s;
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
z-index:2;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
font-size: 4rem;
|
||||
}
|
||||
}
|
||||
.trialApproval{
|
||||
margin-left: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
.select_block {
|
||||
z-index: 1050;
|
||||
position: absolute;
|
||||
left: 15.5rem;
|
||||
top: 6rem;
|
||||
right: 0rem;
|
||||
top: 4rem;
|
||||
width: 13.5rem;
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 0.4rem 0.4rem 0px rgba(0, 0, 0, 0.1);
|
||||
overflow: hidden;
|
||||
border: 1px solid #000000;
|
||||
height: auto;
|
||||
padding: 2rem;
|
||||
border-radius: 2rem;
|
||||
// &.select_list{
|
||||
// top: 56%;
|
||||
// left: 100%;
|
||||
|
||||
43
src/views/HomeView/Tools.vue
Normal file
43
src/views/HomeView/Tools.vue
Normal file
@@ -0,0 +1,43 @@
|
||||
<template>
|
||||
<div class="toolsPage">
|
||||
<tools></tools>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { defineComponent,computed,ref,provide,nextTick,createVNode,toRefs, reactive} from 'vue'
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
import { Https } from "@/tool/https";
|
||||
import { useStore } from "vuex";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import tools from '@/component/toolsPage/index.vue'
|
||||
export default defineComponent({
|
||||
components:{
|
||||
tools,
|
||||
},
|
||||
props:{
|
||||
},
|
||||
emits:[],
|
||||
setup(props,{emit}) {
|
||||
const store = useStore();
|
||||
const data = reactive({
|
||||
})
|
||||
const dataDom = reactive({
|
||||
})
|
||||
return{
|
||||
...toRefs(dataDom),
|
||||
...toRefs(data),
|
||||
}
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.toolsPage{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
@@ -9,7 +9,7 @@
|
||||
<div v-show="!isScroll" class="modal_title_text_assistant gallery_btn white" :class="{active:'all' == worksSelect}" @click="setWorksSelect({value:'all'})">All</div>
|
||||
<div v-show="!isScroll" class="modal_title_text_assistant gallery_btn white" :class="{active:'NewYear_2025' == worksSelect}" @click="setWorksSelect({value:'NewYear_2025'})">NewYear_2025</div>
|
||||
</div> -->
|
||||
<div class="page_content" >
|
||||
<div class="page_content" ref="autoscrollDom">
|
||||
<Falls ref="fall" @loadend="isShowMark = false" @setPortfolioLike="setPortfolioLike" :isScroll="isScroll" @getImgScale="getImgScale"></Falls>
|
||||
<div class="page_loading_box" v-show="!isNoData">
|
||||
<span class="page_loading" v-show="!isShowMark"></span>
|
||||
@@ -28,7 +28,7 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,watch,computed} from 'vue'
|
||||
import { defineComponent,h ,toRefs,ref,reactive,onMounted,nextTick,watch,onBeforeUnmount} from 'vue'
|
||||
// import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||
import { Https } from "@/tool/https";
|
||||
import newScaleImage from "@/component/WorksPage/newScaleImage.vue";
|
||||
@@ -45,6 +45,10 @@ export default defineComponent({
|
||||
generalMenu,
|
||||
},
|
||||
props:{
|
||||
autoscroll:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
},
|
||||
isScroll:{
|
||||
type:Boolean,
|
||||
default:true,
|
||||
@@ -101,6 +105,8 @@ export default defineComponent({
|
||||
},
|
||||
isShowMark:false,
|
||||
isNoData:false,//如果数据为空就不加载
|
||||
autoscrollDom:null as any,
|
||||
autoscrollTime:null as any,
|
||||
})
|
||||
let menuList:any = ref([
|
||||
{
|
||||
@@ -228,7 +234,6 @@ export default defineComponent({
|
||||
new IntersectionObserver(
|
||||
(entries, observer) => {
|
||||
// 如果不是相交,则直接返回
|
||||
// console.log(entries[0]);
|
||||
if (!entries[0].intersectionRatio) return;
|
||||
filter.getListDate.page += 1
|
||||
getPorfolio()
|
||||
@@ -251,6 +256,50 @@ export default defineComponent({
|
||||
nextTick(()=>{
|
||||
setPorfolioDom()
|
||||
})
|
||||
//对元素设置自动滚动,每次滚动10px
|
||||
if (prop.autoscroll) {
|
||||
let isAdd = true
|
||||
filter.autoscrollTime = setInterval(() => {
|
||||
// console.log(filter.autoscrollDom.scrollHeight,filter.autoscrollDom.scrollTop+ filter.autoscrollDom.clientHeight)
|
||||
if(filter.autoscrollDom.scrollHeight > filter.autoscrollDom.scrollTop+ filter.autoscrollDom.clientHeight-3 && filter.autoscrollDom.scrollHeight < filter.autoscrollDom.scrollTop+ filter.autoscrollDom.clientHeight+3){
|
||||
isAdd = false
|
||||
}
|
||||
if(filter.autoscrollDom.scrollTop < 3){
|
||||
isAdd = true
|
||||
}
|
||||
if(isAdd){
|
||||
filter.autoscrollDom.scrollTop += 2;
|
||||
}else{
|
||||
filter.autoscrollDom.scrollTop -= 2;
|
||||
}
|
||||
}, 10);
|
||||
}
|
||||
|
||||
|
||||
// const start = filter.autoscrollDom.scrollTop;
|
||||
// const maxScroll = filter.autoscrollDom.scrollHeight - filter.autoscrollDom.clientHeight;
|
||||
// const duration = 3000; // 完整滚动时长(ms)
|
||||
// let startTime:any = null;
|
||||
|
||||
// function animate(currentTime:any) {
|
||||
// if (!startTime) startTime = currentTime;
|
||||
// const elapsed = currentTime - startTime;
|
||||
// const progress = Math.min(elapsed / duration, 1); // 0~1
|
||||
|
||||
// // 缓动函数(easeInOutQuad)
|
||||
// const easeProgress = progress < 0.5
|
||||
// ? 2 * progress * progress
|
||||
// : 1 - Math.pow(-2 * progress + 2, 2) / 2;
|
||||
|
||||
// filter.autoscrollDom.scrollTop = start + (maxScroll - start) * easeProgress;
|
||||
|
||||
// if (progress < 1) {
|
||||
// filter.autoscrollTime = requestAnimationFrame(animate);
|
||||
// }
|
||||
// }
|
||||
|
||||
// filter.autoscrollTime = requestAnimationFrame(animate);
|
||||
|
||||
let data = {
|
||||
id:router.currentRoute.value.query?.workId
|
||||
}
|
||||
@@ -258,6 +307,9 @@ export default defineComponent({
|
||||
getImgScale(data)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
clearInterval(filter.autoscrollTime); // 清除定时器
|
||||
})
|
||||
return {
|
||||
...toRefs(filter),
|
||||
menuList,
|
||||
@@ -298,6 +350,7 @@ export default defineComponent({
|
||||
padding: 0;
|
||||
border-radius: 0;
|
||||
.page_content{
|
||||
scrollbar-width: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,24 @@
|
||||
></template>
|
||||
</a-select>
|
||||
</div>
|
||||
<div class="generalModel_state_item smail" v-if="selectCode == 'Models'">
|
||||
<a-select
|
||||
ref="select"
|
||||
v-model:value="ageGroup"
|
||||
:options="ageGroupList"
|
||||
@change="getLibraryList"
|
||||
style="width:20rem"
|
||||
size="large"
|
||||
:fieldNames="{ label: 'name', value: 'value' }"
|
||||
>
|
||||
<template #suffixIcon
|
||||
><span
|
||||
class="icon iconfont icon-xiala"
|
||||
style="color: #343579"
|
||||
></span
|
||||
></template>
|
||||
</a-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -231,7 +249,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- 蒙层 start-->
|
||||
<div class="mark_loading" v-show="isShowMark || getLangIsShowMark">
|
||||
<div class="mark_loading" v-show="isShowMark">
|
||||
<a-spin size="large" />
|
||||
</div>
|
||||
<!-- 蒙层 end-->
|
||||
@@ -463,7 +481,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>{{ ageGroup }}
|
||||
<mannequinEdit ref="ModelPlacement" :ageGroup="ageGroup" :isPop="true" @submit="getLibraryList"></mannequinEdit>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -471,8 +490,7 @@
|
||||
</div>
|
||||
<searchLabel ref="searchLabel"></searchLabel>
|
||||
<scaleImage ref="scaleImage" :isCanvas="selectCode == 'Sketchboard'" :sex="workspace.sex"></scaleImage>
|
||||
<ModelPlacement ref="ModelPlacement" @submitModelPlacement="getLibraryList"></ModelPlacement>
|
||||
<ModelPlacementMobile ref="ModelPlacementMobile" @submitModelPlacement="getLibraryList"></ModelPlacementMobile>
|
||||
<!-- <ModelPlacement ref="ModelPlacement" @submitModelPlacement="getLibraryList"></ModelPlacement> -->
|
||||
<setLabel ref="setLabel"></setLabel>
|
||||
<createSlogan ref="createSlogan" @setSloganData="setSloganData"></createSlogan>
|
||||
<UpgradePlan ref="UpgradePlan"></UpgradePlan>
|
||||
@@ -485,10 +503,8 @@
|
||||
<script lang="ts">
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { defineComponent,h ,ref,createVNode,nextTick,watch,provide,computed,reactive,toRefs} from 'vue'
|
||||
import ModelPlacement from '@/component/LibraryPage/ModelPlacement.vue';
|
||||
// import ModelPlacement from '@/component/LibraryPage/ModelPlacementUpdata.vue';
|
||||
import setLabel from '@/component/LibraryPage/setLabel.vue';
|
||||
import ModelPlacementMobile from '@/component/LibraryPage/ModelPlacementMobile.vue';
|
||||
import brandDetail from '@/component/LibraryPage/brandDetail.vue';
|
||||
import createBrand from '@/component/LibraryPage/createBrand.vue';
|
||||
import searchLabel from '@/component/LibraryPage/searchLabel.vue';
|
||||
@@ -508,11 +524,10 @@ import { remove } from "jszip";
|
||||
import createSlogan from "@/component/HomePage/createSlogan.vue";
|
||||
import generalMenu from "@/component/HomePage/generalMenu.vue";
|
||||
import UpgradePlan from "@/component/HomePage/UpgradePlan.vue";
|
||||
import mannequinEdit from "@/component/HomePage/index/model/mannequin/edit.vue";
|
||||
export default defineComponent({
|
||||
components: {
|
||||
ModelPlacement,
|
||||
setLabel,
|
||||
ModelPlacementMobile,
|
||||
brandDetail,
|
||||
createBrand,
|
||||
searchLabel,
|
||||
@@ -523,12 +538,9 @@ export default defineComponent({
|
||||
createSlogan,
|
||||
generalMenu,
|
||||
UpgradePlan,
|
||||
mannequinEdit,
|
||||
},
|
||||
props:{
|
||||
getLangIsShowMark:{
|
||||
type:Boolean,
|
||||
default:true,
|
||||
}
|
||||
},
|
||||
|
||||
setup(props) {
|
||||
@@ -548,7 +560,7 @@ export default defineComponent({
|
||||
]
|
||||
})
|
||||
let selectImgList:any = ref([])
|
||||
let selectCode:any = ref('Moodboard')
|
||||
let selectCode:any = ref('')
|
||||
let searchPictureName = ref('')
|
||||
let searchPictureSeed:any = ref(0);
|
||||
let designType:any = ref({
|
||||
@@ -574,6 +586,8 @@ export default defineComponent({
|
||||
const pageData = reactive({
|
||||
isBrandDetail:false,
|
||||
brandDNAList:[] as any,
|
||||
ageGroup:'',
|
||||
ageGroupList:computed(()=>store.state.UserHabit.ageGroup),
|
||||
})
|
||||
let designTypeList:any = ref({
|
||||
Sketchboard:positionType,
|
||||
@@ -733,6 +747,7 @@ export default defineComponent({
|
||||
level1Type:selectCode.value,
|
||||
level2Type:design,
|
||||
page:1,
|
||||
ageGroup:pageData.ageGroup,
|
||||
modelSex:sex.value?sex.value:'',
|
||||
pictureName:searchPictureName.value,
|
||||
size:pageSize.value,
|
||||
@@ -797,17 +812,6 @@ export default defineComponent({
|
||||
dataDom.createBrand.openAddBrand()
|
||||
}
|
||||
|
||||
watch(
|
||||
() => props.getLangIsShowMark, // 这里使用了一个 getter 函数
|
||||
(newValue, oldValue) => {
|
||||
if(!newValue){
|
||||
getLibraryList('')
|
||||
getClass()
|
||||
getSex()
|
||||
}
|
||||
},
|
||||
{immediate: true,}
|
||||
)
|
||||
return {
|
||||
...toRefs(dataDom),
|
||||
...toRefs(pageData),
|
||||
@@ -906,9 +910,9 @@ export default defineComponent({
|
||||
handler(query, oldQuery) {
|
||||
if(oldQuery && query?.library == oldQuery?.library)return
|
||||
let str = query.library
|
||||
if(!this.ageGroup)this.ageGroup = this.ageGroupList[0].value
|
||||
if(!str)str = 'Moodboard'
|
||||
nextTick(()=>{
|
||||
console.log()
|
||||
this.selectMenuItem({code:str})
|
||||
// setWorksSelect(str)
|
||||
})
|
||||
@@ -922,6 +926,8 @@ export default defineComponent({
|
||||
this.isTest =JSON.parse(isTest)
|
||||
this.uploadUrl = getUploadUrl()
|
||||
this.token = getCookie("token") || "";
|
||||
this.getClass()
|
||||
this.getSex()
|
||||
},
|
||||
|
||||
methods:{
|
||||
@@ -963,13 +969,13 @@ export default defineComponent({
|
||||
}
|
||||
},
|
||||
selectMenuItem(menu:any){
|
||||
|
||||
if(menu.code != this.upload.level1Type){
|
||||
this.selectCode = menu.code
|
||||
this.currentPage = 1
|
||||
this.total = 0
|
||||
if(menu.code == 'MyBrand'){
|
||||
this.getBrandDNAList()
|
||||
this.upload.level1Type = menu.code
|
||||
return
|
||||
}
|
||||
this.searchPictureName = ''
|
||||
@@ -1390,14 +1396,15 @@ export default defineComponent({
|
||||
url:data.url,
|
||||
name:name,
|
||||
}
|
||||
this.placementClick(newData)
|
||||
this.placementClick(data)
|
||||
},
|
||||
|
||||
//给模特打点编辑
|
||||
placementClick(data:any){
|
||||
// let placementModal:any = isMoible() ? this.$refs.ModelPlacementMobile : this.$refs.ModelPlacement
|
||||
let placementModal:any = this.$refs.ModelPlacement
|
||||
placementModal.showPlacementModal(data,this.sex)
|
||||
placementModal.mannEditMask = false
|
||||
placementModal.showPlacementModal(data,this.sex,'Library')
|
||||
},
|
||||
setTextareaShow(){
|
||||
this.isTextarea = !this.isTextarea
|
||||
@@ -1958,6 +1965,7 @@ export default defineComponent({
|
||||
width: 100%;
|
||||
// width: calc(100% - 23.5rem);
|
||||
height: 100%;
|
||||
position: relative;
|
||||
.header_operate_item{
|
||||
margin-right: 5rem;
|
||||
color: #C2C2C2;
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div class="loginPage">
|
||||
<div class="left">
|
||||
<Works :isScroll="!isMask" :position="'login'"></Works>
|
||||
<!-- :isScroll="!isMask" -->
|
||||
<Works :autoscroll="true" :position="'login'"></Works>
|
||||
<div class="mask" v-show="isMask" @click="()=>isMask = !isMask">
|
||||
<div class="content">
|
||||
<div class="userNum">
|
||||
|
||||
Reference in New Issue
Block a user