haifeng.zhang vor 4 Monaten
Ursprung
Commit
519bc2040a

+ 43 - 22
src/views/evaluate/children/change/manage.vue

@@ -86,6 +86,10 @@ const copyForm = reactive({
   cycle: "",
   cycleValue: ""
 });
+const copyFormRules = reactive({
+  name: [{ required: true, message: "请输入考核名称", trigger: "blur" }],
+  cycle: [{ required: true, message: "请选择考核周期", trigger: "change" }]
+});
 const copyManage = (row: any) => {
   if (row.cycle) {
     handleRegionChange(row.cycle);
@@ -98,26 +102,37 @@ const copyManage = (row: any) => {
 const handleClose = () => {
   dialogVisibleCopy.value = false;
 };
-const saveCopy = async () => {
-  if (timeType.value == "月度") {
-    copyForm.cycleValue = dayjs(new Date(copyForm.cycleValue)).format(
-      "YYYY-MM"
-    );
-  }
-  if (timeType.value == "年度") {
-    copyForm.cycleValue = dayjs(new Date(copyForm.cycleValue)).format("YYYY");
-  }
-  if (timeType.value == "日期") {
-    copyForm.cycleValue = dayjs(new Date(copyForm.cycleValue)).format(
-      "YYYY-MM-DD"
-    );
-  }
-  const { code, msg } = await postCopyAssessment(copyForm);
-  if (code === 200) {
-    ElMessage.success("复制成功");
-    dialogVisibleCopy.value = false;
-    getAssessmentPageListApi();
-  }
+const copyFormRef = ref(null);
+const saveCopy = () => {
+  copyFormRef.value.validate(async valid => {
+    if (valid) {
+      if (!copyForm.cycleValue) {
+        ElMessage.error("请选择考核周期的具体时间");
+        return false;
+      }
+      if (timeType.value == "月度") {
+        copyForm.cycleValue = dayjs(new Date(copyForm.cycleValue)).format(
+          "YYYY-MM"
+        );
+      }
+      if (timeType.value == "年度") {
+        copyForm.cycleValue = dayjs(new Date(copyForm.cycleValue)).format(
+          "YYYY"
+        );
+      }
+      if (timeType.value == "日期") {
+        copyForm.cycleValue = dayjs(new Date(copyForm.cycleValue)).format(
+          "YYYY-MM-DD"
+        );
+      }
+      const { code, msg } = await postCopyAssessment(copyForm);
+      if (code === 200) {
+        ElMessage.success("复制成功");
+        dialogVisibleCopy.value = false;
+        getAssessmentPageListApi();
+      }
+    }
+  });
 };
 const timeType = ref<any>("月度");
 const quarterValue = ref(true);
@@ -347,11 +362,17 @@ const monthOne = item => {
       :title="'复制来源:' + copyTitle"
       width="500"
     >
-      <el-form :model="copyForm" label-width="auto" style="max-width: 600px">
+      <el-form
+        ref="copyFormRef"
+        :model="copyForm"
+        :rules="copyFormRules"
+        label-width="auto"
+        style="max-width: 600px"
+      >
         <el-form-item label="名称" prop="name">
           <el-input v-model="copyForm.name" placeholder="请输入" />
         </el-form-item>
-        <el-form-item label="考核周期">
+        <el-form-item label="考核周期" prop="cycle">
           <el-radio-group v-model="copyForm.cycle" @change="handleRegionChange">
             <el-radio value="月度" size="large">月度</el-radio>
             <el-radio value="季度" size="large">季度</el-radio>

+ 37 - 28
src/views/evaluate/children/change/manage/addExam.vue

@@ -43,7 +43,8 @@ const form = reactive({
   ]
 });
 const rules = reactive({
-  name: [{ required: true, message: "请输入考核名称", trigger: "blur" }]
+  name: [{ required: true, message: "请输入考核名称", trigger: "blur" }],
+  cycle: [{ required: true, message: "请选择考核周期", trigger: "change" }]
 });
 const formLeftRules = reactive({
   left: [{ required: true, message: "请选择考核指标", trigger: "blur" }],
@@ -83,32 +84,40 @@ const transformArrayFormat = data => {
     .flat();
 };
 // 添加部门保存
-const saveDepartment = async () => {
-  form.assessmentObjectList = transformArrayFormat(form.listArr);
-  if (timeType.value == "月度") {
-    form.cycleValue = dayjs(new Date(form.cycleValue)).format("YYYY-MM");
-  }
-  if (timeType.value == "年度") {
-    form.cycleValue = dayjs(new Date(form.cycleValue)).format("YYYY");
-  }
-  if (timeType.value == "日期") {
-    form.cycleValue = dayjs(new Date(form.cycleValue)).format("YYYY-MM-DD");
-  }
-  form.assessmentObjectList = form.assessmentObjectList.filter(
-    item => item.assessmentObjectId && item.assessmentObjectName
-  );
-  delete form.listArr;
-  const { code, msg } = await postAddAssessment(form);
-  if (code === 200) {
-    ElMessage({
-      message: "添加成功",
-      type: "success"
-    });
-    $emit("addHandClick");
-    dialogVisibleAdd.value = false;
-  } else {
-    ElMessage.error(msg);
-  }
+const saveDepartment = () => {
+  formRef.value.validate(async valid => {
+    if (valid) {
+      if (!form.cycleValue) {
+        ElMessage.error("请选择考核周期的具体时间");
+        return false;
+      }
+      form.assessmentObjectList = transformArrayFormat(form.listArr);
+      if (timeType.value == "月度") {
+        form.cycleValue = dayjs(new Date(form.cycleValue)).format("YYYY-MM");
+      }
+      if (timeType.value == "年度") {
+        form.cycleValue = dayjs(new Date(form.cycleValue)).format("YYYY");
+      }
+      if (timeType.value == "日期") {
+        form.cycleValue = dayjs(new Date(form.cycleValue)).format("YYYY-MM-DD");
+      }
+      form.assessmentObjectList = form.assessmentObjectList.filter(
+        item => item.assessmentObjectId && item.assessmentObjectName
+      );
+      delete form.listArr;
+      const { code, msg } = await postAddAssessment(form);
+      if (code === 200) {
+        ElMessage({
+          message: "添加成功",
+          type: "success"
+        });
+        $emit("addHandClick");
+        dialogVisibleAdd.value = false;
+      } else {
+        ElMessage.error(msg);
+      }
+    }
+  });
 };
 const open = (item: any, index: string) => {
   // postListTreeWithUserApi();
@@ -385,7 +394,7 @@ const idList = ref([]);
         <el-form-item label="考核名称" prop="name">
           <el-input v-model="form.name" placeholder="请输入" />
         </el-form-item>
-        <el-form-item label="考核周期">
+        <el-form-item label="考核周期" prop="cycle">
           <el-radio-group v-model="form.cycle" @change="handleRegionChange">
             <el-radio value="月度" size="large">月度</el-radio>
             <el-radio value="季度" size="large">季度</el-radio>

+ 69 - 30
src/views/evaluate/children/change/mould/manageObject.vue

@@ -196,7 +196,6 @@ const getTemplateInfoListApi = async () => {
     modulesList.value = data.records || [];
   }
 };
-const modulesValue = ref("");
 const handleModulesSelect = val => {
   addPersonParams.assessmentModelId = val;
   modulesList.value.forEach(el => {
@@ -215,10 +214,27 @@ const addPersonParams = reactive({
   assessmentId: "",
   objectAddVoList: [],
   assessmentModelId: "",
-  assessmentModelName: ""
+  assessmentModelName: "",
+  value1: [],
+  modulesValue: ""
+});
+const addPersonParamsRules = reactive({
+  value1: [
+    {
+      required: true,
+      message: "请选择人员/科室/医疗组",
+      trigger: "change"
+    }
+  ],
+  modulesValue: [
+    {
+      required: true,
+      message: "请选择考核模板",
+      trigger: "change"
+    }
+  ]
 });
 // 添加被考核人
-const value1 = ref();
 const delAssessmentObjectApi = async () => {
   if (valSelection.value) {
     ElMessageBox.confirm(
@@ -323,6 +339,7 @@ const handleNodeRreeSelect = data => {
   }
 };
 const handleRreeSelect = data => {
+  addPersonParams.objectAddVoList = [];
   const list = ref({});
   let dataList;
   // console.log("data", data);
@@ -373,12 +390,12 @@ const handChange = data => {
           });
         }
       }
-      addPersonParams.objectAddVoList = gropList;
     });
   });
+  addPersonParams.objectAddVoList = gropList;
   const list = ref({});
   const arr = treeDeptList.value.filter(item => {
-    return value1.value.includes(item.groupCode);
+    return addPersonParams.value1.includes(item.groupCode);
   });
   list.value.assessmentObjectId = arr.map(item => item.groupCode);
   list.value.assessmentObjectName = arr.map(item => item.groupName);
@@ -732,30 +749,40 @@ const closePerson = () => {
     assessmentModelId: "",
     assessmentModelName: ""
   });
-  value1.value = [];
-  modulesValue.value = "";
+  addPersonParams.value1 = [];
+  addPersonParams.modulesValue = "";
   dialogVisibleAdd.value = false;
 };
 
 // 添加被考核人
-const addPerson = async () => {
-  addPersonParams.assessmentId = $props.message.id;
-  let arr = [];
-  if ($props.message.assessmentType == 0) {
-    addPersonParams.objectAddVoList.map(it => {
-      if (it.assessmentObjectId.substring(0, 4) == "user") {
-        arr.push(it);
+const ruleFormRef = ref(null);
+const addPerson = () => {
+  ruleFormRef.value.validate(async valid => {
+    if (valid) {
+      addPersonParams.assessmentId = $props.message.id;
+      let arr = [];
+      if ($props.message.assessmentType == 0) {
+        addPersonParams.objectAddVoList.map(it => {
+          if (it.assessmentObjectId.substring(0, 4) == "user") {
+            arr.push(it);
+          }
+          addPersonParams.objectAddVoList = arr;
+        });
       }
-      addPersonParams.objectAddVoList = arr;
-    });
-  }
-  const { data, msg, code } = await postAddAssessmentObject(addPersonParams);
-  if (code === 200) {
-    ElMessage.success("添加成功");
-    dialogVisibleAdd.value = false;
-    getAssessmentObjectDetailsApi();
-    closePerson();
-  }
+      const { data, msg, code } = await postAddAssessmentObject({
+        assessmentId: addPersonParams.assessmentId,
+        assessmentModelId: addPersonParams.assessmentModelId,
+        assessmentModelName: addPersonParams.assessmentModelName,
+        objectAddVoList: addPersonParams.objectAddVoList
+      });
+      if (code === 200) {
+        ElMessage.success("添加成功");
+        dialogVisibleAdd.value = false;
+        getAssessmentObjectDetailsApi();
+        closePerson();
+      }
+    }
+  });
 };
 
 const changTitle = () => {
@@ -1764,15 +1791,17 @@ const selectAllChangeEvent = row => {
           label-position="top"
           label-width="auto"
           :model="addPersonParams"
+          :rules="addPersonParamsRules"
         >
           <el-form-item
             v-if="$props.message.assessmentType == 0"
             label="人员"
             label-position="top"
+            prop="value1"
           >
             <el-tree-select
               ref="assessmentTypeRef"
-              v-model="value1"
+              v-model="addPersonParams.value1"
               :data="convertDepartmentDataRecursive_Person(treeDept)"
               multiple
               :render-after-expand="false"
@@ -1785,10 +1814,11 @@ const selectAllChangeEvent = row => {
             v-else-if="$props.message.assessmentType == 1"
             label="科室"
             label-position="top"
+            prop="value1"
           >
             <el-tree-select
               ref="assessmentTypeRef"
-              v-model="value1"
+              v-model="addPersonParams.value1"
               :data="dpetTree"
               multiple
               :render-after-expand="false"
@@ -1802,10 +1832,11 @@ const selectAllChangeEvent = row => {
             v-else-if="$props.message.assessmentType == 2"
             label="医疗组"
             label-position="top"
+            prop="value1"
           >
             <el-select
               ref="selectRefs"
-              v-model="value1"
+              v-model="addPersonParams.value1"
               multiple
               @change="handChange"
             >
@@ -1821,10 +1852,11 @@ const selectAllChangeEvent = row => {
             v-else-if="$props.message.assessmentType == 3"
             label="人员"
             label-position="top"
+            prop="value1"
           >
             <el-select
               ref="selectRefs"
-              v-model="value1"
+              v-model="addPersonParams.value1"
               multiple
               @change="handChange"
             >
@@ -1836,8 +1868,15 @@ const selectAllChangeEvent = row => {
               />
             </el-select>
           </el-form-item>
-          <el-form-item label="考核模板" label-position="top">
-            <el-select v-model="modulesValue" @change="handleModulesSelect">
+          <el-form-item
+            label="考核模板"
+            label-position="top"
+            prop="modulesValue"
+          >
+            <el-select
+              v-model="addPersonParams.modulesValue"
+              @change="handleModulesSelect"
+            >
               <el-option
                 v-for="itemTmp in modulesList"
                 :key="itemTmp.id"