no message

This commit is contained in:
A1300399510
2024-01-09 15:11:03 +08:00
parent 9d07e02de6
commit 52f8709125
54 changed files with 499 additions and 469 deletions

View File

@@ -71,7 +71,7 @@
<div class="info-value flex1 ellipsis">{{ item["project"] }}</div>
</div>
<div class="info-item flexacenter" v-if="item['interviewtime']">
<div class="info-name">时间</div>
<div class="info-name">面试</div>
<div class="info-value flex1 ellipsis">{{ item["interviewtime"] }}</div>
</div>
</div>
@@ -582,7 +582,7 @@ const getDetails = () => {
ismyself.value = data.ismyself
qrcode.value = data["share"]["qrcode"]
console.log(iscollection.value);
// console.log(iscollection.value);
if (relatedlist.value.length == 0) getRelatedlistHttp()
else CalculateSelectedList()

View File

@@ -18,6 +18,10 @@
</template>
</div>
<div class="in-end" v-if="page == 0 && list.length > 0">- 到底了 -</div>
<div class="returnTop right-fixed" style="bottom: 18px;">
<img src="@/assets/img/returnTop-icon.png" style="width: 24px; height: 24px;" />
</div>
</template>
<script setup>
@@ -210,4 +214,22 @@ try {
text-align: center;
margin-bottom: 88px;
}
.returnTop {
}
.right-fixed {
position: fixed;
right: calc((100vw - 1200px) / 2 - 75px);
width: 50px;
height: 50px;
background-color: #323232;
bottom: 85px;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
z-index: 10;
cursor: pointer;
}
</style>

View File

@@ -3,7 +3,7 @@
<Title>寄托天下 - 面经发布</Title>
<Meta name="keyword" content="留学资讯,留学交流论坛,留学面经,面试经验,寄托天下" />
</Head>
<div class="contentcontent">
<div class="content-box">
<div class="flexacenter save-box save-left" @click="submit(0)">
<img class="save-icon" src="@/assets/img/arrow-gray.png" />
保存并退出
@@ -12,88 +12,90 @@
放弃保存
<img class="save-icon" src="@/assets/img/cross-icon.png" />
</div>
<div class="header flexacenter">发布面经</div>
<div class="box flex1 flexflex">
<div class="box-left">
<div class="area-box">
<div class="item">
<div class="titletitle flexacenter">
申请信息
<div class="asterisk">*</div>
</div>
<div class="info-box">
<div class="info-item flexacenter">
<div class="info-name">院校</div>
<div class="flex1">
<el-autocomplete debounce v-model="info.school" :fetch-suggestions="querySchoolSearch" clearable class="inline-input w-50" placeholder="输入关键词,选择院校" @select="handleSchoolSelect" :trigger-on-focus="false">
<template #suffix>
<img class="" src="@/assets/img/arrow-black.svg" />
</template>
</el-autocomplete>
<div class="contentcontent">
<div class="header flexacenter">发布面经</div>
<div class="box flex1 flexflex">
<div class="box-left">
<div class="area-box">
<div class="item">
<div class="titletitle flexacenter">
申请信息
<div class="asterisk">*</div>
</div>
<div class="info-box">
<div class="info-item flexacenter">
<div class="info-name">院校</div>
<div class="flex1">
<el-autocomplete v-model="info.school" :fetch-suggestions="querySchoolSearch" clearable class="inline-input w-50" placeholder="输入关键词,选择院校" @select="handleSchoolSelect" :trigger-on-focus="false">
<!-- <template #suffix>
<img class="arrows-icon" :class="{ 'spin': isSchoolSpin }" src="@/assets/img/arrow-black.svg" />
</template> -->
</el-autocomplete>
</div>
</div>
<div class="info-item flexacenter">
<div class="info-name">专业</div>
<div class="flex1">
<el-autocomplete v-model="info.profession" :fetch-suggestions="queryMajorSearch" clearable class="inline-input w-50" placeholder="输入关键词,选择专业" @select="handleMajorSelect" :trigger-on-focus="false">
<!-- <template #suffix>
<img class="arrows-icon" :class="{ 'spin': isMajorSpin }" src="@/assets/img/arrow-black.svg" />
</template> -->
</el-autocomplete>
</div>
</div>
<div class="info-item flexacenter">
<div class="info-name">项目</div>
<el-input class="flex1 input" placeholder="请输入" v-model="info.project"></el-input>
</div>
</div>
<div class="info-item flexacenter">
<div class="info-name">专业</div>
<div class="flex1">
<el-autocomplete v-model="info.profession" :fetch-suggestions="queryMajorSearch" clearable class="inline-input w-50" placeholder="输入关键词,选择专业" @select="handleMajorSelect" :trigger-on-focus="false">
<template #suffix>
<img class="" src="@/assets/img/arrow-black.svg" />
</template>
</el-autocomplete>
</div>
</div>
<div class="item">
<div class="titletitle flexacenter">
面试时间
<div class="asterisk">*</div>
</div>
<div class="info-item flexacenter">
<div class="info-name">项目</div>
<el-input class="flex1 input" placeholder="请输入" v-model="info.project"></el-input>
<div class="time-box item-input-box flexacenter">
<el-config-provider :locale="zhCn">
<el-date-picker v-model="info.interviewtime" type="date" placeholder="请选择" size="large" class="flex1 flexacenter" :clear-icon="{}" value-format="YYYY-MM-DD" :disabled-date="setDisabled" />
</el-config-provider>
<img class="calendar-icon" src="@/assets/img/calendar-icon.svg" />
</div>
</div>
</div>
<div class="item">
<div class="titletitle flexacenter">
面试时间
<div class="asterisk">*</div>
</div>
<div class="item">
<div class="titletitle flexacenter">
面经帖标题
<div class="asterisk">*</div>
</div>
<div class="time-box item-input-box flexacenter">
<el-config-provider :locale="zhCn">
<el-date-picker v-model="info.interviewtime" type="date" placeholder="请选择" size="large" class="flex1 flexacenter" :clear-icon="{}" value-format="YYYY-MM-DD" :disabled-date="setDisabled" />
</el-config-provider>
<img class="calendar-icon" src="@/assets/img/calendar-icon.svg" />
<div class="title-box item-input-box flexacenter"><el-input v-model="info.subject" placeholder="给你的面经帖起一个吸引的标题吧"></el-input></div>
</div>
</div>
<div class="item">
<div class="titletitle flexacenter">
面经帖标题
<div class="asterisk">*</div>
</div>
<div class="title-box item-input-box flexacenter"><el-input v-model="info.subject" placeholder="给你的面经帖起一个吸引的标题吧"></el-input></div>
<div class="visible-box flexacenter" @click="cutVisible()">
<img class="visible-icon" v-if="info.isvisiblereply == 0" src="@/assets/img/frame-no.svg" />
<img class="visible-icon" v-else src="@/assets/img/frame-pitch.svg" />
回复/点赞可见
</div>
</div>
<div class="visible-box flexacenter" @click="cutVisible()">
<img class="visible-icon" v-if="info.isvisiblereply == 0" src="@/assets/img/frame-no.svg" />
<img class="visible-icon" v-else src="@/assets/img/frame-pitch.svg" />
回复/点赞可见
</div>
</div>
<div class="box-right">
<div class="area-box">
<div class="item">
<div class="titletitle flexacenter">
面试构成及过程
<div class="asterisk">*</div>
</div>
<div class="course-box">
<el-input v-model="info.message" type="textarea" autosize placeholder="例如项目介绍、面试时长、面试官、问题QA、需要注意的地方"></el-input>
<div class="box-right">
<div class="area-box">
<div class="item">
<div class="titletitle flexacenter">
面试构成及过程
<div class="asterisk">*</div>
</div>
<div class="course-box">
<el-input v-model="info.message" type="textarea" autosize placeholder="例如项目介绍、面试时长、面试官、问题QA、需要注意的地方"></el-input>
</div>
</div>
</div>
</div>
</div>
<div class="hint-box flexcenter">请确保以上内容已正确填写发布后将不能修改</div>
</div>
<div class="hint-box flexcenter">请确保以上内容已正确填写发布后将不能修改</div>
</div>
<div class="floor-box">
@@ -133,6 +135,12 @@ onBeforeMount(() => {
// clearTop()
})
// let isSchoolSpin = ref(false) // 院校左边箭头旋转
// let isMajorSpin = ref(false) // 专业左边箭头旋转
// const SchoolSearchBlur = () => (isSchoolSpin.value = false)
// const MajorSearchBlur = () => (isMajorSpin.value = false)
// 清除底部的次数
let clearBottomCount = 0
@@ -221,13 +229,16 @@ const querySchoolSearch = (queryString, cb) => {
if (element["checkname"] == queryString) isRepetition = true
})
if (!isRepetition) data.push({ value: queryString })
// isSchoolSpin.value = true
cb(data)
})
}
// 选择院校
const handleSchoolSelect = item => (info.value["schoolid"] = item["id"] || 0)
const handleSchoolSelect = item => {
info.value["schoolid"] = item["id"] || 0
// isSchoolSpin.value = false
}
// 关键字搜索专业
const queryMajorSearch = (queryString, cb) => {
@@ -243,12 +254,16 @@ const queryMajorSearch = (queryString, cb) => {
})
if (!isRepetition) data.push({ value: queryString })
// isMajorSpin.value = true
cb(data)
})
}
// 选择专业
const handleMajorSelect = item => (info.value["profession_id"] = item["id"] || 0)
const handleMajorSelect = item => {
info.value["profession_id"] = item["id"] || 0
// isMajorSpin.value = false
}
// 切换匿名状态
const cutAnonymous = () => {
@@ -286,8 +301,13 @@ const abandonSaving = () => {
</script>
<style scoped lang="less">
.content-box {
padding: 0 10px;
}
.contentcontent {
width: 1200px;
// width: 1200px;
max-width: 1200px;
min-width: 900px;
// height: 882px;
// min-height: 718px;
min-height: calc(100vh - 120px);
@@ -297,6 +317,7 @@ const abandonSaving = () => {
display: flex;
flex-direction: column;
position: relative;
// margin: 0 10px;
.header {
font-weight: 650;
@@ -315,6 +336,7 @@ const abandonSaving = () => {
}
.box-left {
width: 44.333%;
border-right: 16px solid #f6f6f6;
.area-box {
padding: 30px;
@@ -328,7 +350,7 @@ const abandonSaving = () => {
}
.info-box {
width: 452px;
// width: 452px;
height: 158px;
background-color: rgba(255, 255, 255, 0);
border: 1px solid rgba(215, 215, 215, 1);
@@ -373,7 +395,7 @@ const abandonSaving = () => {
}
.item-input-box {
width: 452px;
// width: 452px;
height: 46px;
border: 1px solid rgba(215, 215, 215, 1);
border-radius: 5px;
@@ -417,12 +439,13 @@ const abandonSaving = () => {
}
.box-right {
width: 54.333%;
.area-box {
padding: 30px;
padding-left: 50px;
.course-box {
width: 572px;
// width: 572px;
min-height: 480px;
background-color: rgba(255, 255, 255, 0);
border: 1px solid rgba(215, 215, 215, 1);
@@ -493,12 +516,21 @@ const abandonSaving = () => {
}
}
@media (max-width: 1300px) {
@media (max-width: 1400px) {
.save-box.save-left {
left: 0 !important;
left: 30px !important;
}
.save-box.save-right {
right: 0 !important;
right: 30px !important;
}
}
@media (max-width: 1300px) {
.save-box.save-left {
left: 10px !important;
}
.save-box.save-right {
right: 10px !important;
}
}
@@ -506,15 +538,18 @@ const abandonSaving = () => {
font-size: 14px;
color: #666666;
position: absolute;
top: 0;
// position: fixed;
top: 30px;
cursor: pointer;
transition: all 0.3s;
z-index: 1;
&.save-left {
// left: 0;
left: calc((1200px - 100vw) / 2 + 50px);
left: 50px;
// left: calc((1200px - 100vw) / 2 + 25px);
}
&.save-right {
// right: 0;
right: calc((1200px - 100vw) / 2 + 50px);
right: 50px;
// right: calc((1200px - 100vw) / 2 + 25px);
.save-icon {
width: 16px;
@@ -529,4 +564,12 @@ const abandonSaving = () => {
transform: rotate(180deg);
}
}
// .arrows-icon {
// transition: all 0.3s;
// &.spin {
// transform: rotate(180deg);
// }
// }
</style>