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