main
lijingyu007 7 months ago
parent 802c266226
commit e36c17b6e0
  1. 4
      src/main.js
  2. 23
      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. 33
      src/page/personalpage/home/resume.vue
  8. 651
      src/page/personalpage/testcrowd/myparticipate.vue

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

@ -10,7 +10,7 @@
src="/assets/home/zhbao1.png"
alt=""
/>
<div class="topnavbar">
<div class="topnavbarcon">
<div class="topnavbarconit">
@ -119,8 +119,6 @@
@click="crowdinform(task.taskId)"
>
<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
v-if="task.testType.split(',')[0] == 'static'"
style="width: 97px; object-fit: contain"
@ -227,6 +225,12 @@
<!-- <div class="isBmjs" v-else>报名结束</div> -->
</div>
</div>
<div class="cetype2">
语言要求
<div class="languageitem">
{{ task.language ? task.language : '无' }}
</div>
</div>
</div>
</div>
</div>
@ -528,7 +532,7 @@ export default {
border-bottom: 1px solid #dcdfe6;
}
.topnavbarconitno {
border-bottom: unset;
border-bottom: unset;
}
.topnavbarconitL {
width: 85px;
@ -689,6 +693,17 @@ export default {
transform: scale(1.01);
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 div {
width: 200px;

@ -30,7 +30,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-wrap: wrap">
<div class="tabone">
<span v-if="task.task_status == 0">竞标中</span>
<span v-if="task.task_status == 1">竞标成功</span>
@ -45,10 +45,16 @@
).split(',')"
:key="it"
class="tabone"
style="width: 75px; background: #e8eef5; color: #525b65"
style="background: #e8eef5; color: #525b65"
>
<span>{{ it }}</span>
</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 style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0"></div>
@ -249,7 +255,6 @@
暂无评分
</div>
<div style="height: 20px"></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' }],
},
userprogramme: {},
baseurl: process.env.VUE_APP_BASE_TARGET,
}
},
components: {
@ -418,13 +424,13 @@ export default {
}
// this.company = response.company;
})
if (this.token) {
getInfo().then((res) => {
// console.log('',res)
const user = res.user
this.$store.commit('SET_USERINFORM', user)
})
}
// if (this.token) {
// getInfo().then((res) => {
// // console.log('',res)
// const user = res.user
// this.$store.commit('SET_USERINFORM', user)
// })
// }
// getApplicant(id).then(response => {
// console.log('',response)
// this.applicantdataList = response.data;
@ -487,7 +493,12 @@ export default {
})
}
} 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) {
attachment = ''
} else {
attachment = 'https://www.keyitest.cn/prod-api' + this.biddingobj.attachment
attachment = this.baseurl + this.biddingobj.attachment
}
let data = {
taskId: this.task.task_id,
@ -673,17 +684,24 @@ export default {
cursor: pointer;
}
.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;
}
.dvied {
width: 4px;
height: 18px;

@ -35,6 +35,22 @@
/>
</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-input v-model="taskform.projectName" placeholder="请输入测试项目名称"></el-input>
</el-form-item>
@ -454,6 +470,7 @@ export default {
applicantType,
onsiteType,
needPerson,
language
} = task
let imglist = []
if (attachment) {
@ -465,7 +482,11 @@ export default {
if (!price) {
this.mianyicheck = true
}
if (language) {
language = language.split(',')
}
this.taskform = {
language,
applyId,
projectName,
testType,
@ -563,24 +584,6 @@ export default {
this.taskform.area = this.province
} else this.taskform.area = ''
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 = ''
if (this.taskform.attachment.length) {
attachment = this.taskform.attachment
@ -593,7 +596,12 @@ export default {
})
.join(',')
}
let language = ''
if (this.taskform.language.length) {
language = this.taskform.language.join(',')
}
let data = {
language,
applyId: this.taskform.applyId,
projectName: this.taskform.projectName,
testType: this.taskform.testType,

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

@ -511,27 +511,7 @@ export default {
})
.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() {
@ -1036,9 +1016,10 @@ export default {
text-align: center;
}
.cpldBoxCon {
display: flex;
display: grid;
grid-template-columns: 280px 280px 280px 280px;
justify-content: space-between;
flex-wrap: wrap;
/* flex-wrap: wrap; */
}
.cpldBoxConitem {
width: 280px;

@ -17,10 +17,10 @@
<el-form :rules="userRules" :model="userForm" label-width="80px" ref="userRef">
<div class="flexbox">
<el-form-item label="姓名: ">
<span>{{userForm.name}}</span>
<span>{{ userForm.name }}</span>
</el-form-item>
<el-form-item label="性别: " style="margin-left: 40px">
<span>{{userForm.sex}}</span>
<span>{{ userForm.sex }}</span>
</el-form-item>
</div>
<el-form-item label="所在城市" prop="city">
@ -35,9 +35,28 @@
></v-distpicker>
</el-form-item>
<el-form-item label="技能方向" prop="testSkills">
<el-input
<!-- <el-input
v-model="userForm.testSkills"
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-form-item>
<el-form-item label="个人优势" prop="personalAdvantage">
@ -302,6 +321,7 @@ export default {
components: { imageUpload },
data() {
return {
testSkillValue: '',
active: 0,
//
certifform: {},
@ -389,12 +409,15 @@ export default {
},
},
computed: {
...mapGetters(['userinform','userId', 'token']),
...mapGetters(['userinform', 'userId', 'token']),
},
created() {
this.getCloudAllList()
},
methods: {
testSkillChange(e) {
this.testSkillValue = ''
},
//
saveInfo() {
if (this.userForm.status == 1) return this.$message.warning('正在审核,请勿重复提交')
@ -428,7 +451,6 @@ export default {
}
// 1 2 0
//
this.certificateList = res.credentials.map((it) => {
@ -616,6 +638,7 @@ export default {
if (this.userForm.city.indexOf('--- 市 ---') != -1) {
return this.$message.warning('请选择市')
}
this.userForm.testSkills = this.testSkillValue ? this.testSkillValue : this.userForm.testSkills
couldUserInfoAdd(this.userForm).then((res) => {
this.$message.success('保存个人简介成功')
})

@ -1,10 +1,10 @@
<template>
<div style="padding-bottom:50px">
<div style="padding-bottom: 50px">
<!-- <div style="display:flex;align-items:center">
<div class="dvied"></div>
<div style="font-weight: bold;color: #333333;font-size: 18px;margin-left:10px">我的众包</div>
</div> -->
<div style="background:#FFFFFF;border-radius:4px;">
<div style="background: #ffffff; border-radius: 4px">
<div class="crowdnum">
<el-tabs v-model="crowdmol" type="border-card" @tab-click="handleClick">
<el-tab-pane label="竞标中" name="competitive"></el-tab-pane>
@ -44,338 +44,423 @@
</el-radio-button>
</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">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<!-- <el-table-column label="任务ID" width="90" align="center" key="task_id" prop="task_id"/> -->
<el-table-column label="竞标时间" align="center" key="create_time" prop="create_time" >
<el-table-column label="竞标时间" align="center" key="create_time" prop="create_time">
<template slot-scope="scope">
<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>
</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="price" prop="price" :show-overflow-tooltip="true">
<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">
<template slot-scope="scope">
<span v-if="scope.row.price == 0">面议</span>
<span v-else>{{scope.row.price}}</span>
<span v-else>{{ scope.row.price }}</span>
</template>
</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">
<span>{{findLabelValueByProp(tasktypelist,scope.row.test_type,'dictValue', 'dictLabel')}}</span>
<span>{{
findLabelValueByProp(tasktypelist, scope.row.test_type, 'dictValue', 'dictLabel')
}}</span>
</template>
</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">
<span>{{scope.row.period}}</span>
<span>{{ scope.row.period }}</span>
</template>
</el-table-column>
<el-table-column 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="技能要求"
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"> -->
<template slot-scope="scope">
<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>
<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
>
</div>
<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 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 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
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 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 v-else-if="scope.row.task_status == 2" type="success" effect="dark" size="small" style="cursor:pointer">已完成</el-tag> -->
<el-tag v-if="scope.row.status == 5" type="success" effect="dark" 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 v-if="crowdmol == 'complete'">
<el-tag
v-if="scope.row.status == 5"
type="success"
effect="dark"
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>
<!-- <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>
</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">
<!-- <el-button size="mini" type="text" icon="el-icon-edit"
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))"
@click="publishTask(scope.row)" >重新发布
</el-button> -->
<!-- <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" >查看详情
</el-button>
</router-link> -->
<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
: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>
<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 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
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>
<!-- <router-link v-if="crowdmol=='tobeExpired' || crowdmol=='allTask'" :to="{path:'/console/currentcrowd',query:{id:scope.row.applyId,type:crowdmol}}" class="link-type">
<el-button size="mini" type="text" icon="el-icon-key" >查看详情
</el-button>
</router-link> -->
</template>
</el-table-column>
</el-table>
<!-- <div v-if="crowdData.length>10" style='width:100%;margin-top:30px;text-align: center;'>
<el-pagination background
@current-change="handleCurrentChange"
:page-size="queryParams.pageSize"
layout="total, prev, pager, next, jumper"
:total="crowdData.length">
</el-pagination>
</div> -->
<el-dialog title="上传实施结果" :visible.sync="resultOpen" width="600px" :close-on-click-modal="false" append-to-body class="tooldialog" @close="closecwc">
<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">
<!-- @click="downloadFile(downloadUrl)" <el-button icon='el-icon-upload2' style="background: #0066EB;color:#FFFFFF">上传</el-button> -->
<nonimage-upload ref="nonimage" v-model="resultAttach" imageType="pdf|doc|docx|zip|rar" :serverAddr="materialServerAddr" fileName="实施结果" :limit="1" @setImgPath='setImgPath'/>
<el-dialog
title="上传实施结果"
:visible.sync="resultOpen"
width="600px"
:close-on-click-modal="false"
append-to-body
class="tooldialog"
@close="closecwc"
>
<el-divider style="margin-bottom: 10px"></el-divider>
<div style="text-align: left; margin-top: 20px">
<nonimage-upload
ref="nonimage"
v-model="resultAttach"
imageType="pdf|doc|docx|zip|rar"
:serverAddr="materialServerAddr"
fileName="实施结果"
:limit="1"
@setImgPath="setImgPath"
/>
</div>
<div style="text-align:center;margin-top:20px">
<el-button @click="querepeo" style="background: #0066EB;color:#FFFFFF">确定</el-button>
<div style="text-align: center; margin-top: 20px">
<el-button @click="querepeo" style="background: #0066eb; color: #ffffff">确定</el-button>
</div>
</el-dialog>
<!-- 评价弹窗 -->
<reviewDialogVue ref="reviewDialogVuer" @refresh="refreshFn"/>
<reviewDialogVue ref="reviewDialogVuer" @refresh="refreshFn" />
</div>
</div>
</div>
</template>
<script>
import {crowdlist,homecrowdlist,myClaim, myApply, myPublish,reportTester} from "@/api/crowdsource/crowdsource";
import {applicantlist,onsiteTypelist,processStatuslist} from "@/const/dict/commondict";
import {findByvalue, findLabelValueByProp} from "@/util/util";
import {mapGetters} from "vuex";
import NonimageUpload from "@/page/common/NonimageUpload";
import mixin from '@/mixin/index.js'
import reviewDialogVue from '@/page/common/reviewDialog.vue'
export default {
mixins: [mixin],
components: {
NonimageUpload,
reviewDialogVue
import { crowdlist, homecrowdlist, myClaim, myApply, myPublish, reportTester } from '@/api/crowdsource/crowdsource'
import { applicantlist, onsiteTypelist, processStatuslist } from '@/const/dict/commondict'
import { findByvalue, findLabelValueByProp } from '@/util/util'
import { mapGetters } from 'vuex'
import NonimageUpload from '@/page/common/NonimageUpload'
import mixin from '@/mixin/index.js'
import reviewDialogVue from '@/page/common/reviewDialog.vue'
export default {
mixins: [mixin],
components: {
NonimageUpload,
reviewDialogVue,
},
data() {
return {
resultOpen: false,
crowdmol: 'competitive',
allcrowdlist: [],
crowdData: [],
competitiveShow: true,
loading: false,
processStatuslist, //
//
total: 0,
//
queryParams: {
pageNum: 1,
pageSize: 999,
taskStatus: undefined,
processStatus: undefined,
},
resultAttach: [], //
materialServerAddr: '',
currentask: '',
basetarget: process.env.VUE_APP_BASE_TARGET,
}
},
computed: {
...mapGetters(['testtypelist', 'feescopelist', 'companyStatus', 'testerStatus', 'userinform']),
},
mounted() {
this.showDataTypeChage('competitive')
},
methods: {
//
goReview(row) {
this.$refs.reviewDialogVuer.dialogVisible = true
this.$refs.reviewDialogVuer.taskId = row.task_id
},
data () {
return {
resultOpen:false,
crowdmol:'competitive',
allcrowdlist:[],
crowdData:[],
competitiveShow: true,
loading: false,
processStatuslist,//
//
total: 0,
//
queryParams: {
pageNum: 1,
pageSize:999,
taskStatus:undefined,
processStatus:undefined
},
resultAttach:[],//
materialServerAddr: "",
currentask:'',
basetarget: process.env.VUE_APP_BASE_TARGET,
}
//
refreshFn() {
this.crowdmol = 'competitive'
this.listcompetitive()
},
computed: {
...mapGetters(['testtypelist','feescopelist','companyStatus','testerStatus','userinform'])
findLabelValueByProp,
//
listcompetitive() {
this.loading = true
myClaim(this.queryParams, this.userinform.userId).then((response) => {
this.allcrowdlist = response.rows
this.crowdData = this.allcrowdlist.filter((item) => item.status == 0)
this.total = this.crowdData.length
// this.total = response.total ;
this.loading = false
})
},
mounted(){
this.showDataTypeChage('competitive')
handleClick(tab) {
this.showDataTypeChage(tab.name)
},
methods:{
//
goReview(row) {
this.$refs.reviewDialogVuer.dialogVisible = true
this.$refs.reviewDialogVuer.taskId = row.task_id
},
//
refreshFn() {
this.crowdmol = 'competitive'
showDataTypeChage(val) {
if (val == 'competitive') {
this.listcompetitive()
},
findLabelValueByProp,
//
listcompetitive() {
this.loading = true;
myClaim(this.queryParams,this.userinform.userId).then(response => {
this.allcrowdlist = response.rows;
this.crowdData=this.allcrowdlist.filter(item=>item.status==0);
this.total = this.crowdData.length;
// this.total = response.total ;
this.loading = false;
})
},
handleClick(tab) {
this.showDataTypeChage(tab.name)
},
showDataTypeChage(val){
if (val == 'competitive'){
this.listcompetitive();
}
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.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 == 'tobeExpired'){
// this.listTobeExpired();
}
else if (val == 'allTask'){
// this.listAllTask();
}
},
setImgPath(value) {
if(value){
this.resultAttach=value
}
},
openvidib(row){
this.currentask=row
this.resultOpen=true
},
//
handleCurrentChange(val) {
this.queryParams.pageNum=val;
this.showDataTypeChage(this.crowdmol)
},
closecwc (){
} 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.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 == 'tobeExpired') {
// this.listTobeExpired();
} else if (val == 'allTask') {
// this.listAllTask();
}
},
setImgPath(value) {
if (value) {
this.resultAttach = value
}
},
openvidib(row) {
this.currentask = row
this.resultOpen = true
},
//
handleCurrentChange(val) {
this.queryParams.pageNum = val
this.showDataTypeChage(this.crowdmol)
},
closecwc() {
this.$refs.nonimage.fileList = []
this.resultAttach = []
this.resultOpen = false
},
//
querepeo() {
// if(this.resultAttach.length==0){
// this.$message.warning('')
// return;
// }
let path = ''
if (this.resultAttach.length > 0) {
path = this.basetarget + this.resultAttach
} else {
path = ''
}
// return;
let data = {
taskId: this.currentask.task_id,
testerId: this.userinform.userId,
path,
}
// return;
reportTester(data).then((res) => {
this.$refs.nonimage.fileList = []
this.resultAttach = []
this.resultAttach = []
this.resultOpen = false
},
//
querepeo(){
// if(this.resultAttach.length==0){
// this.$message.warning('')
// return;
// }
let path='';
if(this.resultAttach.length>0){
path=this.basetarget + this.resultAttach
}else{
path=''
}
// return;
let data={
taskId:this.currentask.task_id,
testerId:this.userinform.userId,
path,
}
// return;
reportTester(data).then(res=>{
this.$refs.nonimage.fileList = []
this.resultAttach = []
this.resultOpen=false
this.$message.success('实施结果上传成功')
myClaim(this.queryParams,this.userinform.userId).then(response => {
this.allcrowdlist = response.rows;
this.crowdData=this.allcrowdlist.filter(item=>(item.status == 1 ||item.status == 3 ||item.status == 4));
this.total = response.total;
this.loading = false;
})
this.showDataTypeChage('effect')
this.$message.success('实施结果上传成功')
myClaim(this.queryParams, this.userinform.userId).then((response) => {
this.allcrowdlist = response.rows
this.crowdData = this.allcrowdlist.filter(
(item) => item.status == 1 || item.status == 3 || item.status == 4,
)
this.total = response.total
this.loading = false
})
}
}
}
this.showDataTypeChage('effect')
})
},
},
}
</script>
<style scoped>
.dvied{
width: 4px;
height: 18px;
background: #0066EB;
}
.crowdnum>>>.el-radio-button__inner{
background:#ebebed;
border:none;
margin-right:20px;
color: #4D4D4D;
display:flex;
align-items: center;
/* font-weight:bold; */
}
.crowdnum>>>.el-radio-button:first-child .el-radio-button__inner{
border-radius:0;
}
.crowdnum>>>.el-radio-button:last-child .el-radio-button__inner{
border-radius:0;
}
.crowdnum>>>.el-table th{
background-color:#F7F7F7;
color:#666666;
text-align:center;
}
.crowdnum>>>.el-table td{
/* text-align:center; */
background-color:#FFFFFF;
height:60px;
color:#333333;
}
.crowdnum>>>.el-table--border th{
border-right:#F7F7F7
}
.tooldialog>>>.el-divider--horizontal{
margin:-20px 0 10px 0;
}
.tooldialog>>>.el-dialog__title{
font-weight:bold;
color: #0969bd
}
.crowdnum>>>.el-tabs--border-card{
background:transparent;
border:none;
box-shadow:none;
}
.crowdnum>>>.el-tabs--border-card>.el-tabs__header .el-tabs__item{
border:none;
color:#1A1A1A;
}
.crowdnum>>>.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{
color: #0066EB;
/* font-size: 16px; */
}
.crowdnum>>>.el-tabs--border-card>.el-tabs__content{
padding: 0 0;
overflow: unset;
}
.crowdnum>>>.el-tabs--border-card>.el-tabs__header{
border:none;
background-color:#F7F7F7;
/* color:#1A1A1A */
}
.crowdnum>>>.el-tabs__item {
height: 45px;
line-height: 45px;
}
<style scoped>
.dvied {
width: 4px;
height: 18px;
background: #0066eb;
}
.crowdnum >>> .el-radio-button__inner {
background: #ebebed;
border: none;
margin-right: 20px;
color: #4d4d4d;
display: flex;
align-items: center;
/* font-weight:bold; */
}
.crowdnum >>> .el-radio-button:first-child .el-radio-button__inner {
border-radius: 0;
}
.crowdnum >>> .el-radio-button:last-child .el-radio-button__inner {
border-radius: 0;
}
.crowdnum >>> .el-table th {
background-color: #f7f7f7;
color: #666666;
text-align: center;
}
.crowdnum >>> .el-table td {
/* text-align:center; */
background-color: #ffffff;
height: 60px;
color: #333333;
}
.crowdnum >>> .el-table--border th {
border-right: #f7f7f7;
}
.tooldialog >>> .el-divider--horizontal {
margin: -20px 0 10px 0;
}
.tooldialog >>> .el-dialog__title {
font-weight: bold;
color: #0969bd;
}
.crowdnum >>> .el-tabs--border-card {
background: transparent;
border: none;
box-shadow: none;
}
.crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item {
border: none;
color: #1a1a1a;
}
.crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
color: #0066eb;
/* font-size: 16px; */
}
.crowdnum >>> .el-tabs--border-card > .el-tabs__content {
padding: 0 0;
overflow: unset;
}
.crowdnum >>> .el-tabs--border-card > .el-tabs__header {
border: none;
background-color: #f7f7f7;
/* color:#1A1A1A */
}
.crowdnum >>> .el-tabs__item {
height: 45px;
line-height: 45px;
}
</style>
Loading…
Cancel
Save