绩效按钮权限添加及薪资接口联调

dev-scheduling
jinna 2 months ago
parent 06cd6a8c42
commit c4e80f3fa5
  1. 24
      src/views/personnelEfficiencyManagement/performanceManagement/dataReporting.vue
  2. 12
      src/views/personnelEfficiencyManagement/performanceManagement/templateMaintenance.vue
  3. 163
      src/views/personnelEfficiencyManagement/salaryManagement/salaryStandard.vue

@ -19,7 +19,7 @@
@on-load="onLoad"
>
<template #menu-left>
<el-button type="primary" @click="maintenanceContents"> 绩效内容维护 </el-button>
<el-button type="primary" @click="maintenanceContents" v-if="permission.maintenance_perf_maintenance"> 绩效内容维护 </el-button>
</template>
<template #status="scope">
<el-tag
@ -38,40 +38,50 @@
{{ scope.row.statusName }}
</el-tag>
</template>
<!-- || scope.row.status == 5 -->
<template #menu="scope">
<el-button
v-if="scope.row.status == 1 || scope.row.status == 2 || scope.row.status == 5"
v-if="
(scope.row.status == 1 && (scope.row.parentId === 0 || scope.row.parentId === null) && permission.main_task_download)
||
(scope.row.status == 2 && permission.subtask_download)
"
type="text"
@click="downloadTask(scope.row)"
>
下载
</el-button>
<el-button
v-if="scope.row.status == 1 || scope.row.status == 5"
v-if="
((scope.row.parentId === 0 || scope.row.parentId === null) && scope.row.status == 1 && permission.main_task_reporting)
||
(scope.row.parentId && scope.row.status == 1 && permission.subtask_reporting)
||
((scope.row.parentId === 0 || scope.row.parentId === null) && scope.row.status == 5 && permission.main_task_reporting)"
type="text"
@click="fillRow(scope.row)"
>
填报
</el-button>
<el-button
v-if="scope.row.status == 3 || scope.row.status == 4 || scope.row.status == 5"
v-if="(scope.row.status == 3 || scope.row.status == 4 || scope.row.status == 5) && permission.main_task_detail"
type="text"
@click="detailRow(scope.row)"
>
详情
</el-button>
<el-button v-if="scope.row.status == 3" type="text" @click="examineRow(scope.row)">
<el-button v-if="scope.row.status == 3 && permission.main_task_examine" type="text" @click="examineRow(scope.row)">
审批
</el-button>
<el-button
v-if="scope.row.parentId && scope.row.status == 1"
v-if="scope.row.parentId && scope.row.status == 1 && permission.subtask_delete"
type="text"
@click="removeRow(scope.row)"
>
删除
</el-button>
<el-button
v-if="scope.row.parentId && scope.row.status == 2 && scope.row.parentStatus == 1"
v-if="scope.row.parentId && scope.row.status == 2 && scope.row.parentStatus == 1 && permission.subtask_reset"
type="text"
@click="resetTaskDetail(scope.row)"
>

