|
@@ -1,18 +1,15 @@
|
|
|
<script setup>
|
|
|
-import { ref, reactive } from "vue";
|
|
|
-import { getTemplateInfoList } from "@/api/templateInfo";
|
|
|
-import { userPageWhitOrganization } from "@/api/userSetting";
|
|
|
-import { getAssessmentPageList } from "@/api/manage";
|
|
|
-import { postListTree } from "@/api/department";
|
|
|
-import {
|
|
|
- getAssessmentList,
|
|
|
- getModelListByAssessmentId,
|
|
|
- getUserListObjectByModelId,
|
|
|
- getDeptListByUserList
|
|
|
-} from "@/api/draw";
|
|
|
-import { useRouter, useRoute } from "vue-router";
|
|
|
+import { ref, reactive, onMounted } from "vue";
|
|
|
+import { useRoute } from "vue-router";
|
|
|
+import { getUserListObjectByModelId, getAssessmentIndName } from "@/api/draw";
|
|
|
|
|
|
-const value = ref("");
|
|
|
+const props = defineProps({
|
|
|
+ // 行数
|
|
|
+ activeName: {
|
|
|
+ type: String,
|
|
|
+ default: "0"
|
|
|
+ }
|
|
|
+});
|
|
|
const $emit = defineEmits(["handClick"]);
|
|
|
const dataList = reactive({
|
|
|
teplist: [],
|
|
@@ -23,20 +20,13 @@ const dataList = reactive({
|
|
|
assessmentId: "",
|
|
|
assessmentModelId: "",
|
|
|
deptCode: "",
|
|
|
- assessmentObjectId: ""
|
|
|
+ assessmentObjectId: "",
|
|
|
+ indName: ""
|
|
|
}
|
|
|
});
|
|
|
|
|
|
-// 搜索框----------------------------------------------------
|
|
|
-// 考核模版
|
|
|
-const getTemplateInfoListApi = async selectedItem => {
|
|
|
- const { data, code } = await getModelListByAssessmentId(selectedItem);
|
|
|
- if (code === 200) {
|
|
|
- dataList.teplist = data;
|
|
|
- }
|
|
|
-};
|
|
|
-// getTemplateInfoListApi();
|
|
|
// 员工
|
|
|
+const userCodeList = ref([]);
|
|
|
const userPageWhitOrganizationApi = async (selectedItem, type) => {
|
|
|
let assessmentId;
|
|
|
if (type) {
|
|
@@ -59,36 +49,36 @@ const userPageWhitOrganizationApi = async (selectedItem, type) => {
|
|
|
userCodeList.value.push(item.assessmentObjectId);
|
|
|
}
|
|
|
});
|
|
|
- getDeptListByUserListApi();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-// 部门
|
|
|
-// const postListTreeApi = async selectedItem => {
|
|
|
-// const { data, code } = await getUserListObjectByModelId({
|
|
|
-// modelId: selectedItem.assessmentModelId,
|
|
|
-// type: 1,
|
|
|
-// assessmentId: selectedItem.assessmentId
|
|
|
-// });
|
|
|
-// if (code === 200) {
|
|
|
-// dataList.deptList = data;
|
|
|
-// }
|
|
|
-// };
|
|
|
-const userCodeList = ref([]);
|
|
|
-const getDeptListByUserListApi = async () => {
|
|
|
- const { data, code } = await getDeptListByUserList(userCodeList.value);
|
|
|
+// 指标
|
|
|
+const route = useRoute();
|
|
|
+const assessmentList = ref([]);
|
|
|
+const getAssessmentIndNameApi = async () => {
|
|
|
+ const { data, code } = await getAssessmentIndName({
|
|
|
+ assessmentId: route.query.id
|
|
|
+ });
|
|
|
if (code === 200) {
|
|
|
- const uniqueDeptCodes = {};
|
|
|
- dataList.deptList = data.filter(item => {
|
|
|
- if (!uniqueDeptCodes[item.deptCode]) {
|
|
|
- uniqueDeptCodes[item.deptCode] = true;
|
|
|
- return true; // 保留该项
|
|
|
- }
|
|
|
- return false; // 过滤掉重复项
|
|
|
- });
|
|
|
+ assessmentList.value = data;
|
|
|
}
|
|
|
};
|
|
|
-// postListTreeApi();
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ dataList.params.assessmentId = route.query.id;
|
|
|
+ dataList.params.assessmentModelId = route.query.mid;
|
|
|
+ init.assessmentName = route.query.name;
|
|
|
+ init.assessmentModelName = route.query.mname;
|
|
|
+ userPageWhitOrganizationApi(
|
|
|
+ {
|
|
|
+ assessmentId: route.query.id,
|
|
|
+ assessmentModelId: route.query.mid
|
|
|
+ },
|
|
|
+ 0
|
|
|
+ );
|
|
|
+ getAssessmentIndNameApi();
|
|
|
+});
|
|
|
+
|
|
|
// -----------------------------------
|
|
|
const init = reactive({
|
|
|
assessmentName: "",
|
|
@@ -97,56 +87,12 @@ const init = reactive({
|
|
|
assessmentObjectName: "",
|
|
|
dimensionName: ""
|
|
|
});
|
|
|
-const handClickInit1 = value => {
|
|
|
- if (value) {
|
|
|
- const selectedItem = dataList.magList.find(item => item.id === value);
|
|
|
- init.assessmentName = selectedItem.name;
|
|
|
- localStorage.setItem("fileName", selectedItem.name);
|
|
|
- getTemplateInfoListApi(selectedItem);
|
|
|
- }
|
|
|
- Object.assign(dataList.params, {
|
|
|
- assessmentModelId: "",
|
|
|
- deptCode: "",
|
|
|
- assessmentObjectId: ""
|
|
|
- });
|
|
|
- $emit(
|
|
|
- "handClick",
|
|
|
- {
|
|
|
- ...dataList.params,
|
|
|
- ...init
|
|
|
- },
|
|
|
- "0"
|
|
|
- );
|
|
|
-};
|
|
|
-const handClickInit2 = value => {
|
|
|
- if (value) {
|
|
|
- const selectedItem = dataList.teplist.find(
|
|
|
- item => item.assessmentModelId === value
|
|
|
- );
|
|
|
- init.assessmentModelName = selectedItem.assessmentModelName;
|
|
|
- userPageWhitOrganizationApi(selectedItem, 0);
|
|
|
- // postListTreeApi(selectedItem);
|
|
|
- }
|
|
|
- Object.assign(dataList.params, {
|
|
|
- deptCode: "",
|
|
|
- assessmentObjectId: ""
|
|
|
- });
|
|
|
- $emit(
|
|
|
- "handClick",
|
|
|
- {
|
|
|
- ...dataList.params,
|
|
|
- ...init
|
|
|
- },
|
|
|
- "0"
|
|
|
- );
|
|
|
-};
|
|
|
-const handClickInit3 = value => {
|
|
|
+const handClickInit4 = value => {
|
|
|
if (value) {
|
|
|
const selectedItem = dataList.personList.find(
|
|
|
- item => item.deptCode === value
|
|
|
+ item => item.assessmentObjectId === value
|
|
|
);
|
|
|
- init.deptName = selectedItem?.deptName;
|
|
|
- // init.deptName = value.deptName;
|
|
|
+ init.assessmentObjectName = selectedItem.assessmentObjectName;
|
|
|
}
|
|
|
$emit(
|
|
|
"handClick",
|
|
@@ -154,164 +100,59 @@ const handClickInit3 = value => {
|
|
|
...dataList.params,
|
|
|
...init
|
|
|
},
|
|
|
- "0"
|
|
|
+ "1"
|
|
|
);
|
|
|
};
|
|
|
-const handClickInit4 = value => {
|
|
|
- if (value) {
|
|
|
- const selectedItem = dataList.personList.find(
|
|
|
- item => item.assessmentObjectId === value
|
|
|
- );
|
|
|
- init.assessmentObjectName = selectedItem.assessmentObjectName;
|
|
|
- }
|
|
|
+const handClickInit5 = value => {
|
|
|
$emit(
|
|
|
"handClick",
|
|
|
{
|
|
|
...dataList.params,
|
|
|
- ...init
|
|
|
+ ...init,
|
|
|
+ indName: value
|
|
|
},
|
|
|
"1"
|
|
|
);
|
|
|
};
|
|
|
-const route = useRoute();
|
|
|
-const getSearchFrom = () => {
|
|
|
- if (Object.keys(route.query).length > 0) {
|
|
|
- const {
|
|
|
- assessmentId,
|
|
|
- assessmentModelId,
|
|
|
- assessmentObjectId,
|
|
|
- assessmentName,
|
|
|
- assessmentModelName,
|
|
|
- assessmentObjectName
|
|
|
- } = route.query;
|
|
|
- dataList.params.assessmentId = assessmentId;
|
|
|
- dataList.params.assessmentModelId = assessmentModelId;
|
|
|
- dataList.params.assessmentObjectId = assessmentObjectId;
|
|
|
- init.assessmentName = assessmentName;
|
|
|
- init.assessmentModelName = assessmentModelName;
|
|
|
- init.assessmentObjectName = assessmentObjectName;
|
|
|
- const selectedItem = dataList.magList.find(
|
|
|
- item => item.id === assessmentId
|
|
|
- );
|
|
|
- getTemplateInfoListApi(selectedItem);
|
|
|
- userPageWhitOrganizationApi(selectedItem, 1);
|
|
|
- setTimeout(() => {
|
|
|
- $emit(
|
|
|
- "handClick",
|
|
|
- {
|
|
|
- ...dataList.params,
|
|
|
- ...init
|
|
|
- },
|
|
|
- 1
|
|
|
- );
|
|
|
- }, 100);
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
-// 考核活动
|
|
|
-const getAssessmentPageListApi = async () => {
|
|
|
- const { data, code } = await getAssessmentList({
|
|
|
- type: 0
|
|
|
- });
|
|
|
- if (code === 200) {
|
|
|
- dataList.magList = data;
|
|
|
- getSearchFrom();
|
|
|
- }
|
|
|
-};
|
|
|
-if (route.query) {
|
|
|
- getAssessmentPageListApi();
|
|
|
-}
|
|
|
-// 清除条件
|
|
|
-const handClickClear1 = () => {
|
|
|
- dataList.teplist = [];
|
|
|
- dataList.deptList = [];
|
|
|
- dataList.personList = [];
|
|
|
-};
|
|
|
-const handClickClear2 = () => {
|
|
|
- dataList.deptList = [];
|
|
|
- dataList.personList = [];
|
|
|
-};
|
|
|
-const handClickClear3 = () => {
|
|
|
- dataList.personList = [];
|
|
|
-};
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<div class="w-full">
|
|
|
<div class="mb-2 flex gap-2 justify-between flex-wrap">
|
|
|
<div class="w-[100%] flex mt-2">
|
|
|
- <div class="flex mr-2">
|
|
|
- <div class="text-sm leading-8 mr-3">考核活动</div>
|
|
|
- <el-select
|
|
|
- v-model="dataList.params.assessmentId"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- placeholder="请选择"
|
|
|
- style="width: 200px"
|
|
|
- @change="handClickInit1"
|
|
|
- @clear="handClickClear1"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in dataList.magList"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <div class="flex mr-2">
|
|
|
- <div class="text-sm leading-8 mr-3">考核模板</div>
|
|
|
- <el-select
|
|
|
- v-model="dataList.params.assessmentModelId"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- placeholder="请选择"
|
|
|
- style="width: 200px"
|
|
|
- @change="handClickInit2"
|
|
|
- @clear="handClickClear2"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in dataList.teplist"
|
|
|
- :key="item.assessmentModelId"
|
|
|
- :label="item.assessmentModelName"
|
|
|
- :value="item.assessmentModelId"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <div class="flex mr-2">
|
|
|
- <div class="text-sm leading-8 mr-3">科室</div>
|
|
|
+ <div v-if="props.activeName === '0'" class="flex mr-2">
|
|
|
+ <div class="text-sm leading-8 mr-3">员工</div>
|
|
|
<el-select
|
|
|
- v-model="dataList.params.deptCode"
|
|
|
+ v-model="dataList.params.assessmentObjectId"
|
|
|
clearable
|
|
|
filterable
|
|
|
placeholder="请选择"
|
|
|
style="width: 200px"
|
|
|
- @change="handClickInit3"
|
|
|
- @clear="handClickClear3"
|
|
|
+ @change="handClickInit4"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in dataList.deptList"
|
|
|
- :key="item.deptCode"
|
|
|
- :label="item.deptName"
|
|
|
- :value="item.deptCode"
|
|
|
+ v-for="item in dataList.personList"
|
|
|
+ :key="item.assessmentObjectId"
|
|
|
+ :label="item.assessmentObjectName"
|
|
|
+ :value="item.assessmentObjectId"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
- <div class="flex mr-2">
|
|
|
- <div class="text-sm leading-8 mr-3">员工</div>
|
|
|
+ <div v-else class="flex mr-2">
|
|
|
+ <div class="text-sm leading-8 mr-3">指标</div>
|
|
|
<el-select
|
|
|
- v-model="dataList.params.assessmentObjectId"
|
|
|
+ v-model="dataList.params.indName"
|
|
|
clearable
|
|
|
filterable
|
|
|
placeholder="请选择"
|
|
|
style="width: 200px"
|
|
|
- @change="handClickInit4"
|
|
|
+ @change="handClickInit5"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in dataList.personList"
|
|
|
- :key="item.assessmentObjectId"
|
|
|
- :label="item.assessmentObjectName"
|
|
|
- :value="item.assessmentObjectId"
|
|
|
+ v-for="(item, idx) in assessmentList"
|
|
|
+ :key="idx"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</div>
|