You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

540 lines
22 KiB

<template>
<div style="background-color:rgb(242,244,246)">
<!-- <div class="p2" v-if="cardShow">定性考核审批</div> -->
<div :style="'width:' + bianKuan + '%;margin: 0 auto;padding: 5px;'">
<el-card class="box-card1" style="margin-bottom: 10px;" :body-style="{ padding: '10px' }">
<p class="xiao">审批编号:{{list.orderid}}</p>
<p class="da">
{{list.title}}
</p>
</el-card>
<el-card class="box-card" v-if="carddianShow" style="margin-bottom: 10px;">
<el-descriptions class="margin-top" :column="1" border>
<el-descriptions-item>
<template slot="label" width='85'>
考核纬度
</template>
{{list.dimension}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
考核指标
</template>
{{list.target}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
考核项目
</template>
{{list.targetsun}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
考核内容
</template>
{{list.detailedtargent}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
考核标准
</template>
{{list.content}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
{{list.lanmuname}}
</template>
{{list.reasoninfo}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
考核原因
</template>
{{list.reason}}
</el-descriptions-item>
</el-descriptions>
<el-carousel v-if="imgList.length!=0" type="card" height="100px" :autoplay="false">
<el-carousel-item v-for="(img,index) in imgList" :key="index">
<el-image
style="width: 100px; height: 100px;"
:src="img"
:preview-src-list="imgList">
</el-image>
</el-carousel-item>
</el-carousel>
<el-row v-for="(itema,index) in list.enclosure" :key="index">
<el-col :span="24" v-if="itema.type!=1" style="margin-top: 10px;">
<i class="el-icon-document"></i>
<a :href="itema.filepath" :download="itema.filename">{{itema.filename}}</a>
</el-col>
</el-row>
</el-card>
<el-card class="box-card font" v-if="cardShow" style="margin-bottom: 10px;">
<el-row class="bottom">
<el-col :span="6">考核纬度:</el-col>
<el-col :span="18">{{list.dimension}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核指标:</el-col>
<el-col :span="18">{{list.target}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核项目:</el-col>
<el-col :span="18">{{list.targetsun}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核内容:</el-col>
<el-col :span="18">{{list.detailedtargent}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核标准:</el-col>
<el-col :span="18">{{list.content}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">{{list.lanmuname}}:</el-col>
<el-col :span="18">{{list.reasoninfo}}</el-col>
<!-- <el-col>{{list.reasoninfo}}</el-col> -->
<!-- <el-col :span="19"></el-col> -->
</el-row>
<el-row class="bottom">
<el-col :span="6">考核原因:</el-col>
<el-col :span="18">{{list.reason}}</el-col>
</el-row>
<!-- <el-carousel v-if="imgList.length!=0" type="card" height="100px" :autoplay="false">
<el-carousel-item v-for="(img,index) in imgList" :key="index">
<el-image
style="width: 100px; height: 100px;"
:src="img"
:preview-src-list="imgList">
</el-image>
</el-carousel-item>
</el-carousel> -->
<!-- <el-row v-for="(itema,index) in list.enclosure" :key="index">
<el-col :span="24" v-if="itema.type!=1" style="margin-top: 10px;">
<i class="el-icon-document"></i>
<a :href="itema.filepath" :download="itema.filename">{{itema.filename}}</a>
</el-col>
</el-row> -->
<!-- <el-descriptions class="margin-top" :column="1">
<el-descriptions-item label="考核纬度">{{list.dimension}}</el-descriptions-item>
<el-descriptions-item label="考核指标">{{list.target}}</el-descriptions-item>
<el-descriptions-item label="考核项目">{{list.targetsun}}</el-descriptions-item>
<el-descriptions-item label="考核内容">{{list.detailedtargent}}</el-descriptions-item>
<el-descriptions-item label="考核标准">{{list.content}}</el-descriptions-item>
<el-descriptions-item label="操作">{{list.reasoninfo}}</el-descriptions-item>
<el-descriptions-item label="考核原因">{{list.reason}}</el-descriptions-item>
</el-descriptions> -->
</el-card>
<!-- <el-card class="box-card" style="margin-bottom: 10px;" v-if="list.divresbil!=null">
<div slot="header" class="clearfix">
<span>责任划分</span>
</div>
<el-descriptions style="border-bottom: 1px solid #EBEEF5;margin-top:10px" class="margin-top font" :column="1" v-for="(item,index) in list.divresbil" :key="index">
<el-descriptions-item label="责任类型">{{item.type}}</el-descriptions-item>
<el-descriptions-item label="姓名">{{item.username}}</el-descriptions-item>
<el-descriptions-item label="比重">{{item.weight}}</el-descriptions-item>
</el-descriptions>
</el-card> -->
<!-- <el-card class="box-card" style="margin-bottom: 10px;" v-if="list.enclosure!=null">
<div slot="header" class="clearfix">
<span>附件</span>
</div>
<el-carousel type="card" height="100px" :autoplay="false">
<el-carousel-item v-for="(img,index) in imgList" :key="index">
<el-image
style="width: 100px; height: 100px;"
:src="img"
:preview-src-list="imgList">
</el-image>
</el-carousel-item>
</el-carousel>
<el-row v-for="(itema,index) in list.enclosure" :key="index">
<el-col :span="24" v-if="itema.type!=1" style="margin-top: 10px;">
<i class="el-icon-document"></i>
<a :href="itema.filepath" :download="itema.filename">{{itema.filename}}</a>
</el-col>
</el-row>
</el-card> -->
<!-- <el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
<el-card class="box-card" v-for="(item,index) in list.rectifmeasures" :key="index" style="margin-bottom: 10px;">
<div slot="header" class="clearfix">
<span>整改措施</span>
</div>
<el-descriptions class="margin-top font" :column="1">
<el-descriptions-item label="姓名">{{item.recname}}</el-descriptions-item>
<el-descriptions-item label="内容">{{item.reccont}}</el-descriptions-item>
<el-descriptions-item label="时间">{{item.timeval}}</el-descriptions-item>
<el-carousel v-if="imgList!=null" type="card" height="100px" :autoplay="false">
<el-carousel-item v-for="(img,index) in item.enclosure" :key="index">
<el-image
v-if="img.type==1"
style="width: 100px; height: 100px;"
:src="img.filepath"
:preview-src-list="item.enclosure">
</el-image>
</el-carousel-item>
</el-carousel>
<el-row v-for="(itema,index) in item.enclosure" :key="index">
<el-col :span="24" v-if="itema.type!=1" style="margin-top: 10px;">
<i class="el-icon-document"></i>
<a :href="itema.filepath" :download="itema.filename">{{itema.filename}}</a>
</el-col>
</el-row>
</el-descriptions>
</el-card> -->
<!-- <el-table
:data="list.divresbil"
border
style="width: 100%">
<el-table-column
prop="type"
label="责任类型">
</el-table-column>
<el-table-column
prop="username"
label="姓名">
</el-table-column>
<el-table-column
prop="weight"
label="比重">
</el-table-column>
</el-table> -->
<!-- <div v-for="(item,index) in list.TechnologicalProcess">
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item>
<template slot="label">
节点
</template>
{{item.groupname}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
步骤
</template>
{{item.step}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
状态
</template>
<div v-if="item.state==1">
未操作
</div>
<div v-if="item.state==2">
已操作
</div>
</el-descriptions-item>
</el-descriptions>
<el-table
:data="item.userlist"
border
style="width: 100%">
<el-table-column
prop="name"
label="姓名">
</el-table-column>
<el-table-column
prop="istrue"
label="操作">
<template #default="scope">
<div v-if="scope.row.istrue==1"><img width="20px" src="../../assets/duihao.png"></div>
<div v-if="scope.row.istrue==0"></div>
</template>
</el-table-column>
<el-table-column
prop="timeval"
label="操作时间">
</el-table-column>
</el-table>
</div> -->
<!-- -->
<!-- <el-table
:data="list.rectifmeasures"
border
style="width: 100%">
<el-table-column
prop="recname"
label="姓名">
</el-table-column>
<el-table-column
prop="reccont"
label="操作">
</el-table-column>
<el-table-column
prop="timeval"
label="时间">
</el-table-column>
</el-table> -->
</div>
</div>
</template>
<script>
export default {
data() {
return{
// 审批意见
opinionText:'',
swiperOption: {
// slidesPerView: 1,
loop: true, // 循环模式
autoplay: {
delay: 3000,
stopOnLastSlide: false,
disableOnInteraction: false
},
speed: 2000,
// effect: 'fade',
// 显示分页
pagination: {
el: ".swiper-pagination",
clickable: true //允许分页点击跳转
},
// 设置点击箭头
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
},
imgList:[],
dialogImageUrl: '',
dialogVisible: false,
disabled: false,
// 步骤显示
buzhou:0,
carddianShow:false,
cardShow:false,
// 数据列表
list:[],
// 选择员工配置项
userProps: {
value: "id",
label: "name",
children: "groupUser",
emitPath:false,
multiple: false
},
grouplistBackup:[],
form:{
outid:'',
},
tableData:[
{
type:1,//类型
userkey:'',//人员
weight:''//比重
},
],
}
},
// computed: {
// swiper() {
// return this.$refs.mySwiper.swiper;
// }
// },
created () {
this.form.outid=this.$route.query.outid
this.getData()
// if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
// setToken(this.$route.query.token)
// setKey(this.$route.query.key)
// if (getToken()=='') {
// window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
// }else if (typeof this.$route.query.token === 'undefined') {
// window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
// }else{
// this.form.outid=this.$route.query.id
// this.getData()
// }
// }else{
// if (sessionStorage.getItem('userinfo')==null) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else if (sessionStorage.getItem('userinfo')==undefined) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else if (sessionStorage.getItem('userinfo')=='') {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else if (this.$store.state.user.token=='') {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else if (this.$store.state.user.token==null) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else if (this.$store.state.user.token===undefined) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else if (typeof this.$store.state.user.token=="undefined") {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }else{
// this.form.outid=this.$route.query.id
// this.getData()
// }
// }
// if (sessionStorage.getItem('userinfo')==null) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (sessionStorage.getItem('userinfo')==undefined) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (sessionStorage.getItem('userinfo')=='') {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (this.$store.state.user.token=='') {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (this.$store.state.user.token==null) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (this.$store.state.user.token===undefined) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (typeof this.$store.state.user.token=="undefined") {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// this.form.outid=this.$route.query.id
// this.getData()
if (document.body.clientWidth<1000) {
this.bianKuan=100
this.carddianShow=false
this.cardShow=true
}else{
this.bianKuan=40
this.carddianShow=true
this.cardShow=false
}
},
methods: {
// 定性审核同意
async xingOperation(val){
// 同意
if (val==1) {
const from = {
orderid: this.form.outid, //审批单ID
yesorno: 1, //1:同意;2:驳回
content: this.opinionText //审批意见
}
this.$u.api.Duty.operation(from).then(res => {
if(res.code==0){
this.$message({
type: 'success',
message: '成功!'
})
}
})
this.opinionText=''
this.getData()
}
// 驳回
if (val==2) {
const from = {
orderid: this.form.outid, //审批单ID
yesorno: 2, //1:同意;2:驳回
content: this.opinionText //审批意见
}
this.$u.api.Duty.operation(from).then(res => {
if(res.code==0){
this.$message({
type: 'success',
message: '成功!'
})
}
})
this.getData()
this.opinionText=''
}
},
handleRemove(file) {
console.log(file);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handleDownload(file) {
console.log(file);
},
// 获取数据
getData(){
this.$u.api.Duty.lookdutkscoreflow(this.form).then(res => {
if(res.code==0){
this.list=res.data
this.list.flowmapall.forEach(element => {
if (element.state==2) {
this.buzhou=this.buzhou+1
}
});
this.list.enclosure.forEach(element => {
if (element.type==1) {
this.imgList.push(element.filepath)
}
});
}
})
},
}
}
</script>
<style lang="scss" scoped>
.recommendPage {
width: 100%;
height: 100%;
}
.box-card1 .el-card__body{
padding-top: 5px !important;
padding-bottom: 5px !important;
}
.left{
float: left;
}
.xiao{
color: rgb(174,174,174);
}
.da{
font-size: 16px;
font-weight:bold;
}
.form{
width: 100%;
margin: 0 auto;
}
.p{
margin-bottom: 10px !important;
margin-top: 20px !important;
width: 235px;
// font-size: 30px;
// font-weight:bold;
margin: 0 auto;
}
.p2{
margin-bottom: 10px !important;
margin-top: 20px !important;
width: 270px;
font-size: 24px;
margin: 0 auto;
}
.font{
font-size: 16px;
color: #606266;
}
.bottom{
margin-bottom: 10px;
}
</style>