@ -19,14 +19,14 @@
@on-load="onLoad"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增绩效</el-button>
<el-button type="primary" @click="handleAdd" v-if="permission.performanceAllocation_add">新增绩效</el-button>
<!-- <el-button type="danger" @click="batchDelete">删除</el-button> -->
<!-- <el-button type="primary" @click="maintenanceContents">绩效内容维护</el-button> -->
</template>
<template #menu="scope">
<el-button type="primary" text @click="editRow(scope.row)">修改</el-button>
<el-button type="primary" text @click="deleteRow(scope.row)">删除</el-button>
<el-button type="primary" text @click="taskAssignment(scope.row)">下发</el-button>
<el-button type="primary" text v-if="permission.performanceAllocation_edit" @click="editRow(scope.row)">修改</el-button>
<el-button type="primary" text v-if="permission.performanceAllocation_delete" @click="deleteRow(scope.row)">删除</el-button>
<el-button type="primary" text v-if="permission.performanceAllocation_issue" @click="taskAssignment(scope.row)">下发</el-button>
</template>
</avue-crud>
<batchAddPerf
@ -48,6 +48,7 @@
<script>
import batchAddPerf from './components/batchAddPerf.vue';
import { mapGetters } from 'vuex';
// import batchAddContent from './components/batchAddContent.vue';
import {
pageBsEfficiencyTemp,
@ -247,6 +248,9 @@ export default {
},
};
},
computed: {
...mapGetters([ 'permission']),
},
mounted() {},
methods: {
closeDialog(val) {

@ -31,9 +31,9 @@
</el-button>
</template>
<template #standardType="scope">
<el-tag v-if="scope.row.standardType == 1" type="success">军品</el-tag>
<el-tag v-if="scope.row.standardType == 2" type="danger">非军品</el-tag>
<el-tag v-if="scope.row.standardType == 3">通用</el-tag>
<el-tag v-if="scope.row.standardType == '2'" type="success">军品</el-tag>
<el-tag v-if="scope.row.standardType == '3'" type="danger">非军品</el-tag>
<el-tag v-if="scope.row.standardType == '1'">通用</el-tag>
</template>
<!-- 工序选择 -->
<template #processId-form="{ type, disabled }">
@ -86,9 +86,9 @@
</avue-crud>
<!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xls"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
templateUrl="/blade-desk/bsSalaryStandard/download-excel-template"
templateName="工资维护标准模板.xls"
importUrl="/blade-desk/bsSalaryStandard/import-excel"
@closeDialog="closeDialog"></basic-import>
</basic-container>
</template>
@ -96,6 +96,7 @@
<script>
import basicImport from '@/components/basic-import/main.vue'
import {getProcessList,getList,deleteTable,addTable } from "@/api/performanceManagement/salaryManagement"
import { fa } from 'element-plus/es/locales.mjs';
export default {
components: {
basicImport,
@ -182,9 +183,9 @@ export default {
},
],
dicData: [
{ label: "军品", value: 1 },
{ label: "非军品", value: 2 },
{ label: "通用", value: 3 },
{ label: "军品", value: '2' },
{ label: "非军品", value: '3' },
{ label: "通用", value: '1' },
],
},
{
@ -269,9 +270,9 @@ export default {
},
],
dicData: [
{ label: "件", value: 1 },
{ label: "批", value: 2 },
{ label: "面积", value: 3 },
{ label: "件", value: '1' },
{ label: "批", value: '2' },
{ label: "面积", value: '3' },
],
},
{
@ -323,8 +324,8 @@ export default {
overHidden: true,
width: 100,
dicData: [
{ label: "件", value: 1 },
{ label: "面积", value: 2 },
{ label: "件", value: '1' },
{ label: "面积", value: '2' },
],
rules: [
{
@ -372,8 +373,8 @@ export default {
overHidden: true,
width: 120,
dicData: [
{ label: "批", value: 1 },
{ label: "倍", value: 2 },
{ label: "批", value: '1' },
{ label: "倍", value: '2' },
],
rules: [
{
@ -426,7 +427,7 @@ export default {
this.option.column.find(item => item.prop == "stepSettlementPrice").rules[0].required = false
this.option.column.find(item => item.prop == "stepSettlementUnit").rules[0].required = false
}else if(val == 2){
this.form.step = ''
this.form.step = 0
this.option.column.find(item => item.prop == "step").rules[0].required = false
this.option.column.find(item => item.prop == "stepUnit").rules[0].required = true
this.option.column.find(item => item.prop == "stepSettlementPrice").rules[0].required = true
@ -470,28 +471,69 @@ export default {
});
},
rowSpan(key, parent) {
let list = [];
let list = [];
let position = 0;
//
this.data.forEach((item, index) => {
if (index === 0) {
// 1
list.push(1);
let position = 0;
position = 0;
} else {
if (this.data[index][key] === this.data[index - 1][key]) {
const prevItem = this.data[index - 1];
const currentItem = item;
//
// 1. : currentItem[key] === prevItem[key]
// 2. (ID): currentItem.id === prevItem.id
// 'id'
const isSameValue = currentItem[key] === prevItem[key];
const isSameGroup = currentItem.id === prevItem.id;
// (ID)
if (isSameValue && isSameGroup) {
//
if (parent && parent[index] !== 0) {
//
list.push(1);
position = index;
} else {
//
list[position] += 1;
list.push(0);
}
} else {
// ID
list.push(1);
position = index;
}
}
});
return list;
// let list = [];
// let position = 0;
// this.data.forEach((item, index) => {
// if (index === 0) {
// list.push(1);
// let position = 0;
// } else {
// if (this.data[index][key] === this.data[index - 1][key]) {
// if (parent && parent[index] !== 0) {
// list.push(1);
// position = index;
// } else {
// list[position] += 1;
// list.push(0);
// }
// } else {
// list.push(1);
// position = index;
// }
// }
// });
// return list;
},
spanMethod({ row, column, rowIndex, columnIndex }) {
for (let i = 0; i < this.spanArr.length; i++) {
@ -527,7 +569,7 @@ export default {
if(type == 'add'){
this.form = {
...this.form,
settlementUnit:1
settlementUnit:'1'
}
done()
}else{
@ -540,24 +582,81 @@ export default {
if(row.stepType == 2){
let stepSettlementPriceArr = row.stepSettlementPrice.split(' ')
if(stepSettlementPriceArr.length > 1){
this.$message.error('【固定补贴金额】时,阶梯结算价应只有一个')
this.$message.error('阶梯结算价与阶梯不一致')
loading()
return
}
}else if(row.stepType == 3){
let stepArr = row.step.split(' ')
let stepSettlementPriceArr = row.stepSettlementPrice.split(' ')
stepArr = stepArr.filter(item => item != '')
stepSettlementPriceArr = stepSettlementPriceArr.filter(item => item != '')
console.log('stepArr',stepArr)
console.log('stepSettlementPriceArr',stepSettlementPriceArr.length)
if(stepArr.length > 0 && stepSettlementPriceArr.length > 0 && stepSettlementPriceArr.length - stepArr.length != 1){
this.$message.error('【阶梯补贴金额】时,阶梯结算价应比阶梯上下限数量多一个')
this.$message.error('阶梯结算价与阶梯不一致')
loading()
return
}
// 2.
for (let i = 0; i < stepArr.length - 1; i++) {
if (stepArr[i+1] <= stepArr[i]) {
this.$message.error('【阶梯上下限】配置错误:后一个阶梯值必须大于前一个阶梯值');
loading();
return;
}
}
}
done();
addTable(row).then(res =>{
if(res.data.code == 200){
this.$message.success('新增成功')
this.onLoad()
done()
}
}).catch(err =>{
loading()
done();
})
},
//
rowUpdate(row, index, done, loading) {
done();
console.log('row---------------',row)
if(row.stepType == 2){
let stepSettlementPriceArr = row.stepSettlementPrice.split(' ')
if(stepSettlementPriceArr.length > 1){
this.$message.error('【固定补贴金额】时,阶梯结算价应只有一个')
loading()
return
}
}else if(row.stepType == 3){
let stepArr = row.step.split(' ')
let stepSettlementPriceArr = row.stepSettlementPrice.split(' ')
console.log('stepArr',stepArr.length)
console.log('stepSettlementPriceArr',stepSettlementPriceArr.length)
if(stepArr.length > 0 && stepSettlementPriceArr.length > 0 && stepSettlementPriceArr.length - stepArr.length != 1){
this.$message.error('【阶梯补贴金额】时,阶梯结算价应比阶梯上下限数量多一个')
loading()
return
}
// 2.
for (let i = 0; i < stepArr.length - 1; i++) {
if (stepArr[i+1] <= stepArr[i]) {
this.$message.error('【阶梯上下限】配置错误:后一个阶梯值必须大于前一个阶梯值');
loading();
return;
}
}
}
addTable(row).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
this.onLoad()
done()
}
}).catch(err =>{
loading()
done();
})
},
//
handleDelete() {
@ -611,13 +710,25 @@ export default {
handleImport() {
this.isShowImport = true
},
closeDialog(val){
this.isShowImport = false
if(val){
this.onLoad()
}
},
onLoad() {
this.loading = true
getList({
curremt:this.page.currentPage,
current:this.page.currentPage,
size:this.page.pageSize,
...this.query
}).then(res =>{
res.data.data.records.forEach(item => {
item.minStep = item.minStep == -1 ? '' : item.minStep
item.maxStep = item.maxStep == -1 ? '' : item.maxStep
item.stepSettlementPrice = item.stepSettlementPrice == -1 ? '' : item.stepSettlementPrice
item.price = item.price == -1 ? '' : item.price
})
this.data = res.data.data.records
this.page.total = res.data.data.total
// this.$nextTick(() =>{

Loading…
Cancel
Save