123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- <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 { postPageGroup } from "@/api/userGroup";
- import {
- getAssessmentList,
- getModelListByAssessmentId,
- getUserListObjectByModelId
- } from "@/api/draw";
- import { useRouter, useRoute } from "vue-router";
- const $emit = defineEmits(["handClick"]);
- const dataList = reactive({
- teplist: [],
- userList: [],
- magList: [],
- params: {
- assessmentId: "",
- assessmentModelId: "",
- deptCode: "",
- assessmentObjectId: ""
- }
- });
- // 考核模板
- const getTemplateInfoListApi = async selectedItem => {
- const { data, code } = await getModelListByAssessmentId(selectedItem);
- if (code === 200) {
- dataList.teplist = data;
- }
- };
- // getTemplateInfoListApi();
- // 考核活动
- // const getAssessmentPageListApi = async () => {
- // const { data, code } = await getAssessmentList({
- // type: 2
- // });
- // if (code === 200) {
- // dataList.magList = data;
- // }
- // console.log("await", data);
- // };
- // getAssessmentPageListApi();
- // 用户组-用户组-医疗组
- const postPageGroupApi = async selectedItem => {
- console.log("selectedItem", selectedItem);
- const { data, code } = await getUserListObjectByModelId({
- modelId: selectedItem.assessmentModelId,
- assessmentId: selectedItem.assessmentId,
- type: 2
- });
- if (code === 200) {
- dataList.userList = data;
- }
- };
- // -----------------------
- const init = reactive({
- assessmentName: "",
- assessmentModelName: "",
- deptName: "",
- 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: "",
- 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;
- postPageGroupApi(selectedItem);
- }
- Object.assign(dataList.params, {
- assessmentObjectId: ""
- });
- $emit(
- "handClick",
- {
- ...dataList.params,
- ...init
- },
- "0"
- );
- };
- const handClickInit3 = value => {
- if (value) {
- const selectedItem = dataList.userList.find(
- item => item.assessmentObjectId === value
- );
- init.assessmentObjectName = selectedItem.assessmentObjectName;
- }
- $emit(
- "handClick",
- {
- ...dataList.params,
- ...init
- },
- "1"
- );
- };
- const route = useRoute();
- const getSearchFrom = () => {
- if (Object.keys(route.query).length > 0) {
- const {
- assessmentId,
- assessmentModelId,
- assessmentObjectId,
- assessmentName,
- assessmentModelName,
- assessmentObjectName
- } = route.query;
- const obj = ["assessmentId", "assessmentModelId", "assessmentObjectId"];
- const initObj = [
- "assessmentName",
- "assessmentModelName",
- "assessmentObjectName"
- ];
- obj.map(item => {
- dataList.params[item] = route.query[item];
- });
- initObj.map(item => {
- init[item] = route.query[item];
- });
- const selectedItem = dataList.magList.find(
- item => item.id === assessmentId
- );
- getTemplateInfoListApi(selectedItem);
- setTimeout(() => {
- const selectedItems = dataList.teplist.find(
- item => item.assessmentModelId === assessmentModelId
- );
- postPageGroupApi(selectedItems);
- setTimeout(() => {
- $emit(
- "handClick",
- {
- ...dataList.params,
- ...init
- },
- 1
- );
- }, 100);
- }, 300);
- }
- };
- // 考核活动
- const getAssessmentPageListApi = async () => {
- const { data, code } = await getAssessmentList({
- type: 2
- });
- if (code === 200) {
- dataList.magList = data;
- getSearchFrom();
- }
- };
- getAssessmentPageListApi();
- // 清除条件
- const handClickClear1 = () => {
- dataList.teplist = [];
- dataList.userList = [];
- };
- const handClickClear2 = () => {
- dataList.userList = [];
- };
- </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>
- <el-select
- v-model="dataList.params.assessmentObjectId"
- clearable
- filterable
- placeholder="请选择"
- style="width: 200px"
- @change="handClickInit3"
- >
- <el-option
- v-for="item in dataList.userList"
- :key="item.assessmentObjectId"
- :label="item.assessmentObjectName"
- :value="item.assessmentObjectId"
- />
- </el-select>
- </div>
- </div>
- </div>
- </div>
- </template>
|