|
|
|
@ -1,25 +1,36 @@ |
|
|
|
<template> |
|
|
|
<!-- 部门考核录入 --> |
|
|
|
<div class="dashboard-container"> |
|
|
|
<!-- <div class="gva-search-box"> |
|
|
|
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
|
|
|
<el-form-item label="所属定量考核"> |
|
|
|
<span> |
|
|
|
<el-tag v-if="childInfo.title!=''">{{childInfo.title}}</el-tag> |
|
|
|
<projectDialog @checkedInfo="getCheckedInfo"></projectDialog> |
|
|
|
</span> |
|
|
|
<div class="gva-search-box"> |
|
|
|
<el-form ref="searchForm" :inline="true" :model="searchVersion"> |
|
|
|
<el-form-item label="所属公司"> |
|
|
|
<el-select v-model="searchVersion.group" clearable placeholder="请选择" @change="selectGroup"> |
|
|
|
<el-option |
|
|
|
v-for="item in companyList" |
|
|
|
:key="item.wxId" |
|
|
|
:label="item.name" |
|
|
|
:value="item.wxId"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="定性指标名称"> |
|
|
|
<el-input |
|
|
|
placeholder="请输入名称" |
|
|
|
v-model="searchInfo.title" |
|
|
|
clearable> |
|
|
|
</el-input> |
|
|
|
<el-form-item label="所属部门"> |
|
|
|
<el-select v-model="searchVersion.deaprtid" clearable placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in departmentList" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="定性指标状态"> |
|
|
|
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态"> |
|
|
|
<el-option :value=1 label="正常">正常</el-option> |
|
|
|
<el-option :value=2 label="禁止">禁止</el-option> |
|
|
|
<el-form-item label="年度"> |
|
|
|
<el-select v-model="searchVersion.year" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in yearList" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
@ -27,13 +38,64 @@ |
|
|
|
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> --> |
|
|
|
</div> |
|
|
|
<div class="gva-table-box"> |
|
|
|
<div class="gva-btn-list"> |
|
|
|
<!-- <el-button size="mini" type="primary" icon="el-icon-setting" @click="showDimension()">设置维度权重</el-button> --> |
|
|
|
<el-button size="mini" type="primary" icon="el-icon-setting" @click="showIndex()">生成部门考核方案</el-button></el-button> |
|
|
|
</div> |
|
|
|
<el-table :data="tableData" border :span-method="objectSpanMethod"> |
|
|
|
<el-table border :data="versionData" :span-method="versionSpanMethod"> |
|
|
|
<el-table-column align="left" label="部门"> |
|
|
|
<template #default="scope"> |
|
|
|
{{scope.row.groupname}}{{scope.row.deaprtname}} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="left" label="年度" prop="year"/> |
|
|
|
<el-table-column align="left" label="版本号"> |
|
|
|
<template #default="scope"> |
|
|
|
{{scope.row.key}} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="left" label="时间" prop="time"/> |
|
|
|
<el-table-column align="left" label="状态"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-switch |
|
|
|
inline-prompt |
|
|
|
active-text="正常" |
|
|
|
inactive-text="禁止" |
|
|
|
v-model="scope.row.state" |
|
|
|
active-color="#13ce66" |
|
|
|
inactive-color="#ff4949" |
|
|
|
:active-value=1 |
|
|
|
:inactive-value=2 |
|
|
|
@change="changeVal($event,scope.row.key)" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="left" fixed="right" label="操作" width="200"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-view" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="showDetails(scope.row)" |
|
|
|
>查看详情</el-button> |
|
|
|
<!-- <el-button |
|
|
|
icon="el-icon-edit" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="showEdit(scope.row)" |
|
|
|
>编辑</el-button> --> |
|
|
|
<el-button |
|
|
|
icon="el-icon-delete" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="deleteOperate(scope.row)" |
|
|
|
>删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<!-- <el-table :data="tableData" border :span-method="objectSpanMethod"> |
|
|
|
<el-table-column prop="parentname" label="部门"></el-table-column> |
|
|
|
<el-table-column prop="dimensionname" label="考核维度"></el-table-column> |
|
|
|
<el-table-column prop="dimensionweight" label="维度权重"></el-table-column> |
|
|
|
@ -45,7 +107,6 @@ |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="targetweight" label="指标权重"></el-table-column> |
|
|
|
<el-table-column prop="unit" label="单位"/> |
|
|
|
<!-- <el-table-column prop="referencescore" label="分值"/> --> |
|
|
|
<el-table-column prop="cycle" label="周期"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-tag v-if="scope.row.cycle==1">班</el-tag> |
|
|
|
@ -76,11 +137,30 @@ |
|
|
|
>查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-table-column prop="userlist" label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-delete" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="deldepTarger(scope.row)" |
|
|
|
>删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="userlist" label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-delete" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="deldetePartDuty(scope.row)" |
|
|
|
>删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> --> |
|
|
|
</div> |
|
|
|
<!-- 新增弹框 --> |
|
|
|
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="100%"> |
|
|
|
|
|
|
|
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
@ -211,7 +291,7 @@ |
|
|
|
</el-dialog> |
|
|
|
<!-- 人员弹框 --> |
|
|
|
<el-dialog :visible.sync="showUser" title="执行人" width="30%"> |
|
|
|
<el-descriptions class="margin-top" :column="3" size="medium" border> |
|
|
|
<!-- <el-descriptions class="margin-top" :column="3" size="medium" border> |
|
|
|
<el-descriptions-item v-for="item in userlistary" :key="item.key"> |
|
|
|
<template slot="label"> |
|
|
|
<i class="el-icon-user"></i> |
|
|
|
@ -219,13 +299,39 @@ |
|
|
|
</template> |
|
|
|
{{item.name}} |
|
|
|
</el-descriptions-item> |
|
|
|
</el-descriptions> |
|
|
|
</el-descriptions> --> |
|
|
|
<el-table |
|
|
|
:data="userlistary" |
|
|
|
style="width: 100%"> |
|
|
|
<el-table-column |
|
|
|
prop="date" |
|
|
|
label="头像"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-avatar shape="square" size="large" :src="scope.row.icon"></el-avatar> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="number" |
|
|
|
label="工号"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="address" |
|
|
|
label="部门"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{scope.row.groupname}}{{scope.row.departmentname}} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="name" |
|
|
|
label="姓名"> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-dialog> |
|
|
|
<!-- 指标权重弹框 --> |
|
|
|
<el-dialog :close-on-click-modal="false" :visible.sync="demDialogFormVisible" title="指标组合" width="70%"> |
|
|
|
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="所属公司" prop="title"> |
|
|
|
<el-select v-model="form.group" clearable placeholder="请选择" @change="selectGroup"> |
|
|
|
<el-option |
|
|
|
@ -237,7 +343,7 @@ |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="所属部门" prop="title" v-if="form.group!=''"> |
|
|
|
<el-select v-model="form.parentid" clearable placeholder="请选择" @change="shouWei"> |
|
|
|
<el-option |
|
|
|
@ -249,8 +355,22 @@ |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="年度"> |
|
|
|
<el-select v-model="form.year" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in yearList" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<div style="width: 200px;height: 40px;line-height: 40px;margin: 0 auto;"> |
|
|
|
纬度合计分:{{weiduFraction}} |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
@ -259,7 +379,6 @@ |
|
|
|
<el-card class="box-card" v-for="(item,index) in weiDuList" :key="item.id"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8"> |
|
|
|
|
|
|
|
<span>考核纬度:{{item.name}}</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
@ -280,7 +399,6 @@ |
|
|
|
border |
|
|
|
:data="item.child" |
|
|
|
style="width: 100%"> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
label="指标名称" |
|
|
|
align="center" |
|
|
|
@ -298,13 +416,14 @@ |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
label="分值" |
|
|
|
label="指标权重" |
|
|
|
align="center" |
|
|
|
prop="referencescore" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input v-if="scope.row.istrue==1" v-model.number="scope.row.referencescore" autocomplete="off" @change="zhibiaofen" /> |
|
|
|
<div v-if="scope.row.istrue==2">{{scope.row.referencescore}}</div> |
|
|
|
<el-input v-model.number="scope.row.referencescore" autocomplete="off" @change="zhibiaofen" /> |
|
|
|
<!-- <el-input v-if="scope.row.istrue==1" v-model.number="scope.row.referencescore" autocomplete="off" @change="zhibiaofen" /> --> |
|
|
|
<!-- <div v-if="scope.row.istrue==2">{{scope.row.referencescore}}</div> --> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
@ -363,22 +482,118 @@ |
|
|
|
</el-dialog> |
|
|
|
<!-- 考核办法弹框 --> |
|
|
|
<el-dialog :visible.sync="methodShow" title="考核办法" width="60%"> |
|
|
|
<el-table :data="methodList" border :span-method="methodSpanMethod"> |
|
|
|
<el-table-column prop="targetsunname" label="考核项目"></el-table-column> |
|
|
|
<el-table :data="methodList" border :span-method="methodSpanMethod" :cell-style="{padding:'0px'}"> |
|
|
|
<el-table-column prop="targetsunname" label="考核项目" width="85"></el-table-column> |
|
|
|
<!-- <el-table-column prop="targetsunname" label="权重"></el-table-column> --> |
|
|
|
<el-table-column prop="detailedtargetname" label="考核标准"></el-table-column> |
|
|
|
<el-table-column prop="content" label="考核办法"></el-table-column> |
|
|
|
<!-- <el-table-column prop="unit" label="单位"/> --> |
|
|
|
<el-table-column prop="referencescore" label="标准分"/> |
|
|
|
|
|
|
|
<el-table-column prop="detailedtargetname" label="考核内容"></el-table-column> |
|
|
|
<el-table-column prop="score" label="考核标准" width="85"></el-table-column> |
|
|
|
<el-table-column prop="unit" label="单位" width="85"/> |
|
|
|
<el-table-column prop="content" label="备注说明" width="200"/> |
|
|
|
<!-- <el-table-column prop="referencescore" label="标准分"/> --> |
|
|
|
</el-table> |
|
|
|
</el-dialog> |
|
|
|
<!-- 部门考核详情弹框 --> |
|
|
|
<el-dialog :visible.sync="detailsShow" title="考核方案" width="75%" @close="detailsClose"> |
|
|
|
<el-table :data="tableData" border :span-method="objectSpanMethod" :cell-style="{padding:'0px'}"> |
|
|
|
<!-- <el-table-column prop="parentname" label="部门"></el-table-column> --> |
|
|
|
<el-table-column prop="dimensionname" label="考核维度" width="80"></el-table-column> |
|
|
|
<el-table-column prop="dimensionweight" label="维度权重" align="center" width="80"></el-table-column> |
|
|
|
<el-table-column prop="targetname" label="考核指标" width="140"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-link v-if="scope.row.type==1" type="primary" @click="showMethod(scope.row)">{{scope.row.targetname}}</el-link> |
|
|
|
<div v-if="scope.row.type==2">{{scope.row.targetname}}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="targetweight" label="指标权重" align="center" width="80"></el-table-column> |
|
|
|
<el-table-column prop="content" label="说明"></el-table-column> |
|
|
|
<el-table-column prop="unit" label="单位" align="center" width="80"/> |
|
|
|
<el-table-column prop="cycle" label="周期" align="center" width="80"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-tag v-if="scope.row.cycle==1">班</el-tag> |
|
|
|
<el-tag v-if="scope.row.cycle==2">天</el-tag> |
|
|
|
<el-tag v-if="scope.row.cycle==3">周</el-tag> |
|
|
|
<el-tag v-if="scope.row.cycle==4">月</el-tag> |
|
|
|
<el-tag v-if="scope.row.cycle==5">季度</el-tag> |
|
|
|
<el-tag v-if="scope.row.cycle==6">年</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="cycleattr" label="频次" width="80"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.cycle==1">每班{{scope.row.cycleattr}}次</div> |
|
|
|
<div v-if="scope.row.cycle==2">每天{{scope.row.cycleattr}}次</div> |
|
|
|
<div v-if="scope.row.cycle==3">每周{{scope.row.cycleattr}}次</div> |
|
|
|
<div v-if="scope.row.cycle==4">每月{{scope.row.cycleattr}}次</div> |
|
|
|
<div v-if="scope.row.cycle==5">每季度{{scope.row.cycleattr}}次</div> |
|
|
|
<div v-if="scope.row.cycle==6">每年{{scope.row.cycleattr}}次</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="userlist" label="执行人" width="80"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-view" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="showUserList(scope.row)" |
|
|
|
>查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="userlist" label="操作" width="120"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-edit" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="editTarger(scope.row)" |
|
|
|
>修改</el-button> |
|
|
|
<el-button |
|
|
|
icon="el-icon-delete" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="deldepTarger(scope.row)" |
|
|
|
>删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<!-- <el-table-column prop="userlist" label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-delete" |
|
|
|
size="small" |
|
|
|
type="text" |
|
|
|
@click="deldetePartDuty(scope.row)" |
|
|
|
>删除</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> --> |
|
|
|
</el-table> |
|
|
|
</el-dialog> |
|
|
|
<!-- 修改指标说明 --> |
|
|
|
<el-dialog :visible.sync="contentShow" title="修改" width="40%"> |
|
|
|
<el-form :model="editTargerFrom" label-width="150px"> |
|
|
|
<el-form-item label="说明" prop="content"> |
|
|
|
<el-input |
|
|
|
type="textarea" |
|
|
|
autosize |
|
|
|
placeholder="请输入内容" |
|
|
|
v-model="editTargerFrom.content"> |
|
|
|
</el-input> |
|
|
|
<!-- <el-input v-model="editTargerFrom.content"/> --> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button size="small" type="primary" @click="xiuShuoMing">确 定</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { dutyclasslist } from '@/api/duty/dimension' |
|
|
|
import { gettasktarget,gettasktargetsun,gettasktargetcontary,addqualeval,addration,departmenttasklist,addqubatch,bumenList,departmentlistnew,adddepartmentdutyinfo } from '@/api/duty/duty' |
|
|
|
import { gettasktarget,gettasktargetsun,gettasktargetcontary,addqualeval, |
|
|
|
addration,departmenttasklist,addqubatch,bumenList,departmentlistnew,adddepartmentdutyinfo, |
|
|
|
newgerderpattarlist,newadddepartduty,deldepartdutytarger,deldepartduty,departdutyplanversion,adddepartdutyversio, |
|
|
|
lookdepartdutyversio,onoffdepartdutyversio,eitedepartexplain |
|
|
|
} from '@/api/duty/duty' |
|
|
|
import projectDialog from '@/components/projectDialog/index.vue' |
|
|
|
import { dutylist,getdutyinfo,eitedutyinfo,eitedutystate } from '@/api/duty/quantitativeIndicators' |
|
|
|
import { |
|
|
|
@ -394,6 +609,9 @@ export default { |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
contentShow:false, |
|
|
|
editTargerFrom:{}, |
|
|
|
detailsShow:false, |
|
|
|
// 纬度合计分 |
|
|
|
weiduFraction:0, |
|
|
|
// 纬度卡片列表 |
|
|
|
@ -456,6 +674,7 @@ export default { |
|
|
|
}, |
|
|
|
// 部门列表 |
|
|
|
departmentList:[], |
|
|
|
versionSpanArr1:[], |
|
|
|
// 公司列表 |
|
|
|
companyList:[], |
|
|
|
editChildInfo:{}, |
|
|
|
@ -489,26 +708,71 @@ export default { |
|
|
|
parentid:'', |
|
|
|
child:[] |
|
|
|
}, |
|
|
|
searchDepartmentList:[], |
|
|
|
// 弹窗变量 |
|
|
|
dialogFormVisible:false, |
|
|
|
// 修改弹窗 |
|
|
|
editDialogFormVisible:false, |
|
|
|
total: 0, |
|
|
|
tableData:[], |
|
|
|
yearList:[{ |
|
|
|
value: '2021', |
|
|
|
label: '2021' |
|
|
|
}, { |
|
|
|
value: '2022', |
|
|
|
label: '2022' |
|
|
|
}, { |
|
|
|
value: '2023', |
|
|
|
label: '2023' |
|
|
|
}, { |
|
|
|
value: '2024', |
|
|
|
label: '2024' |
|
|
|
}, { |
|
|
|
value: '2025', |
|
|
|
label: '2025' |
|
|
|
}, { |
|
|
|
value: '2026', |
|
|
|
label: '2026' |
|
|
|
}, { |
|
|
|
value: '2027', |
|
|
|
label: '2027' |
|
|
|
}, { |
|
|
|
value: '2028', |
|
|
|
label: '2028' |
|
|
|
}, { |
|
|
|
value: '2029', |
|
|
|
label: '2029' |
|
|
|
}, { |
|
|
|
value: '2030', |
|
|
|
label: '2030' |
|
|
|
}], |
|
|
|
pos:'', |
|
|
|
pos1:'', |
|
|
|
pos2:'', |
|
|
|
versionPos:'', |
|
|
|
spanArr:[], |
|
|
|
spanArr1:[], |
|
|
|
spanArr2:[], |
|
|
|
versionSpanArr:[], |
|
|
|
methodSpanArr:[], |
|
|
|
methodList:[], |
|
|
|
methodPos:'', |
|
|
|
methodShow:false, |
|
|
|
versionData:[], |
|
|
|
// 条件查询变量 |
|
|
|
searchInfo: { |
|
|
|
// group: "3", |
|
|
|
type: 0, |
|
|
|
group: "3", |
|
|
|
departmentid:'', |
|
|
|
}, |
|
|
|
// 新条件查询变量 |
|
|
|
searchVersion: { |
|
|
|
group: "3", |
|
|
|
deaprtid:'', |
|
|
|
year: "", //年 |
|
|
|
}, |
|
|
|
|
|
|
|
showDetailsRow:{}, |
|
|
|
// 条件查询变量 |
|
|
|
abc:{ |
|
|
|
aaa:"111", |
|
|
|
@ -529,7 +793,9 @@ export default { |
|
|
|
this.$router.push('/login') |
|
|
|
} |
|
|
|
// 页面渲染时获取初始数据 |
|
|
|
this.getDataList() |
|
|
|
this.initialDepartment() |
|
|
|
this.getVersionDataList() |
|
|
|
// this.getDataList() |
|
|
|
this.getGrouplist() |
|
|
|
this.getDutyclasslist() |
|
|
|
this.getSystemadminlist() |
|
|
|
@ -544,6 +810,17 @@ export default { |
|
|
|
this.getMethodSpanArr(this.methodList); |
|
|
|
}); |
|
|
|
}, |
|
|
|
versionData() { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.versionSpanArr=[], |
|
|
|
this.versionPos='', |
|
|
|
// this.methodSpanArr1=[], |
|
|
|
// this.methodPos1='', |
|
|
|
//此时就可以获取到在created赋值后的dataList了 |
|
|
|
this.getVersionSpanArr(this.versionData); |
|
|
|
// this.getMethodSpanArr1(this.methodList); |
|
|
|
}); |
|
|
|
}, |
|
|
|
tableData() { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.spanArr=[], |
|
|
|
@ -561,6 +838,117 @@ export default { |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
getVersionSpanArr(data) { |
|
|
|
// data就是我们从后台拿到的数据 |
|
|
|
for (var i = 0; i < data.length; i++) { |
|
|
|
if (i === 0) { |
|
|
|
this.versionSpanArr.push(1); |
|
|
|
this.versionPos = 0; |
|
|
|
} else { |
|
|
|
// 判断当前元素与上一个元素是否相同 |
|
|
|
if (data[i].department === data[i - 1].department) { |
|
|
|
this.versionSpanArr[this.versionPos] += 1; |
|
|
|
this.versionSpanArr.push(0); |
|
|
|
} else { |
|
|
|
this.versionSpanArr.push(1); |
|
|
|
this.versionPos = i; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
versionSpanMethod({ row, column, rowIndex, columnIndex }){ |
|
|
|
if (columnIndex === 0) { |
|
|
|
const _row = this.versionSpanArr[rowIndex]; |
|
|
|
const _col = _row > 0 ? 1 : 0; |
|
|
|
return { |
|
|
|
// [0,0] 表示这一行不显示, [2,1]表示行的合并数 |
|
|
|
rowspan: _row, |
|
|
|
colspan: _col |
|
|
|
}; |
|
|
|
} |
|
|
|
}, |
|
|
|
// 部门考核详情关闭监听 |
|
|
|
detailsClose(){ |
|
|
|
this.tableData=[] |
|
|
|
}, |
|
|
|
async showDetails(row){ |
|
|
|
this.showDetailsRow=row |
|
|
|
this.getDataList() |
|
|
|
this.detailsShow=true |
|
|
|
|
|
|
|
}, |
|
|
|
// 删除部门考核 |
|
|
|
async deldetePartDuty(row){ |
|
|
|
const deleFrom = { |
|
|
|
group: row.group, |
|
|
|
deaprtid: row.parentid |
|
|
|
} |
|
|
|
const res = await deldepartduty(deleFrom) |
|
|
|
if (res.code === 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '删除成功!' |
|
|
|
}) |
|
|
|
this.getDataList() |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
// 修改说明 |
|
|
|
async xiuShuoMing(){ |
|
|
|
const res = await eitedepartexplain(this.editTargerFrom) |
|
|
|
this.editTargerFrom={} |
|
|
|
this.getDataList() |
|
|
|
this.contentShow=false |
|
|
|
}, |
|
|
|
// 删除部门考核指标 |
|
|
|
async editTarger(row){ |
|
|
|
this.editTargerFrom={ |
|
|
|
content:row.content, |
|
|
|
group:row.group, |
|
|
|
qualevalid:row.qualevalid, |
|
|
|
deaprtid:row.parentid, |
|
|
|
dimension:row.dimension, |
|
|
|
targetid:row.target |
|
|
|
}, |
|
|
|
// this.editTargerFrom.content=row.content |
|
|
|
// this.editTargerFrom.group=row.group |
|
|
|
// this.editTargerFrom.qualevalid=row.qualevalid |
|
|
|
// this.editTargerFrom.deaprtid=row.parentid |
|
|
|
// this.editTargerFrom.dimension=row.dimension |
|
|
|
// this.editTargerFrom.targetid=row.target |
|
|
|
this.contentShow=true |
|
|
|
// const deleFrom = { |
|
|
|
// group: row.group, |
|
|
|
// deaprtid: row.parentid, |
|
|
|
// dimension: "1", //维度 |
|
|
|
// targetid: "1" //指标 |
|
|
|
// } |
|
|
|
// const res = await deldepartdutytarger(deleFrom) |
|
|
|
// if (res.code === 0) { |
|
|
|
// this.$message({ |
|
|
|
// type: 'success', |
|
|
|
// message: '删除成功!' |
|
|
|
// }) |
|
|
|
// this.getDataList() |
|
|
|
// } |
|
|
|
}, |
|
|
|
// 删除部门考核指标 |
|
|
|
async deldepTarger(row){ |
|
|
|
const deleFrom = { |
|
|
|
group: row.group, |
|
|
|
deaprtid: row.parentid, |
|
|
|
dimension: "1", //维度 |
|
|
|
targetid: "1" //指标 |
|
|
|
} |
|
|
|
const res = await deldepartdutytarger(deleFrom) |
|
|
|
if (res.code === 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '删除成功!' |
|
|
|
}) |
|
|
|
this.getDataList() |
|
|
|
} |
|
|
|
}, |
|
|
|
// 指标分值合计 |
|
|
|
zhibiaofen(){ |
|
|
|
const that=this |
|
|
|
@ -590,7 +978,9 @@ export default { |
|
|
|
this.form.group=this.form.group.toString() |
|
|
|
this.form.parentid=this.form.parentid.toString() |
|
|
|
this.form.child=this.weiDuList |
|
|
|
const res = await adddepartmentdutyinfo(this.form) |
|
|
|
// const res = await adddepartmentdutyinfo(this.form) |
|
|
|
// const res = await newadddepartduty(this.form) |
|
|
|
const res = await adddepartdutyversio(this.form) |
|
|
|
if (res.code === 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
@ -741,7 +1131,16 @@ export default { |
|
|
|
}, |
|
|
|
// 合并行 |
|
|
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) { |
|
|
|
if (columnIndex === 0) { |
|
|
|
// if (columnIndex === 0||columnIndex === 10) { |
|
|
|
// const _row = this.spanArr[rowIndex]; |
|
|
|
// const _col = _row > 0 ? 1 : 0; |
|
|
|
// return { |
|
|
|
// // [0,0] 表示这一行不显示, [2,1]表示行的合并数 |
|
|
|
// rowspan: _row, |
|
|
|
// colspan: _col |
|
|
|
// }; |
|
|
|
// } |
|
|
|
if (columnIndex === 10) { |
|
|
|
const _row = this.spanArr[rowIndex]; |
|
|
|
const _col = _row > 0 ? 1 : 0; |
|
|
|
return { |
|
|
|
@ -750,7 +1149,7 @@ export default { |
|
|
|
colspan: _col |
|
|
|
}; |
|
|
|
} |
|
|
|
if (columnIndex === 1||columnIndex === 2) { |
|
|
|
if (columnIndex === 0||columnIndex === 1) { |
|
|
|
const _row = this.spanArr1[rowIndex]; |
|
|
|
const _col = _row > 0 ? 1 : 0; |
|
|
|
return { |
|
|
|
@ -759,7 +1158,7 @@ export default { |
|
|
|
colspan: _col |
|
|
|
}; |
|
|
|
} |
|
|
|
if (columnIndex === 3||columnIndex === 4||columnIndex === 5||columnIndex === 6||columnIndex === 7||columnIndex === 8||columnIndex === 9) { |
|
|
|
if (columnIndex === 2||columnIndex === 3||columnIndex === 4||columnIndex === 5||columnIndex === 6||columnIndex === 7||columnIndex === 8||columnIndex === 9) { |
|
|
|
const _row = this.spanArr2[rowIndex]; |
|
|
|
const _col = _row > 0 ? 1 : 0; |
|
|
|
return { |
|
|
|
@ -806,7 +1205,8 @@ export default { |
|
|
|
parentid:this.form.parentid.toString(), |
|
|
|
} |
|
|
|
const that = this |
|
|
|
const res = await departmentlistnew(From) |
|
|
|
// const res = await departmentlistnew(From) |
|
|
|
const res = await newgerderpattarlist(From) |
|
|
|
this.weiDuList=JSON.parse(JSON.stringify(res.data)) |
|
|
|
this.weiDuList.forEach(function(element) { |
|
|
|
that.$set(element, 'ordering', '') |
|
|
|
@ -816,7 +1216,6 @@ export default { |
|
|
|
that.$set(iteam, 'status', 1) |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
console.log(this.weiDuList) |
|
|
|
} |
|
|
|
@ -842,12 +1241,34 @@ export default { |
|
|
|
async selectGroup(val){ |
|
|
|
if (val!='') { |
|
|
|
const departmentFrom={ |
|
|
|
id:val |
|
|
|
id:parseInt(val) |
|
|
|
} |
|
|
|
const res = await departmentlist(departmentFrom) |
|
|
|
this.departmentList=res.data |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
// 搜索时选中的公司值 |
|
|
|
async searchSelectGroup(val){ |
|
|
|
if (val!='') { |
|
|
|
const departmentFrom={ |
|
|
|
id:val |
|
|
|
} |
|
|
|
const res = await departmentlist(departmentFrom) |
|
|
|
this.searchDepartmentList=res.data |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
// 初始化部门 |
|
|
|
async initialDepartment(){ |
|
|
|
|
|
|
|
const departmentFrom={ |
|
|
|
id:3 |
|
|
|
} |
|
|
|
const res = await departmentlist(departmentFrom) |
|
|
|
this.departmentList=res.data |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
// 编辑获取选中组件值 |
|
|
|
getEditCheckedfrom(data){ |
|
|
|
@ -882,15 +1303,15 @@ export default { |
|
|
|
}) |
|
|
|
.then(async() => { |
|
|
|
this.deleFrom.state=3; |
|
|
|
this.deleFrom.outid=row.outId; |
|
|
|
const res = await statedutyclass(this.deleFrom) |
|
|
|
this.deleFrom.key=row.key; |
|
|
|
const res = await onoffdepartdutyversio(this.deleFrom) |
|
|
|
if (res.code === 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '删除成功!' |
|
|
|
}) |
|
|
|
|
|
|
|
this.getDataList() |
|
|
|
this.getVersionDataList() |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
@ -911,28 +1332,28 @@ export default { |
|
|
|
// 开关状态监听 |
|
|
|
async changeVal(val,id){ |
|
|
|
console.log(val) |
|
|
|
this.switchFrom.outid=id |
|
|
|
this.switchFrom.key=id |
|
|
|
if (val==1) { |
|
|
|
this.switchFrom.state=1; |
|
|
|
const res = await eitedutystate(this.switchFrom) |
|
|
|
const res = await onoffdepartdutyversio(this.switchFrom) |
|
|
|
if (res.code === 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '修改状态成功', |
|
|
|
showClose: true |
|
|
|
}) |
|
|
|
this.getDataList() |
|
|
|
this.getVersionDataList() |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.switchFrom.state=2; |
|
|
|
const res = await eitedutystate(this.switchFrom) |
|
|
|
const res = await onoffdepartdutyversio(this.switchFrom) |
|
|
|
if (res.code === 0) { |
|
|
|
this.$message({ |
|
|
|
type: 'success', |
|
|
|
message: '修改状态成功', |
|
|
|
showClose: true |
|
|
|
}) |
|
|
|
this.getDataList() |
|
|
|
this.getVersionDataList() |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
@ -949,10 +1370,10 @@ export default { |
|
|
|
}, |
|
|
|
// 条件搜索 |
|
|
|
onSubmit() { |
|
|
|
this.page = 1 |
|
|
|
this.pageSize = 10 |
|
|
|
this.searchInfo.parentId=this.childInfo.outId |
|
|
|
this.getDataList() |
|
|
|
// this.page = 1 |
|
|
|
// this.pageSize = 10 |
|
|
|
// this.searchInfo.parentId=this.childInfo.outId |
|
|
|
this.getVersionDataList() |
|
|
|
}, |
|
|
|
// 日期时间戳转日期格式 |
|
|
|
formatDate(nS) { |
|
|
|
@ -1042,8 +1463,37 @@ export default { |
|
|
|
}, |
|
|
|
// 获取初始数据 |
|
|
|
async getDataList() { |
|
|
|
const res = await departmenttasklist(this.searchInfo) |
|
|
|
// let searchInfoFrom = {} |
|
|
|
// searchInfoFrom=JSON.parse(JSON.stringify(this.searchInfo)); |
|
|
|
// searchInfoFrom.departmentid=searchInfoFrom.departmentid.toString() |
|
|
|
// const res = await departmenttasklist(searchInfoFrom) |
|
|
|
// if (res.data==null) { |
|
|
|
// this.tableData=[] |
|
|
|
// } |
|
|
|
// this.tableData = res.data |
|
|
|
const from = { |
|
|
|
key:this.showDetailsRow.key |
|
|
|
} |
|
|
|
const res = await lookdepartdutyversio(from) |
|
|
|
if (res.code === 0) { |
|
|
|
this.tableData=res.data |
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
// 获取初始部门考核方案版本列表 |
|
|
|
async getVersionDataList() { |
|
|
|
this.searchVersion.deaprtid=this.searchVersion.deaprtid.toString() |
|
|
|
const res = await departdutyplanversion(this.searchVersion) |
|
|
|
if (res.data==null) { |
|
|
|
this.versionData=[] |
|
|
|
} |
|
|
|
this.versionData = res.data |
|
|
|
this.searchVersion={ |
|
|
|
group: "3", |
|
|
|
deaprtid:'', |
|
|
|
year: "", //年 |
|
|
|
} |
|
|
|
// this.searchVersion.deaprtid=parseInt(this.searchVersion.deaprtid ) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|