Browse Source

绩效评分

master
wbc 20 hours ago
parent
commit
953fce3e49
  1. 225
      src/views/performanceIndicator/projectAssessment/addModal.vue
  2. 18
      src/views/performanceIndicator/projectAssessment/index.vue

225
src/views/performanceIndicator/projectAssessment/addModal.vue

@ -0,0 +1,225 @@
<template>
<div>
<a-modal v-model:open="visible" :title="title" @ok="handleOk" @cancel="closeModal" width="80%">
<div style="margin: 20px">
<a-form :model="form" layout="vertical" ref="formRef" :rules="rules">
<a-row :gutter="[16, 16]">
<a-col :span="12">
<a-form-item label="项目名称" name="projectName">
<a-input v-model:value="form.projectName" placeholder="请输入考核项目" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<a-form-item label="模板名称" name="templateName">
<a-select
v-model:value="form.templateName"
:options="templateNameOptions"
@change="templateNameChange"
placeholder="请选择模板"
:fieldNames="{
label: 'name',
value: 'type',
options: 'options',
}"
/>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-table
:dataSource="form.dataSource"
:columns="columns"
bordered
:pagination="false"
>
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.dataIndex === 'realScores'&&record.primaryIndicator!='附加分'">
<a-input-number
v-model:value="record.realScores"
:min="0"
:max="record.scores"
/>
</template>
</template>
</a-table>
</a-col>
</a-row>
</a-form>
</div>
</a-modal>
</div>
</template>
<script>
import { computed, reactive, ref } from 'vue';
import { getPerformancescore, getPerforman } from '../templateContent/templateContent.api';
import { message } from 'ant-design-vue';
export default {
setup() {
const title = ref('新增绩效考核');
const visible = ref(false);
const formRef = ref();
const columns = [
{
title: '评价维度',
width: 150,
dataIndex: 'evaluationDimension',
customRender: ({ text, record, index }) => {
const obj = {
children: text,
props: {},
};
if (record.evaluationLength != null && record.evaluationLength != 0) {
obj.props.rowSpan = record.evaluationLength;
} else {
obj.props.rowSpan = 0;
}
return obj;
},
},
{
title: '一级指标',
dataIndex: 'primaryIndicator',
width: 150,
customRender: ({ text, record, index }) => {
const obj = {
children: text,
props: {},
};
if (record.primaryLength != null && record.primaryLength != 0) {
obj.props.rowSpan = record.primaryLength;
} else {
obj.props.rowSpan = 0;
}
return obj;
},
},
{
title: '二级指标',
width: 150,
dataIndex: 'secondaryIndicator',
customRender: ({ text, record, index }) => {
const obj = {
children: text,
props: {},
};
if (record.secondaryLength != null) {
obj.props.rowSpan = record.secondaryLength;
} else {
obj.props.rowSpan = 0;
}
return obj;
},
},
{
title: '三级指标',
width: 150,
dataIndex: 'tertiaryIndicator',
customRender: ({ text, record, index }) => {
const obj = {
children: text,
props: {},
};
if (record.tertiaryLength != null) {
obj.props.rowSpan = record.tertiaryLength;
} else {
obj.props.rowSpan = 0;
}
return obj;
},
},
{
title: '描述',
resizable: true,
ellipsis: false,
dataIndex: 'description',
},
{
title: '分数',
width: 80,
dataIndex: 'scores',
},
{
title: '评分',
width: 100,
dataIndex: 'realScores',
},
];
const form = reactive({
projectName: '',
templateName: null,
dataSource: [],
});
const showModal = async (type, id) => {
visible.value = true;
const data = await getPerforman();
templateNameOptions.value = data;
};
//
const projectNameOptions = ref([]);
const templateNameOptions = ref([]);
const templateNameChange = async (val) => {
const data = await getPerformancescore({ type: val });
form.dataSource = data;
};
const handleOk = () => {
// let params = {};
// for (let i in form) {
// params[i] = form[i];
// }
// add(params).then((_) => {
// message.success('');
// emit('success');
// closeModal();
// });
if (form.dataSource && form.dataSource.length > 0) {
let scored = true;
for (let i = 0; i < form.dataSource.length; i++) {
if (!form.dataSource[i].realScores&&form.dataSource[i].primaryIndicator!='附加分') {
message.warning('请完成评分后再提交');
console.log(i)
scored = false;
break;
}
}
if (scored) {
console.log(form);
}
}else{
message.warning('请完成评分后再提交');
}
};
const closeModal = () => {
formRef.value.resetFields();
form.dataSource = [];
};
return {
visible,
title,
columns,
form,
formRef,
showModal,
handleOk,
closeModal,
projectNameOptions,
templateNameOptions,
templateNameChange,
};
},
};
</script>
<style scoped>
/* 可选样式调整 */
.ant-modal-body {
max-width: 600px;
margin: 0 auto;
}
</style>

18
src/views/performanceIndicator/projectAssessment/index.vue

@ -7,18 +7,19 @@
<TableAction :actions="getTableAction(record)" />
</template>
<template #tableTitle>
<el-button type="primary" @click="handleAddcontract" v-if="isShowByRoles('projectContact')">
<el-button type="primary" @click="handleAdd" v-if="isShowByRoles('projectContact')">
新增项目考核</el-button>
</template>
</BasicTable>
<ProjectinfoComponent @register="registerProjectinfo"
<!-- <ProjectinfoComponent @register="registerProjectinfo"
@openChildModal="openModalProjectr">
<template #default>
<addProjectAssessment @register="registerProjectAssessment" @close="closeModel" />
</template>
</ProjectinfoComponent>
<addProjectAssessment @register="registerProjectAssessment" @close="closeModel" />
<detailTabel @register="registerDetailTable" />
<detailTabel @register="registerDetailTable" /> -->
<addModal ref="addModalRef"></addModal>
</PageWrapper>
</template>
@ -32,6 +33,7 @@ import { PageWrapper } from '@/components/Page';
import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api';
import { searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data';
import { getProjectassessmentPageList,getProjectassessmentProjectPageList ,deleteProjectassessment} from '@/views/performanceIndicator/projectAssessment/projectAssessment.api';
import addModal from "./addModal.vue";
import { projectAssessmentColumns } from '@/views/performanceIndicator/projectAssessment/projectAssessment.data';
import detailTabel from './detailTabel.vue'
import ProjectinfoComponent from '@/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue'
@ -42,7 +44,7 @@ const [registerDetailTable, { openModal: openModalDetailTable }] = useModal();
let projectid = ref()
const [registerTable, { reload }] = useTable({
title: '合同信息',
title: '项目绩效考核',
api: getProjectassessmentPageList,
columns: projectAssessmentColumns,
useSearchForm: true,
@ -128,8 +130,12 @@ function closeModel() {
closeModalProjectinfo()
reload()
}
function handleAddcontract(record) {
openModalProjectinfo(true,{title:'新增项目考核' ,api:getProjectassessmentProjectPageList ,stage:6})
// function handleAddcontract(record) {
// openModalProjectinfo(true,{title:'' ,api:getProjectassessmentProjectPageList ,stage:6})
// }
const addModalRef = ref()
function handleAdd() {
addModalRef.value.showModal()
}
</script>

Loading…
Cancel
Save