|
|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<div class="demand">
|
|
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
|
|
- <el-tab-pane v-for="tab in tabs" :key="tab.name" :label="tab.label" :name="tab.name">
|
|
|
+ <el-tab-pane v-for="tab in tabs" :key="tab.name" :label="$t(tab.label)" :name="tab.name">
|
|
|
<ul class="demand-list">
|
|
|
<li v-for="(item, index) in 5" :key="index">
|
|
|
<div class="flex-center-between">
|
|
|
@@ -16,11 +16,11 @@
|
|
|
<ul class="flex-align-center list">
|
|
|
<div class="li">
|
|
|
<img src="/src/assets/imgs/yuangong.png" alt="">
|
|
|
- <div class="">15人报名</div>
|
|
|
+ <div class="">15{{ $t('common.renbaoming') }}</div>
|
|
|
</div>
|
|
|
<div class="li">
|
|
|
<img src="/src/assets/imgs/rili.png" alt="">
|
|
|
- <div class="">报名截止时间:2024-11-19 17:00</div>
|
|
|
+ <div class="">{{ $t('common.signUpDeadline') }}:2024-11-19 17:00</div>
|
|
|
</div>
|
|
|
</ul>
|
|
|
</div>
|
|
|
@@ -29,31 +29,31 @@
|
|
|
<div class="info-left">
|
|
|
<el-avatar :size="30" :src="appStore.avatarDefault" />
|
|
|
<div class="name">花花</div>
|
|
|
- <div class="date">2024-11-18 发布</div>
|
|
|
+ <div class="date">2024-11-18 {{ $t('common.publish') }}</div>
|
|
|
</div>
|
|
|
<div class="info-right flex-align-center">
|
|
|
<template v-if="activeName == 'first'">
|
|
|
- <div class="btn">
|
|
|
+ <div class="btn" @click="dialogVisible = true">
|
|
|
<img src="/src/assets/imgs/my/jilu@2x.png" alt="">
|
|
|
- <div>查看报名记录</div>
|
|
|
+ <div>{{ $t('personalCenter.viewSignUpRecord') }}</div>
|
|
|
</div>
|
|
|
<div class="btn">
|
|
|
<img src="/src/assets/imgs/my/bianji@2x.png" alt="">
|
|
|
- <div>编辑</div>
|
|
|
+ <div>{{ $t('common.edit') }}</div>
|
|
|
</div>
|
|
|
<div class="btn">
|
|
|
<img src="/src/assets/imgs/my/guanbi@2x.png" alt="">
|
|
|
- <div class="red">结束活动</div>
|
|
|
+ <div class="red">{{ $t('personalCenter.endActivity') }}</div>
|
|
|
</div>
|
|
|
<div class="btn">
|
|
|
<img src="/src/assets/imgs/my/shanchu@2x.png" alt="">
|
|
|
- <div class="red">删除</div>
|
|
|
+ <div class="red">{{ $t('common.delete') }}</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<div class="btn" v-else>
|
|
|
<img src="/src/assets/imgs/my/quxiao@2x.png" alt="">
|
|
|
- <div class="red">取消报名</div>
|
|
|
+ <div class="red">{{ $t('personalCenter.cancelSignUp') }}</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
@@ -63,6 +63,75 @@
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
<Pagination :total="20" :page-size="10" :current-page="1" @page-change="handlePageChange" />
|
|
|
+
|
|
|
+ <el-dialog v-model="dialogVisible" :title="$t('personalCenter.viewSignUpRecord')" width="1138"
|
|
|
+ :before-close="handleClose">
|
|
|
+ <div class="detail">
|
|
|
+ <div class="detail-top">
|
|
|
+ <div class="flex-center-between">
|
|
|
+ <div class="flex-align-center">
|
|
|
+ <div class="tag">报名中</div>
|
|
|
+ <div class="name">【Linux】【操作】Linux操作集锦系列之十五——如何破解pdf、doc、zip、rar等密码</div>
|
|
|
+ </div>
|
|
|
+ <div class="price">¥2000.00-3000.00</div>
|
|
|
+ </div>
|
|
|
+ <div class="flex-align-center content">
|
|
|
+ <div class="flex-align-center">
|
|
|
+ <el-button type="primary" size="small" plain>一级分类名称</el-button>
|
|
|
+ <el-button type="primary" size="small" plain>二级分类名称</el-button>
|
|
|
+ </div>
|
|
|
+ <ul class="flex-align-center list">
|
|
|
+ <div class="li">
|
|
|
+ <img src="/src/assets/imgs/yuangong.png" alt="">
|
|
|
+ <div class="">15{{ $t('common.renbaoming') }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="li">
|
|
|
+ <img src="/src/assets/imgs/rili.png" alt="">
|
|
|
+ <div class="">{{ $t('common.signUpDeadline') }}:2024-11-19 17:00</div>
|
|
|
+ </div>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div class="desc">
|
|
|
+ 此n8n工作流是一款强大的AI驱动的潜在客户富集与通知系统,专为市场营销和销售团队设计。它通过智能表单收集线索,利用OpenAI深度分析并丰富客户数据,自动识别关键信息。系统能根据预设条件,通过多种渠道即时发送个性化通知,显著提升线索质量、转化率及团队协作效率,是优化客户关系管理的关键工具。
|
|
|
+ </div>
|
|
|
+ <div class="time">2024-11-18 {{ $t('common.publish') }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-txt">{{ $t('personalCenter.baomiliang') }}(5 {{ $t('personalCenter.ren') }})</div>
|
|
|
+ <ul class="detail-list">
|
|
|
+ <li v-for="(item, index) in 5" :key="index">
|
|
|
+ <div class="flex-align-center detail-list-left">
|
|
|
+ <el-avatar :size="20" :src="''" />
|
|
|
+ <div class="">花花</div>
|
|
|
+ <div class="">13176012742</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-list-number">{{ $t('personalCenter.gongzuoliuliang') }}:15</div>
|
|
|
+ <div class="flex-align-center detail-list-right">
|
|
|
+ <div class="lex-align-center btn green">
|
|
|
+ <img src="/src/assets/imgs/my/dui@2x.png" alt="">
|
|
|
+ <div class="">{{ $t('common.agree') }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="lex-align-center btn red">
|
|
|
+ <img src="/src/assets/imgs/my/quxiao@2x.png" alt="">
|
|
|
+ <div class="">{{ $t('common.reject') }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="lex-align-center btn blue">
|
|
|
+ <img src="/src/assets/imgs/my/jilu@2x.png" alt="">
|
|
|
+ <div class="">{{ $t('common.viewHomepage') }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer flex-center">
|
|
|
+ <el-button @click="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" class="gradient" @click="dialogVisible = false">
|
|
|
+ {{ $t('common.confirm') }}
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
<script lang="ts" setup>
|
|
|
@@ -73,10 +142,12 @@ import Pagination from '@/components/Pagination.vue'
|
|
|
const appStore = useAppStore();
|
|
|
const activeName = ref('first')
|
|
|
const tabs = ref([
|
|
|
- { label: '发布需求记录', name: 'first' },
|
|
|
- { label: '我的报名记录', name: 'second' }
|
|
|
+ { label: 'personalCenter.publishDemandRecord', name: 'first' },
|
|
|
+ { label: 'personalCenter.myDemandRecord', name: 'second' }
|
|
|
])
|
|
|
|
|
|
+const dialogVisible = ref(false)
|
|
|
+
|
|
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
|
|
console.log(tab, event)
|
|
|
}
|
|
|
@@ -106,28 +177,7 @@ const handleClick = (tab: TabsPaneContext, event: Event) => {
|
|
|
color: #333333;
|
|
|
}
|
|
|
|
|
|
- .content {
|
|
|
- margin-top: 8px;
|
|
|
-
|
|
|
- .list {
|
|
|
- .li {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- img {
|
|
|
- width: 16px;
|
|
|
- height: 16px;
|
|
|
- margin-right: 4px;
|
|
|
- }
|
|
|
|
|
|
- margin-left: 8px;
|
|
|
-
|
|
|
- div {
|
|
|
- font-size: 12px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
.description {
|
|
|
font-size: 16px;
|
|
|
@@ -193,4 +243,161 @@ const handleClick = (tab: TabsPaneContext, event: Event) => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.content {
|
|
|
+ margin-top: 8px;
|
|
|
+
|
|
|
+ .list {
|
|
|
+ .li {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ margin-right: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ margin-left: 8px;
|
|
|
+
|
|
|
+ div {
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.detail {
|
|
|
+ padding: 16px;
|
|
|
+ border-top: 1px solid #EBEEF5;
|
|
|
+
|
|
|
+ .detail-top {
|
|
|
+ padding: 16px;
|
|
|
+ background: #F5F7FA;
|
|
|
+ border-radius: 16px;
|
|
|
+ border: 1px solid #FFFFFF;
|
|
|
+
|
|
|
+ .tag {
|
|
|
+ padding: 0 12px;
|
|
|
+ line-height: 30px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #FFFFFF;
|
|
|
+ background: #2D71FF;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .name {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #333333;
|
|
|
+ margin-left: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .price {
|
|
|
+ color: #FD5F3C;
|
|
|
+ font-size: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .desc {
|
|
|
+ margin: 8px 0;
|
|
|
+ line-height: 24px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #666666;
|
|
|
+ }
|
|
|
+
|
|
|
+ .time {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #666666;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-txt {
|
|
|
+ line-height: 58px;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-list {
|
|
|
+ li {
|
|
|
+ display: flex;
|
|
|
+ padding: 0 16px;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 16px;
|
|
|
+ height: 64px;
|
|
|
+ background: #F5F7FA;
|
|
|
+ border-radius: 8px;
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-list-left {
|
|
|
+ div {
|
|
|
+ color: #666666;
|
|
|
+ font-size: 14px;
|
|
|
+
|
|
|
+ &:nth-child(2) {
|
|
|
+ margin: 0 8px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-list-number {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail-list-right {
|
|
|
+ .btn {
|
|
|
+ display: flex;
|
|
|
+ margin-left: 8px;
|
|
|
+ align-items: center;
|
|
|
+ cursor: pointer;
|
|
|
+ padding: 0px 16px;
|
|
|
+ height: 32px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 14px;
|
|
|
+ &:hover {
|
|
|
+ opacity: 0.7;
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ margin-right: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .green {
|
|
|
+ background: #E9F7EF;
|
|
|
+
|
|
|
+ div {
|
|
|
+ color: #1FB362;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .red {
|
|
|
+
|
|
|
+ background: #FCEBEB;
|
|
|
+
|
|
|
+ div {
|
|
|
+ color: #E43434;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .blue {
|
|
|
+
|
|
|
+ background: #EAF0FF;
|
|
|
+
|
|
|
+ div {
|
|
|
+ color: #2D71FF;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|