youhua
This commit is contained in:
parent
94eff82a21
commit
0525c605f4
@ -131,4 +131,30 @@ export function apiEditTask(query) {
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 任务记录
|
||||
export function apiChangeTaskList(query) {
|
||||
return request({
|
||||
url: '/lz_management/performance/result/changeTaskList',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 添加评论
|
||||
export function apiAddTaskComment(query) {
|
||||
return request({
|
||||
url: '/lz_management/user/lzstaffrole/task/comment',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
// 评论列表
|
||||
export function apiTaskCommentList(query) {
|
||||
return request({
|
||||
url: '/lz_management/user/lzstaffrole/comment/list',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
@ -1,17 +1,26 @@
|
||||
<!-- -->
|
||||
<template>
|
||||
<div class="pinglunTem">
|
||||
<div class="pinglunTem-left">
|
||||
<img src="@/assets/img/default.jpg"
|
||||
alt="">
|
||||
</div>
|
||||
<div class="pinglunTem-right">
|
||||
<div class="pinglunTem-right-title">
|
||||
<div><span>十万</span><span class="beizhu">#开机后即可很快就#</span></div>
|
||||
<div>2020-12-12 12:00:00</div>
|
||||
<div class="pingcontent"
|
||||
style="display:flex;"
|
||||
:key="i.id"
|
||||
v-for="i in pinglunList">
|
||||
<div class="pinglunTem-left">
|
||||
<img :src="i.avatar"
|
||||
alt="">
|
||||
</div>
|
||||
<div class="pinglunTem-right-content">
|
||||
将骄傲和公司的环境kg阿克苏较好的噶好几款是个大括号建安公司大家观看
|
||||
<div class="pinglunTem-right">
|
||||
<div class="pinglunTem-right-title">
|
||||
<div><span>{{i.staffName}}</span><span class="beizhu">#
|
||||
<span v-if="i.type===1">修改名称</span>
|
||||
<span v-if="i.type===2">修改进度</span>
|
||||
<span v-if="i.type===3">名称和进度都修改</span>
|
||||
#</span></div>
|
||||
<div>{{i.gmtCreate}}</div>
|
||||
</div>
|
||||
<div class="pinglunTem-right-content">
|
||||
{{i.label}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -20,6 +29,13 @@
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
export default {
|
||||
props: {
|
||||
pinglunList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
// 1,修改名称,2修改进度 ,3名称和进度都修改
|
||||
data () {
|
||||
return {
|
||||
|
||||
@ -38,13 +54,16 @@ export default {
|
||||
|
||||
<style lang='less' scoped>
|
||||
.pinglunTem {
|
||||
display: flex;
|
||||
.pingcontent {
|
||||
margin: 20px 0;
|
||||
}
|
||||
&-left {
|
||||
width: 40px;
|
||||
margin: 0 10px 0 0;
|
||||
img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
&-right {
|
||||
|
||||
@ -21,13 +21,13 @@
|
||||
<div class="drawer-content-left-title">
|
||||
<div> 关键结果({{handleFilter(taskInfo.resultTasks).length}})</div>
|
||||
<div>
|
||||
<i style="color:#409EFF;"
|
||||
class="el-icon-plus"></i>
|
||||
<el-button @click="handleAddTask"
|
||||
<el-button icon="el-icon-plus"
|
||||
@click="handleAddTask"
|
||||
type="text">添加</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-for="i in handleFilter(taskInfo.resultTasks)"
|
||||
:key="i.id"
|
||||
class="boderAndRadius drawer-content-left-content">
|
||||
<div :style="{border:!(!i.updateProcess && i.label)?'none':''}"
|
||||
class="drawer-content-left-content-top">
|
||||
@ -41,7 +41,7 @@
|
||||
<el-input v-if="i.editProcess"
|
||||
size="small"
|
||||
placeholder="请输入内容"
|
||||
v-model="form.input"
|
||||
v-model="form.name"
|
||||
clearable>
|
||||
</el-input>
|
||||
</div>
|
||||
@ -49,6 +49,7 @@
|
||||
<div class="right">
|
||||
<div v-if="i.editProcess">
|
||||
<el-button size="mini"
|
||||
@click="handleEditTask(1)"
|
||||
type="primary">确认</el-button>
|
||||
<el-button size="mini"
|
||||
@click="handleEditProcess(i,false)"
|
||||
@ -94,23 +95,27 @@
|
||||
</div>
|
||||
<div v-if="!i.updateProcess && i.label"
|
||||
class="drawer-content-left-content-center"
|
||||
:class="{bg:false}">
|
||||
:class="{bg:i.showTask}">
|
||||
<div class="content commonFont">
|
||||
<div class="drawer-content-left-content-center-left">
|
||||
<img v-if="true"
|
||||
<img v-if="!i.showTask"
|
||||
:onerror="defaultImg"
|
||||
:src='i.avatar'
|
||||
:src='i.avatar || defaultImg'
|
||||
alt="">
|
||||
<span v-if="true">{{i.staffName}}</span>
|
||||
<span v-if="true">:{{i.label}}</span>
|
||||
<span v-if="!i.showTask">{{i.staffName}}:</span>
|
||||
<span class="label"
|
||||
style="word-wrap:break-word;"
|
||||
v-if="!i.showTask">{{i.label}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<i :class="{rate:false}"
|
||||
style=" cursor: pointer;color:#3ba1ff;"
|
||||
<div style="user-select:none;">
|
||||
<i :class="{rate:!i.showTask}"
|
||||
@click="handleShowAll(i)"
|
||||
style=" cursor: pointer;color:#3ba1ff;transition: all 0.2s;"
|
||||
class="el-icon-arrow-down"></i>
|
||||
</div>
|
||||
</div>
|
||||
<pinglun v-if="false" />
|
||||
<pinglun v-if="i.showTask"
|
||||
:pinglunList='i.taskList' />
|
||||
</div>
|
||||
<div v-if="i.updateProcess"
|
||||
class="drawer-content-left-content-bottom">
|
||||
@ -137,7 +142,7 @@
|
||||
<div style="text-align: right;">
|
||||
<el-button type="primary"
|
||||
size="mini"
|
||||
@click="handleEditTask">确定</el-button>
|
||||
@click="handleEditTask(2)">确定</el-button>
|
||||
<el-button @click="handleUpdateProcess(i,false)"
|
||||
size="mini">取消</el-button>
|
||||
</div>
|
||||
@ -160,7 +165,8 @@
|
||||
<div v-if="activeName==='1'"
|
||||
class="drawer-content-right-item pinglun">
|
||||
<div class="pinglun-top">
|
||||
<pinglun />
|
||||
<pinglun :pinglunList='pinglunList' />
|
||||
|
||||
</div>
|
||||
<div class="pinglun-bottom">
|
||||
<el-input type="textarea"
|
||||
@ -172,7 +178,7 @@
|
||||
</div>
|
||||
<div v-if="activeName==='2'"
|
||||
class="drawer-content-right-item jilu">
|
||||
记录ss
|
||||
<pinglun :pinglunList='pinglunList' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -191,9 +197,9 @@
|
||||
<el-form-item label="任务进度"
|
||||
prop="weight">
|
||||
<el-input size="small"
|
||||
@blur="$handleBlur('form.process')"
|
||||
@input.native="$handleInputInt('form.process')"
|
||||
v-model="form.process">
|
||||
@blur="$handleBlur('form.processRate')"
|
||||
@input.native="$handleInputInt('form.processRate')"
|
||||
v-model="form.processRate">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -204,7 +210,7 @@
|
||||
@click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button size="small"
|
||||
type="primary"
|
||||
@click="dialogFormVisible = false">确 定</el-button>
|
||||
@click="handleEditTask(3)">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@ -214,7 +220,7 @@
|
||||
import InfoHeader from '@/components/InfoHeader'
|
||||
import pinglun from './pinglun.vue'
|
||||
|
||||
import { apiDeleteTask, apiEditTask } from '@/api/assessment'
|
||||
import { apiDeleteTask, apiEditTask, apiChangeTaskList, apiTaskCommentList, apiAddTaskComment } from '@/api/assessment'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
@ -243,8 +249,9 @@ export default {
|
||||
},
|
||||
form: {
|
||||
name: '',
|
||||
process: '0'
|
||||
processRate: '0'
|
||||
},
|
||||
pinglunList: [],
|
||||
dialogFormVisible: false,
|
||||
title: '添加任务',
|
||||
defaultImg: 'this.src="' + require('@/assets/img/default.jpg') + '"'
|
||||
@ -255,17 +262,60 @@ export default {
|
||||
beforeMount () { },
|
||||
mounted () {
|
||||
this.taskInfo = Object.assign({}, this.taskObj)
|
||||
this.handleGetChangeTaskList()
|
||||
console.log(this.taskInfo)
|
||||
},
|
||||
methods: {
|
||||
async handleEditTask () {
|
||||
const res = await apiEditTask(Object.assign({}, this.form, { processRate: this.form.processRate / 100 }))
|
||||
// 获取当前任务的评论
|
||||
async handleShowAll (i) {
|
||||
if (i.showTask) {
|
||||
i.showTask = false
|
||||
this.$forceUpdate()
|
||||
return
|
||||
}
|
||||
const params = {
|
||||
currPage: 1,
|
||||
taskId: i.id,
|
||||
pageSize: 2300
|
||||
}
|
||||
i.taskList = []
|
||||
let res = await apiChangeTaskList(params)
|
||||
if (res.code !== 200) {
|
||||
this.$message.error(res.msg)
|
||||
return
|
||||
}
|
||||
i.showTask = true
|
||||
i.taskList = res.data.list
|
||||
this.$forceUpdate()
|
||||
},
|
||||
async handleGetChangeTaskList () {
|
||||
const params = {
|
||||
currPage: 1,
|
||||
detailId: this.taskInfo.detailId,
|
||||
pageSize: 2300
|
||||
}
|
||||
this.pinglunList = []
|
||||
let res = await apiChangeTaskList(params)
|
||||
if (res.code !== 200) {
|
||||
this.$message.error(res.msg)
|
||||
return
|
||||
}
|
||||
this.pinglunList = res.data.list
|
||||
},
|
||||
async handleEditTask (type) {
|
||||
const params = Object.assign({}, this.form)
|
||||
if (type === 2 || type === 3) params.processRate = this.form.processRate / 100
|
||||
if (type === 3) params.detailId = this.taskInfo.detailId
|
||||
const res = await apiEditTask(params)
|
||||
if (res.code !== 200) {
|
||||
this.$message.error(res.msg)
|
||||
return
|
||||
}
|
||||
this.form = {}
|
||||
this.taskInfo = await this.$parent.handleGetTaskDetail(this.taskInfo.detailId)
|
||||
this.dialogFormVisible = false
|
||||
this.handleGetChangeTaskList()
|
||||
this.$parent.handleGetTable()
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success'
|
||||
@ -286,6 +336,7 @@ export default {
|
||||
return
|
||||
}
|
||||
this.taskInfo = await this.$parent.handleGetTaskDetail(this.taskInfo.detailId)
|
||||
this.$parent.handleGetTable()
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success'
|
||||
@ -295,6 +346,7 @@ export default {
|
||||
handleUpdateProcess (i, type = false) {
|
||||
this.taskInfo.resultTasks.map(i => {
|
||||
i.updateProcess = false
|
||||
i.editProcess = false
|
||||
})
|
||||
if (type) {
|
||||
this.form = Object.assign({}, i)
|
||||
@ -309,6 +361,10 @@ export default {
|
||||
},
|
||||
// 编辑/取消编辑进度
|
||||
handleEditProcess (i, type = false) {
|
||||
this.taskInfo.resultTasks.map(i => {
|
||||
i.updateProcess = false
|
||||
i.editProcess = false
|
||||
})
|
||||
i.editProcess = type
|
||||
this.form = Object.assign({}, i)
|
||||
this.form.taskId = this.form.id
|
||||
@ -366,7 +422,7 @@ export default {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
border-right: 1px solid #666666;
|
||||
border-right: 1px solid #e7e7e7;
|
||||
&-jiaoyi {
|
||||
.title {
|
||||
font-size: 16px;
|
||||
@ -425,16 +481,20 @@ export default {
|
||||
background: #fafafa;
|
||||
}
|
||||
.rate {
|
||||
transform: rotate(180deg);
|
||||
transition: all 0.2s;
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
&-center {
|
||||
padding: 6px 20px 6px;
|
||||
|
||||
.label {
|
||||
width: 400px;
|
||||
}
|
||||
.content {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: space-between;
|
||||
> div {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
&-left {
|
||||
flex: 1 0 auto;
|
||||
@ -467,9 +527,14 @@ export default {
|
||||
}
|
||||
.pinglun {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
// overflow: auto;
|
||||
flex-direction: column;
|
||||
&-top {
|
||||
flex: 1 0 auto;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: auto;
|
||||
padding: 0 20px;
|
||||
}
|
||||
&-bottom {
|
||||
@ -495,6 +560,8 @@ export default {
|
||||
}
|
||||
.jilu {
|
||||
padding: 0 20px;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
</div>
|
||||
<div class="jindu">
|
||||
<el-progress type="circle"
|
||||
:width='40'
|
||||
:width='50'
|
||||
:stroke-width='4'
|
||||
:percentage="Math.round((i.processRate * 100) * 1000) / 1000 "></el-progress>
|
||||
<el-button type="text"
|
||||
@ -344,6 +344,9 @@ export default {
|
||||
handleCancelResult () {
|
||||
this.$emit('update:tableInfo', Object.assign({}, this.tableInfo, { result: false, score: false }))
|
||||
},
|
||||
handleGetTable () {
|
||||
this.$parent.handleGetTbale({ id: this.$route.query.id || '' })
|
||||
},
|
||||
async handleGrt375 () {
|
||||
let res = await apiGet375()
|
||||
if (res.code !== 200) return
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user