|
|
|
@ -16,7 +16,7 @@ |
|
|
|
|
<p v-if="task.price == 0" style="color: #fd461a">面议</p> |
|
|
|
|
<p v-else style="color: #fd461a">¥{{ task.price }}</p> |
|
|
|
|
</div> |
|
|
|
|
<div style="display: flex"> |
|
|
|
|
<div style="display: flex; flex-warp: warp"> |
|
|
|
|
<div v-if="crowdtype == 'myApply'" class="tabone"> |
|
|
|
|
<span v-if="task.status == 0">待审核</span> |
|
|
|
|
<span v-if="task.status == 1">审核通过</span> |
|
|
|
@ -27,6 +27,7 @@ |
|
|
|
|
<span v-if="task.task_status == 1">竞标成功</span> |
|
|
|
|
<span v-if="task.task_status == 2">竞标失败</span> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<template v-if="crowdtype == 'myApply'"> |
|
|
|
|
<div |
|
|
|
@ -58,6 +59,11 @@ |
|
|
|
|
<span>{{ it }}</span> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
<template v-if="task.language"> |
|
|
|
|
<div class="tabone tabone1" v-for="it in task.language.split(/[,、]/)" :key="it"> |
|
|
|
|
{{ it }} |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0"></div> |
|
|
|
@ -89,7 +95,9 @@ |
|
|
|
|
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px">技能要求:{{ task.techNeed }}</p> |
|
|
|
|
<p v-else style="margin-bottom: 10px">技能要求:{{ task.tech_need }}</p> |
|
|
|
|
<p style="margin-bottom: 10px">地域要求:{{ task.area }}</p> |
|
|
|
|
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px">有效天数:{{ task.validDays }}天</p> |
|
|
|
|
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px"> |
|
|
|
|
有效天数:{{ task.validDays }}天 |
|
|
|
|
</p> |
|
|
|
|
<p v-else style="margin-bottom: 10px">有效天数:{{ task.valid_days }}天</p> |
|
|
|
|
<!-- <p v-if="crowdtype=='myApply'" style='margin-bottom:10px'>竞标者要求: |
|
|
|
|
<span v-if='task.applicantType==0'>个人测试者</span> |
|
|
|
@ -125,22 +133,32 @@ |
|
|
|
|
<p v-else style="margin-left: 10px">无</p> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div v-if="crowdtype != 'competitive'" style="display: flex; align-items: center; width: 150px; margin-top: 30px"> |
|
|
|
|
<div |
|
|
|
|
v-if="crowdtype != 'competitive'" |
|
|
|
|
style="display: flex; align-items: center; width: 150px; margin-top: 30px" |
|
|
|
|
> |
|
|
|
|
<div class="dvied"></div> |
|
|
|
|
<div style="font-weight: bold; color: #333333; font-size: 17px; margin-left: 10px"> |
|
|
|
|
联系方式 |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div v-if="crowdtype != 'competitive'" style="display:flex;align-items:center;color: #808080; font-size: 24rpx; margin: 36rpx 25rpx 0 25rpx"> |
|
|
|
|
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px"> |
|
|
|
|
<div |
|
|
|
|
v-if="crowdtype != 'competitive'" |
|
|
|
|
style=" |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
color: #808080; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
margin: 36rpx 25rpx 0 25rpx; |
|
|
|
|
" |
|
|
|
|
> |
|
|
|
|
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px"> |
|
|
|
|
<span v-if="task && task.contactName">联系人:{{ task.contactName }}</span> |
|
|
|
|
</p> |
|
|
|
|
<p v-else style="margin-bottom: 10px"> |
|
|
|
|
<span v-if="task && task.contact_name">联系人:{{ task.contact_name }}</span> |
|
|
|
|
</p> |
|
|
|
|
<p style="margin:0 60px">|</p> |
|
|
|
|
<p style="margin: 0 60px">|</p> |
|
|
|
|
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px"> |
|
|
|
|
<span v-if="task && task.contactTel">联系方式:{{ task.contactTel }}</span> |
|
|
|
|
</p> |
|
|
|
@ -148,7 +166,6 @@ |
|
|
|
|
<span v-if="task && task.contact_tel">联系方式:{{ task.contact_tel }}</span> |
|
|
|
|
</p> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display: flex; align-items: center; width: 150px; margin-top: 30px"> |
|
|
|
|
<div class="dvied"></div> |
|
|
|
@ -243,7 +260,13 @@ |
|
|
|
|
<div style="display: flex; align-items: center; margin: -10px 0; position: relative"> |
|
|
|
|
<!-- <div class="dvied"></div> --> |
|
|
|
|
<div style="font-weight: bold; color: #333333; font-size: 18px">竞标者名单</div> |
|
|
|
|
<div class="choseUserBtn" @click="choseUser" v-if="task.process_status == 0 && userinform.companyStatus == 2">选中竞标用户</div> |
|
|
|
|
<div |
|
|
|
|
class="choseUserBtn" |
|
|
|
|
@click="choseUser" |
|
|
|
|
v-if="task.process_status == 0 && userinform.companyStatus == 2" |
|
|
|
|
> |
|
|
|
|
选中竞标用户 |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<el-table v-loading="loading" :data="applicantdataList" border style="width: 100%; margin-top: 30px"> |
|
|
|
|
<el-table-column label="序号" align="center" type="index" width="60"></el-table-column> |
|
|
|
@ -259,12 +282,8 @@ |
|
|
|
|
</el-table-column> --> |
|
|
|
|
<el-table-column label="名称" align="center" key="nick_name" prop="nick_name"> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<el-button |
|
|
|
|
size="mini" |
|
|
|
|
type="text" |
|
|
|
|
@click="viewTesterDetail(scope.row)" |
|
|
|
|
> |
|
|
|
|
{{scope.row.nick_name}} |
|
|
|
|
<el-button size="mini" type="text" @click="viewTesterDetail(scope.row)"> |
|
|
|
|
{{ scope.row.nick_name }} |
|
|
|
|
</el-button> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
@ -297,19 +316,53 @@ |
|
|
|
|
style="padding: 0 12px; background: #11b7ed; border-color: #11b7ed" |
|
|
|
|
>待验收</el-tag |
|
|
|
|
> |
|
|
|
|
<el-tag v-else-if="scope.row.status == 4" effect="dark" size="small" style="padding: 0 12px" type="warning">待付款</el-tag> |
|
|
|
|
<el-tag v-else-if="scope.row.status == 5" type="success" effect="dark" size="small" style="padding: 0 12px">已完成</el-tag> |
|
|
|
|
<el-tag v-else-if="scope.row.status == 6" type="danger" effect="dark" size="small" style="padding: 0 12px">验收不通过</el-tag> |
|
|
|
|
<el-tag v-else type="danger" effect="dark" size="small" style="padding: 0 12px">竞标失败</el-tag> |
|
|
|
|
<el-tag |
|
|
|
|
v-else-if="scope.row.status == 4" |
|
|
|
|
effect="dark" |
|
|
|
|
size="small" |
|
|
|
|
style="padding: 0 12px" |
|
|
|
|
type="warning" |
|
|
|
|
>待付款</el-tag |
|
|
|
|
> |
|
|
|
|
<el-tag |
|
|
|
|
v-else-if="scope.row.status == 5" |
|
|
|
|
type="success" |
|
|
|
|
effect="dark" |
|
|
|
|
size="small" |
|
|
|
|
style="padding: 0 12px" |
|
|
|
|
>已完成</el-tag |
|
|
|
|
> |
|
|
|
|
<el-tag |
|
|
|
|
v-else-if="scope.row.status == 6" |
|
|
|
|
type="danger" |
|
|
|
|
effect="dark" |
|
|
|
|
size="small" |
|
|
|
|
style="padding: 0 12px" |
|
|
|
|
>验收不通过</el-tag |
|
|
|
|
> |
|
|
|
|
<el-tag v-else type="danger" effect="dark" size="small" style="padding: 0 12px" |
|
|
|
|
>竞标失败</el-tag |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column label="工作成果" v-if="userinform.companyStatus == 2" align="center" prop=""> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<el-button v-if="scope.row.result_attach" type="text" @click="download(scope.row.result_attach)">点击下载</el-button> |
|
|
|
|
<el-button |
|
|
|
|
v-if="scope.row.result_attach" |
|
|
|
|
type="text" |
|
|
|
|
@click="download(scope.row.result_attach)" |
|
|
|
|
>点击下载</el-button |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="260" v-if="userinform.companyStatus == 2"> |
|
|
|
|
<template slot-scope="scope" > |
|
|
|
|
<el-table-column |
|
|
|
|
label="操作" |
|
|
|
|
align="center" |
|
|
|
|
class-name="small-padding fixed-width" |
|
|
|
|
width="260" |
|
|
|
|
v-if="userinform.companyStatus == 2" |
|
|
|
|
> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<!-- <el-button |
|
|
|
|
v-if="scope.row.user_id == userId || userinform.companyStatus == 2" |
|
|
|
|
size="mini" |
|
|
|
@ -330,14 +383,33 @@ |
|
|
|
|
选中 |
|
|
|
|
</el-button> --> |
|
|
|
|
<el-checkbox v-if="scope.row.status == 0" v-model="scope.row.isFlag">选中</el-checkbox> |
|
|
|
|
<el-button v-else-if="scope.row.status == 3 || scope.row.status == 1" type="text" @click="goFinnal(scope.row)">任务结项</el-button> |
|
|
|
|
<el-button v-else-if="scope.row.status == 4" type="text" @click="goPay(scope.row)">支付佣金</el-button> |
|
|
|
|
<span v-else-if="scope.row.status == 5 && scope.row.reward">交易完成({{scope.row.reward}}元)</span> |
|
|
|
|
<el-button v-else-if="scope.row.status == 6" style="color: #fe5555" type="text" @click="goNoPass(scope.row)" |
|
|
|
|
<el-button |
|
|
|
|
v-else-if="scope.row.status == 3 || scope.row.status == 1" |
|
|
|
|
type="text" |
|
|
|
|
@click="goFinnal(scope.row)" |
|
|
|
|
>任务结项</el-button |
|
|
|
|
> |
|
|
|
|
<el-button v-else-if="scope.row.status == 4" type="text" @click="goPay(scope.row)" |
|
|
|
|
>支付佣金</el-button |
|
|
|
|
> |
|
|
|
|
<span v-else-if="scope.row.status == 5 && scope.row.reward" |
|
|
|
|
>交易完成({{ scope.row.reward }}元)</span |
|
|
|
|
> |
|
|
|
|
<el-button |
|
|
|
|
v-else-if="scope.row.status == 6" |
|
|
|
|
style="color: #fe5555" |
|
|
|
|
type="text" |
|
|
|
|
@click="goNoPass(scope.row)" |
|
|
|
|
>验收不通过</el-button |
|
|
|
|
> |
|
|
|
|
<!-- is_comment 0未评价 1已评价 --> |
|
|
|
|
<el-button v-if="scope.row.status == 5 && scope.row.p_comment == 0 " @click="goreview(scope.row)" type="text" style="margin-left:10px">去评价</el-button> |
|
|
|
|
<el-button |
|
|
|
|
v-if="scope.row.status == 5 && scope.row.p_comment == 0" |
|
|
|
|
@click="goreview(scope.row)" |
|
|
|
|
type="text" |
|
|
|
|
style="margin-left: 10px" |
|
|
|
|
>去评价</el-button |
|
|
|
|
> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
@ -467,13 +539,13 @@ |
|
|
|
|
<!-- 弹窗 --> |
|
|
|
|
<!-- 上传实施结果弹窗 --> |
|
|
|
|
<!-- 评价弹窗 --> |
|
|
|
|
<reviewDialogVue ref="reviewDialogVuer" @refresh="refreshFn"/> |
|
|
|
|
<reviewDialogVue ref="reviewDialogVuer" @refresh="refreshFn" /> |
|
|
|
|
<!-- 任务结项弹窗 --> |
|
|
|
|
<acceptanceVue ref="acceptanceVue" @refresh="refreshFn"/> |
|
|
|
|
<acceptanceVue ref="acceptanceVue" @refresh="refreshFn" /> |
|
|
|
|
<!-- 支付 --> |
|
|
|
|
<payDialog ref="payDialog" @refresh="refreshFn"/> |
|
|
|
|
<payDialog ref="payDialog" @refresh="refreshFn" /> |
|
|
|
|
<!-- 不通过 --> |
|
|
|
|
<noPassDialog ref="noPassDialog" @refresh="refreshFn"/> |
|
|
|
|
<noPassDialog ref="noPassDialog" @refresh="refreshFn" /> |
|
|
|
|
<!-- 弹窗 --> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
@ -524,7 +596,7 @@ export default { |
|
|
|
|
// } |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
refreshFn(){ |
|
|
|
|
refreshFn() { |
|
|
|
|
this.getData() |
|
|
|
|
}, |
|
|
|
|
// 获取数据 |
|
|
|
@ -575,7 +647,6 @@ export default { |
|
|
|
|
this.$refs.payDialog.rowInfo = payload |
|
|
|
|
this.$refs.payDialog.taskId = this.task.task_id |
|
|
|
|
this.$refs.payDialog.taskprice = this.task.price |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
// 不通过 |
|
|
|
|
goNoPass(payload) { |
|
|
|
@ -584,9 +655,9 @@ export default { |
|
|
|
|
}, |
|
|
|
|
// 评价 |
|
|
|
|
goreview(payload) { |
|
|
|
|
this.$refs.reviewDialogVuer.dialogVisible = true |
|
|
|
|
this.$refs.reviewDialogVuer.taskId = this.task.task_id |
|
|
|
|
this.$refs.reviewDialogVuer.appraisee = payload.user_id |
|
|
|
|
this.$refs.reviewDialogVuer.dialogVisible = true |
|
|
|
|
this.$refs.reviewDialogVuer.taskId = this.task.task_id |
|
|
|
|
this.$refs.reviewDialogVuer.appraisee = payload.user_id |
|
|
|
|
}, |
|
|
|
|
// 多选用户 |
|
|
|
|
choseUser() { |
|
|
|
@ -595,7 +666,7 @@ export default { |
|
|
|
|
if (choseList.length < needp) { |
|
|
|
|
return this.$message.warning('您的选择小于需要人数') |
|
|
|
|
} else if (choseList.length > needp) { |
|
|
|
|
return this.$message.warning('您的选择大于需要人数') |
|
|
|
|
return this.$message.warning('您的选择大于需要人数') |
|
|
|
|
} else { |
|
|
|
|
const data = { |
|
|
|
|
taskId: this.task.task_id, |
|
|
|
@ -651,7 +722,11 @@ export default { |
|
|
|
|
//竞标者名单查看详情 |
|
|
|
|
viewTesterDetail(row) { |
|
|
|
|
// this.userId = userId; |
|
|
|
|
this.$refs.testerDetail.viewDetail(row, this.task.task_id) |
|
|
|
|
// this.$refs.testerDetail.viewDetail(row, this.task.task_id) |
|
|
|
|
this.$router.push({ |
|
|
|
|
path: '/crowdsourcing/userhome', |
|
|
|
|
query: { id: row.user_id, id2: this.task.task_id }, |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
// 修改重新发布 |
|
|
|
|
publishTask() { |
|
|
|
@ -776,14 +851,22 @@ export default { |
|
|
|
|
} |
|
|
|
|
.tabone { |
|
|
|
|
/* padding:3px; */ |
|
|
|
|
padding: 0px 10px; |
|
|
|
|
color: #ffffff; |
|
|
|
|
background: #2286fa; |
|
|
|
|
border-radius: 3px; |
|
|
|
|
text-align: center; |
|
|
|
|
width: 75px; |
|
|
|
|
/* width: 75px; */ |
|
|
|
|
margin-right: 8px; |
|
|
|
|
line-height: 28px; |
|
|
|
|
height: 28px; |
|
|
|
|
font-size: 14px; |
|
|
|
|
} |
|
|
|
|
.tabone1 { |
|
|
|
|
background: #fcf0e6; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
font-weight: 500; |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #554c42; |
|
|
|
|
} |
|
|
|
|
</style> |