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

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. 157
      src/views/personnelEfficiencyManagement/salaryManagement/salaryStandard.vue

@ -19,7 +19,7 @@
@on-load="onLoad" @on-load="onLoad"
> >
<template #menu-left> <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>
<template #status="scope"> <template #status="scope">
<el-tag <el-tag
@ -38,40 +38,50 @@
{{ scope.row.statusName }} {{ scope.row.statusName }}
</el-tag> </el-tag>
</template> </template>
<!-- || scope.row.status == 5 -->
<template #menu="scope"> <template #menu="scope">
<el-button <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" type="text"
@click="downloadTask(scope.row)" @click="downloadTask(scope.row)"
> >
下载 下载
</el-button> </el-button>
<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" type="text"
@click="fillRow(scope.row)" @click="fillRow(scope.row)"
> >
填报 填报
</el-button> </el-button>
<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" type="text"
@click="detailRow(scope.row)" @click="detailRow(scope.row)"
> >
详情 详情
</el-button> </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>
<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" type="text"
@click="removeRow(scope.row)" @click="removeRow(scope.row)"
> >
删除 删除
</el-button> </el-button>
<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" type="text"
@click="resetTaskDetail(scope.row)" @click="resetTaskDetail(scope.row)"
> >

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

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

Loading…
Cancel
Save