|
|
@@ -7,19 +7,21 @@
|
|
|
<div class="cursor-pointer">
|
|
|
<div class="flex-between">
|
|
|
<div class="gap10">
|
|
|
- <el-button type="primary">报名中</el-button>
|
|
|
- <div class="bold font_size30">AI智能线索富集与多渠道通知系统</div>
|
|
|
+ <el-button type="primary">{{applyStatusInfo[ruleForm.applyStatus]}}</el-button>
|
|
|
+ <div class="bold font_size30">{{ruleForm.title}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="font_size24 color_price bold mt10">¥2000.00-3000.00</div>
|
|
|
+ <div class="font_size24 color_price bold mt10">¥{{ruleForm.budgetMin}}-{{ruleForm.budgetMax}}</div>
|
|
|
<div class="gap20 mt10">
|
|
|
<div class="gap5">
|
|
|
- <img :src="biaoqianIcon" alt="员工" style="width: 16px; height: 16px;">
|
|
|
- <span class="font_size14">二级分类名称-三级分类名称</span>
|
|
|
+ <img :src="biaoqianIcon" alt="" style="width: 16px; height: 16px;">
|
|
|
+ <span class="font_size14">
|
|
|
+ {{ruleForm.categoryName1}}-{{ruleForm.categoryName2}}-{{ruleForm.categoryName3}}
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div class="gap5">
|
|
|
<img :src="riliIcon" alt="员工" style="width: 16px; height: 16px;">
|
|
|
- <span class="font_size14">报名截止时间:2024-10-16</span>
|
|
|
+ <span class="font_size14">报名截止时间:{{ruleForm.deadline}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -30,14 +32,14 @@
|
|
|
<div class="font_size20 bold">需求背景</div>
|
|
|
</div>
|
|
|
<div class="gray font_size14 mt10">
|
|
|
- 我们是一家内容营销公司,每天需要为多个客户生成大量高质量的营销文章。目前我们依赖人工撰写,效率较低且成本较高。希望通过引入AI技术,建立一个自动化文章生成工作流,提高内容生产效率,同时保持文章质量。这个工作流需要能够根据给定的关键词或主题,自动生成符合品牌调性的营销文章,并支持多种输出格式,便于我们直接发布到不同平台。
|
|
|
+ {{ruleForm.background}}
|
|
|
</div>
|
|
|
<div class="gap10 mt10">
|
|
|
<div class="line_vertical"></div>
|
|
|
<div class="font_size20 bold">具体要求</div>
|
|
|
</div>
|
|
|
<div class="gray font_size14 mt10">
|
|
|
- 我们是一家内容营销公司,每天需要为多个客户生成大量高质量的营销文章。目前我们依赖人工撰写,效率较低且成本较高。希望通过引入AI技术,建立一个自动化文章生成工作流,提高内容生产效率,同时保持文章质量。这个工作流需要能够根据给定的关键词或主题,自动生成符合品牌调性的营销文章,并支持多种输出格式,便于我们直接发布到不同平台。
|
|
|
+ {{ruleForm.requirements}}
|
|
|
</div>
|
|
|
<div class="gap10 mt10">
|
|
|
<div class="line_vertical"></div>
|
|
|
@@ -47,19 +49,19 @@
|
|
|
<div class="flex_1 flex-center">
|
|
|
<div class="gap10">
|
|
|
<img :src="dianhuaIcon" alt="员工" style="width: 24px; height: 24px;">
|
|
|
- <div class="font_size16">电话:13925214105</div>
|
|
|
+ <div class="font_size16">电话:{{ruleForm.phone}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="flex_1 flex-center">
|
|
|
<div class="gap10">
|
|
|
<img :src="weixinIcon" alt="员工" style="width: 24px; height: 24px;">
|
|
|
- <div class="font_size16">微信:13925214105</div>
|
|
|
+ <div class="font_size16">微信:{{ruleForm.wechat}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="flex_1 flex-center">
|
|
|
<div class="gap10">
|
|
|
<img :src="youxiangIcon" alt="员工" style="width: 24px; height: 24px;">
|
|
|
- <div class="font_size16">邮箱:13925214105@qq.com</div>
|
|
|
+ <div class="font_size16">邮箱:{{ruleForm.email}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -68,17 +70,17 @@
|
|
|
<div class="workflowTradeDetail_right detail_right">
|
|
|
<div class="padding16 bg_color_fff border_radius_16 box_shadow_card">
|
|
|
<div class="flex-column-center">
|
|
|
- <el-avatar :size="80" :src="appStore.avatar" />
|
|
|
- <div class="font_size16 bold mt10">张三</div>
|
|
|
+ <el-avatar :size="80" :src="ruleForm.userAvatar || appStore.avatarDefault" />
|
|
|
+ <div class="font_size16 bold mt10">{{ruleForm.nickName}}</div>
|
|
|
</div>
|
|
|
<div class="totalInfo mt20 flex-center-between contactInfo_bg">
|
|
|
<div class="flex-column-center flex_1 border_right">
|
|
|
- <div class="font_size24 bold">24</div>
|
|
|
+ <div class="font_size24 bold">{{ruleForm.questCount}}</div>
|
|
|
<div class="font_size14 mt10">发布需求数</div>
|
|
|
</div>
|
|
|
<div class="flex-column-center flex_1">
|
|
|
- <div class="font_size24 bold">24</div>
|
|
|
- <div class="font_size14 mt10">发布需求数</div>
|
|
|
+ <div class="font_size24 bold">{{ruleForm.publishCount}}</div>
|
|
|
+ <div class="font_size14 mt10">创建工作流</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -92,16 +94,22 @@
|
|
|
<img :src="yuangong" alt="员工" style="width: 20px; height: 20px;">
|
|
|
<span class="font_size16">已报名人数</span>
|
|
|
</div>
|
|
|
- <div class="font_size16 bold">15人</div>
|
|
|
+ <div class="font_size16 bold">{{ruleForm.questApplyCount}}人</div>
|
|
|
</div>
|
|
|
<div class="flex-center-between mt10">
|
|
|
<div class="gap10">
|
|
|
<img :src="riliIcon" alt="员工" style="width: 20px; height: 20px;">
|
|
|
<span class="font_size16">剩余时间</span>
|
|
|
</div>
|
|
|
- <div class="font_size16 bold color_price">2天3小时</div>
|
|
|
+ <div class="font_size16 bold color_price">
|
|
|
+ {{formatDeadline(ruleForm.deadline).diffDays}}
|
|
|
+ {{t('common.day') }}
|
|
|
+ {{formatDeadline(ruleForm.deadline).diffHours}}
|
|
|
+ {{t('common.hour') }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <el-button type="primary" size="large" style="width: 100%;" class="mt20">
|
|
|
+ <el-button type="primary" size="large" style="width: 100%;" class="mt20"
|
|
|
+ @click="submitSignUp({questId: ruleForm.questId,questUserId: ruleForm.questUserId},t,getQuestDetailFn)">
|
|
|
<img :src="zaixianbaomingIcon" alt="" class="mr10" style="width: 30px; height: 30px;">
|
|
|
<span class="font_size18">{{$t('common.zaixianbaoming')}}</span>
|
|
|
</el-button>
|
|
|
@@ -119,18 +127,55 @@
|
|
|
import dianhuaIcon from '@/assets/imgs/dianhua.png'
|
|
|
import weixinIcon from '@/assets/imgs/weixin.png'
|
|
|
import youxiangIcon from '@/assets/imgs/youxiang.png'
|
|
|
+ import { submitSignUp,formatDeadline } from '@/utils/util.js'
|
|
|
|
|
|
+ // 引入api
|
|
|
+ import { getQuestDetail } from '@/api/workflowTrade.js'
|
|
|
+ import { useI18n } from 'vue-i18n'
|
|
|
+ const { t } = useI18n()
|
|
|
|
|
|
import { useRouter, useRoute } from 'vue-router'
|
|
|
const router = useRouter()
|
|
|
const route = useRoute()
|
|
|
console.log(router,route)
|
|
|
- import { ref, computed, reactive } from 'vue'
|
|
|
+ import { ref, computed, reactive, onMounted } from 'vue'
|
|
|
import { useAppStore } from '@/pinia/appStore'
|
|
|
const appStore = useAppStore()
|
|
|
|
|
|
+ const applyStatusInfo = {
|
|
|
+ '1': '报名中',
|
|
|
+ '2': '已结束',
|
|
|
+ }
|
|
|
+
|
|
|
//获取参数
|
|
|
const query = route.query;
|
|
|
+ const questId = ref(query.questId || '');
|
|
|
+ const ruleForm = ref({
|
|
|
+ title: '',
|
|
|
+ categoryId1: '',
|
|
|
+ categoryId2: '',
|
|
|
+ categoryId3: '',
|
|
|
+ background: '',
|
|
|
+ requirements: '',
|
|
|
+ budgetMin: '',
|
|
|
+ budgetMax: '',
|
|
|
+ deadline: '',
|
|
|
+ phone: '',
|
|
|
+ wechat: '',
|
|
|
+ email: '',
|
|
|
+ })
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ getQuestDetailFn();
|
|
|
+ });
|
|
|
+ const getQuestDetailFn = async () => {
|
|
|
+ getQuestDetail({questId: questId.value}).then(res => {
|
|
|
+ if(res.code === 200){
|
|
|
+ console.log(res)
|
|
|
+ ruleForm.value = res.data || {};
|
|
|
+ }
|
|
|
+ })
|
|
|
+ };
|
|
|
|
|
|
|
|
|
</script>
|