提交 d96c5909 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 0b3132a2
......@@ -8,6 +8,7 @@ import { getSignature } from '@/api/base'
interface Props {
modelValue: string | { name: string; url: string }[]
prefix?: string
size?: number
}
const props = withDefaults(defineProps<Props>(), {
......@@ -33,6 +34,10 @@ const showFileList = computed(() => {
// 上传之前
const handleBeforeUpload = async (file: any) => {
if (props.size && file.size > props.size) {
ElMessage.error(`文件大小不能超过${props.size / 1024 / 1024}M`)
return false
}
const fileName = file.name
const key = props.prefix + md5(fileName + new Date().getTime()) + fileName.substr(fileName.lastIndexOf('.'))
const response: Record<string, any> = await getSignature()
......@@ -70,12 +75,16 @@ const handleExceed: UploadProps['onExceed'] = () => {
// 删除
const handleRemove: UploadProps['onRemove'] = (file, files) => {
if (showFileList.value) {
emit(
'update:modelValue',
files.map((item: any) => {
return { name: item.name, url: item.url || item.raw.url }
})
)
} else {
emit('update:modelValue', '')
}
}
// 预览
......
......@@ -176,7 +176,15 @@ const rows: Record<string, any>[] = [
title: '招聘岗位',
// href: '/hr/posts/job'
onClick() {
ElMessage({ message: '暂未开放' })
if (!user.isLogin) {
location.href = `${import.meta.env.VITE_LOGIN_URL}?rd=${encodeURIComponent(location.href)}`
return
}
if (!user.hasCompany) {
ElMessage({ message: '请先注册您的企业' })
} else {
window.open('/hr/posts/job')
}
}
},
{
......@@ -201,10 +209,7 @@ const rows: Record<string, any>[] = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_7_4.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_7_4_hover.png',
title: '岗位求职',
// href: '/hr/job'
onClick() {
ElMessage({ message: '暂未开放' })
}
href: '/hr/job'
}
]
},
......
......@@ -42,9 +42,10 @@ onMounted(() => {
/>
</div>
<div class="project-list" v-loading="loading">
<div class="project-list" v-loading="loading" v-if="dataset.list.length">
<ProjectListItem v-for="item in dataset.list" :key="item.id" :data="item"></ProjectListItem>
</div>
<el-empty description="暂无项目" v-else />
</template>
<style lang="scss" scoped>
......
......@@ -14,7 +14,7 @@ const descHtml = computed(() => {
<template>
<div class="project-item">
<router-link :to="`/project/view/${data.id}`" target="_blank">
<img :src="data.logo" class="project-item__pic" lazy />
<img :src="`${data.logo}?x-oss-process=image/resize,m_fill,h_142,w_275`" class="project-item__pic" lazy />
<div class="project-item-main">
<div class="project-item__header">
<h2>{{ data.name }}</h2>
......@@ -37,6 +37,7 @@ const descHtml = computed(() => {
<style lang="scss">
.project-item {
position: relative;
height: 304px;
margin-bottom: 20px;
background: #fafafa;
border-radius: 6px;
......
......@@ -94,10 +94,10 @@ onMounted(() => {
style="margin: 0 290px"
>
<el-form-item label="项目图片" prop="logo">
<AppUpload v-model="form.logo" accept="image/*"></AppUpload>
<AppUpload v-model="form.logo" :size="1024 * 1024 * 2" accept="image/*"></AppUpload>
</el-form-item>
<el-form-item label="项目名称" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
<el-input v-model="form.name" placeholder="请输入" maxlength="50" />
</el-form-item>
<el-form-item label="项目类型" prop="type">
<el-select v-model="form.type" placeholder="请选择" style="width: 100%">
......@@ -115,7 +115,8 @@ onMounted(() => {
type="textarea"
v-model="form.desc"
placeholder="请输入"
:autosize="{ minRows: 10, maxRows: 20 }"
:autosize="{ minRows: 6, maxRows: 10 }"
maxlength="200"
></el-input>
</el-form-item>
<el-form-item label="联系人" prop="contact">
......@@ -125,7 +126,7 @@ onMounted(() => {
<el-input v-model="form.contact_mobile" placeholder="请输入" />
</el-form-item>
<el-form-item label="项目文件" prop="documents">
<AppUpload v-model="form.documents"></AppUpload>
<AppUpload v-model="form.documents" :size="1024 * 1024 * 10" :limit="3"></AppUpload>
</el-form-item>
<el-row justify="center" style="margin: 60px 0 20px">
<el-button type="primary" auto-insert-space @click="onSubmit" style="border-radius: 10px">发布项目</el-button>
......
<script setup lang="ts">
import dayjs from 'dayjs'
import { Picture } from '@element-plus/icons-vue'
import { getProject } from '../api'
import type { ProjectType } from '../types'
import { projectType } from '@/utils/dictionary'
......@@ -55,7 +56,9 @@ function formatDate(timeStr: string) {
<el-button size="default">编辑</el-button>
</router-link>
</div>
<a :href="data.logo" target="_blank"><img :src="data.logo" class="project-info__pic" lazy /></a>
<a :href="data.logo" target="_blank"
><img :src="`${data.logo}?x-oss-process=image/resize,m_fill,h_155,w_242`" class="project-info__pic" lazy
/></a>
<div class="project-info__forms">
<dl>
<dt>项目名称</dt>
......@@ -92,6 +95,7 @@ function formatDate(timeStr: string) {
<ul>
<li v-for="(item, index) in files" :key="index">
<a :href="item.url" target="_blank">
<Picture />
<p>{{ item.name }}</p>
<span>预览</span>
</a>
......@@ -156,13 +160,25 @@ function formatDate(timeStr: string) {
row-gap: 40px;
}
li {
display: flex;
align-items: center;
justify-content: center;
text-align: center;
// display: flex;
// align-items: center;
// justify-content: center;
// text-align: center;
height: 170px;
background: #f8f8f8;
border-radius: 20px;
::v-deep(a) {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
svg {
color: #b80140;
width: 2em;
height: 2em;
}
p {
padding: 14px 0;
font-size: 18px;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论