15 changed files with 1083 additions and 22 deletions
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,195 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-04-01 13:07:53 |
|||
@ 备注: 执行的考核项目 |
|||
--> |
|||
<template> |
|||
<el-dialog title="考核项目" top="100px" :visible.sync="bylawsBox" width="50%" :before-close="handleClose"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-form ref="searchBylawsForm" :inline="true" :model="searchBylawsInfo" class="demo-form-inline"> |
|||
<el-form-item label="考核内容"> |
|||
<el-input placeholder="请输入考核内容" v-model="searchBylawsInfo.title" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" icon="el-icon-search" @click="searckBylawsClick">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-table |
|||
:data="bylawsList" |
|||
:span-method="objectBylawsMethod" |
|||
border |
|||
:height="tableBylawsHeight" |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="columntitle" |
|||
label="考核栏目" |
|||
width="180" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="title" |
|||
label="考核内容" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="standard" |
|||
label="考核标准" |
|||
width="100" |
|||
align="center" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="unit" |
|||
label="单位" |
|||
width="100" |
|||
align="center" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-link type="danger" class="scoreLink" @click="addOrSubtraction(scope.row,1)" :underline="false" v-if="scope.row.plusminusscore==1||scope.row.plusminusscore==3" icon="el-icon-remove-outline">减分</el-link> |
|||
<el-link type="primary" class="scoreLink" @click="addOrSubtraction(scope.row,2)" :underline="false" v-if="scope.row.plusminusscore==2||scope.row.plusminusscore==3" icon="el-icon-circle-plus-outline">加分</el-link> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
</el-table> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="block"> |
|||
<el-pagination |
|||
@current-change="bylawsCurrentChange" |
|||
:current-page.sync="currBylawsPage" |
|||
:page-size="searchBylawsInfo.pagesize" |
|||
layout="prev, pager, next, jumper" |
|||
:total="bylawsTotal"> |
|||
</el-pagination> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
<plusMinusScore :addOfMinusBox="addOfMinusBox" :addOfMinusCont="addOfMinusCont" :addOfMinusAttribute="addOfMinusAttribute" :orgTarget="orgTarget" @closeAddOfMinusBox="closeAddOfMinusBox" /> |
|||
</el-dialog> |
|||
</template> |
|||
<script> |
|||
import { tableMergeTrade } from "@/api/people/peopledata"; |
|||
import { getQualityBylawsTasks } from "@/api/systemaccredit/systemapi" |
|||
import plusMinusScore from "@/views/qualitative/qualitativecont/plus_minus_score" |
|||
export default { |
|||
name: 'bylaws', |
|||
components: { |
|||
plusMinusScore |
|||
}, |
|||
props:['bylawsBox','orgTarget','closeBylawsBox'], |
|||
data() { |
|||
return { |
|||
//查询结构体 |
|||
searchBylawsInfo:{ |
|||
orgid:"", |
|||
targetid:"", |
|||
title:"", |
|||
page:1, |
|||
pagesize:20, |
|||
}, |
|||
mergeBylawsArr: ['columntitle',"endClick"], //合并字段 |
|||
mergeBylawsObj:[], |
|||
bylawsTotal:0, |
|||
currBylawsPage:1, |
|||
tableBylawsHeight:450, //表格高度 |
|||
bylawsList:[], //细则列表 |
|||
addOfMinusBox:false, //加减分弹窗 |
|||
addOfMinusCont:{}, //考核项内容 |
|||
addOfMinusAttribute:1, //1:减分;2:加分 |
|||
|
|||
} |
|||
}, |
|||
created(){ |
|||
|
|||
}, |
|||
watch: { |
|||
bylawsBox(){ |
|||
if(this.bylawsBox){ |
|||
console.log("考核细则处理--1->",this.bylawsBox,this.orgTarget) |
|||
this.searchBylawsInfo.orgid = this.orgTarget.orgid; |
|||
this.searchBylawsInfo.targetid = this.orgTarget.targetid; |
|||
|
|||
this.getBylawsList(); |
|||
} |
|||
} |
|||
}, |
|||
methods:{ |
|||
//获取考核项目 |
|||
async getBylawsList(){ |
|||
const res = await getQualityBylawsTasks(this.searchBylawsInfo) |
|||
console.log("获取考核项目-->",res) |
|||
if(res.code == 0){ |
|||
this.bylawsList = res.data.list |
|||
this.bylawsTotal = res.data.total |
|||
this.mergeBylawsObj = tableMergeTrade(this.bylawsList,this.mergeBylawsArr,"endClick") |
|||
// console.log("获取个人需要提交得定性考核数据--->",this.mergeBylawsObj) |
|||
} |
|||
}, |
|||
//关闭弹窗 |
|||
handleClose(){ |
|||
this.$emit('closeBylawsBox'); |
|||
this.initBylawsCont(); |
|||
}, |
|||
//翻页 |
|||
bylawsCurrentChange(val) { |
|||
this.searchBylawsInfo.page = val |
|||
this.getBylawsList(); |
|||
}, |
|||
//初始化数据 |
|||
initBylawsCont(){ |
|||
this.searchBylawsInfo={ |
|||
orgid:"", |
|||
targetid:"", |
|||
title:"", |
|||
page:1, |
|||
pagesize:20, |
|||
}; |
|||
this.bylawsList=[]; |
|||
this.bylawsTotal = 0; |
|||
this.currBylawsPage = 1 |
|||
}, |
|||
//查询考核项目 |
|||
searckBylawsClick(){ |
|||
this.searchBylawsInfo.page = 1 |
|||
this.getBylawsList(); |
|||
}, |
|||
//加减 |
|||
addOrSubtraction(val,attribute){ |
|||
console.log("加减--->",val,attribute) |
|||
this.addOfMinusCont= val |
|||
this.addOfMinusAttribute = attribute |
|||
this.addOfMinusBox = true; |
|||
}, |
|||
//关闭加减分窗口 |
|||
closeAddOfMinusBox(){ |
|||
this.addOfMinusBox=false; |
|||
this.addOfMinusCont={}; |
|||
}, |
|||
//计算表格合并行 |
|||
// 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 } |
|||
objectBylawsMethod({ row, column, rowIndex, columnIndex }) { |
|||
// console.log("默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }",row, column, rowIndex, columnIndex) |
|||
// 判断列的属性 |
|||
if(this.mergeBylawsArr.indexOf(column.property) !== -1) { |
|||
// 判断其值是不是为0 |
|||
if(this.mergeBylawsObj[column.property][rowIndex]) { |
|||
return [this.mergeBylawsObj[column.property][rowIndex], 1] |
|||
} else { |
|||
// 如果为0则为需要合并的行 |
|||
return [0, 0]; |
|||
} |
|||
} |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
<style lang='less'> |
|||
.scoreLink{ |
|||
padding: 0 5px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,455 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-04-01 16:20:57 |
|||
@ 备注: 加减分 |
|||
--> |
|||
<template> |
|||
<el-dialog :title="addOfMinusTitle" :visible.sync="addOfMinusBox" width="620px" top="10px" append-to-body :before-close="handlePlusMinusClose" custom-class=""> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
|
|||
<el-form :model="fromDataCont" :rules="rulesAddFrom" ref="ruleForm" label-width="0px" class="demo-ruleForm"> |
|||
<el-descriptions class="margin-top" :column="4" :size="size" border> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核项目 |
|||
</template> |
|||
{{ addOfMinusCont.columntitle }} |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核内容 |
|||
</template> |
|||
{{ addOfMinusCont.title }} |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="3" label-class-name="my-label" content-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核标准 |
|||
</template> |
|||
{{ addOfMinusCont.standard }} |
|||
</el-descriptions-item> |
|||
|
|||
<el-descriptions-item label-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核单位 |
|||
</template> |
|||
{{ addOfMinusCont.unit }} |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" v-if="addOfMinusCont.scoretype!=1" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
<div class="lable_title">分值</div> |
|||
</template> |
|||
<el-form-item label="" style="margin-bottom:10px; margin-top:5px" prop="score"> |
|||
<el-input v-model="fromDataCont.score" clearable placeholder="请输入分值(小数最多只能输入两位)" oninput="if(isNaN(value)) { value = null } if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.')+3)}" autocomplete="off" /> |
|||
</el-form-item> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" v-if="addOfMinusCont.scoretype==1" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
<div class="lable_title">发生次数</div> |
|||
</template> |
|||
<el-form-item label="" style="margin-bottom:10px; margin-top:5px" prop="frequency"> |
|||
<el-input-number v-model="fromDataCont.frequency" :step="1" :min="1" :max="100" step-strictly></el-input-number> |
|||
</el-form-item> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
<div class="lable_title">原因</div> |
|||
</template> |
|||
<el-form-item label="" style="margin-bottom:10px; margin-top:5px" prop="reason"> |
|||
<el-input type="textarea" :rows="4" placeholder="请输入原因" v-model="fromDataCont.reason"></el-input> |
|||
</el-form-item> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
<div class="lable_title">发生时间</div> |
|||
</template> |
|||
<el-form-item label="" style="margin-bottom:10px; margin-top:5px" prop="time"> |
|||
<el-date-picker |
|||
v-model="fromDataCont.time" |
|||
value-format="yyyy-MM-dd HH:mm:ss" |
|||
type="datetime" |
|||
placeholder="选择日期时间"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
是否整改 |
|||
</template> |
|||
<el-switch |
|||
v-model="fromDataCont.correct" |
|||
active-text="需要整改" |
|||
inactive-text="无需整改" |
|||
inactive-color="#ff4949" |
|||
active-value="1" |
|||
inactive-value="2" |
|||
@change="zhengGai($event)" |
|||
> |
|||
</el-switch> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label" v-if="fromDataCont.attribute==1"> |
|||
<template slot="label"> |
|||
<div class="lable_title">整改期限</div> |
|||
</template> |
|||
<el-form-item label="" style="margin-bottom:10px; margin-top:5px" prop="duetime"> |
|||
<el-date-picker |
|||
v-model="fromDataCont.duetime" |
|||
value-format="yyyy-MM-dd HH:mm:ss" |
|||
type="datetime" |
|||
placeholder="选择日期时间"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
上传附件 |
|||
</template> |
|||
<el-upload |
|||
:action="actionUrl" |
|||
list-type="picture-card" |
|||
:auto-upload="true" |
|||
:multiple="false" |
|||
:file-list="fileDataList" |
|||
:on-success="attachUploadSuccess" |
|||
:on-error="attachError" |
|||
:headers="headers" |
|||
:accept="fileType" |
|||
:limit="maxFileCount" |
|||
:on-exceed="excFileCount" |
|||
> |
|||
<i slot="default" class="el-icon-plus"></i> |
|||
<div slot="file" slot-scope="{file}"> |
|||
<img |
|||
class="el-upload-list__item-thumbnail" |
|||
:src="file.url" alt="" |
|||
> |
|||
<span class="el-upload-list__item-actions"> |
|||
<span |
|||
class="el-upload-list__item-preview" |
|||
@click="handlePictureCardPreview(file)" |
|||
> |
|||
<i class="el-icon-zoom-in"></i> |
|||
</span> |
|||
<span |
|||
class="el-upload-list__item-delete" |
|||
@click="handleRemove(file,fileDataList)" |
|||
> |
|||
<i class="el-icon-delete"></i> |
|||
</span> |
|||
</span> |
|||
</div> |
|||
</el-upload> |
|||
<el-dialog :visible.sync="dialogVisible" append-to-body> |
|||
<img width="100%" :src="dialogImageUrl" alt=""> |
|||
</el-dialog> |
|||
</el-descriptions-item> |
|||
</el-descriptions> |
|||
|
|||
</el-form> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<el-card class="box-card ge_li"> |
|||
<el-steps direction="vertical" :active="buzhou"> |
|||
<el-step v-for="(item,index) in workflowListCont" :key="index" :title="item.nodename" icon="el-icon-circle-check" > |
|||
<template slot="description"> |
|||
<div style="color: rgb(153,153,153);" v-for="(a,userlistIndex) in item.userlist" :key="userlistIndex"> |
|||
<el-row> |
|||
<el-col :span="2" v-if="a.log!=null"> |
|||
<el-badge is-dot type="primary "> |
|||
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar> |
|||
</el-badge> |
|||
</el-col> |
|||
<el-col :span="2" v-else> |
|||
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar> |
|||
</el-col> |
|||
<el-col :span="20" style="margin-top: -5px;"> |
|||
{{a.departmentname}}-{{a.postname}}-{{a.name}} |
|||
<el-row> |
|||
<div v-for="(i,logIndex) in a.log" :key="logIndex"> |
|||
<div class="left" v-if="i.state==2">已同意 · </div> |
|||
<div class="left" v-if="i.state==1" type="info">未操作 · </div> |
|||
<div class="left" v-if="i.state==3" type="danger">驳回 · </div> |
|||
<div class="left">{{i.time}}</div> |
|||
</div> |
|||
</el-row> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
<el-row v-if="nodeIsShow(item)"> |
|||
<el-col :span="2" > |
|||
<div class="addPeople" @click="addManCont(item)"> |
|||
<span class="el-icon-plus"></span> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
<peopleTransfer :addManBox="addManBox" :checkedUser="checkedUser" @closeAddManBox="closeAddManBox" /> |
|||
|
|||
</template> |
|||
</el-step> |
|||
</el-steps> |
|||
</el-card> |
|||
</el-col> |
|||
<el-col :span="24"></el-col> |
|||
<el-col :span="24"></el-col> |
|||
</el-row> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="handlePlusMinusClose">取 消</el-button> |
|||
<el-button type="primary" @click="saveDataDialog" :loading="clickLoading">确 定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</template> |
|||
<script> |
|||
import bookfile from "@/images/bookfile.png" |
|||
import quzheng from "@/images/quzheng.png" |
|||
import { getWorkflowFullView } from "@/api/systemaccredit/systemapi" |
|||
import peopleTransfer from "@/views/qualitative/qualitativecont/xuanren/peopleTransfer" |
|||
export default { |
|||
components: { peopleTransfer }, |
|||
name: 'plusMinusScoreDx', |
|||
props:['addOfMinusBox','addOfMinusCont','addOfMinusAttribute','closeAddOfMinusBox','orgTarget'], |
|||
data() { |
|||
|
|||
return { |
|||
maxFileCount:5, //最大上传文件数量 |
|||
fileType:".jpg,.jpeg,.png,.gif,.bmp,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.mp4,.avi.3gp", //文件上传类型 |
|||
fileDataList: [], //文件列表 |
|||
dialogImageUrl:quzheng, //预览图片 |
|||
dialogVisible:false, //图片预览框 |
|||
clickLoading:false, |
|||
size:"", |
|||
addOfMinusTitle:"减分操作", |
|||
fromDataCont:{ |
|||
id:"", |
|||
score:"", |
|||
frequency:1, |
|||
time:"", |
|||
correct:2, //是否需要整改 1:整改;2:不需要 |
|||
duetime:"", //整改期限 |
|||
}, //提交数据表单 |
|||
rulesAddFrom:{ |
|||
score:[{ required: true, message: '请输入分值', trigger: 'blur' }], |
|||
frequency:[{ required: true, message: '请输入发生次数', trigger: 'blur' }], |
|||
reason:[{ required: true, message: '请输入原因', trigger: 'blur' }], |
|||
time:[{ required: true, message: '请输选择发生时间', trigger: 'blur' }], |
|||
duetime:[{ required: true, message: '请输选择整改期限', trigger: 'blur' }], |
|||
}, //表单验证规则 |
|||
workflowListCont:[], //工作流 |
|||
buzhou:1, //步进流Id |
|||
flowIsTrue:true, //流程检查 |
|||
addManBox:false, //选择添加人 |
|||
checkedUser:[], //选中的人员 |
|||
} |
|||
}, |
|||
created(){ |
|||
|
|||
}, |
|||
computed: { |
|||
//设置上传API |
|||
actionUrl() { |
|||
return "/api/upordown" |
|||
}, |
|||
//设置上传头部 |
|||
headers() { |
|||
return { token: "mytoken" } |
|||
}, |
|||
}, |
|||
watch: { |
|||
addOfMinusBox(){ |
|||
if(this.addOfMinusBox){ |
|||
console.log("考核细则处理--2232->",this.addOfMinusBox,this.addOfMinusCont,this.orgTarget) |
|||
if(this.plusminusscore != 1){ |
|||
this.addOfMinusTitle="加分操作" |
|||
}else{ |
|||
this.addOfMinusTitle="减分操作" |
|||
} |
|||
this.fromDataCont.id=this.addOfMinusAttribute.id |
|||
this.addOfMinusCont.scoretype=1 |
|||
this.getWorkflowView(); |
|||
} |
|||
} |
|||
}, |
|||
methods:{ |
|||
//整改开关 |
|||
zhengGai(val){ |
|||
console.log("整改开关",val) |
|||
this.fromDataCont.correct = val |
|||
this.getWorkflowView(); |
|||
}, |
|||
//获取流程图 |
|||
async getWorkflowView(){ |
|||
let sendData ={ |
|||
flowworkid: "103820507006115840", |
|||
orgid: this.orgTarget.orgid, |
|||
condition: [ |
|||
{ |
|||
words: "attribute", |
|||
price: "1" |
|||
}, |
|||
{ |
|||
words: "correct", |
|||
price: this.fromDataCont.correct.toString() |
|||
} |
|||
] |
|||
} |
|||
console.log("获取流程图---发送参数--->",sendData) |
|||
const res = await getWorkflowFullView(sendData) |
|||
console.log("获取流程图-->",res) |
|||
if(res.code == 0){ |
|||
this.workflowListCont = res.data.nodecontlist |
|||
} |
|||
}, |
|||
//检查文件上传个数 |
|||
excFileCount(files, fileList){ |
|||
|
|||
this.$message.warning(`当前限制选择 ${this.maxFileCount} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`); |
|||
}, |
|||
//上传成功时回调 |
|||
attachUploadSuccess(response, file, fileList) { |
|||
// console.log("上传成功时回调",response, file, fileList) |
|||
if(response.code == 0){ |
|||
let fengmian = quzheng |
|||
if(response.data.type != 1){ |
|||
fengmian = bookfile |
|||
}else{ |
|||
fengmian = response.data.url |
|||
} |
|||
this.fileDataList.push({ |
|||
id: response.data.ID, |
|||
name: response.data.name, |
|||
url: fengmian, |
|||
fileUrl: response.data.url, |
|||
physicspath: response.data.physicspath, |
|||
type:response.data.type, |
|||
fileSize:response.data.fileSize, |
|||
size:response.data.size, |
|||
tag:response.data.tag |
|||
}) |
|||
} |
|||
}, |
|||
//上传失败时回调 |
|||
attachError(err, file, fileList) { |
|||
// console.log("上传路径--->",err, file, fileList) |
|||
this.$message.warning("当前文件上传失败!"); |
|||
}, |
|||
//删除图片 |
|||
handleRemove(file) { |
|||
console.log(file,this.fileDataList); |
|||
let removeId = file.id |
|||
this.fileDataList.forEach((item, index) => { |
|||
if (item.id == removeId) { |
|||
this.fileDataList.splice(index, 1) |
|||
} |
|||
}) |
|||
}, |
|||
//预览图片 |
|||
handlePictureCardPreview(file) { |
|||
this.dialogImageUrl = file.url; |
|||
this.dialogVisible = true; |
|||
}, |
|||
//关闭弹窗 |
|||
handlePlusMinusClose(){ |
|||
this.fileDataList=[] |
|||
this.fromDataCont.correct = 2; |
|||
this.$refs.ruleForm.resetFields(); |
|||
this.$emit('closeAddOfMinusBox'); |
|||
}, |
|||
//提交数据 |
|||
async saveDataDialog(){ |
|||
this.$refs.ruleForm.validate((valid) => { |
|||
if (valid) { |
|||
console.log("没有问题",valid) |
|||
}else{ |
|||
console.log("1") |
|||
return false; |
|||
} |
|||
}); |
|||
}, |
|||
//判断提交 |
|||
nodeIsShow(val){ |
|||
// console.log("判断提交",val) |
|||
let isShow = false; |
|||
switch(val.runtype){ |
|||
case 1: |
|||
if(val.step == 1){ |
|||
isShow = true; |
|||
this.flowIsTrue = true; |
|||
}else{ |
|||
isShow = false; |
|||
} |
|||
break; |
|||
case 2: |
|||
// isShow = true; |
|||
break; |
|||
case 3: //有选中得节点指定 |
|||
if(val.customNode == this.workflowListCont.currentnode){ |
|||
isShow = true; |
|||
}else{ |
|||
isShow = false; |
|||
} |
|||
break; |
|||
case 4: //抄送节点 |
|||
if(val.runscope == 1){ //1:自选;非1:不可自选 |
|||
isShow = true; |
|||
}else{ |
|||
isShow = false; |
|||
} |
|||
break; |
|||
default: |
|||
isShow= false; |
|||
break; |
|||
} |
|||
return isShow; |
|||
}, |
|||
//节点添加人员 |
|||
addManCont(manCont){ |
|||
console.log("节点添加人员",manCont) |
|||
if(manCont.userlist){ |
|||
if(manCont.userlist.length > 0){ |
|||
manCont.userlist.forEach(item => { |
|||
if(item.xuan==1){ |
|||
this.checkedUser.push(item) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
|
|||
this.addManBox = true |
|||
}, |
|||
//关闭添加人员弹窗 |
|||
closeAddManBox(){ |
|||
this.addManBox = false |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
<style lang='less'> |
|||
.my-label{ |
|||
width: 80px; |
|||
} |
|||
.lable_title{ |
|||
width: 100%; |
|||
height: 100%; |
|||
margin-top: 15px; |
|||
} |
|||
.ge_li{ |
|||
margin-top: 20px; |
|||
} |
|||
.gundong_dialog{ |
|||
height: 500px; |
|||
overflow: hidden; |
|||
overflow-y: auto; |
|||
} |
|||
.addPeople{ |
|||
border: 1px dashed #c0ccda; |
|||
background-color: #fbfdff; |
|||
text-align: center; |
|||
width: 30px; |
|||
height: 30px; |
|||
font-size: 20px; |
|||
color: #8c939d; |
|||
cursor: pointer; |
|||
span{ |
|||
margin-top: 5px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,124 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-04-01 16:20:57 |
|||
@ 备注: 加减分 |
|||
--> |
|||
<template> |
|||
<el-dialog :title="addOfMinusTitle" :visible.sync="addOfMinusBox" width="600px" append-to-body :before-close="handlePlusMinusClose"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-descriptions class="margin-top" :column="4" :size="size" border> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核项目 |
|||
</template> |
|||
{{ addOfMinusCont.columntitle }} |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核内容 |
|||
</template> |
|||
{{ addOfMinusCont.title }} |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="3" label-class-name="my-label" content-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核标准 |
|||
</template> |
|||
{{ addOfMinusCont.standard }} |
|||
</el-descriptions-item> |
|||
|
|||
<el-descriptions-item label-class-name="my-label"> |
|||
<template slot="label"> |
|||
考核单位 |
|||
</template> |
|||
{{ addOfMinusCont.unit }} |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" v-if="addOfMinusCont.scoretype!=1" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
分值 |
|||
</template> |
|||
<el-input v-model="fromDataCont.score" clearable placeholder="请输入分值(小数最多只能输入两位)" oninput="if(isNaN(value)) { value = null } if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.')+3)}" /> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" v-if="addOfMinusCont.scoretype==1" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
发生次数 |
|||
</template> |
|||
<el-input-number v-model="fromDataCont.frequency" :step="1" step-strictly></el-input-number> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
原因 |
|||
</template> |
|||
<el-input type="textarea" :rows="4" placeholder="请输入原因" v-model="fromDataCont.reason"></el-input> |
|||
</el-descriptions-item> |
|||
<el-descriptions-item span="4" label-class-name="my-label"> |
|||
<template slot="label"> |
|||
发生时间 |
|||
</template> |
|||
<el-date-picker |
|||
v-model="fromDataCont.time" |
|||
value-format="yyyy-MM-dd HH:mm:ss" |
|||
type="datetime" |
|||
placeholder="选择日期时间"> |
|||
</el-date-picker> |
|||
</el-descriptions-item> |
|||
</el-descriptions> |
|||
</el-col> |
|||
<el-col :span="24"></el-col> |
|||
<el-col :span="24"></el-col> |
|||
<el-col :span="24"></el-col> |
|||
</el-row> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="handlePlusMinusClose">取 消</el-button> |
|||
<el-button type="primary" @click="saveDataDialog">确 定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'plusMinusScoreDx', |
|||
props:['addOfMinusBox','addOfMinusCont','addOfMinusAttribute','closeAddOfMinusBox'], |
|||
data() { |
|||
return { |
|||
size:"", |
|||
addOfMinusTitle:"减分操作", |
|||
fromDataCont:{ |
|||
id:"", |
|||
score:"", |
|||
frequency:1, |
|||
}, //提交数据表单 |
|||
} |
|||
}, |
|||
created(){ |
|||
|
|||
}, |
|||
watch: { |
|||
addOfMinusBox(){ |
|||
if(this.addOfMinusBox){ |
|||
console.log("考核细则处理--->",this.addOfMinusBox,this.addOfMinusCont) |
|||
if(this.plusminusscore != 1){ |
|||
this.addOfMinusTitle="加分操作" |
|||
}else{ |
|||
this.addOfMinusTitle="减分操作" |
|||
} |
|||
this.fromDataCont.id=this.addOfMinusAttribute.id |
|||
} |
|||
} |
|||
}, |
|||
methods:{ |
|||
//关闭弹窗 |
|||
handlePlusMinusClose(){ |
|||
this.$emit('closeAddOfMinusBox'); |
|||
}, |
|||
//提交数据 |
|||
async saveDataDialog(){ |
|||
|
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
<style lang='less'> |
|||
.my-label{ |
|||
width: 80px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,215 @@ |
|||
<!-- |
|||
@ 作者: 秦东 |
|||
@ 时间: 2023-04-05 10:33:33 |
|||
@ 备注: 选人 |
|||
--> |
|||
<template> |
|||
<el-dialog title="选择人员" :visible.sync="addManBox" width="620px" append-to-body :before-close="closePeopleAddBox" custom-class="dia_box"> |
|||
<el-row :gutter="5"> |
|||
<el-col :span="12"> |
|||
<div class="box_body"> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<el-input prefix-icon="el-icon-search" size="small" v-model="searchPeople" placeholder="请输入姓名或工号" ></el-input> |
|||
</el-col> |
|||
<el-col :span="24" class="mianbaox"> |
|||
<el-breadcrumb separator-class="el-icon-arrow-right"> |
|||
<el-breadcrumb-item><span @click="breadClick(309)">所有</span></el-breadcrumb-item> |
|||
<el-breadcrumb-item><span @click="breadClick(309)">企管部</span></el-breadcrumb-item> |
|||
<el-breadcrumb-item><span @click="breadClick(309)">IT</span></el-breadcrumb-item> |
|||
</el-breadcrumb> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="left_man_box"> |
|||
|
|||
<el-row class="ui_li_list lv_lan_se"> |
|||
<el-col :span="2"> |
|||
<i class="fa fa-lg fa-check-square-o"></i> |
|||
</el-col> |
|||
<el-col :span="2"> |
|||
<!-- <el-image :src="departpic"></el-image> --> |
|||
<span class="fa fa-lg fa-sitemap"></span> |
|||
</el-col> |
|||
<el-col :span="15" class="listmank">企管部</el-col> |
|||
<el-col :span="4" class="rightLint"><span>下级</span></el-col> |
|||
</el-row> |
|||
|
|||
<el-row class="ui_li_list"> |
|||
<el-col :span="2"> |
|||
<i class="fa fa-lg fa-square-o"></i> |
|||
</el-col> |
|||
<el-col :span="2"> |
|||
<span class="fa fa-lg fa-sitemap"></span> |
|||
</el-col> |
|||
<el-col :span="15" class="listmank">企管部</el-col> |
|||
<el-col :span="4" class="rightLint"><span>下级</span></el-col> |
|||
</el-row> |
|||
|
|||
|
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="box_body_right"> |
|||
<el-row> |
|||
<el-col :span="12" class="right_hear">已选择({{ selected }})</el-col> |
|||
<el-col :span="12" class="right_hear clear_cont"><span>清除</span></el-col> |
|||
<el-col :span="24" class="seleced_body"> |
|||
<el-row class="ui_li_list"> |
|||
<el-col :span="2"><el-image :src="departpic"></el-image></el-col> |
|||
<el-col :span="18" class="sel_mancont">秦东</el-col> |
|||
<el-col :span="4" class="del_mancont"><i class="el-icon-circle-close"></i></el-col> |
|||
</el-row> |
|||
<el-row class="ui_li_list"> |
|||
<el-col :span="2"><el-image :src="departpic"></el-image></el-col> |
|||
<el-col :span="18" class="sel_mancont">秦东</el-col> |
|||
<el-col :span="4" class="del_mancont"><i class="el-icon-circle-close"></i></el-col> |
|||
</el-row> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="closePeopleAddBox">取 消</el-button> |
|||
<el-button type="primary" @click="saveManDataDialog" :loading="clickManLoading">确 定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</template> |
|||
<script> |
|||
import bumenpic from "@/images/bumen.png" |
|||
export default { |
|||
name:"xuanren", |
|||
props:['addManBox','userlist','closeAddManBox'], |
|||
data() { |
|||
return { |
|||
selected:0, //已选择 |
|||
departpic:bumenpic, |
|||
searchPeople:"", //搜索人 |
|||
clickManLoading:false, //提交按钮 |
|||
checkList:[], //选中选项 |
|||
} |
|||
}, |
|||
created(){ |
|||
console.log(this.departpic,bumenpic) |
|||
}, |
|||
watch: { |
|||
addManBox(){ |
|||
|
|||
if(this.addManBox){ |
|||
console.log("添加人员--2232->",this.addManBox,this.userlist) |
|||
// if(this.plusminusscore != 1){ |
|||
// this.addOfMinusTitle="加分操作" |
|||
// }else{ |
|||
// this.addOfMinusTitle="减分操作" |
|||
// } |
|||
// this.fromDataCont.id=this.addOfMinusAttribute.id |
|||
// this.addOfMinusCont.scoretype=1 |
|||
// this.getWorkflowView(); |
|||
} |
|||
} |
|||
}, |
|||
methods:{ |
|||
//面包屑 |
|||
breadClick(orgid){ |
|||
console.log("面包屑",orgid) |
|||
}, |
|||
//关闭弹窗 |
|||
closePeopleAddBox(){ |
|||
this.$emit('closeAddManBox'); |
|||
}, |
|||
//保存选中的内容 |
|||
saveManDataDialog(){ |
|||
console.log("保存选中的内容") |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang='less'> |
|||
.dia_box{ |
|||
padding: 0px 0px; |
|||
|
|||
} |
|||
.box_body{ |
|||
border: 1px solid #f5f5f5; |
|||
height: 450px; |
|||
padding: 10px 0 10px 10px; |
|||
} |
|||
.box_body_right{ |
|||
border: 1px solid #f5f5f5; |
|||
height: 450px; |
|||
} |
|||
.mianbaox{ |
|||
padding: 10px 0 5px 0; |
|||
color: #38adff; |
|||
span{ |
|||
color: #38adff; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
.el-dialog__body{ |
|||
padding: 15px 25px; |
|||
} |
|||
.ui_li_list{ |
|||
margin: 5px 0; |
|||
} |
|||
.left_man_box{ |
|||
width: 100%; |
|||
height: 375px; |
|||
overflow: hidden; |
|||
overflow-y: auto; |
|||
i{ |
|||
margin: 7px 0 0 2px; |
|||
width: 16px; |
|||
height: 16px; |
|||
} |
|||
} |
|||
|
|||
.xuanze_1{ |
|||
width: 16px; |
|||
height: 16px; |
|||
border: 1px solid #dcdfe6; |
|||
border-radius: 2px; |
|||
text-align: center; |
|||
padding: 0px; |
|||
|
|||
} |
|||
.rightLint{ |
|||
border-left: 1px solid #eeeeee; |
|||
text-align: right; |
|||
cursor: pointer; |
|||
} |
|||
.listmank{ |
|||
padding: 0px 0 0 5px; |
|||
font-size: 16px; |
|||
} |
|||
.right_hear{ |
|||
padding: 10px 15px; |
|||
border-bottom: 1px solid #f5f5f5; |
|||
} |
|||
.clear_cont{ |
|||
text-align: right; |
|||
color: #38adff; |
|||
cursor: pointer; |
|||
} |
|||
.seleced_body{ |
|||
width: 100%; |
|||
padding: 0px 15px; |
|||
height: 400px; |
|||
overflow: hidden; |
|||
overflow-y: auto; |
|||
font-size: 16px; |
|||
} |
|||
.del_mancont{ |
|||
text-align: right; |
|||
color: #FF0000; |
|||
} |
|||
.sel_mancont{ |
|||
padding-left: 5px; |
|||
} |
|||
.lv_lan_se{ |
|||
color: #38adff; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue