1.增加季度审核评价详情页面、方法

2.项目立项表去掉删除按钮
3.季度审核页面增加节点名称
4.季度审核-指标页面增加审核(通过/驳回)
5.增加季度考核自评/管理员打分编辑页面
This commit is contained in:
zty 2024-07-15 16:16:49 +08:00
parent cee0685660
commit 68cefd53fe
6 changed files with 574 additions and 20 deletions

View File

@ -97,7 +97,7 @@ export default {
showCheck: true,
showAnnotation: true,
showEdit: false,
showDelete: true
showDelete: false
},
tableTotalPage: 0,
pageNo: 1,
@ -296,25 +296,25 @@ export default {
project.openRange = "成果转换类"
break;
case 2:
project.openRange = "平台专项类"
project.openRange = "市场创收类"
break;
case 3:
project.openRange = "市场创收类"
project.openRange = "研究开发类"
break;
case 4:
project.openRange = "窗口服务类"
break;
case 5:
project.openRange = "研究开发类"
project.openRange = "平台专项类"
break;
case 6:
project.openRange = "自主研发类"
break;
case 7:
project.openRange = "目标责任类"
break;
case 7:
project.openRange = "自主研发类"
break;
case 8:
project.openRange = "临时人物类"
project.openRange = "临时任务类"
break;
default:
project.openRange = "其他类"

View File

@ -116,7 +116,6 @@ export default {
pageNo: this.pageNo,
pageSize: this.pageSize,
t: {
// id: '123'
}
}
}
@ -130,6 +129,7 @@ export default {
$.extend(true, project, result.data.ls[i])
project.difficultyFactor = project.ext.difficultyFactor
project.draftDeptName = project.ext.draftDeptName
project.taskName = project.ext.taskName
this.tableRowsData.push(project)
this.tableTotalPage = result.data.total
}
@ -220,6 +220,11 @@ export default {
label: '执行部门',
prop: 'draftDeptName',
show: true
},
{
label: '状态',
prop: 'taskName',
show: true
}
]
},

View File

@ -14,11 +14,27 @@
<!--<li class="active">Demo</li>-->
<!--</ol>-->
<!--End breadcrumb-->
<!--Page content-->
<div>
<el-dialog v-bind="$attrs" v-on="$listeners" title="审核"
:visible="isSubmit">
<el-form ref="elForm" :model="formData" size="medium" label-width="100px">
<el-form-item label="审核意见" prop="spyj">
<el-input v-model="formData.spyj" placeholder="请输入审核意见" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="handleConfirm">确定</el-button>
</div>
</el-dialog>
</div>
<div class="page-content">
<div style="margin-bottom: 10px">
<!-- <el-button type="primary" @click="addExpApply" v-if="!isSuper">新增</el-button>-->
<div style="text-align: right">
<el-button type="primary" @click="addExpApply(0)">审核</el-button>
<el-button type="warning" @click="addExpApply(1)">驳回</el-button>
</div>
<data-table
:totalColumnsData="tableColumnsData"
@ -48,6 +64,11 @@ import Api from '../../../server/index.js'
import {getItem} from '../../../config/mUtils'
export default {
computed: {
pageLoading () {
return PageLoading
}
},
beforeRouteEnter (to, from, next) {
next(function (vm) {
global.getMenuIndex(vm)
@ -55,6 +76,13 @@ export default {
},
data () {
return {
isExamine: 0,
isSubmit: false,
formData: {
spyj: ''
},
tableList: [], // tableData
dialogFormVisible: false,//
expandRight: false,
//table
tableShowSingleOperation: {
@ -63,7 +91,8 @@ export default {
showDelete: false,
showCheck: true,
showAnnotation: true,
showStatus: true
showStatus: true,
showSubmit: false
},
//
pageNo: 1,
@ -71,7 +100,8 @@ export default {
tableTotalPage: 1,
tableColumnsData: [],
tableRowsData: [],
isSuper: false
isSuper: false,
pageLoading: true
}
},
created () {
@ -79,8 +109,31 @@ export default {
this.init()
},
methods: {
addExpApply () {
this.$router.push({name: 'ProjectBudgetApplyAdd'})
close () {
this.isSubmit = false
this.formData.spyj = ''
},
handleConfirm () {
let map = {
id: this.reimburseId,
spyj: this.formData.spyj,
examine: this.isExamine
}
Api.ProjectManagements.examine(map).then(result => {
console.log(result)
if (result.status === 0) {
this.$message.success(result.data)
this.isSubmit = false
this.init()
} else {
this.$message.error(result.data)
}
})
},
//
addExpApply (a) {
this.isSubmit = true
this.isExamine = a
},
init () {
this.reimburseId = this.$route.params.id
@ -101,10 +154,14 @@ export default {
Api.ProjectManagements.getIndicators(param.pageNoUtil).then(result => {
console.log('result', result)
if (result.status === 0) {
this.pageLoading = false
this.tableRowsData.splice(0, this.tableRowsData.length)
for (let i = 0; i < result.data.ls.length; i++) {
let project = {}
$.extend(true, project, result.data.ls[i])
project.execution = project.ext.execution
project.selfEvaluation = project.ext.selfEvaluation
project.adminScoring = project.ext.adminScoring
this.tableRowsData.push(project)
this.tableTotalPage = result.data.total
}
@ -161,14 +218,17 @@ export default {
},
{
label: '指标完成情况',
prop: 'execution',
show: true
},
{
label: '自评定级',
prop: 'selfEvaluation',
show: true
},
{
label: '所项目管理员打分',
prop: 'adminScoring',
show: true
}
]
@ -179,8 +239,11 @@ export default {
},
tableSingleCheck (index) {
this.$router.push({
name: 'ProjectBudgetApplyDetail',
params: {id: this.tableRowsData[index].id}
name: 'quarterlyEvaluationDetail',
params: {
id: this.tableRowsData[index].id,
pid: this.reimburseId
}
})
},
tableSingleEdit (index) {

View File

@ -0,0 +1,473 @@
<template>
<div id="content-container" :class="{'expand-right': expandRight}">
<!--Page Title-->
<div id="page-title">
<h1 class="page-header text-overflow">季度评价打分</h1>
</div>
<!--End page title-->
<!--Breadcrumb-->
<!--<ol class="breadcrumb">-->
<!--<li><a href="#">Home</a></li>-->
<!--<li><a href="#">Layouts</a></li>-->
<!--<li class="active">Demo</li>-->
<!--</ol>-->
<!--End breadcrumb-->
<!--Page content-->
<div class="page-content">
<div class="panel">
<div class="panel-body">
<el-form :model="formModel" label-width="100px" ref="formName">
<el-form-item label="季度">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.quarter"
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item label="指标名称">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.indexName"
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item label="A档">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.levelA"
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item label="B档">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.levelB"
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item label="C档">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.levelC"
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item label="D档">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.levelD"
:disabled="true"
>
</el-input>
</el-form-item>
<el-form-item label="指标完成情况">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.execution"
>
</el-input>
</el-form-item>
<el-form-item label="自评定级">
<el-input
class="form-input"
placeholder="请输入内容"
v-model="formModel.selfEvaluation"
>
</el-input>
</el-form-item>
<el-form-item label="所项目管理员打分">
<el-input
class="form-input"
placeholder="项目管理员才能打分"
v-model="formModel.adminScoring"
:disabled=isAdmin
>
</el-input>
</el-form-item>
<el-form-item>
<div style="float: right">
<el-button @click="cancel()" type="default">取消</el-button>
<el-button @click="save('formName')" type="primary" :disabled="!isSave">保存</el-button>
</div>
</el-form-item>
</el-form>
</div>
</div>
</div>
<!--End Page content-->
</div>
</template>
<script>
import DataForm from '../../../components/form/DataForm.vue'
import DataTable from '../../../components/DataTable.vue'
import Api from '../../../server/index'
import app from '../../../assets/js/common/app.js'
import {baseUrl} from '../../../config/env.js'
import verifyButton from '../../../components/verifyButton.vue'
import FlowRecordTable from '../../../components/FlowRecordTable.vue'
import {getItem} from '../../../config/mUtils'
export default {
beforeRouteEnter (to, from, next) {
next(function (vm) {
global.getMenuIndex(vm)
})
},
data () {
return {
isAdmin: true,
adminScoring: '',
selfEvaluation: '',
week: '',
ext: {},
thisWeek: '',
nextWeek: '',
userId: '',
workload: '',
projectName: '',
money: '',
projectNo: '',
expandRight: false,
app: app,
reimburseId: '',
actionUrl: `${baseUrl}/api/common/file-upload`, //
baseUrl: baseUrl,
formModel: {
userInfoId: '',
witness: '',
deptId: '',
reimburseCategory: '', //
reason: '', //
selectBudgetCategoryId: [], //
reimburseDetail: [
{
time: '',
money: '',
moneyDetail: '',
total: 0,
hasBill: '', //
fileList: [], //
}
], //
activie: 0
},
formWitnessData: [], //
orgOptions: [],
userInfoOption: [],
reimburseCategoryData: app.reimbursement, //
budgetCategory: [], //
reimburseIndex: 0, //
//
rewriteAgreeVerify: false, //
rewriteRejectVerify: false, //
rewriteDestroyVerify: false, //
flowId: '',
taskId: '',
checkOrVerify: false, //
isSave: true,
isEdit: false,
canEditReimburseCategory: false, //
canEditBudgetCategory: false, //
isVerify: false,
isNotVerifyReady: false, //
pageNo: 1,
pageSize: 10,
tableTotalPage: 1,
}
},
created () {
this.taskId = this.$route.params.taskId
this.reimburseId = this.$route.params.id
this.pid = this.$route.params.pid
// if (this.$route.name === 'ExpenseClaimApplyEdit') {
// this.isEdit = true
// this.flowId = this.$route.params.id
// console.log('ID', this.$route.params.id)
// this.checkOrVerify = true
// } else if (this.$route.name === 'ExpenseClaimApplyVerify') {
// this.isVerify = true
// this.flowId = this.$route.params.verifyId
// this.checkOrVerify = false
// this.isNotVerifyReady = this.$route.query.isNotVerifyReady === 'Y'
// } else if (this.$route.name === 'ExpenseClaimApplyArchive') {
// this.flowId = this.$route.params.id
// this.checkOrVerify = true
// } else {
// this.flowId = this.$route.params.id
// this.checkOrVerify = true
// }
this.init()
this.getBudgetCategory()
},
methods: {
init () {
this.userId = getItem('userId')
this.reimburseId = this.$route.params.id
this.pid = this.$route.params.pid
this.getQuartely()
},
getQuartely: function () {
let param = {
pageNoUtil: {
pageNo: this.pageNo,
pageSize: this.pageSize,
t: {
id: this.reimburseId
}
}
}
Api.ProjectManagements.getIndicators(param.pageNoUtil).then(result => {
console.log('result', result)
if (result.status === 0) {
let data = result.data.ls[0]
this.formModel = data
this.ext = data.ext
this.formModel.execution = data.ext.execution
this.formModel.selfEvaluation = data.ext.selfEvaluation
this.formModel.adminScoring = data.ext.adminScoring
if (data.ext.projectAdmin == this.userId) {
this.isAdmin = false
}
}
})
},
//
judgeEditAuth (canEdit) {
if (this.isNotVerifyReady === true) {
if (this.$route.name === 'ExpenseClaimApplyVerify') {
this.canEditBudgetCategory = canEdit
this.rewriteAgreeVerify = canEdit
this.rewriteRejectVerify = canEdit
this.rewriteDestroyVerify = canEdit
if (this.formModel.reimburseCategory !== 'medical') {
this.canEditReimburseCategory = canEdit
//
let destData = []
this.reimburseCategoryData.forEach((category, index) => {
destData.push(
{
label: category.label,
model: category.model,
disabled: category.model === 'medical',
}
)
})
this.reimburseCategoryData = destData
}
this.isEdit = false
} else {
this.isEdit = canEdit
}
}
},
getBudgetCategory () {
Api.Common.getBudgetCategory().then(result => {
if (result.status === 0) {
this.budgetCategory = this.assembleOrgData(result.data)
} else {
this.$message.error(`${result.msg}`)
}
})
},
//
getAllPeople () {
// Api.PersonnelManagement.personListNew(1, 10000).then((result) => {
// if (result.status === 0) {
// for (let i = 0; i < result.data.ls.length; i++) {
// let people = result.data.ls[i]
// this.formWitnessData.push({
// model: people.id,
// label: people.personName,
// disabled: people.id === this.formModel.userInfoId
// })
// }
// } else {
// this.$message.error(`${result.msg}`)
// }
// })
let params = {
path: {
id: 0
}
}
Api.Administration.getPeers(params).then((result) => {
console.log('查询所有')
console.log('查询所有人员的方法')
if (result.status === 0) {
// this.formModel.deptId=this.assembleOrgData(result.data)
this.orgOptions = this.assembleOrgData(result.data)
// this.formModel.userId=this.assembleOrgData(result.data)
// this.userInfoOption=this.assembleOrgData(result.data)
console.log('deptId', this.formModel.deptId)
console.log('orgOptions', this.orgOptions)
console.log('userId', this.formModel.userId)
console.log('userInfoOption', this.userInfoOption)
//
// this.formPermissionsData = this.assembleOrgData(result.data)
//
// this.formProjectManagerData = this.assembleOrgData(result.data)
// this.formPeopleData = this.assembleOrgData(result.data)
// this.formProjectAdmin = this.assembleOrgData(result.data)
// this.formMainLeader = this.assembleOrgData(result.data)
// this.formBranchLeader = this.assembleOrgData(result.data)
} else {
this.$message.error(result.msg)
}
})
},
//
assembleOrgData (source) {
let dest = []
for (let i = 0; i < source.length; i++) {
let org = {
value: source[i].id,
parentId: source[i].parentId,
label: source[i].name,
depth: source[i].depth
}
if (source[i].childList && source[i].childList.length > 0) {
org['children'] = this.assembleOrgData(source[i].childList)
}
dest.push(org)
}
return dest
},
addFile () {
this.formModel.reimburseDetail.push({
time: '',
money: '',
moneyDetail: '',
hasBill: '', //
fileList: [] //
})
},
deleteFile (index) {
if (this.formModel.reimburseDetail.length === 1) {
this.$message.warning('报销明细不能为空!')
return false
}
this.formModel.reimburseDetail.splice(index, 1)
},
//
handleFileRemove (file, fileList) {
console.log(fileList)
setTimeout(() => {
this.formModel.reimburseDetail[this.reimburseIndex].fileList = []
for (let i = 0; i < fileList.length; i++) {
this.formModel.reimburseDetail[this.reimburseIndex].fileList.push({
name: fileList[i].name,
url: fileList[i].url
})
}
}, 10)
},
handleFileSuccess (res, file, fileList) {
if (res.status === 0) {
this.formModel.reimburseDetail[this.reimburseIndex].fileList.push({
name: file.name,
url: file.response.data.url
})
} else {
this.$message.error(`${res.msg}`)
}
console.log(this.formModel.reimburseDetail[this.reimburseIndex].fileList)
},
reimburseClick (index) {
this.reimburseIndex = index
console.log(index)
},
//
agreeFlowVerify (comment) {
this.save('formName', 'commit', comment)
},
//
rejectFlowVerify (comment) {
this.save('formName', 'back', comment)
},
//
destroyFlowVerify (comment) {
this.save('formName', 'end', comment)
},
cancel () {
this.$router.go(-1)
},
save (formName) {
console.log('formName', formName)
this.$refs[formName].validate((valid) => {
if (valid) {
let ext = this.ext
ext.execution = this.formModel.execution,
ext.selfEvaluation = this.formModel.selfEvaluation,
ext.adminScoring = this.formModel.adminScoring
console.log('ext', ext)
let param = {
pageNoUtil: {
t: {
id: this.reimburseId,
ext: ext
}
}
}
this.isSave = false
Api.ProjectManagements.updateQuarterly(param.pageNoUtil).then(result => {
this.isSave = true
if (result.status === 0) {
this.$message.success(result.data)
this.$router.push(
{name: 'quarterlyAssessmentDetail', params: {id: this.pid}})
} else {
this.$message.error(result.data)
}
})
} else {
console.log('error submit!!')
return false
}
})
},
moneyChange () {
let total = 0
for (let i = 0; i < this.formModel.reimburseDetail.length; i++) {
if (this.formModel.reimburseDetail[i].money === '' || !this.formModel.reimburseDetail[i].money) {
total += 0
} else {
total += Number(this.formModel.reimburseDetail[i].money)
}
}
this.formModel.total = total.toFixed(2)
}
},
components: {
DataTable, DataForm, verifyButton, FlowRecordTable
}
}
</script>
<style scoped lang="less" rel="stylesheet/less">
.expand-right {
@media (min-width: 768px) {
padding-left: 0 !important;
}
}
.page-content {
padding: 15px;
}
</style>

View File

@ -328,7 +328,7 @@ const DepartmentWeeklyList = r => require.ensure([], () => r(require('../pages/p
//季度考核管理
const quarterlyAssessmentApply = r => require.ensure([], () => r(require('../pages/projectManagements/quarterlyAssessment/quarterlyAssessmentApply.vue')), 'quarterlyAssessmentApply')
const quarterlyAssessmentDetail = r => require.ensure([], () => r(require('../pages/projectManagements/quarterlyAssessment/quarterlyAssessmentDetail.vue')), 'quarterlyAssessmentDetail')
const quarterlyEvaluationDetail = r => require.ensure([], () => r(require('../pages/projectManagements/quarterlyAssessment/quarterlyEvaluationDetail.vue')), 'quarterlyEvaluationDetail')
const DepartmentWeeklyEdit = r => require.ensure([], () => r(require('../pages/projectManagements/departmentWeekly/DepartmentWeeklyEdit.vue')), 'DepartmentWeeklyEdit')
const DepartmentWorkloadEdit = r => require.ensure([], () => r(require('../pages/projectManagements/departmentWeekly/DepartmentWorkloadEdit.vue')), 'DepartmentWorkloadEdit')
@ -2382,13 +2382,23 @@ export default new Router({
{
// 项目管理-->季度审核管理-->季度审核页面->季度页面
name: 'quarterlyAssessmentDetail',
path: '/project/managements/quarterlyAssessment/expenses/claim/apply/quarter',
path: '/project/managements/quarterlyAssessment/expenses/claim/apply/quarter/:id',
component: quarterlyAssessmentDetail,
meta: {
info: 'quarterlyAssessmentDetail',
module: 'project'
}
},
{
// 项目管理-->季度审核管理-->季度审核页面->季度详情页面
name: 'quarterlyEvaluationDetail',
path: '/project/managements/quarterlyAssessment/expenses/claim/edit/:id',
component: quarterlyEvaluationDetail,
meta: {
info: 'quarterlyEvaluationDetail',
module: 'finance'
}
},
//
// {
// //项目管理-->项目立项

View File

@ -59,6 +59,9 @@ export default {
getQuarterExamine: (param) => Ax('post', '/api/project/quarterExamine', param),
//获取季度列表
getIndicators: (param) => Ax('post', '/api/project/quarterExamine/list', param),
//自评/管理员打分
updateQuarterly: (param) => Ax('post', '/api/project/quarterExamine/update', param),
examine: (param) => Ax('post', '/api/project/quarterExamine/examine', param),
/**
* 部门周报填报管理
* */