no message
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div class="flexacenter save-box save-left">
|
||||
<div class="flexacenter save-box save-left" @click="submit(0)">
|
||||
<img class="save-icon" src="@/assets/img/arrow-gray.png" />
|
||||
保存并退出
|
||||
</div>
|
||||
<div class="flexacenter save-box save-right">
|
||||
<div class="flexacenter save-box save-right" @click="abandonSaving">
|
||||
放弃保存
|
||||
<img class="save-icon" src="@/assets/img/cross-icon.png" />
|
||||
</div>
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="info-item flexacenter">
|
||||
<div class="info-name">院校</div>
|
||||
<div class="flex1">
|
||||
<el-autocomplete v-model="state1" :fetch-suggestions="querySearch" clearable class="inline-input w-50" placeholder="输入关键词,选择院校" @select="handleSelect">
|
||||
<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>
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="info-item flexacenter">
|
||||
<div class="info-name">专业</div>
|
||||
<div class="flex1">
|
||||
<el-autocomplete v-model="state1" :fetch-suggestions="querySearch" clearable class="inline-input w-50" placeholder="输入关键词,选择专业" @select="handleSelect">
|
||||
<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>
|
||||
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
<div class="info-item flexacenter">
|
||||
<div class="info-name">项目</div>
|
||||
<el-input class="flex1 input" placeholder="请输入"></el-input>
|
||||
<el-input class="flex1 input" placeholder="请输入" v-model="info.project"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
<div class="time-box item-input-box flexacenter">
|
||||
<el-config-provider :locale="zhCn">
|
||||
<el-date-picker v-model="value1" type="date" placeholder="请选择" size="large" class="flex1 flexacenter" :clear-icon="{}" />
|
||||
<el-date-picker v-model="info.interviewtime" type="date" placeholder="请选择" size="large" class="flex1 flexacenter" :clear-icon="{}" value-format="YYYY-MM-DD" />
|
||||
</el-config-provider>
|
||||
<img class="calendar-icon" src="@/assets/img/calendar-icon.svg" />
|
||||
</div>
|
||||
@@ -65,11 +65,12 @@
|
||||
<div class="asterisk">*</div>
|
||||
</div>
|
||||
|
||||
<div class="title-box item-input-box flexacenter"><el-input v-model="title" placeholder="给你的面经帖起一个吸引的标题吧"></el-input></div>
|
||||
<div class="title-box item-input-box flexacenter"><el-input v-model="info.subject" placeholder="给你的面经帖起一个吸引的标题吧"></el-input></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="visible-box flexacenter">
|
||||
<img class="visible-icon" src="@/assets/img/frame-no.svg" />
|
||||
<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>
|
||||
@@ -80,9 +81,8 @@
|
||||
面试构成及过程
|
||||
<div class="asterisk">*</div>
|
||||
</div>
|
||||
|
||||
<div class="course-box">
|
||||
<el-input v-model="course" type="textarea" placeholder="例如:项目介绍、面试时长、面试官、问题QA、需要注意的地方"></el-input>
|
||||
<el-input v-model="info.message" type="textarea" autosize placeholder="例如:项目介绍、面试时长、面试官、问题QA、需要注意的地方"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -94,80 +94,159 @@
|
||||
|
||||
<div class="floor-box">
|
||||
<div class="box flexacenter">
|
||||
<div class="anonymous-box flexacenter">
|
||||
<img class="anonymous-icon" src="@/assets/img/frame-pitch.svg" />
|
||||
<!-- <img class="anonymous-icon" src="@/assets/img/frame-no.svg" /> -->
|
||||
<div class="anonymous-box flexacenter" @click="cutAnonymous()">
|
||||
<img class="anonymous-icon" v-if="info.anonymous == 0" src="@/assets/img/frame-no.svg" />
|
||||
<img class="anonymous-icon" v-else src="@/assets/img/frame-pitch.svg" />
|
||||
匿名发表
|
||||
<div class="text">(发布后可修改)</div>
|
||||
</div>
|
||||
<div class="issue-btn flexcenter">发布</div>
|
||||
<div class="issue-btn flexcenter" @click="submit()">发布</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus"
|
||||
import zhCn from "element-plus/dist/locale/zh-cn.mjs"
|
||||
const router = useRouter()
|
||||
|
||||
const state1 = ref("")
|
||||
|
||||
const restaurants = ref([])
|
||||
let aaa = ref(1703001600000)
|
||||
|
||||
onMounted(() => {
|
||||
restaurants.value = loadAll()
|
||||
getInit()
|
||||
})
|
||||
|
||||
let token = ""
|
||||
const getInit = () => {
|
||||
publishInitHttp().then(res => {
|
||||
console.log("res", res)
|
||||
if (res.code != 200) {
|
||||
ElMessage.error(res.message)
|
||||
return
|
||||
}
|
||||
const data = res.data
|
||||
token = data["token"]
|
||||
let interviewtime = data["info"]["interviewtime"] || 0
|
||||
if (interviewtime) data["info"]["interviewtime"] = handleDate(interviewtime)
|
||||
|
||||
console.log(interviewtime, "interviewtime")
|
||||
info.value = { ...data["info"] }
|
||||
|
||||
console.log(token)
|
||||
})
|
||||
}
|
||||
|
||||
const querySearch = (queryString, cb) => {
|
||||
// https://offer.gter.net/miniprogram/InterviewExperience/schoolSearch
|
||||
// 处理初始化 面试时间的 时间戳格式
|
||||
const handleDate = timestamp => {
|
||||
// 使用Date对象将时间戳转换为日期对象
|
||||
var date = new Date(timestamp * 1000)
|
||||
|
||||
// 获取年份、月份和日期
|
||||
var year = date.getFullYear()
|
||||
var month = ("0" + (date.getMonth() + 1)).slice(-2) // 月份从0开始,需要加1并补0
|
||||
var day = ("0" + date.getDate()).slice(-2) // 获取日期并补0
|
||||
|
||||
// 拼接为yyyy-mm-dd格式的日期字符串
|
||||
var formattedDate = year + "-" + month + "-" + day
|
||||
|
||||
return formattedDate
|
||||
}
|
||||
|
||||
let info = ref({
|
||||
school: "", // 学校
|
||||
profession: "", // 专业
|
||||
project: "", // 项目时间
|
||||
interviewtime: "", // 面试时间
|
||||
subject: "", //标题
|
||||
isvisiblereply: 0, // 回复点赞可见
|
||||
message: "", // 过程
|
||||
anonymous: 0, // 匿名状态
|
||||
})
|
||||
|
||||
// 关键字搜索学校
|
||||
const querySchoolSearch = (queryString, cb) => {
|
||||
publishSchoolSearchHttp({ keyword: queryString }).then(res => {
|
||||
// console.log("res", res)
|
||||
if (res.code != 200) return
|
||||
let data = res.data
|
||||
console.log(data, "data")
|
||||
let data = res.data || []
|
||||
|
||||
let isRepetition = false
|
||||
|
||||
data.forEach(element => {
|
||||
console.log(element, "element")
|
||||
element['value']
|
||||
element["value"] = element["name"]
|
||||
if (element["name"] == queryString) isRepetition = true
|
||||
})
|
||||
if (!isRepetition) {
|
||||
data.unshift({
|
||||
value: queryString,
|
||||
})
|
||||
}
|
||||
cb(data)
|
||||
})
|
||||
|
||||
return
|
||||
|
||||
const results = queryString ? restaurants.value.filter(createFilter(queryString)) : restaurants.value
|
||||
// call callback function to return suggestions
|
||||
cb(results)
|
||||
}
|
||||
|
||||
const createFilter = queryString => {
|
||||
return restaurant => {
|
||||
return restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0
|
||||
}
|
||||
}
|
||||
const loadAll = () => {
|
||||
return [
|
||||
{ value: "vue", link: "https://github.com/vuejs/vue" },
|
||||
{ value: "element", link: "https://github.com/ElemeFE/element" },
|
||||
{ value: "cooking", link: "https://github.com/ElemeFE/cooking" },
|
||||
{ value: "mint-ui", link: "https://github.com/ElemeFE/mint-ui" },
|
||||
{ value: "vuex", link: "https://github.com/vuejs/vuex" },
|
||||
{ value: "vue-router", link: "https://github.com/vuejs/vue-router" },
|
||||
{ value: "babel", link: "https://github.com/babel/babel" },
|
||||
]
|
||||
// 选择院校
|
||||
const handleSchoolSelect = item => (info.value["schoolid"] = item["id"] || 0)
|
||||
|
||||
// 关键字搜索专业
|
||||
const queryMajorSearch = (queryString, cb) => {
|
||||
publishProfessionSearchHttp({ keyword: queryString }).then(res => {
|
||||
if (res.code != 200) return
|
||||
let data = res.data || []
|
||||
|
||||
let isRepetition = false
|
||||
|
||||
data.forEach(element => {
|
||||
element["value"] = element["name"]
|
||||
if (element["name"] == queryString) isRepetition = true
|
||||
})
|
||||
if (!isRepetition) {
|
||||
data.unshift({
|
||||
value: queryString,
|
||||
})
|
||||
}
|
||||
cb(data)
|
||||
})
|
||||
}
|
||||
|
||||
const handleSelect = item => {
|
||||
console.log(item)
|
||||
// 选择专业
|
||||
const handleMajorSelect = item => (info.value["profession_id"] = item["id"] || 0)
|
||||
|
||||
// 切换匿名状态
|
||||
const cutAnonymous = () => {
|
||||
info.value["anonymous"] = info.value["anonymous"] == 0 ? 1 : 0
|
||||
}
|
||||
|
||||
const value1 = ref("")
|
||||
const title = ref("")
|
||||
const course = ref("")
|
||||
// 切换回复可见状态
|
||||
const cutVisible = () => {
|
||||
info.value["isvisiblereply"] = info.value["isvisiblereply"] == 0 ? 1 : 0
|
||||
}
|
||||
|
||||
// 提交发布
|
||||
const submit = (status = 1) => {
|
||||
console.log(info.value)
|
||||
publishSubmitHttp({ info: info.value, token, status }).then(res => {
|
||||
if (res.code != 200) {
|
||||
ElMessage.error(res.message)
|
||||
return
|
||||
}
|
||||
|
||||
const data = res.data
|
||||
console.log("data", data)
|
||||
ElMessage.success(res.message)
|
||||
|
||||
router.push(`/details/${data["uniqid"]}`)
|
||||
})
|
||||
}
|
||||
|
||||
// 放弃保存 跳跃上一页或者首页
|
||||
const abandonSaving = () => {
|
||||
// console.log("router.currentRoute.value.meta.previousPage", router.currentRoute.value.meta.previousPage)
|
||||
if (router.currentRoute.value.meta.previousPage) router.go(-1)
|
||||
else router.push("./index.html") // 跳转到首页
|
||||
}
|
||||
|
||||
// 保存并退出
|
||||
const saveAndExit = () => {
|
||||
console.log("saveAndExit")
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@@ -291,6 +370,7 @@ const course = ref("")
|
||||
font-size: 14px;
|
||||
color: #555555;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
.visible-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
@@ -353,6 +433,7 @@ const course = ref("")
|
||||
cursor: pointer;
|
||||
color: #333333;
|
||||
font-size: 14px;
|
||||
user-select: none;
|
||||
|
||||
.text {
|
||||
color: rgb(170, 170, 170);
|
||||
|
||||
Reference in New Issue
Block a user