6 changed files with 927 additions and 43 deletions
@ -0,0 +1,235 @@ |
|||||
|
<template> |
||||
|
<div class="dashboard-container"> |
||||
|
<!--搜索区域--> |
||||
|
<div class="gva-search-box"> |
||||
|
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
||||
|
<el-form-item label="行政组织" prop="title"> |
||||
|
<el-cascader filterable clearable v-model="searchInfo.departmentid" :options="departmentList" :show-all-levels="false" :props="props1"></el-cascader> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="指标名称"> |
||||
|
<el-input |
||||
|
placeholder="请输入名称" |
||||
|
v-model="searchInfo.title" |
||||
|
clearable> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="日期"> |
||||
|
<el-date-picker |
||||
|
@change="searchYearAndMonth" |
||||
|
v-model="searchMonth" |
||||
|
type="month" |
||||
|
placeholder="选择月"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmitSearch">查询</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
<!--数据列表--> |
||||
|
<div class="gva-table-box"> |
||||
|
<el-table :data="tableData" border :span-method="objectSpanMethod"> |
||||
|
<el-table-column align="left" label="部门" prop="parentname"/> |
||||
|
<el-table-column align="left" label="考核指标" prop="targetname"/> |
||||
|
<el-table-column align="left" label="全奖值" prop="unit" width="65"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.allprize}} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="零奖值" prop="unit" width="65"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.zeroprize}} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="封顶值" prop="unit" width="65"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.cappingcal}}% |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="考核说明" prop="content"/> |
||||
|
<el-table-column align="left" label="指标权重分" prop="targetweight" width="100"/> |
||||
|
<el-table-column align="left" label="实际值" prop="actual"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input @input="inputActual(scope.row,scope.$index)" v-model="scope.row.actual" autocomplete="off"/> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="得分" prop="actual"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-if="scope.row.scoringmethod==2" v-model="scope.row.scoringscore" autocomplete="off"/> |
||||
|
<div v-if="scope.row.scoringmethod==1">{{scope.row.scoringscore}}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="达成率" prop="reach"/> |
||||
|
<el-table-column align="left" label="说明" prop="score"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model="scope.row.reason" autocomplete="off"/> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="流程" width="100"> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
icon="el-icon-view" |
||||
|
size="small" |
||||
|
type="text" |
||||
|
@click="showProcess(scope.row)" |
||||
|
>查看流程</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="考核周期" width="135"> |
||||
|
<template> |
||||
|
<el-date-picker |
||||
|
style="width:110px" |
||||
|
@change="searchYearAndMonth" |
||||
|
v-model="searchMonth" |
||||
|
type="month" |
||||
|
value-format="yyyy-MM" |
||||
|
placeholder="请选择"> |
||||
|
</el-date-picker> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" fixed="right" label="操作" width="70"> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
icon="el-icon-circle-plus-outline" |
||||
|
size="small" |
||||
|
type="text" |
||||
|
@click="tijiao(scope.row)" |
||||
|
>提交</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { getQuantitativeTasks } from "@/api/systemaccredit/systemapi" |
||||
|
import { departmentlist } from '@/api/api/dutys' |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
// 条件查询变量 |
||||
|
searchMonth:"", //年月 |
||||
|
searchInfo: { |
||||
|
title:'', |
||||
|
departmentid:'', |
||||
|
month:"" |
||||
|
}, |
||||
|
// 部门列表 |
||||
|
departmentList:[], |
||||
|
props1: { |
||||
|
checkStrictly: true, |
||||
|
value: "id", |
||||
|
label: "name", |
||||
|
children: "children", |
||||
|
emitPath:false, |
||||
|
}, |
||||
|
tableData:[],//表格数据 |
||||
|
spanArr:[], //合并数据 |
||||
|
} |
||||
|
}, |
||||
|
created(){ |
||||
|
this.getGrouplist(); //获取行政组织 |
||||
|
this.onSubmitSearch() //获取数据 |
||||
|
}, |
||||
|
// 监听数据 |
||||
|
watch: { |
||||
|
//监听表格数据编号 |
||||
|
tableData() { |
||||
|
this.$nextTick(() => { |
||||
|
this.spanArr=[], |
||||
|
this.pos='', |
||||
|
//此时就可以获取到在created赋值后的dataList了 |
||||
|
this.getSpanArr(this.tableData); |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
methods:{ |
||||
|
// 获取部门 |
||||
|
async getGrouplist(){ |
||||
|
const departmentFrom={ |
||||
|
id:313 |
||||
|
} |
||||
|
const res = await departmentlist(departmentFrom) |
||||
|
this.departmentList=res.data |
||||
|
}, |
||||
|
//处理查询时间 |
||||
|
searchYearAndMonth(){ |
||||
|
if(this.searchMonth && this.searchMonth != null){ |
||||
|
let yearVal = this.searchMonth.getFullYear(); |
||||
|
let monthVal = this.searchMonth.getMonth()+1; |
||||
|
if(monthVal <= 9){ |
||||
|
monthVal = "0"+monthVal |
||||
|
} |
||||
|
this.searchInfo.month= yearVal + "-" + monthVal |
||||
|
} |
||||
|
}, |
||||
|
//查询定量提交数据 |
||||
|
async onSubmitSearch(){ |
||||
|
let sendData = { |
||||
|
orgid:this.searchInfo.departmentid.toString(), |
||||
|
title:this.searchInfo.title, |
||||
|
time:this.searchInfo.month |
||||
|
} |
||||
|
const res = await getQuantitativeTasks(sendData); |
||||
|
console.log("获取个人定量考核提交数据表---->", res); |
||||
|
this.tableData = res.data; |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
// 部门列合并 |
||||
|
getSpanArr(data) { |
||||
|
// data就是我们从后台拿到的数据 |
||||
|
for (var i = 0; i < data.length; i++) { |
||||
|
if (i === 0) { |
||||
|
this.spanArr.push(1); |
||||
|
this.pos = 0; |
||||
|
} else { |
||||
|
// 判断当前元素与上一个元素是否相同 |
||||
|
if (data[i].parentid === data[i - 1].parentid) { |
||||
|
this.spanArr[this.pos] += 1; |
||||
|
this.spanArr.push(0); |
||||
|
} else { |
||||
|
this.spanArr.push(1); |
||||
|
this.pos = i; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// 合并行 |
||||
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) { |
||||
|
if (columnIndex === 0) { |
||||
|
const _row = this.spanArr[rowIndex]; |
||||
|
const _col = _row > 0 ? 1 : 0; |
||||
|
console.log("合并行",`rowspan:${_row} colspan:${_col}`); |
||||
|
return { |
||||
|
// [0,0] 表示这一行不显示, [2,1]表示行的合并数 |
||||
|
rowspan: _row, |
||||
|
colspan: _col |
||||
|
}; |
||||
|
} |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
.dashboard { |
||||
|
&-container { |
||||
|
margin: 30px; |
||||
|
} |
||||
|
&-text { |
||||
|
font-size: 30px; |
||||
|
line-height: 46px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,581 @@ |
|||||
|
<template> |
||||
|
<!-- 定量考核打分 --> |
||||
|
<div class="dashboard-container"> |
||||
|
<div class="gva-search-box"> |
||||
|
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
||||
|
|
||||
|
<el-form-item label="所属部门" prop="title"> |
||||
|
<el-cascader filterable clearable v-model="searchInfo.departmentid" :options="departmentList" :show-all-levels="false" :props="props1"></el-cascader> |
||||
|
|
||||
|
</el-form-item> |
||||
|
<el-form-item label="指标名称"> |
||||
|
<el-input |
||||
|
placeholder="请输入名称" |
||||
|
v-model="searchInfo.title" |
||||
|
clearable> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
<!-- <el-cascader clearable v-model="searchInfo.departmentid" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader> --> |
||||
|
|
||||
|
<el-form-item> |
||||
|
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button> |
||||
|
<!-- <el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button> --> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
<div class="gva-table-box"> |
||||
|
<!-- <div class="gva-btn-list"> |
||||
|
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button> |
||||
|
</div> --> |
||||
|
<el-table :data="tableData" border :span-method="objectSpanMethod"> |
||||
|
<el-table-column align="left" label="部门" prop="parentname"/> |
||||
|
<el-table-column align="left" label="考核指标" prop="targetname"/> |
||||
|
|
||||
|
<el-table-column align="left" label="全奖值" prop="unit" width="65"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.allprize}} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="零奖值" prop="unit" width="65"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.zeroprize}} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="封顶值" prop="unit" width="65"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{scope.row.cappingcal}}% |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="考核说明" prop="content"/> |
||||
|
<el-table-column align="left" label="指标权重分" prop="targetweight" width="100"/> |
||||
|
<el-table-column align="left" label="实际值" prop="actual"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input @input="inputActual(scope.row,scope.$index)" v-model="scope.row.actual" autocomplete="off"/> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="得分" prop="actual"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-if="scope.row.scoringmethod==2" v-model="scope.row.scoringscore" autocomplete="off"/> |
||||
|
<div v-if="scope.row.scoringmethod==1">{{scope.row.scoringscore}}</div> |
||||
|
|
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="达成率" prop="reach"/> |
||||
|
<!-- <el-table-column align="left" label="单位" prop="unit"/> |
||||
|
<el-table-column align="left" label="分数" prop="score"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model.number="scope.row.score" autocomplete="off"/> |
||||
|
</template> |
||||
|
</el-table-column> --> |
||||
|
<el-table-column align="left" label="说明" prop="score"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model="scope.row.reason" autocomplete="off"/> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="流程" width="100"> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
icon="el-icon-view" |
||||
|
size="small" |
||||
|
type="text" |
||||
|
@click="showProcess(scope.row)" |
||||
|
>查看流程</el-button> |
||||
|
<!-- <el-button |
||||
|
icon="el-icon-remove-outline" |
||||
|
size="small" |
||||
|
type="text" |
||||
|
@click="showJian(scope.row)" |
||||
|
>减分</el-button> --> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" label="考核周期"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-date-picker |
||||
|
style="width:120px" |
||||
|
v-model="scope.row.month" |
||||
|
type="month" |
||||
|
value-format="yyyy-MM" |
||||
|
placeholder="请选择"> |
||||
|
</el-date-picker> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column align="left" fixed="right" label="操作"> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
icon="el-icon-circle-plus-outline" |
||||
|
size="small" |
||||
|
type="text" |
||||
|
@click="tijiao(scope.row)" |
||||
|
>提交</el-button> |
||||
|
<!-- <el-button |
||||
|
icon="el-icon-remove-outline" |
||||
|
size="small" |
||||
|
type="text" |
||||
|
@click="showJian(scope.row)" |
||||
|
>减分</el-button> --> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<!-- <el-button size="small" type="primary" @click="tijiao">提 交</el-button> --> |
||||
|
</div> |
||||
|
<!-- 新增弹框 --> |
||||
|
<el-dialog :close-on-click-modal="false" :visible.sync="dialogFormVisible" title="流程详情" width="20%"> |
||||
|
<el-card class="box-card"> |
||||
|
<el-steps direction="vertical" :active="buzhou"> |
||||
|
<el-step v-for="(item,index) in processData" :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="4" 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="4" 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.workshopname}}-{{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> |
||||
|
</template> |
||||
|
</el-step> |
||||
|
</el-steps> |
||||
|
|
||||
|
</el-card> |
||||
|
</el-dialog> |
||||
|
<!-- 编辑弹框 --> |
||||
|
<el-dialog :close-on-click-modal="false" :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%"> |
||||
|
<el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px"> |
||||
|
<el-form-item label="考核维度名称" prop="title"> |
||||
|
<el-input v-model="editAdd.title" autocomplete="off" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button size="small" @click="editCloseDialog">取 消</el-button> |
||||
|
<el-button size="small" type="primary" @click="editEnterDialog">确 定</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { examineflow,qualitativeevalration,getgroupdepartmap,addflowrationlog,departmentlist,quanOperation } from '@/api/api/dutys' |
||||
|
export default { |
||||
|
name: 'Dashboard', |
||||
|
data() { |
||||
|
return { |
||||
|
month:'', |
||||
|
fromData:[], |
||||
|
buzhou:0, |
||||
|
props1: { |
||||
|
checkStrictly: true, |
||||
|
value: "id", |
||||
|
label: "name", |
||||
|
children: "children", |
||||
|
emitPath:false, |
||||
|
}, |
||||
|
props: { |
||||
|
value: "id", |
||||
|
label: "name", |
||||
|
children: "children", |
||||
|
emitPath:false, |
||||
|
multiple: false |
||||
|
}, |
||||
|
processData:[], |
||||
|
// 部门列表 |
||||
|
grouplist:[], |
||||
|
// 查询详情的数据 |
||||
|
editFrom:{}, |
||||
|
// 修改状态提交数据 |
||||
|
switchFrom:{}, |
||||
|
// 删除数据提交 |
||||
|
deleFrom:{}, |
||||
|
// 编辑时数据 |
||||
|
editAdd:{}, |
||||
|
assessList:{}, |
||||
|
// 添加数据 |
||||
|
form:{}, |
||||
|
spanArr:[], |
||||
|
pos:'', |
||||
|
// 弹窗变量 |
||||
|
dialogFormVisible:false, |
||||
|
// 修改弹窗 |
||||
|
editDialogFormVisible:false, |
||||
|
total: 0, |
||||
|
tableData:[], |
||||
|
// 条件查询变量 |
||||
|
searchInfo: { |
||||
|
groupid:'', |
||||
|
departmentid:'' |
||||
|
}, |
||||
|
// 部门列表 |
||||
|
departmentList:[], |
||||
|
// 条件查询变量 |
||||
|
abc:{ |
||||
|
aaa:"111", |
||||
|
bbb:"222" |
||||
|
}, |
||||
|
// 添加时验证规则 |
||||
|
rules: { |
||||
|
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
||||
|
}, |
||||
|
editRules:{ |
||||
|
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
async created() { |
||||
|
console.log(this.$store.state.user.token) |
||||
|
if (this.$store.state.user.token=='') { |
||||
|
this.$router.push('/login') |
||||
|
} |
||||
|
this.getGrouplist() |
||||
|
// this.$alert('请选择部门后再操作', '提示', { |
||||
|
// confirmButtonText: '确定', |
||||
|
|
||||
|
// }); |
||||
|
this.getChuDataList() |
||||
|
// this.getDataList() |
||||
|
}, |
||||
|
// 监听数据 |
||||
|
watch: { |
||||
|
tableData() { |
||||
|
this.$nextTick(() => { |
||||
|
this.spanArr=[], |
||||
|
this.pos='', |
||||
|
//此时就可以获取到在created赋值后的dataList了 |
||||
|
this.getSpanArr(this.tableData); |
||||
|
}); |
||||
|
}, |
||||
|
// } |
||||
|
}, |
||||
|
methods: { |
||||
|
// 查看流程 |
||||
|
async showProcess(row){ |
||||
|
this.buzhou=0 |
||||
|
const processFrom ={ |
||||
|
id:row.id |
||||
|
} |
||||
|
const res = await examineflow(processFrom) |
||||
|
this.processData=res.data |
||||
|
this.processData.forEach(element => { |
||||
|
if (element.state==2) { |
||||
|
this.buzhou=this.buzhou+1 |
||||
|
} |
||||
|
}); |
||||
|
this.dialogFormVisible=true |
||||
|
}, |
||||
|
// 公式换算 |
||||
|
// (实际值—零奖值)/(全奖值-零奖值)*100+‘%’ |
||||
|
inputActual(val,index){ |
||||
|
console.log(val) |
||||
|
console.log(index) |
||||
|
var a = val.actual-val.zeroprize |
||||
|
var b = val.allprize-val.zeroprize |
||||
|
// var a = 5-2 |
||||
|
// var b = 6-1 |
||||
|
console.log(a/b*100+'%') |
||||
|
if (a/b*100!=Infinity) { |
||||
|
var e =a/b*100 |
||||
|
var d |
||||
|
console.log("e") |
||||
|
console.log(e) |
||||
|
if (e>this.tableData[index].cappingcal) { |
||||
|
d=this.tableData[index].targetweight*this.tableData[index].cappingcal/100 |
||||
|
} else{ |
||||
|
var d =parseFloat(this.tableData[index].targetweight*(a/b)).toFixed(2) |
||||
|
} |
||||
|
var c =parseFloat(a/b*100).toFixed(2) |
||||
|
this.tableData[index].reach=c+'%' |
||||
|
this.tableData[index].scoringscore=d |
||||
|
if (c<0) { |
||||
|
this.tableData[index].reach=0+'%' |
||||
|
} |
||||
|
if (d<0) { |
||||
|
this.tableData[index].scoringscore=0 |
||||
|
} |
||||
|
// this.tableData[index].reach=a/b*100+'%' |
||||
|
// this.tableData[index].scoringscore=this.tableData[index].targetweight*a/b |
||||
|
} |
||||
|
if (a/b*100==Infinity) { |
||||
|
this.tableData[index].reach="数据错误/未设置全奖值,零奖值" |
||||
|
this.tableData[index].scoringscore="数据错误/未设置全奖值,零奖值" |
||||
|
} |
||||
|
}, |
||||
|
// 获取部门 |
||||
|
async getGrouplist(){ |
||||
|
const departmentFrom={ |
||||
|
// id:2 |
||||
|
} |
||||
|
const res = await departmentlist(departmentFrom) |
||||
|
this.departmentList=res.data |
||||
|
|
||||
|
}, |
||||
|
// 提交 |
||||
|
tijiao(row){ |
||||
|
this.$confirm('批量提交, 是否继续?', '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}).then(async() => { |
||||
|
this.fromData=[], |
||||
|
this.tableData.forEach(ele=>{ |
||||
|
if (ele.parentid==row.parentid) { |
||||
|
this.fromData.push(ele) |
||||
|
} |
||||
|
}) |
||||
|
console.log("提交") |
||||
|
this.fromData.forEach(ele=>{ |
||||
|
ele.scoringscore=parseFloat(ele.scoringscore) |
||||
|
}) |
||||
|
console.log(this.fromData) |
||||
|
console.log(this.fromData[0].month,) |
||||
|
const from ={ |
||||
|
groupid: '309', |
||||
|
departmentid: row.parentid.toString(), |
||||
|
planversionnumber:this.fromData[0].planversionnumber, |
||||
|
time:this.fromData[0].month, |
||||
|
list:this.fromData |
||||
|
} |
||||
|
|
||||
|
const res = await quanOperation(from) |
||||
|
if (res.code === 0) { |
||||
|
this.$message({ |
||||
|
type: 'success', |
||||
|
message: res.msg |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
|
||||
|
}, |
||||
|
// 部门列合并 |
||||
|
getSpanArr(data) { |
||||
|
// data就是我们从后台拿到的数据 |
||||
|
for (var i = 0; i < data.length; i++) { |
||||
|
if (i === 0) { |
||||
|
this.spanArr.push(1); |
||||
|
this.pos = 0; |
||||
|
} else { |
||||
|
// 判断当前元素与上一个元素是否相同 |
||||
|
if (data[i].parentid === data[i - 1].parentid) { |
||||
|
this.spanArr[this.pos] += 1; |
||||
|
this.spanArr.push(0); |
||||
|
} else { |
||||
|
this.spanArr.push(1); |
||||
|
this.pos = i; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
// 合并行 |
||||
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) { |
||||
|
if (columnIndex === 0) { |
||||
|
const _row = this.spanArr[rowIndex]; |
||||
|
const _col = _row > 0 ? 1 : 0; |
||||
|
console.log(`rowspan:${_row} colspan:${_col}`); |
||||
|
return { |
||||
|
// [0,0] 表示这一行不显示, [2,1]表示行的合并数 |
||||
|
rowspan: _row, |
||||
|
colspan: _col |
||||
|
}; |
||||
|
} |
||||
|
}, |
||||
|
// 删除操作 |
||||
|
//删除操作 |
||||
|
async deleteOperate(row) { |
||||
|
this.$confirm('此操作将永久删除, 是否继续?', '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}) |
||||
|
.then(async() => { |
||||
|
this.deleFrom.state=3; |
||||
|
this.deleFrom.outid=row.outId; |
||||
|
const res = await statedutyclass(this.deleFrom) |
||||
|
if (res.code === 0) { |
||||
|
this.$message({ |
||||
|
type: 'success', |
||||
|
message: '删除成功!' |
||||
|
}) |
||||
|
|
||||
|
this.getDataList() |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 新增按钮 |
||||
|
showAdd(){ |
||||
|
this.dialogFormVisible=true; |
||||
|
console.log(this.dialogFormVisible) |
||||
|
}, |
||||
|
// 编辑按钮 |
||||
|
async showEdit(row){ |
||||
|
this.editFrom.outid=row.outId |
||||
|
const res = await getdutyclassinfo(this.editFrom) |
||||
|
this.editAdd = res.data |
||||
|
this.editDialogFormVisible=true; |
||||
|
|
||||
|
}, |
||||
|
// 开关状态监听 |
||||
|
async changeVal(val,id){ |
||||
|
console.log(val) |
||||
|
this.switchFrom.outid=id |
||||
|
if (val==1) { |
||||
|
this.switchFrom.state=1; |
||||
|
const res = await statedutyclass(this.switchFrom) |
||||
|
if (res.code === 0) { |
||||
|
this.$message({ |
||||
|
type: 'success', |
||||
|
message: '修改状态成功', |
||||
|
showClose: true |
||||
|
}) |
||||
|
this.getDataList() |
||||
|
} |
||||
|
} else { |
||||
|
this.switchFrom.state=2; |
||||
|
const res = await statedutyclass(this.switchFrom) |
||||
|
if (res.code === 0) { |
||||
|
this.$message({ |
||||
|
type: 'success', |
||||
|
message: '修改状态成功', |
||||
|
showClose: true |
||||
|
}) |
||||
|
this.getDataList() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
// 重置搜索条件 |
||||
|
onReset() { |
||||
|
this.searchInfo = {} |
||||
|
}, |
||||
|
// 条件搜索 |
||||
|
onSubmit() { |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 日期时间戳转日期格式 |
||||
|
formatDate(nS) { |
||||
|
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); |
||||
|
}, |
||||
|
|
||||
|
// 提交按钮 |
||||
|
async enterDialog(){ |
||||
|
const res = await adddutyclass(this.form) |
||||
|
if (res.code === 0) { |
||||
|
this.$message({ |
||||
|
type: 'success', |
||||
|
message: '添加成功', |
||||
|
showClose: true |
||||
|
}) |
||||
|
} |
||||
|
this.getDataList(); |
||||
|
this.closeDialog(); |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
// 编辑提交按钮 |
||||
|
async editEnterDialog(){ |
||||
|
this.$refs.editForm.validate(async valid => { |
||||
|
if (valid) { |
||||
|
const res = await eitedutyclassinfo(this.editAdd) |
||||
|
if (res.code === 0) { |
||||
|
this.$message({ |
||||
|
type: 'success', |
||||
|
message: '编辑成功', |
||||
|
showClose: true |
||||
|
}) |
||||
|
} |
||||
|
this.getDataList(); |
||||
|
this.editCloseDialog(); |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 添加框关闭 |
||||
|
closeDialog() { |
||||
|
console.log("closeDialog") |
||||
|
this.initForm() |
||||
|
this.dialogFormVisible = false |
||||
|
}, |
||||
|
// 修改框关闭 |
||||
|
editCloseDialog() { |
||||
|
this.editInitForm() |
||||
|
this.editDialogFormVisible = false |
||||
|
}, |
||||
|
// 添加重置表单 |
||||
|
initForm() { |
||||
|
console.log("initForm") |
||||
|
this.$refs.addForm.resetFields() |
||||
|
this.form = {} |
||||
|
console.log(this.form) |
||||
|
}, |
||||
|
// 修改重置表单 |
||||
|
editInitForm() { |
||||
|
this.$refs.editForm.resetFields() |
||||
|
this.editAdd = {} |
||||
|
}, |
||||
|
// 改变pageSize |
||||
|
handleSizeChange(val) { |
||||
|
this.searchInfo.pagesize=val |
||||
|
this.getDataList(this.searchInfo) |
||||
|
}, |
||||
|
// 改变page |
||||
|
handleCurrentChange(val) { |
||||
|
this.searchInfo.page=val |
||||
|
this.getDataList(this.searchInfo) |
||||
|
}, |
||||
|
// 获取初始数据 |
||||
|
async getDataList() { |
||||
|
const bumen =JSON.parse(JSON.stringify(this.searchInfo.departmentid)) |
||||
|
|
||||
|
const from={ |
||||
|
groupid:'309', |
||||
|
departmentid:'', |
||||
|
title:'' |
||||
|
} |
||||
|
console.log(bumen+'') |
||||
|
from.title=this.searchInfo.title |
||||
|
from.departmentid=bumen.toString(); |
||||
|
const res = await qualitativeevalration(from) |
||||
|
this.tableData = res.data |
||||
|
}, |
||||
|
// 获取初始数据 |
||||
|
async getChuDataList() { |
||||
|
|
||||
|
|
||||
|
const from={ |
||||
|
groupid:'309', |
||||
|
|
||||
|
} |
||||
|
|
||||
|
const res = await qualitativeevalration(from) |
||||
|
this.tableData = res.data |
||||
|
this.tableData.forEach(ele=>{ |
||||
|
this.$set(ele, 'scoringscore', 0) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.dashboard { |
||||
|
&-container { |
||||
|
margin: 30px; |
||||
|
} |
||||
|
&-text { |
||||
|
font-size: 30px; |
||||
|
line-height: 46px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue