main
lijingyu007 10 months ago
parent 802c266226
commit e36c17b6e0
  1. 4
      src/main.js
  2. 19
      src/page/homepage/crowdsourcing/crowd.vue
  3. 46
      src/page/homepage/crowdsourcing/crowddetails.vue
  4. 44
      src/page/homepage/crowdsourcing/publishtasks.vue
  5. 32
      src/page/homepage/personability/abilityApply.vue
  6. 25
      src/page/homepage/tool/tooldetails.vue
  7. 27
      src/page/personalpage/home/resume.vue
  8. 307
      src/page/personalpage/testcrowd/myparticipate.vue

@ -23,8 +23,8 @@ Vue.use(VueClipboard);
// 全局禁止log日志 // 全局禁止log日志
console.log = function() { // console.log = function() {
}; // };
// xss攻击 // xss攻击

@ -119,8 +119,6 @@
@click="crowdinform(task.taskId)" @click="crowdinform(task.taskId)"
> >
<div style="width: 150px; display: flex; align-items: center"> <div style="width: 150px; display: flex; align-items: center">
<!-- <img style='width:119px;object-fit:contain' :src="task.icon?'https://www.keyitest.cn/'+task.icon.substr(task.icon.indexOf('g')):'/assets/home/picture.png'" alt=""> -->
<!-- <img style="width: 119px; object-fit: contain" :src="task.icon" alt="" /> -->
<img <img
v-if="task.testType.split(',')[0] == 'static'" v-if="task.testType.split(',')[0] == 'static'"
style="width: 97px; object-fit: contain" style="width: 97px; object-fit: contain"
@ -227,6 +225,12 @@
<!-- <div class="isBmjs" v-else>报名结束</div> --> <!-- <div class="isBmjs" v-else>报名结束</div> -->
</div> </div>
</div> </div>
<div class="cetype2">
语言要求
<div class="languageitem">
{{ task.language ? task.language : '无' }}
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -689,6 +693,17 @@ export default {
transform: scale(1.01); transform: scale(1.01);
box-shadow: 0px 2px 8px 0px #87898d; box-shadow: 0px 2px 8px 0px #87898d;
} }
.cetype2 {
font-size: 14px;
font-weight: 500;
color: #4d4d4d;
margin-top: -10px;
margin-bottom: 10px;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.cetype p, .cetype p,
.cetype div { .cetype div {
width: 200px; width: 200px;

@ -30,7 +30,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-wrap: wrap">
<div class="tabone"> <div class="tabone">
<span v-if="task.task_status == 0">竞标中</span> <span v-if="task.task_status == 0">竞标中</span>
<span v-if="task.task_status == 1">竞标成功</span> <span v-if="task.task_status == 1">竞标成功</span>
@ -45,10 +45,16 @@
).split(',')" ).split(',')"
:key="it" :key="it"
class="tabone" class="tabone"
style="width: 75px; background: #e8eef5; color: #525b65" style="background: #e8eef5; color: #525b65"
> >
<span>{{ it }}</span> <span>{{ it }}</span>
</div> </div>
<!-- 语言 -->
<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>
@ -249,7 +255,6 @@
暂无评分 暂无评分
</div> </div>
<div style="height: 20px"></div> <div style="height: 20px"></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>
@ -386,6 +391,7 @@ export default {
competitionEdge: [{ required: true, message: '请输入竞标优势', trigger: 'blur' }], competitionEdge: [{ required: true, message: '请输入竞标优势', trigger: 'blur' }],
}, },
userprogramme: {}, userprogramme: {},
baseurl: process.env.VUE_APP_BASE_TARGET,
} }
}, },
components: { components: {
@ -418,13 +424,13 @@ export default {
} }
// this.company = response.company; // this.company = response.company;
}) })
if (this.token) { // if (this.token) {
getInfo().then((res) => { // getInfo().then((res) => {
// console.log('',res) // // console.log('',res)
const user = res.user // const user = res.user
this.$store.commit('SET_USERINFORM', user) // this.$store.commit('SET_USERINFORM', user)
}) // })
} // }
// getApplicant(id).then(response => { // getApplicant(id).then(response => {
// console.log('',response) // console.log('',response)
// this.applicantdataList = response.data; // this.applicantdataList = response.data;
@ -487,7 +493,12 @@ export default {
}) })
} }
} else { } else {
return this.$message.warning('仅支持个人用户竞标报名') this.$confirm('未实名认证用户无法报名,请先去个人中心做实名认证', '提示', {
type: 'warning',
confirmButtonText: '去实名认证',
}).then(() => {
this.$router.push(`/console/profile`)
})
} }
}) })
@ -614,7 +625,7 @@ export default {
if (this.biddingobj.attachment.length == 0) { if (this.biddingobj.attachment.length == 0) {
attachment = '' attachment = ''
} else { } else {
attachment = 'https://www.keyitest.cn/prod-api' + this.biddingobj.attachment attachment = this.baseurl + this.biddingobj.attachment
} }
let data = { let data = {
taskId: this.task.task_id, taskId: this.task.task_id,
@ -673,17 +684,24 @@ export default {
cursor: pointer; cursor: pointer;
} }
.tabone { .tabone {
/* 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;
}
.dvied { .dvied {
width: 4px; width: 4px;
height: 18px; height: 18px;

@ -35,6 +35,22 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="语言" prop="language">
<!-- <el-input v-model="taskform.language" placeholder="请输入测试项目名称"></el-input> -->
<el-select
v-model="taskform.language"
multiple
placeholder="请选择语言"
filterable
allow-create
style="width: 726px"
>
<el-option label="python" value="python"></el-option>
<el-option label="java" value="java"></el-option>
<el-option label="C++" value="C++"></el-option>
</el-select>
</el-form-item>
<el-form-item label="任务名称" prop="projectName"> <el-form-item label="任务名称" prop="projectName">
<el-input v-model="taskform.projectName" placeholder="请输入测试项目名称"></el-input> <el-input v-model="taskform.projectName" placeholder="请输入测试项目名称"></el-input>
</el-form-item> </el-form-item>
@ -454,6 +470,7 @@ export default {
applicantType, applicantType,
onsiteType, onsiteType,
needPerson, needPerson,
language
} = task } = task
let imglist = [] let imglist = []
if (attachment) { if (attachment) {
@ -465,7 +482,11 @@ export default {
if (!price) { if (!price) {
this.mianyicheck = true this.mianyicheck = true
} }
if (language) {
language = language.split(',')
}
this.taskform = { this.taskform = {
language,
applyId, applyId,
projectName, projectName,
testType, testType,
@ -563,24 +584,6 @@ export default {
this.taskform.area = this.province this.taskform.area = this.province
} else this.taskform.area = '' } else this.taskform.area = ''
if (valid) { if (valid) {
// console.log('valid---',this.taskform)
// let attachment = ''
// if ((this.taskform.attachment, length > 0 && this.taskform.attachment[0].indexOf('http') == 0)) {
// // console.log('11111',)
// attachment = this.taskform.attachment[0]
// } else if (this.taskform.attachment.length == 0) {
// // console.log('22222',)
// attachment = ''
// } else {
// if (this.taskform.attachment[0].indexOf('apihttp') > 0) {
// // console.log('444',this.taskform.attachment[0])
// attachment = this.taskform.attachment[0].slice(32)
// } else {
// // console.log('555',)
// attachment = process.env.BASE_TARGET + this.taskform.attachment[0]
// }
// }
let attachment = '' let attachment = ''
if (this.taskform.attachment.length) { if (this.taskform.attachment.length) {
attachment = this.taskform.attachment attachment = this.taskform.attachment
@ -593,7 +596,12 @@ export default {
}) })
.join(',') .join(',')
} }
let language = ''
if (this.taskform.language.length) {
language = this.taskform.language.join(',')
}
let data = { let data = {
language,
applyId: this.taskform.applyId, applyId: this.taskform.applyId,
projectName: this.taskform.projectName, projectName: this.taskform.projectName,
testType: this.taskform.testType, testType: this.taskform.testType,

@ -298,12 +298,32 @@
></v-distpicker> ></v-distpicker>
</el-form-item> </el-form-item>
<el-form-item label="技能方向" prop="testSkills"> <el-form-item label="技能方向" prop="testSkills">
<el-input <!-- <el-input
v-model="userForm.testSkills" v-model="userForm.testSkills"
placeholder="请输入技能,如:测试工程师" placeholder="请输入技能,如:测试工程师"
:disabled="active == 6 ? true : false" :disabled="active == 6 ? true : false"
></el-input> -->
<el-select
v-model="userForm.testSkills"
placeholder="请选择技能方向"
:disabled="active == 6 ? true : false"
@change="testSkillChange"
>
<el-option label="java" value="java"> </el-option>
<el-option label="python" value="python"> </el-option>
<el-option label="c++" value="c++"> </el-option>
<el-option label="其他" value="其他"> </el-option>
</el-select>
<br />
<el-input
style="margin-top: 10px"
v-show="userForm.testSkills == '其他'"
v-model="testSkillValue"
placeholder="请输入技能方向,如:测试工程师"
:disabled="active == 6 ? true : false"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="个人优势" prop="personalAdvantage"> <el-form-item label="个人优势" prop="personalAdvantage">
<el-input <el-input
type="textarea" type="textarea"
@ -469,6 +489,7 @@ export default {
components: { imageUpload }, components: { imageUpload },
data() { data() {
return { return {
testSkillValue: '',
iseditfirst: true, iseditfirst: true,
active: 0, active: 0,
// //
@ -564,6 +585,13 @@ export default {
this.getCloudAllList() this.getCloudAllList()
}, },
methods: { methods: {
//
testSkillChange(e) {
this.testSkillValue = ''
// if (e == '') {
// this.testSkillValue = ''
// }
},
// //
goedit() { goedit() {
this.userForm.status = null this.userForm.status = null
@ -597,6 +625,7 @@ export default {
// //
if (res.personalInfo) { if (res.personalInfo) {
this.userForm = res.personalInfo this.userForm = res.personalInfo
// this.testSkillValue = res.personalInfo.testSkills
if (this.city) { if (this.city) {
this.province = this.userForm.city.split('-')[0] this.province = this.userForm.city.split('-')[0]
this.city = this.userForm.city.split('-')[1] this.city = this.userForm.city.split('-')[1]
@ -813,6 +842,7 @@ export default {
if (this.userForm.city.indexOf('--- 市 ---') != -1) { if (this.userForm.city.indexOf('--- 市 ---') != -1) {
return this.$message.warning('请选择市') return this.$message.warning('请选择市')
} }
this.userForm.testSkills = this.testSkillValue ? this.testSkillValue : this.userForm.testSkills
couldUserInfoAdd(this.userForm).then((res) => { couldUserInfoAdd(this.userForm).then((res) => {
this.$message.success('保存个人简介成功') this.$message.success('保存个人简介成功')
this.getCloudAllList1() this.getCloudAllList1()

@ -511,27 +511,7 @@ export default {
}) })
.catch((err) => {}) .catch((err) => {})
}, },
switchTool(row) {
getTool(row.toolId).then((response) => {
this.tool = response.tool
this.tool.amount = 1
this.images = response.fileInfoList
for (let index in this.images) {
if (this.images[index].fileType == 'head') this.icon = this.images[index]
else if (this.images[index].fileType == 'detail') {
this.detailImages.push(this.images[index])
} else if (this.images[index].fileType == 'package') {
this.packageUrl = this.images[index].fileId
} else if (this.images[index].fileType == 'readme') {
this.readmeUrl = this.images[index].fileId
}
}
this.functions = response.functionList.filter((item) => item.funType == 0)
this.highlights = response.functionList.filter((item) => item.funType == 1)
})
},
// //
warnBuy() { warnBuy() {
@ -1036,9 +1016,10 @@ export default {
text-align: center; text-align: center;
} }
.cpldBoxCon { .cpldBoxCon {
display: flex; display: grid;
grid-template-columns: 280px 280px 280px 280px;
justify-content: space-between; justify-content: space-between;
flex-wrap: wrap; /* flex-wrap: wrap; */
} }
.cpldBoxConitem { .cpldBoxConitem {
width: 280px; width: 280px;

@ -35,9 +35,28 @@
></v-distpicker> ></v-distpicker>
</el-form-item> </el-form-item>
<el-form-item label="技能方向" prop="testSkills"> <el-form-item label="技能方向" prop="testSkills">
<el-input <!-- <el-input
v-model="userForm.testSkills" v-model="userForm.testSkills"
placeholder="请输入技能,如:测试工程师" placeholder="请输入技能,如:测试工程师"
></el-input> -->
<el-select
v-model="userForm.testSkills"
placeholder="请选择技能方向"
:disabled="active == 6 ? true : false"
@change="testSkillChange"
>
<el-option label="java" value="java"> </el-option>
<el-option label="python" value="python"> </el-option>
<el-option label="c++" value="c++"> </el-option>
<el-option label="其他" value="其他"> </el-option>
</el-select>
<br />
<el-input
style="margin-top: 10px"
v-show="userForm.testSkills == '其他'"
v-model="testSkillValue"
placeholder="请输入技能方向,如:测试工程师"
:disabled="active == 6 ? true : false"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="个人优势" prop="personalAdvantage"> <el-form-item label="个人优势" prop="personalAdvantage">
@ -302,6 +321,7 @@ export default {
components: { imageUpload }, components: { imageUpload },
data() { data() {
return { return {
testSkillValue: '',
active: 0, active: 0,
// //
certifform: {}, certifform: {},
@ -395,6 +415,9 @@ export default {
this.getCloudAllList() this.getCloudAllList()
}, },
methods: { methods: {
testSkillChange(e) {
this.testSkillValue = ''
},
// //
saveInfo() { saveInfo() {
if (this.userForm.status == 1) return this.$message.warning('正在审核,请勿重复提交') if (this.userForm.status == 1) return this.$message.warning('正在审核,请勿重复提交')
@ -429,7 +452,6 @@ export default {
// 1 2 0 // 1 2 0
// //
this.certificateList = res.credentials.map((it) => { this.certificateList = res.credentials.map((it) => {
return { return {
@ -616,6 +638,7 @@ export default {
if (this.userForm.city.indexOf('--- 市 ---') != -1) { if (this.userForm.city.indexOf('--- 市 ---') != -1) {
return this.$message.warning('请选择市') return this.$message.warning('请选择市')
} }
this.userForm.testSkills = this.testSkillValue ? this.testSkillValue : this.userForm.testSkills
couldUserInfoAdd(this.userForm).then((res) => { couldUserInfoAdd(this.userForm).then((res) => {
this.$message.success('保存个人简介成功') this.$message.success('保存个人简介成功')
}) })

@ -4,7 +4,7 @@
<div class="dvied"></div> <div class="dvied"></div>
<div style="font-weight: bold;color: #333333;font-size: 18px;margin-left:10px">我的众包</div> <div style="font-weight: bold;color: #333333;font-size: 18px;margin-left:10px">我的众包</div>
</div> --> </div> -->
<div style="background:#FFFFFF;border-radius:4px;"> <div style="background: #ffffff; border-radius: 4px">
<div class="crowdnum"> <div class="crowdnum">
<el-tabs v-model="crowdmol" type="border-card" @tab-click="handleClick"> <el-tabs v-model="crowdmol" type="border-card" @tab-click="handleClick">
<el-tab-pane label="竞标中" name="competitive"></el-tab-pane> <el-tab-pane label="竞标中" name="competitive"></el-tab-pane>
@ -44,7 +44,7 @@
</el-radio-button> </el-radio-button>
</el-radio-group> --> </el-radio-group> -->
<el-table v-loading='loading' :data="crowdData" style="margin-top:30px" > <el-table v-loading="loading" :data="crowdData" style="margin-top: 30px">
<el-table-column label="序号" width="100px" align="center"> <el-table-column label="序号" width="100px" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
@ -56,105 +56,191 @@
<span v-if="scope.row.create_time">{{ scope.row.create_time.slice(0, 10) }}</span> <span v-if="scope.row.create_time">{{ scope.row.create_time.slice(0, 10) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="项目名称" align="center" key="project_name" prop="project_name" :show-overflow-tooltip="true" width="220px"/> <el-table-column
label="项目名称"
align="center"
key="project_name"
prop="project_name"
:show-overflow-tooltip="true"
width="220px"
/>
<el-table-column label="金额" align="center" key="price" prop="price" :show-overflow-tooltip="true"> <el-table-column label="金额" align="center" key="price" prop="price" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.price == 0">面议</span> <span v-if="scope.row.price == 0">面议</span>
<span v-else>{{ scope.row.price }}</span> <span v-else>{{ scope.row.price }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="任务类型" align="center" key="test_type" prop="test_type" :show-overflow-tooltip="true"> <el-table-column
label="任务类型"
align="center"
key="test_type"
prop="test_type"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{findLabelValueByProp(tasktypelist,scope.row.test_type,'dictValue', 'dictLabel')}}</span> <span>{{
findLabelValueByProp(tasktypelist, scope.row.test_type, 'dictValue', 'dictLabel')
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="项目工期" align="center" key="period" prop="period" :show-overflow-tooltip="true"> <el-table-column
label="项目工期"
align="center"
key="period"
prop="period"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.period }}</span> <span>{{ scope.row.period }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="技能要求" align="center" key="tech_need" prop="tech_need" :show-overflow-tooltip="true" /> <el-table-column
<el-table-column label="任务状态" align="center" key="1" prop="process_status" :show-overflow-tooltip="true"> label="技能要求"
align="center"
key="tech_need"
prop="tech_need"
:show-overflow-tooltip="true"
/>
<el-table-column
label="任务状态"
align="center"
key="1"
prop="process_status"
:show-overflow-tooltip="true"
>
<!-- <el-table-column :label="crowdmol=='complete'?'状态':'审核状态'" align="center" key="1" prop="process_status" :show-overflow-tooltip="true"> --> <!-- <el-table-column :label="crowdmol=='complete'?'状态':'审核状态'" align="center" key="1" prop="process_status" :show-overflow-tooltip="true"> -->
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="crowdmol == 'competitive'"> <div v-if="crowdmol == 'competitive'">
<el-tag type="warning" effect="dark" size="small" style="width:68px;padding-left: 12px;padding-right: 12px;cursor:pointer">竞标中</el-tag> <el-tag
type="warning"
effect="dark"
size="small"
style="width: 68px; padding-left: 12px; padding-right: 12px; cursor: pointer"
>竞标中</el-tag
>
</div> </div>
<div v-if="crowdmol == 'effect'"> <div v-if="crowdmol == 'effect'">
<el-tag v-if="scope.row.status == 1" type="primary" effect="dark" size="small" style="cursor:pointer">实施中</el-tag> <el-tag
<el-tag v-if="scope.row.status == 3" type="danger" effect="dark" size="small" style="cursor:pointer">待验收</el-tag> v-if="scope.row.status == 1"
<el-tag v-if="scope.row.status == 4" type="warning" effect="dark" size="small" style="cursor:pointer">待付款</el-tag> type="primary"
effect="dark"
size="small"
style="cursor: pointer"
>实施中</el-tag
>
<el-tag
v-if="scope.row.status == 3"
type="danger"
effect="dark"
size="small"
style="cursor: pointer"
>待验收</el-tag
>
<el-tag
v-if="scope.row.status == 4"
type="warning"
effect="dark"
size="small"
style="cursor: pointer"
>待付款</el-tag
>
</div> </div>
<div v-if="crowdmol == 'complete'"> <div v-if="crowdmol == 'complete'">
<!-- <el-tag v-if="scope.row.task_status == 1 && scope.row.process_status == 4" type="danger" effect="dark" size="small" style="cursor:pointer">竞标失败</el-tag> <el-tag
<el-tag v-else-if="scope.row.task_status == 2" type="success" effect="dark" size="small" style="cursor:pointer">已完成</el-tag> --> v-if="scope.row.status == 5"
<el-tag v-if="scope.row.status == 5" type="success" effect="dark" size="small" style="cursor:pointer">已完成</el-tag> type="success"
<el-tag v-if="scope.row.status == 2" type="danger" effect="dark" size="small" style="cursor:pointer">竞标失败</el-tag> effect="dark"
<el-tag v-if="scope.row.status == 6" type="danger" effect="dark" size="small" style="cursor:pointer">验收不通过</el-tag> size="small"
style="cursor: pointer"
>已完成</el-tag
>
<el-tag
v-if="scope.row.status == 2"
type="danger"
effect="dark"
size="small"
style="cursor: pointer"
>竞标失败</el-tag
>
<el-tag
v-if="scope.row.status == 6"
type="danger"
effect="dark"
size="small"
style="cursor: pointer"
>验收不通过</el-tag
>
</div> </div>
<!-- <el-tag v-if="scope.row.process_status == 0" type="warning" effect="dark" size="small" style="width:68px;padding-left: 12px;padding-right: 12px;cursor:pointer">竞标中</el-tag>
<el-tag v-else-if="scope.row.process_status == 2" type="danger" effect="dark" size="small" style="cursor:pointer">待验收</el-tag>
<el-tag v-else-if="scope.row.process_status == 3" type="warning" effect="dark" size="small" style="cursor:pointer">待付款</el-tag>
<el-tag v-else-if="scope.row.process_status == 4" type="success" effect="dark" size="small" style="cursor:pointer">已完成</el-tag>
<div v-else-if="scope.row.process_status == 1" >
<el-tag v-if="scope.row.status == 2" type="danger" effect="dark" size="small" style="cursor:pointer">竞标失败</el-tag>
<el-tag v-else type="primary" effect="dark" size="small" style="cursor:pointer">实施中</el-tag>
</div> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220px"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220px">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit" <router-link
v-if="(crowdmol=='complete' && scope.row.status==2) ||((crowdmol=='effect') && (scope.row.process_status==4 || scope.row.process_status==5 || scope.row.process_status==6 ||scope.row.process_status == 7))" :to="{
@click="publishTask(scope.row)" >重新发布 path: '/console/currentcrowd',
</el-button> --> query: { id: scope.row.task_id, type: 'competitive' },
<!-- <router-link v-if="crowdmol=='complete'" :to="{path:'/console/currentcrowd',query:{id:scope.row.applyId,type:crowdmol}}" class="link-type"> }"
<el-button size="mini" type="text" icon="el-icon-key" >查看详情 class="link-type"
</el-button> >
</router-link> --> <el-button size="mini" type="text" icon="el-icon-key">查看详情 </el-button>
<router-link :to="{path:'/console/currentcrowd',query:{id:scope.row.task_id,type:'competitive'}}" class="link-type">
<el-button size="mini" type="text" icon="el-icon-key" >查看详情
</el-button>
</router-link> </router-link>
<el-button style="margin-left: 10px;" @click="openvidib(scope.row)" v-if="crowdmol=='effect'&&scope.row.status==1" size="mini" type="text" icon="el-icon-upload2"> <el-button
style="margin-left: 10px"
@click="openvidib(scope.row)"
v-if="crowdmol == 'effect' && scope.row.status == 1"
size="mini"
type="text"
icon="el-icon-upload2"
>
上传实施结果 上传实施结果
</el-button> </el-button>
<el-button style="margin-left: 10px;" @click="goReview(scope.row)" v-if="scope.row.status == 5 && scope.row.is_comment == 0" size="mini" type="text"> <el-button
去评价 style="margin-left: 10px"
v-if="crowdmol == 'effect' && scope.row.status == 3"
size="mini"
type="text"
icon="el-icon-upload2"
@click="openvidib(scope.row)"
>
覆盖实施结果
</el-button> </el-button>
<!-- <router-link v-if="crowdmol=='tobeExpired' || crowdmol=='allTask'" :to="{path:'/console/currentcrowd',query:{id:scope.row.applyId,type:crowdmol}}" class="link-type"> <el-button
<el-button size="mini" type="text" icon="el-icon-key" >查看详情 style="margin-left: 10px"
@click="goReview(scope.row)"
v-if="scope.row.status == 5 && scope.row.is_comment == 0"
size="mini"
type="text"
>
去评价
</el-button> </el-button>
</router-link> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div v-if="crowdData.length>10" style='width:100%;margin-top:30px;text-align: center;'>
<el-pagination background <el-dialog
@current-change="handleCurrentChange" title="上传实施结果"
:page-size="queryParams.pageSize" :visible.sync="resultOpen"
layout="total, prev, pager, next, jumper" width="600px"
:total="crowdData.length"> :close-on-click-modal="false"
</el-pagination> append-to-body
</div> --> class="tooldialog"
<el-dialog title="上传实施结果" :visible.sync="resultOpen" width="600px" :close-on-click-modal="false" append-to-body class="tooldialog" @close="closecwc"> @close="closecwc"
>
<el-divider style="margin-bottom: 10px"></el-divider> <el-divider style="margin-bottom: 10px"></el-divider>
<!--<div style="display:flex;margin-left:30px;">
<p style="font-weight:bold;margin-right:20px;color:#333333;">工具名称</p>
<p>{{currentToolName}}</p>
</div>
<div style="display:flex;margin-left:30px;">
<p style="font-weight:bold;margin-right:20px;color:#333333;">任务名称</p>
<p>{{currentTaskName}}</p>
</div> -->
<div style="text-align: left; margin-top: 20px"> <div style="text-align: left; margin-top: 20px">
<!-- @click="downloadFile(downloadUrl)" <el-button icon='el-icon-upload2' style="background: #0066EB;color:#FFFFFF">上传</el-button> --> <nonimage-upload
<nonimage-upload ref="nonimage" v-model="resultAttach" imageType="pdf|doc|docx|zip|rar" :serverAddr="materialServerAddr" fileName="实施结果" :limit="1" @setImgPath='setImgPath'/> ref="nonimage"
v-model="resultAttach"
imageType="pdf|doc|docx|zip|rar"
:serverAddr="materialServerAddr"
fileName="实施结果"
:limit="1"
@setImgPath="setImgPath"
/>
</div> </div>
<div style="text-align: center; margin-top: 20px"> <div style="text-align: center; margin-top: 20px">
<el-button @click="querepeo" style="background: #0066EB;color:#FFFFFF">确定</el-button> <el-button @click="querepeo" style="background: #0066eb; color: #ffffff">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -165,18 +251,18 @@
</div> </div>
</template> </template>
<script> <script>
import {crowdlist,homecrowdlist,myClaim, myApply, myPublish,reportTester} from "@/api/crowdsource/crowdsource"; import { crowdlist, homecrowdlist, myClaim, myApply, myPublish, reportTester } from '@/api/crowdsource/crowdsource'
import {applicantlist,onsiteTypelist,processStatuslist} from "@/const/dict/commondict"; import { applicantlist, onsiteTypelist, processStatuslist } from '@/const/dict/commondict'
import {findByvalue, findLabelValueByProp} from "@/util/util"; import { findByvalue, findLabelValueByProp } from '@/util/util'
import {mapGetters} from "vuex"; import { mapGetters } from 'vuex'
import NonimageUpload from "@/page/common/NonimageUpload"; import NonimageUpload from '@/page/common/NonimageUpload'
import mixin from '@/mixin/index.js' import mixin from '@/mixin/index.js'
import reviewDialogVue from '@/page/common/reviewDialog.vue' import reviewDialogVue from '@/page/common/reviewDialog.vue'
export default { export default {
mixins: [mixin], mixins: [mixin],
components: { components: {
NonimageUpload, NonimageUpload,
reviewDialogVue reviewDialogVue,
}, },
data() { data() {
return { return {
@ -194,16 +280,16 @@
pageNum: 1, pageNum: 1,
pageSize: 999, pageSize: 999,
taskStatus: undefined, taskStatus: undefined,
processStatus:undefined processStatus: undefined,
}, },
resultAttach: [], // resultAttach: [], //
materialServerAddr: "", materialServerAddr: '',
currentask: '', currentask: '',
basetarget: process.env.VUE_APP_BASE_TARGET, basetarget: process.env.VUE_APP_BASE_TARGET,
} }
}, },
computed: { computed: {
...mapGetters(['testtypelist','feescopelist','companyStatus','testerStatus','userinform']) ...mapGetters(['testtypelist', 'feescopelist', 'companyStatus', 'testerStatus', 'userinform']),
}, },
mounted() { mounted() {
this.showDataTypeChage('competitive') this.showDataTypeChage('competitive')
@ -222,13 +308,13 @@
findLabelValueByProp, findLabelValueByProp,
// //
listcompetitive() { listcompetitive() {
this.loading = true; this.loading = true
myClaim(this.queryParams,this.userinform.userId).then(response => { myClaim(this.queryParams, this.userinform.userId).then((response) => {
this.allcrowdlist = response.rows; this.allcrowdlist = response.rows
this.crowdData=this.allcrowdlist.filter(item=>item.status==0); this.crowdData = this.allcrowdlist.filter((item) => item.status == 0)
this.total = this.crowdData.length; this.total = this.crowdData.length
// this.total = response.total ; // this.total = response.total ;
this.loading = false; this.loading = false
}) })
}, },
handleClick(tab) { handleClick(tab) {
@ -236,19 +322,19 @@
}, },
showDataTypeChage(val) { showDataTypeChage(val) {
if (val == 'competitive') { if (val == 'competitive') {
this.listcompetitive(); this.listcompetitive()
} } else if (val == 'effect') {
else if (val == 'effect'){
// this.crowdData=this.allcrowdlist.filter(item=>(item.process_status==1||item.process_status==2||item.process_status==3)&&item.status==1); // this.crowdData=this.allcrowdlist.filter(item=>(item.process_status==1||item.process_status==2||item.process_status==3)&&item.status==1);
this.crowdData=this.allcrowdlist.filter(item=>(item.status == 1 ||item.status == 3 ||item.status == 4)) this.crowdData = this.allcrowdlist.filter(
} (item) => item.status == 1 || item.status == 3 || item.status == 4,
else if (val == 'complete'){ )
this.crowdData=this.allcrowdlist.filter(item=>item.status==2 ||item.status==5||item.status==6); } else if (val == 'complete') {
} this.crowdData = this.allcrowdlist.filter(
else if (val == 'tobeExpired'){ (item) => item.status == 2 || item.status == 5 || item.status == 6,
)
} else if (val == 'tobeExpired') {
// this.listTobeExpired(); // this.listTobeExpired();
} } else if (val == 'allTask') {
else if (val == 'allTask'){
// this.listAllTask(); // this.listAllTask();
} }
}, },
@ -263,7 +349,7 @@
}, },
// //
handleCurrentChange(val) { handleCurrentChange(val) {
this.queryParams.pageNum=val; this.queryParams.pageNum = val
this.showDataTypeChage(this.crowdmol) this.showDataTypeChage(this.crowdmol)
}, },
closecwc() { closecwc() {
@ -277,7 +363,7 @@
// this.$message.warning('') // this.$message.warning('')
// return; // return;
// } // }
let path=''; let path = ''
if (this.resultAttach.length > 0) { if (this.resultAttach.length > 0) {
path = this.basetarget + this.resultAttach path = this.basetarget + this.resultAttach
} else { } else {
@ -290,37 +376,36 @@
path, path,
} }
// return; // return;
reportTester(data).then(res=>{ reportTester(data).then((res) => {
this.$refs.nonimage.fileList = [] this.$refs.nonimage.fileList = []
this.resultAttach = [] this.resultAttach = []
this.resultOpen = false this.resultOpen = false
this.$message.success('实施结果上传成功') this.$message.success('实施结果上传成功')
myClaim(this.queryParams,this.userinform.userId).then(response => { myClaim(this.queryParams, this.userinform.userId).then((response) => {
this.allcrowdlist = response.rows; this.allcrowdlist = response.rows
this.crowdData=this.allcrowdlist.filter(item=>(item.status == 1 ||item.status == 3 ||item.status == 4)); this.crowdData = this.allcrowdlist.filter(
this.total = response.total; (item) => item.status == 1 || item.status == 3 || item.status == 4,
this.loading = false; )
this.total = response.total
this.loading = false
}) })
this.showDataTypeChage('effect') this.showDataTypeChage('effect')
}) })
} },
} },
} }
</script> </script>
<style scoped> <style scoped>
.dvied { .dvied {
width: 4px; width: 4px;
height: 18px; height: 18px;
background: #0066EB; background: #0066eb;
} }
.crowdnum >>> .el-radio-button__inner { .crowdnum >>> .el-radio-button__inner {
background: #ebebed; background: #ebebed;
border: none; border: none;
margin-right: 20px; margin-right: 20px;
color: #4D4D4D; color: #4d4d4d;
display: flex; display: flex;
align-items: center; align-items: center;
/* font-weight:bold; */ /* font-weight:bold; */
@ -332,25 +417,25 @@
border-radius: 0; border-radius: 0;
} }
.crowdnum >>> .el-table th { .crowdnum >>> .el-table th {
background-color:#F7F7F7; background-color: #f7f7f7;
color: #666666; color: #666666;
text-align: center; text-align: center;
} }
.crowdnum >>> .el-table td { .crowdnum >>> .el-table td {
/* text-align:center; */ /* text-align:center; */
background-color:#FFFFFF; background-color: #ffffff;
height: 60px; height: 60px;
color: #333333; color: #333333;
} }
.crowdnum >>> .el-table--border th { .crowdnum >>> .el-table--border th {
border-right:#F7F7F7 border-right: #f7f7f7;
} }
.tooldialog >>> .el-divider--horizontal { .tooldialog >>> .el-divider--horizontal {
margin: -20px 0 10px 0; margin: -20px 0 10px 0;
} }
.tooldialog >>> .el-dialog__title { .tooldialog >>> .el-dialog__title {
font-weight: bold; font-weight: bold;
color: #0969bd color: #0969bd;
} }
.crowdnum >>> .el-tabs--border-card { .crowdnum >>> .el-tabs--border-card {
background: transparent; background: transparent;
@ -359,10 +444,10 @@
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item { .crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item {
border: none; border: none;
color:#1A1A1A; color: #1a1a1a;
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { .crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
color: #0066EB; color: #0066eb;
/* font-size: 16px; */ /* font-size: 16px; */
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__content { .crowdnum >>> .el-tabs--border-card > .el-tabs__content {
@ -371,7 +456,7 @@
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__header { .crowdnum >>> .el-tabs--border-card > .el-tabs__header {
border: none; border: none;
background-color:#F7F7F7; background-color: #f7f7f7;
/* color:#1A1A1A */ /* color:#1A1A1A */
} }
.crowdnum >>> .el-tabs__item { .crowdnum >>> .el-tabs__item {

Loading…
Cancel
Save