bug管理修复

main
lijingyu007 10 months ago
parent 649419630c
commit 740701773b
  1. 2
      src/page/homepage/crowdsourcing/crowddetails.vue
  2. 4
      src/page/homepage/crowdsourcing/publishtasks.vue
  3. 34
      src/page/homepage/crowdsourcing/userhome.vue
  4. 163
      src/page/personalpage/testcrowd/currentcrowd.vue

@ -51,7 +51,7 @@
</div> </div>
<!-- 语言 --> <!-- 语言 -->
<template v-if="task.language"> <template v-if="task.language">
<div class="tabone tabone1" v-for="it in task.language.split(',')" :key="it"> <div class="tabone tabone1" v-for="it in task.language.split(/[,、]/)" :key="it">
{{ it }} {{ it }}
</div> </div>
</template> </template>

@ -483,7 +483,7 @@ export default {
this.mianyicheck = true this.mianyicheck = true
} }
if (language) { if (language) {
language = language.split(',') language = language.split(/[,、]/)
} }
this.taskform = { this.taskform = {
language, language,
@ -598,7 +598,7 @@ export default {
} }
let language = '' let language = ''
if (this.taskform.language.length) { if (this.taskform.language.length) {
language = this.taskform.language.join(',') language = this.taskform.language.join('')
} }
let data = { let data = {
language, language,

@ -2,11 +2,11 @@
<div class="userpage container"> <div class="userpage container">
<div class="topava"> <div class="topava">
<div class="topavaL"> <div class="topavaL">
<img :src="testerdata.avatar ? testerdata.avatar: '/assets/home/defaultAva.jpg'" alt="" /> <img :src="testerdata.avatar ? testerdata.avatar : '/assets/home/defaultAva.jpg'" alt="" />
</div> </div>
<div class="topavaR"> <div class="topavaR">
<div class="topavaRT"> <div class="topavaRT">
<div class="topavaRT1">昵称{{ testerdata.name }}</div> <div class="topavaRT1">昵称{{ testerdata.nick_name }}</div>
<div class="topavaRT2"></div> <div class="topavaRT2"></div>
</div> </div>
<div class="topavaRB"> <div class="topavaRB">
@ -24,10 +24,17 @@
<div class="middlebar"> <div class="middlebar">
<div class="middlebarit" :class="active == 0 ? 'middlebaritac' : ''" @click="tabfn(0)">中标记录</div> <div class="middlebarit" :class="active == 0 ? 'middlebaritac' : ''" @click="tabfn(0)">中标记录</div>
<div class="middlebarit" :class="active == 1 ? 'middlebaritac' : ''" @click="tabfn(1)">收到的评价</div> <div class="middlebarit" :class="active == 1 ? 'middlebaritac' : ''" @click="tabfn(1)">收到的评价</div>
<div class="middlebarit" :class="active == 2 ? 'middlebaritac' : ''" @click="tabfn(2)" v-if="userinform.companyStatus == 2">在线简历</div> <div
class="middlebarit"
:class="active == 2 ? 'middlebaritac' : ''"
@click="tabfn(2)"
v-if="userinform.companyStatus == 2"
>
在线简历
</div>
</div> </div>
<div class="content0" v-if="active == 0 && allcrowdlist.length"> <div class="content0" v-if="active == 0 && allcrowdlist.length">
<div class="content0it" v-for="it in allcrowdlist" :key="it.task_id"> <div class="content0it" v-for="it in allcrowdlist" :key="it.task_id" @click="gotaskDetail(it.task_id)">
<div class="content0itT"> <div class="content0itT">
<div class="content0itTL">{{ it.project_name }}</div> <div class="content0itTL">{{ it.project_name }}</div>
<div class="content0itTR">{{ it.price }}</div> <div class="content0itTR">{{ it.price }}</div>
@ -109,7 +116,7 @@
个人优势 个人优势
</div> </div>
<div class="contentitemB"> <div class="contentitemB">
{{ testerdata.personalAdvantage || '未填写' }} {{ testerdata.personalAdvantage || '' }}
</div> </div>
</div> </div>
<div class="contentitem"> <div class="contentitem">
@ -125,7 +132,7 @@
<div><span class="contentitemBF">工作内容</span>{{ it.intro }}</div> <div><span class="contentitemBF">工作内容</span>{{ it.intro }}</div>
</div> </div>
</template> </template>
<div class="contentitemTBook" v-else>未填写</div> <div class="contentitemTBook" v-else></div>
</div> </div>
<div class="contentitem"> <div class="contentitem">
<div class="contentitemT"> <div class="contentitemT">
@ -141,7 +148,7 @@
<div><span class="contentitemBF">工作内容</span>{{ it.intro }}</div> <div><span class="contentitemBF">工作内容</span>{{ it.intro }}</div>
</div> </div>
</template> </template>
<div class="contentitemTBook" v-else>未填写</div> <div class="contentitemTBook" v-else></div>
</div> </div>
<div class="contentitem"> <div class="contentitem">
<div class="contentitemT"> <div class="contentitemT">
@ -156,7 +163,7 @@
<div><span class="contentitemBF">专业</span>{{ it.major }}</div> <div><span class="contentitemBF">专业</span>{{ it.major }}</div>
</div> </div>
</template> </template>
<div class="contentitemTBook" v-else>未填写</div> <div class="contentitemTBook" v-else></div>
</div> </div>
<div class="contentitem"> <div class="contentitem">
<div class="contentitemT"> <div class="contentitemT">
@ -169,7 +176,7 @@
<div class="contentitemTBookitT"><span>证书名称</span>{{ it.fileName }}</div> <div class="contentitemTBookitT"><span>证书名称</span>{{ it.fileName }}</div>
</div> </div>
</div> </div>
<div class="contentitemTBook" v-else>未填写</div> <div class="contentitemTBook" v-else></div>
</div> </div>
</div> </div>
</div> </div>
@ -195,13 +202,16 @@ export default {
} }
}, },
computed: { computed: {
...mapGetters([ 'userinform']), ...mapGetters(['userinform']),
}, },
created() { created() {
this.getData() this.getData()
this.getTask() this.getTask()
}, },
methods: { methods: {
gotaskDetail(id) {
this.$router.push(`/crowdsourcing/crowddetails?id=${id}`)
},
tabfn(val) { tabfn(val) {
this.active = val this.active = val
if (val == 0) { if (val == 0) {
@ -252,8 +262,12 @@ export default {
</script> </script>
<style scoped> <style scoped>
.contentitemTBook {
margin-bottom: 20px;
}
.userpage { .userpage {
padding: 40px 0; padding: 40px 0;
min-height: 460px;
} }
.container { .container {
width: 1200px; width: 1200px;

@ -16,7 +16,7 @@
<p v-if="task.price == 0" style="color: #fd461a">面议</p> <p v-if="task.price == 0" style="color: #fd461a">面议</p>
<p v-else style="color: #fd461a">¥{{ task.price }}</p> <p v-else style="color: #fd461a">¥{{ task.price }}</p>
</div> </div>
<div style="display: flex"> <div style="display: flex; flex-warp: warp">
<div v-if="crowdtype == 'myApply'" class="tabone"> <div v-if="crowdtype == 'myApply'" class="tabone">
<span v-if="task.status == 0">待审核</span> <span v-if="task.status == 0">待审核</span>
<span v-if="task.status == 1">审核通过</span> <span v-if="task.status == 1">审核通过</span>
@ -28,6 +28,7 @@
<span v-if="task.task_status == 2">竞标失败</span> <span v-if="task.task_status == 2">竞标失败</span>
</div> </div>
<template v-if="crowdtype == 'myApply'"> <template v-if="crowdtype == 'myApply'">
<div <div
v-for="it in findLabelValueByProp( v-for="it in findLabelValueByProp(
@ -58,6 +59,11 @@
<span>{{ it }}</span> <span>{{ it }}</span>
</div> </div>
</template> </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> </div>
<div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0"></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-if="crowdtype == 'myApply'" style="margin-bottom: 10px">技能要求{{ task.techNeed }}</p>
<p v-else style="margin-bottom: 10px">技能要求{{ task.tech_need }}</p> <p v-else style="margin-bottom: 10px">技能要求{{ task.tech_need }}</p>
<p style="margin-bottom: 10px">地域要求{{ task.area }}</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-else style="margin-bottom: 10px">有效天数{{ task.valid_days }}</p>
<!-- <p v-if="crowdtype=='myApply'" style='margin-bottom:10px'>竞标者要求 <!-- <p v-if="crowdtype=='myApply'" style='margin-bottom:10px'>竞标者要求
<span v-if='task.applicantType==0'>个人测试者</span> <span v-if='task.applicantType==0'>个人测试者</span>
@ -125,22 +133,32 @@
<p v-else style="margin-left: 10px"></p> <p v-else style="margin-left: 10px"></p>
</div> </div>
<div
v-if="crowdtype != 'competitive'"
<div v-if="crowdtype != 'competitive'" style="display: flex; align-items: center; width: 150px; margin-top: 30px"> style="display: flex; align-items: center; width: 150px; margin-top: 30px"
>
<div class="dvied"></div> <div class="dvied"></div>
<div style="font-weight: bold; color: #333333; font-size: 17px; margin-left: 10px"> <div style="font-weight: bold; color: #333333; font-size: 17px; margin-left: 10px">
联系方式 联系方式
</div> </div>
</div> </div>
<div v-if="crowdtype != 'competitive'" style="display:flex;align-items:center;color: #808080; font-size: 24rpx; margin: 36rpx 25rpx 0 25rpx"> <div
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px"> 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> <span v-if="task && task.contactName">联系人{{ task.contactName }}</span>
</p> </p>
<p v-else style="margin-bottom: 10px"> <p v-else style="margin-bottom: 10px">
<span v-if="task && task.contact_name">联系人{{ task.contact_name }}</span> <span v-if="task && task.contact_name">联系人{{ task.contact_name }}</span>
</p> </p>
<p style="margin:0 60px">|</p> <p style="margin: 0 60px">|</p>
<p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px"> <p v-if="crowdtype == 'myApply'" style="margin-bottom: 10px">
<span v-if="task && task.contactTel">联系方式{{ task.contactTel }}</span> <span v-if="task && task.contactTel">联系方式{{ task.contactTel }}</span>
</p> </p>
@ -149,7 +167,6 @@
</p> </p>
</div> </div>
<div style="display: flex; align-items: center; width: 150px; margin-top: 30px"> <div style="display: flex; align-items: center; width: 150px; margin-top: 30px">
<div class="dvied"></div> <div class="dvied"></div>
<div style="font-weight: bold; color: #333333; font-size: 17px; margin-left: 10px">附件</div> <div style="font-weight: bold; color: #333333; font-size: 17px; margin-left: 10px">附件</div>
@ -243,7 +260,13 @@
<div style="display: flex; align-items: center; margin: -10px 0; position: relative"> <div style="display: flex; align-items: center; margin: -10px 0; position: relative">
<!-- <div class="dvied"></div> --> <!-- <div class="dvied"></div> -->
<div style="font-weight: bold; color: #333333; font-size: 18px">竞标者名单</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> </div>
<el-table v-loading="loading" :data="applicantdataList" border style="width: 100%; margin-top: 30px"> <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> <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
@ -259,12 +282,8 @@
</el-table-column> --> </el-table-column> -->
<el-table-column label="名称" align="center" key="nick_name" prop="nick_name"> <el-table-column label="名称" align="center" key="nick_name" prop="nick_name">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" @click="viewTesterDetail(scope.row)">
size="mini" {{ scope.row.nick_name }}
type="text"
@click="viewTesterDetail(scope.row)"
>
{{scope.row.nick_name}}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -297,19 +316,53 @@
style="padding: 0 12px; background: #11b7ed; border-color: #11b7ed" style="padding: 0 12px; background: #11b7ed; border-color: #11b7ed"
>待验收</el-tag >待验收</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
<el-tag v-else-if="scope.row.status == 5" type="success" effect="dark" size="small" style="padding: 0 12px">已完成</el-tag> v-else-if="scope.row.status == 4"
<el-tag v-else-if="scope.row.status == 6" type="danger" effect="dark" size="small" style="padding: 0 12px">验收不通过</el-tag> effect="dark"
<el-tag v-else type="danger" effect="dark" size="small" style="padding: 0 12px">竞标失败</el-tag> 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> </template>
</el-table-column> </el-table-column>
<el-table-column label="工作成果" v-if="userinform.companyStatus == 2" align="center" prop=""> <el-table-column label="工作成果" v-if="userinform.companyStatus == 2" align="center" prop="">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="260" v-if="userinform.companyStatus == 2"> <el-table-column
<template slot-scope="scope" > label="操作"
align="center"
class-name="small-padding fixed-width"
width="260"
v-if="userinform.companyStatus == 2"
>
<template slot-scope="scope">
<!-- <el-button <!-- <el-button
v-if="scope.row.user_id == userId || userinform.companyStatus == 2" v-if="scope.row.user_id == userId || userinform.companyStatus == 2"
size="mini" size="mini"
@ -330,14 +383,33 @@
选中 选中
</el-button> --> </el-button> -->
<el-checkbox v-if="scope.row.status == 0" v-model="scope.row.isFlag">选中</el-checkbox> <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
<el-button v-else-if="scope.row.status == 4" type="text" @click="goPay(scope.row)">支付佣金</el-button> v-else-if="scope.row.status == 3 || scope.row.status == 1"
<span v-else-if="scope.row.status == 5 && scope.row.reward">交易完成({{scope.row.reward}})</span> type="text"
<el-button v-else-if="scope.row.status == 6" style="color: #fe5555" type="text" @click="goNoPass(scope.row)" @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 >验收不通过</el-button
> >
<!-- is_comment 0未评价 1已评价 --> <!-- 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> </template>
</el-table-column> </el-table-column>
</el-table> </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> </div>
</template> </template>
@ -524,7 +596,7 @@ export default {
// } // }
}, },
methods: { methods: {
refreshFn(){ refreshFn() {
this.getData() this.getData()
}, },
// //
@ -575,7 +647,6 @@ export default {
this.$refs.payDialog.rowInfo = payload this.$refs.payDialog.rowInfo = payload
this.$refs.payDialog.taskId = this.task.task_id this.$refs.payDialog.taskId = this.task.task_id
this.$refs.payDialog.taskprice = this.task.price this.$refs.payDialog.taskprice = this.task.price
}, },
// //
goNoPass(payload) { goNoPass(payload) {
@ -584,9 +655,9 @@ export default {
}, },
// //
goreview(payload) { goreview(payload) {
this.$refs.reviewDialogVuer.dialogVisible = true this.$refs.reviewDialogVuer.dialogVisible = true
this.$refs.reviewDialogVuer.taskId = this.task.task_id this.$refs.reviewDialogVuer.taskId = this.task.task_id
this.$refs.reviewDialogVuer.appraisee = payload.user_id this.$refs.reviewDialogVuer.appraisee = payload.user_id
}, },
// //
choseUser() { choseUser() {
@ -595,7 +666,7 @@ export default {
if (choseList.length < needp) { if (choseList.length < needp) {
return this.$message.warning('您的选择小于需要人数') return this.$message.warning('您的选择小于需要人数')
} else if (choseList.length > needp) { } else if (choseList.length > needp) {
return this.$message.warning('您的选择大于需要人数') return this.$message.warning('您的选择大于需要人数')
} else { } else {
const data = { const data = {
taskId: this.task.task_id, taskId: this.task.task_id,
@ -651,7 +722,11 @@ export default {
// //
viewTesterDetail(row) { viewTesterDetail(row) {
// this.userId = userId; // 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() { publishTask() {
@ -776,14 +851,22 @@ export default {
} }
.tabone { .tabone {
/* padding:3px; */ /* padding:3px; */
padding: 0px 10px;
color: #ffffff; color: #ffffff;
background: #2286fa; background: #2286fa;
border-radius: 3px; border-radius: 3px;
text-align: center; text-align: center;
width: 75px; /* width: 75px; */
margin-right: 8px; margin-right: 8px;
line-height: 28px; line-height: 28px;
height: 28px; height: 28px;
font-size: 14px; font-size: 14px;
} }
.tabone1 {
background: #fcf0e6;
border-radius: 4px;
font-weight: 500;
font-size: 14px;
color: #554c42;
}
</style> </style>
Loading…
Cancel
Save