ystl_myq 1 тиждень тому
батько
коміт
5aa91136fe
31 змінених файлів з 237 додано та 107 видалено
  1. BIN
      public/favicon-.ico
  2. BIN
      public/favicon.ico
  3. BIN
      public/logo@2x.png
  4. 3 2
      src/components/UserPageTable/index.vue
  5. 3 3
      src/components/rankTable/draw.vue
  6. 4 4
      src/components/rankTable/index.vue
  7. 6 1
      src/layout/components/sidebar/centerCollapse.vue
  8. 1 1
      src/router/modules/password.ts
  9. 1 0
      src/views/background/framework/proson/components/addPerson.vue
  10. 2 0
      src/views/background/framework/proson/components/newDepartment.vue
  11. 5 1
      src/views/background/framework/proson/components/prosonEditDrawer.vue
  12. 35 13
      src/views/background/framework/proson/prosonDepartment.vue
  13. 12 4
      src/views/background/framework/roles/components/addPerson.vue
  14. 10 14
      src/views/background/framework/roles/rolePower.vue
  15. 11 4
      src/views/background/framework/users/components/addPerson.vue
  16. 2 2
      src/views/background/framework/users/components/addUsers.vue
  17. 13 8
      src/views/background/framework/users/components/editPerson.vue
  18. 9 3
      src/views/background/framework/users/index.vue
  19. 16 6
      src/views/draw/children/department/departmentDrank.vue
  20. 7 3
      src/views/draw/children/department/departmentRank.vue
  21. 6 2
      src/views/draw/children/head/headRank.vue
  22. 6 2
      src/views/draw/children/health/healthRank.vue
  23. 5 1
      src/views/draw/children/worker/workerRank.vue
  24. 4 4
      src/views/evaluate/children/change/components/editMould.vue
  25. 5 5
      src/views/evaluate/children/change/components/jishuanqi.vue
  26. 4 2
      src/views/evaluate/children/change/components/newAdd.vue
  27. 21 4
      src/views/evaluate/children/change/components/settingIndexDrawer.vue
  28. 1 0
      src/views/evaluate/children/change/manage.vue
  29. 23 15
      src/views/evaluate/children/change/manage/addExam.vue
  30. 21 2
      src/views/evaluate/children/change/mould/manageObject.vue
  31. 1 1
      src/views/password/index.vue

BIN
public/favicon-.ico


BIN
public/favicon.ico


BIN
public/logo@2x.png


+ 3 - 2
src/components/UserPageTable/index.vue

@@ -21,6 +21,7 @@ const tableData = reactive({
   total: 0
 });
 const handleNodeClick = (data: any, userType: string) => {
+  console.log("handleNodeClick");
   if (userType == "group") {
     tableData.params.organizationCode = data.groupCode;
     tableData.params.organizationType = userType;
@@ -75,7 +76,7 @@ const getTime = day => {
       <el-input
         v-model="tableData.params.realName"
         :prefix-icon="Search"
-        placeholder="搜索"
+        placeholder="搜索姓名"
         class="mb-2"
         style="max-width: 300px"
         clearable
@@ -97,7 +98,7 @@ const getTime = day => {
         prop="gender"
         label="性别"
       />
-      <el-table-column label="出生年月">
+      <el-table-column label="出生日期">
         <template #default="{ row }">
           <span>{{ getTime(row.birth) }}</span>
         </template>

+ 3 - 3
src/components/rankTable/draw.vue

@@ -43,10 +43,10 @@ const RANK_IMG = [rank1, rank2, rank3];
 const tableData = ref([]);
 const deptName = ref("");
 const name = ref("");
-const init = (item, deptName, name) => {
+const init = (item, deptNames, names) => {
   tableData.value = item;
-  deptName.value = deptName;
-  name.value = name;
+  deptName.value = deptNames;
+  name.value = names;
 };
 defineExpose({
   init

+ 4 - 4
src/components/rankTable/index.vue

@@ -35,7 +35,7 @@
       fixed
       width="100"
     />
-    <div v-for="(item, index) in tableData.dimensionList" :key="index">
+    <div v-for="(item, index) in tableData?.dimensionList" :key="index">
       <el-table-column :label="`${item.dimName}(${item.soreRate}%)`">
         <el-table-column
           v-for="(it, id) in item.quotaList"
@@ -87,11 +87,11 @@ const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
   }
   return [1, 1]; // 其他单元格正常显示
 };
-const init = (item, deptName, name) => {
+const init = (item, deptNames, names) => {
   tableData.value = item;
   averageData(item.averageSore);
-  deptName.value = deptName;
-  name.value = name;
+  deptName.value = deptNames;
+  name.value = names;
 };
 defineExpose({
   init

+ 6 - 1
src/layout/components/sidebar/centerCollapse.vue

@@ -32,9 +32,14 @@ const toggleClick = () => {
 </script>
 
 <template>
+  <!-- v-tippy="{
+      content: props.isActive ? '点击折叠' : '点击展开',
+      theme: tooltipEffect,
+      hideOnClick: 'toggle',
+      placement: 'right'
+    }" -->
   <div
     v-tippy="{
-      content: props.isActive ? '点击折叠' : '点击展开',
       theme: tooltipEffect,
       hideOnClick: 'toggle',
       placement: 'right'

+ 1 - 1
src/router/modules/password.ts

@@ -13,7 +13,7 @@ export default {
     {
       path: "/password-Change",
       meta: {
-        title: "修改密码",
+        title: "账号与密码",
         icon: server
       },
       children: [

+ 1 - 0
src/views/background/framework/proson/components/addPerson.vue

@@ -75,6 +75,7 @@ const open = (row, postOrganizationUserPageApi) => {
     phone: "",
     birth: null
   });
+  dayBirth.value = "";
   if (row.deptCode) {
     // console.log("11111", row);
     form.deptCode = row.deptCode;

+ 2 - 0
src/views/background/framework/proson/components/newDepartment.vue

@@ -31,6 +31,8 @@ const postAddDeptApi = async () => {
     });
     emit("handleClick");
     handleClose();
+  } else {
+    ElMessage.error(msg);
   }
 };
 // 上级部门

+ 5 - 1
src/views/background/framework/proson/components/prosonEditDrawer.vue

@@ -156,7 +156,11 @@ const timer = ref("");
                 :disabled="disabledValue"
               />
             </el-form-item>
-            <el-form-item label="上级部门" label-position="top">
+            <el-form-item
+              v-if="formLabelAlign.parentCode != 0"
+              label="上级部门"
+              label-position="top"
+            >
               <!-- <el-input v-model="formLabelAlign.parentCode" /> -->
               <el-tree-select
                 v-model="formLabelAlign.parentCode"

+ 35 - 13
src/views/background/framework/proson/prosonDepartment.vue

@@ -59,8 +59,10 @@ const postListTreeApi = async () => {
       data[0].id = 1;
     }
     dataTree.value = data;
+    let dataId = { data: "" };
+    dataId.data = dataTree.value[0];
     nextTick(() => {
-      handleNodeClick(dataTree.value[0]);
+      handleNodeClick(dataId);
     });
   }
 };
@@ -145,9 +147,17 @@ const tableData = reactive({
     organizationType: "dept"
   }
 });
+const selectedNodeId = ref();
 const handleNodeClick = data => {
-  Object.assign(deptList.value, data);
-  UserTable.value.handleNodeClick(data, "dept");
+  selectedNodeId.value = data.id;
+  // nextTick(() => {
+  //   const nodeElement = treeRef.value.$el.querySelector(`[data-node-key="${data.id}"]`);
+  //   if (nodeElement) {
+  //     nodeElement.classList.add('custom-node-class'); // 在此修改类名
+  //   }
+  // });
+  Object.assign(deptList.value, data.data);
+  UserTable.value.handleNodeClick(data.data, "dept");
   // tableData.params.organizationCode = data.deptCode;
   // postOrganizationUserPageApi();
 };
@@ -173,6 +183,10 @@ const filterNode = (value: string, data: any) => {
 watch(realName, val => {
   treeRef.value!.filter(val);
 });
+// function handleDropdownClick(node) {
+//   // 您的逻辑
+//   console.log(1111,node)
+// }
 </script>
 
 <template>
@@ -198,7 +212,7 @@ watch(realName, val => {
     />
     <!-- 配置角色 -->
     <changeRole ref="changeRoleRef" v-model="changeRoleShow" />
-    <!-- 主体内容 -->
+    <!-- 主体内容  @node-click="handleNodeClick" -->
     <div class="box-left">
       <el-input
         v-model="realName"
@@ -218,12 +232,16 @@ watch(realName, val => {
         :expand-on-click-node="false"
         highlight-current
         :filter-node-method="filterNode"
-        @node-click="handleNodeClick"
       >
         <template #default="{ node }">
-          <div class="flex-1 flex justify-between items-center">
-            <div class="w-[150px] ellipsis">{{ node.label }}</div>
-            <el-dropdown trigger="click" @click.stop>
+          <div
+            class="flex-1 flex justify-between items-center"
+            :class="{ 'custom-node-class': selectedNodeId === node.id }"
+          >
+            <div class="w-[120px] ellipsis" @click="handleNodeClick(node)">
+              {{ node.label }}
+            </div>
+            <el-dropdown trigger="click">
               <span>
                 <el-icon>
                   <Operation />
@@ -345,11 +363,15 @@ watch(realName, val => {
 //   line-height: 10px;
 //   border: 1px solid red;
 // }
-::v-deep(
-    .el-tree--highlight-current
-      .el-tree-node.is-current
-      > .el-tree-node__content
-  ) {
+// ::v-deep(
+//     .el-tree--highlight-current
+//       .el-tree-node.is-current
+//       > .el-tree-node__content
+//   ) {
+//   color: #0052d9;
+//   background-color: #ecf2fe !important;
+// }
+.custom-node-class {
   color: #0052d9;
   background-color: #ecf2fe !important;
 }

+ 12 - 4
src/views/background/framework/roles/components/addPerson.vue

@@ -23,11 +23,13 @@ const saveDepartment = () => {
   postAssignmentUserApi();
 };
 const open = item => {
+  form.sourceCodes = [];
+  form.targetCodes = [];
   dialogVisibleAdd.value = true;
   postListTreeWithUserApi();
-  form.sourceCodes.push(item.roleCode);
+  // form.sourceCodes.push(item.roleCode);
+  form.targetCodes.push(item.roleCode);
   filterText.value = "";
-  console.log("来源", item);
 };
 const postAssignmentUserApi = async () => {
   const { code, msg } = await postAssignmentUser(form);
@@ -47,9 +49,15 @@ const postAssignmentUserApi = async () => {
 };
 // 树选择
 const handleCheck = (node, checked) => {
+  console.log("树选择", node, checked);
+  form.sourceCodes = [];
   checked.checkedNodes.forEach(item => {
-    form.targetCodes.push(item.userCode);
+    form.sourceCodes.push(item.userCode);
   });
+  // form.targetCodes = [];
+  // checked.checkedNodes.forEach(item => {
+  //   form.targetCodes.push(item.userCode);
+  // });
 };
 defineExpose({
   open
@@ -63,7 +71,7 @@ watch(filterText, val => {
 
 const filterNode = (value: string, data: any) => {
   if (!value) return true; // 如果没有过滤关键词,显示所有节点
-  return data.userName && data.userName.includes(value); // 使用 userName 进行匹配
+  return data.userNameNew && data.userNameNew.includes(value); // 使用 userName 进行匹配
 };
 
 const defaultProps = {

+ 10 - 14
src/views/background/framework/roles/rolePower.vue

@@ -462,16 +462,14 @@ const roleShowClick = (item, type: any) => {
                   </el-icon>
                 </span>
                 <template #dropdown>
-                  <el-dropdown-menu class="setting">
-                    <el-dropdown-item @click="editRoleName(item)">
-                      编辑名称
-                    </el-dropdown-item>
-                    <el-dropdown-item>
-                      <el-link type="danger" @click="deleteRole(item)"
-                        >删除</el-link
-                      >
-                    </el-dropdown-item>
-                  </el-dropdown-menu>
+                  <div class="menu-bg">
+                    <el-dropdown-menu class="setting">
+                      <el-dropdown-item> 编辑名称 </el-dropdown-item>
+                      <el-dropdown-item>
+                        <el-link type="danger">删除</el-link>
+                      </el-dropdown-item>
+                    </el-dropdown-menu>
+                  </div>
                 </template>
               </el-dropdown>
             </div>
@@ -519,10 +517,8 @@ const roleShowClick = (item, type: any) => {
                       </el-dropdown-item>
                     </Auth>
                     <Auth :value="['删除']">
-                      <el-dropdown-item>
-                        <el-link type="danger" @click="deleteRole(item)"
-                          >删除</el-link
-                        >
+                      <el-dropdown-item @click="deleteRole(item)">
+                        <el-link type="danger">删除</el-link>
                       </el-dropdown-item>
                     </Auth>
                   </el-dropdown-menu>

+ 11 - 4
src/views/background/framework/users/components/addPerson.vue

@@ -22,10 +22,12 @@ const saveDepartment = () => {
   postAssignmentUserApi();
 };
 const open = (item, list) => {
+  form.sourceCodes = [];
+  form.targetCodes = [];
   dialogVisibleAdd.value = true;
   filterText.value = "";
-  console.log("item", list);
-  form.sourceCodes.push(item.groupCode);
+  form.targetCodes.push(item.groupCode);
+  // form.sourceCodes.push(item.groupCode);
 };
 const postAssignmentUserApi = async () => {
   const { code, msg } = await postAssignmentUser(form);
@@ -49,13 +51,18 @@ const defaultProps = {
 const tree = ref(null);
 
 const handleCheck = (node, checked) => {
+  form.sourceCodes = [];
   checked.checkedNodes.forEach(item => {
-    form.targetCodes.push(item.userCode);
+    form.sourceCodes.push(item.userCode);
   });
+  // form.targetCodes = [];
+  // checked.checkedNodes.forEach(item => {
+  //   form.targetCodes.push(item.userCode);
+  // });
 };
 const filterNode = (value: string, data: any) => {
   if (!value) return true; // 如果没有过滤关键词,显示所有节点
-  return data.userName && data.userName.includes(value); // 使用 userName 进行匹配
+  return data.userNameNew && data.userNameNew.includes(value); // 使用 userName 进行匹配
 };
 const treeRef = ref();
 

+ 2 - 2
src/views/background/framework/users/components/addUsers.vue

@@ -47,9 +47,9 @@ const postAddUserGroupApi = async () => {
   }
 };
 const handleClose = () => {
+  dialogVisibleAdd.value = false;
   formRef.value.clearValidate(); // 清除验证错误
   formRef.value.resetFields(); // 重置表单字段
-  dialogVisibleAdd.value = false;
 };
 // 角色数据
 
@@ -123,7 +123,7 @@ defineExpose({
           :rules="[
             {
               required: true,
-              message: '请填写部门名称',
+              message: '请填写用户组名称',
               trigger: 'blur'
             }
           ]"

+ 13 - 8
src/views/background/framework/users/components/editPerson.vue

@@ -3,7 +3,7 @@ import { ref, reactive } from "vue";
 import { ElMessageBox, ElMessage } from "element-plus";
 import type { DrawerProps, FormItemProps, FormProps } from "element-plus";
 import { postUpdateGroupByCode } from "@/api/userGroup";
-import { getLeaderList } from "@/api/userSetting";
+import { getLeaderList, postOrganizationUserPage } from "@/api/userSetting";
 const drawer = ref(false);
 const formRef = ref();
 const emit = defineEmits(["handleClick"]);
@@ -57,22 +57,27 @@ function confirmClick() {
 }
 // 获取负责人
 const leader = ref([]);
-const getLeaderListApi = async () => {
-  const { code, data } = await getLeaderList();
+const postOrganizationUserPagetApi = async groupCode => {
+  const { code, data } = await postOrganizationUserPage({
+    pageNumber: 1,
+    pageSize: 1000,
+    organizationCode: groupCode,
+    organizationType: "group",
+    realName: ""
+  });
   if (code == 200) {
-    leader.value = data;
+    leader.value = data.records;
   }
 };
 const open = row => {
   if (row) {
-    console.log("11111", row);
     formLabelAlign.groupName = row.groupName;
     formLabelAlign.leaderCode = row.leaderCode;
     formLabelAlign.groupCode = row.groupCode;
     formLabelAlign.hospitalCode = row.hospitalCode;
   }
   drawer.value = true;
-  getLeaderListApi();
+  postOrganizationUserPagetApi(row.groupCode);
 };
 const editShow = ref(true);
 // 编辑
@@ -118,15 +123,15 @@ const timer = ref("");
               />
             </el-form-item>
             <el-form-item label="用户组负责人" label-position="top">
-              <!-- <el-input v-model="formLabelAlign.leaderCode" :disabled="disabledValue" /> -->
               <el-select
                 v-model="formLabelAlign.leaderCode"
+                :disabled="disabledValue"
                 placeholder="请选择"
               >
                 <el-option
                   v-for="item in leader"
                   :key="item.userCode"
-                  :label="item.userName"
+                  :label="item.realName"
                   :value="item.userCode"
                 />
               </el-select>

+ 9 - 3
src/views/background/framework/users/index.vue

@@ -30,7 +30,7 @@ const rolesList = reactive({
   rolesName: "",
   params: {
     pageNumber: 1,
-    pageSize: 10,
+    pageSize: 20,
     groupName: ""
   },
   addPerson: {}
@@ -41,7 +41,6 @@ const load = () => {
 };
 // 用户组分页
 const postPageGroupApi = async () => {
-  console.log("rolesList.params", rolesList.params);
   const { code, data } = await postPageGroup(rolesList.params);
   if (code === 200) {
     rolesList.data = [];
@@ -56,6 +55,7 @@ const postPageGroupApi = async () => {
 postPageGroupApi();
 
 // 查看角色组
+const paramsItem = ref();
 const bgColor = ref(null);
 const lookRoles = item => {
   bgColor.value = item.id;
@@ -63,6 +63,7 @@ const lookRoles = item => {
   Object.assign(rolesList.addPerson, item);
   UserTable.value.handleNodeClick(item, "group");
   addPersonClick.value = UserTable.value.handleNodeClick(item, "group");
+  paramsItem.value = item;
 };
 // 标签选择
 const activeName = ref("first");
@@ -137,6 +138,11 @@ const deltetePerson = row => {
       });
     });
 };
+const addPersonClickList = () => {
+  postPageGroupApi();
+  UserTable.value.handleNodeClick(paramsItem.value, "group");
+  console.log(111);
+};
 </script>
 
 <template>
@@ -145,7 +151,7 @@ const deltetePerson = row => {
     <addPerson
       ref="addPersonRef"
       v-model="addPersonShow"
-      @handleClick="postPageGroupApi"
+      @handleClick="addPersonClickList"
     />
     <!-- 添加用户组 -->
     <addUsers

+ 16 - 6
src/views/draw/children/department/departmentDrank.vue

@@ -2,7 +2,7 @@
 defineOptions({
   name: "departmentDrank"
 });
-import { ref, reactive } from "vue";
+import { ref, reactive, nextTick } from "vue";
 import { useRouter } from "vue-router";
 import radar from "@/components/echarts/radar.vue";
 import barEcharts from "@/components/echarts/bar.vue";
@@ -28,7 +28,11 @@ const getChartsListApi = async () => {
     type: 0
   });
   if (code == 200) {
-    rankTableRef.value.init(data, "科室", "姓名");
+    setTimeout(() => {
+      nextTick(() => {
+        rankTableRef.value.init(data, "科室", "姓名");
+      });
+    }, 500);
   }
 };
 // 柱状图
@@ -39,6 +43,7 @@ const dataList = reactive({
   dimName: []
 });
 const seachParams = ref();
+const showLength = ref(0);
 const getPersonDimensionChartsListApi = async (
   dimensionName?: string,
   dimId?: number | string
@@ -52,6 +57,7 @@ const getPersonDimensionChartsListApi = async (
 
   if (code == 200) {
     if (data.length > 0) {
+      showLength.value = data.length;
       data.dimensionList.map(item => {
         dataList.dimName.push({
           name: item.dimName,
@@ -87,9 +93,13 @@ const getPersonDimensionChartsRankingApi = async (
 const init = item => {
   seachParams.value = item;
   getPersonDimensionChartsListApi();
-  getPersonDimensionChartsRankingApi();
-  getChartsListApi();
-  barDimEchartsRef.value.init(seachParams.value, 1);
+  setTimeout(() => {
+    nextTick(() => {
+      getPersonDimensionChartsRankingApi();
+      getChartsListApi();
+      barDimEchartsRef.value.init(seachParams.value, 1);
+    });
+  }, 500);
 };
 // 维度表格
 const personListRef = ref();
@@ -117,7 +127,7 @@ const fullBig = (item: any) => {
   <div class="w-[100%]">
     <div class="w-[100%]">
       <seachData @handClick="init" />
-      <div v-if="dataList.dimName.length > 0">
+      <div v-if="showLength > 0">
         <div class="flex mr-2">
           <radar ref="radarRef" />
         </div>

+ 7 - 3
src/views/draw/children/department/departmentRank.vue

@@ -6,10 +6,10 @@ import rankTableDraw from "@/components/rankTable/index.vue";
 import seachData from "./componements/seach.vue";
 import { getChartsList } from "@/api/draw";
 
-import { ref } from "vue";
+import { ref, nextTick } from "vue";
 const rankTableRef = ref();
 const seachParams = ref();
-const lengthData = ref();
+const lengthData = ref(0);
 const getPersonDimensionChartsListApi = async () => {
   const { code, data } = await getChartsList({
     ...seachParams.value,
@@ -19,7 +19,11 @@ const getPersonDimensionChartsListApi = async () => {
   if (code == 200) {
     if (data.length > 0) {
       lengthData.value = data.length;
-      rankTableRef.value.init(data, "科室", "姓名");
+      setTimeout(() => {
+        nextTick(() => {
+          rankTableRef.value.init(data, "科室", "姓名");
+        });
+      }, 500);
     }
   }
 };

+ 6 - 2
src/views/draw/children/head/headRank.vue

@@ -6,7 +6,7 @@ import rankTableDraw from "@/components/rankTable/draw.vue";
 import seachData from "./componements/seach.vue";
 import { getChartsList } from "@/api/draw";
 
-import { ref } from "vue";
+import { ref, nextTick } from "vue";
 const rankTableRef = ref();
 const seachParams = ref();
 const lengthData = ref();
@@ -19,7 +19,11 @@ const getPersonDimensionChartsListApi = async () => {
   if (code == 200) {
     if (data.length > 0) {
       lengthData.value = data.length;
-      rankTableRef.value.init(data, "科室", "姓名");
+      setTimeout(() => {
+        nextTick(() => {
+          rankTableRef.value.init(data, "科室", "姓名");
+        });
+      }, 500);
     }
   }
 };

+ 6 - 2
src/views/draw/children/health/healthRank.vue

@@ -6,7 +6,7 @@ import rankTableDraw from "@/components/rankTable/draw.vue";
 import seachData from "./componements/seach.vue";
 import { getPersonDimensionChartsList, getChartsList } from "@/api/draw";
 
-import { ref } from "vue";
+import { ref, nextTick } from "vue";
 const rankTableRef = ref();
 const seachParams = ref();
 const lengthData = ref();
@@ -19,7 +19,11 @@ const getPersonDimensionChartsListApi = async () => {
   if (code == 200) {
     if (data.length > 0) {
       lengthData.value = data.length;
-      rankTableRef.value.init(data, "科室", "姓名");
+      setTimeout(() => {
+        nextTick(() => {
+          rankTableRef.value.init(data, "科室", "姓名");
+        });
+      }, 500);
     }
   }
 };

+ 5 - 1
src/views/draw/children/worker/workerRank.vue

@@ -18,7 +18,11 @@ const getPersonDimensionChartsListApi = async () => {
   if (code == 200) {
     if (data.length > 0) {
       lengthData.value = data.length;
-      rankTableRef.value.init(data, "科室", "姓名");
+      setTimeout(() => {
+        nextTick(() => {
+          rankTableRef.value.init(data, "科室", "姓名");
+        });
+      }, 500);
     }
   }
 

+ 4 - 4
src/views/evaluate/children/change/components/editMould.vue

@@ -183,7 +183,7 @@ defineExpose({
       :before-close="handleClose"
     >
       <template #header>
-        <h4>指标详情</h4>
+        <h4>编辑考核维度</h4>
       </template>
       <template #default>
         <div>
@@ -242,16 +242,16 @@ defineExpose({
                     <el-text type="info">目标值</el-text>
                     <el-switch v-model="showTargetValueValue" class="ml-2" />
                   </div>
-                  <div class="ml-3">
+                  <!-- <div class="ml-3">
                     <el-text type="info">完成值</el-text>
                     <el-switch v-model="showFinalValueValue" class="ml-2" />
-                  </div>
+                  </div> -->
                   <div class="ml-3">
                     <el-text type="info">挑战值</el-text>
                     <el-switch v-model="showChallengeValueValue" class="ml-2" />
                   </div>
                   <div class="ml-3">
-                    <el-text type="info">门值</el-text>
+                    <el-text type="info">门值</el-text>
                     <el-switch v-model="showStartValueValue" class="ml-2" />
                   </div>
                 </div>

+ 5 - 5
src/views/evaluate/children/change/components/jishuanqi.vue

@@ -115,7 +115,7 @@
               </div>
               <div class="flex justify-between h-16 mt-1">
                 <div>
-                  <div class="flex justify-between">
+                  <div class="flex justify-between h-8">
                     <div
                       class="h-full w-[50px] bg-white mx-1 flex justify-center items-center rounded-lg cursor-pointer"
                       @click="countNumber('7')"
@@ -123,7 +123,7 @@
                       7
                     </div>
                     <div
-                      class="h-full ml-1 w-[50px] bg-white mx-1 flex justify-center items-center rounded-lg cursor-pointer"
+                      class="h-full ml-2 w-[50px] bg-white mx-1 flex justify-center items-center rounded-lg cursor-pointer"
                       @click="countNumber('8')"
                     >
                       8
@@ -141,7 +141,7 @@
                       *
                     </div>
                   </div>
-                  <div class="flex mt-1 justify-between">
+                  <div class="flex mt-1 justify-between h-8">
                     <div
                       class="h-full w-[50px] bg-white mx-1 flex justify-center items-center rounded-lg cursor-pointer"
                       @click="countNumber('0')"
@@ -158,13 +158,13 @@
                       class="h-full ml-2 w-[50px] bg-white mx-1 flex justify-between items-center rounded-lg cursor-pointer"
                     >
                       <div
-                        class="w-1/2 h-full text-center border-r text-gray-100"
+                        class="w-1/2 h-full text-center border-r text-gray-100 flex justify-center items-center"
                         @click="countNumber('(')"
                       >
                         <span class="text-black"> (</span>
                       </div>
                       <div
-                        class="w-1/2 h-full text-center"
+                        class="w-1/2 h-full text-center flex justify-center items-center"
                         @click="countNumber(')')"
                       >
                         )

+ 4 - 2
src/views/evaluate/children/change/components/newAdd.vue

@@ -445,6 +445,7 @@ const editClosedEvent = ({ row, column }) => {
           <div
             :class="{ 'step-success': !titleShow, 'step-error': titleShow }"
             class="w-[100px] flex justify-center items-center"
+            @click="titleShow = false"
           >
             <one v-if="titleShow" />
             <two2 v-else />基础信息
@@ -452,6 +453,7 @@ const editClosedEvent = ({ row, column }) => {
           <div
             :class="{ 'step-success': titleShow, 'step-error': !titleShow }"
             class="w-[100px] flex justify-center items-center"
+            @click="titleShow = true"
           >
             <two v-if="titleShow" />
             <one1 v-else />考核指标
@@ -594,12 +596,12 @@ const editClosedEvent = ({ row, column }) => {
                 title="目标值"
                 :edit-render="{ name: 'input' }"
               />
-              <vxe-column
+              <!-- <vxe-column
                 v-if="item.showFinalValue"
                 field="finalValue"
                 title="完成值"
                 :edit-render="{ name: 'input' }"
-              />
+              /> -->
               <vxe-column
                 v-if="item.showChallengeValue"
                 field="challengeValue"

+ 21 - 4
src/views/evaluate/children/change/components/settingIndexDrawer.vue

@@ -130,9 +130,11 @@ const countComputed = async () => {
   try {
     if (params.formulaType == 0) {
       const formula = JSON.stringify(params.formula);
+      const aa = JSON.stringify(formula);
+      console.log("formula", aa);
       const { code, msg } = await conditionVerify({
         formulaType: params.formulaType,
-        formula
+        formula: aa
       });
       if (code == 200) {
         const keywords = [
@@ -455,6 +457,7 @@ const manyConditions = () => {
   // outerConditionValue
   dialogFormVisibleFormula.value = true;
   formulaForm.value = [];
+  console.log("1addmanyChange", addmanyChange);
   formulaForm.value.push({
     name: addmanyChange.outerConditionValue,
     value: null
@@ -488,6 +491,11 @@ const countNoConditionFormula3 = (item, index, indexList) => {
     index
   ].scoreRuleMoreInnerVO[0].scoreRules[indexList].endValue = item;
 };
+const countNoConditionFormula4 = (item, index, indexList) => {
+  addmanyChange.innerConditionExpression[
+    index
+  ].scoreRuleMoreInnerVO[0].scoreRules[indexList].score = item;
+};
 </script>
 
 <template>
@@ -506,7 +514,7 @@ const countNoConditionFormula3 = (item, index, indexList) => {
           <el-form label-position="top" label-width="auto" :model="params">
             <el-form-item label="完成值录入人" label-position="top">
               <el-select v-model="params.valueInput" placeholder="请选择">
-                <el-option label="考核人" :value="0" />
+                <el-option label="考核人" :value="0" />
                 <el-option label="上级" :value="1" />
                 <el-option label="指定人员" :value="2" />
                 <el-option label="考核管理员" :value="3" />
@@ -877,11 +885,20 @@ const countNoConditionFormula3 = (item, index, indexList) => {
                               >
                                 <div>得分</div>
                                 <div>=</div>
-                                <el-input
-                                  v-model="itemList.score"
+                                <jishuanqi
+                                  ref="jishuanqiRef"
+                                  :index="index"
+                                  :indexList="indexList"
+                                  :outerConditionValue="itemList.score"
                                   class="ml-2"
                                   style="width: 80px"
+                                  @handClick="countNoConditionFormula4"
                                 />
+                                <!-- <el-input
+                                  v-model="itemList.score"
+                                  class="ml-2"
+                                  style="width: 80px"
+                                /> -->
                               </div>
                               <el-text
                                 type="danger"

+ 1 - 0
src/views/evaluate/children/change/manage.vue

@@ -50,6 +50,7 @@ const manageObjectItme = ref({});
 const setEdit = (row: any) => {
   // router.push({ path: "/evaluate/children/change/mould/manageObject" });\
   manageObjectShow.value = true;
+  console.log("rowrow", row);
   Object.assign(manageObjectItme.value, row);
 };
 // 删除

+ 23 - 15
src/views/evaluate/children/change/manage/addExam.vue

@@ -50,7 +50,10 @@ const formRightRules = reactive({
   left: [{ required: true, message: "请选择考核指标", trigger: "blur" }],
   right: [{ required: true, message: "请选择考核模板", trigger: "blur" }]
 });
+const formRef = ref();
 const handleClose = () => {
+  formRef.value.clearValidate(); // 清除验证错误
+  formRef.value.resetFields(); // 重置表单字段
   dialogVisibleAdd.value = !dialogVisibleAdd.value;
   ElMessage({
     message: "已关闭"
@@ -63,21 +66,25 @@ const handleClose = () => {
 };
 // 添加部门保存
 const saveDepartment = async () => {
-  form.cycleValue = dayjs(form.cycleValue).format(format.value);
-  //
-  console.log("form", dayjs(form.cycleValue).format(format.value));
-  console.log(form, "获取的数据");
-  const { code, msg } = await postAddAssessment(form);
-  if (code === 200) {
-    ElMessage({
-      message: "添加成功",
-      type: "success"
-    });
-    $emit("addHandClick");
-    dialogVisibleAdd.value = false;
-  } else {
-    ElMessage.error(msg);
-  }
+  formRef.value.validate(async valid => {
+    if (valid) {
+      form.cycleValue = dayjs(form.cycleValue).format(format.value);
+      //
+      console.log("form", dayjs(form.cycleValue).format(format.value));
+      console.log(form, "获取的数据");
+      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();
@@ -276,6 +283,7 @@ defineExpose({
   <div>
     <el-dialog v-model="dialogVisibleAdd" :title="titleHeader" width="500">
       <el-form
+        ref="formRef"
         :model="form"
         label-width="auto"
         style="max-width: 600px"

+ 21 - 2
src/views/evaluate/children/change/mould/manageObject.vue

@@ -64,11 +64,26 @@ const initParams = reactive({
   total1: 0,
   list: [],
   Indexlist: [],
-  tmpList: []
+  tmpList: [],
+  assessmentType: ""
 });
 onMounted(() => {
+  // messageData.value.assessmentType
   console.log("dsafa", messageData.value);
   Object.assign(messageData.value, $props.message);
+  switch (messageData.value.assessmentType) {
+    case 0:
+      initParams.assessmentType = "员工";
+      break;
+    case 1:
+      initParams.assessmentType = "部门";
+      break;
+    case 2:
+      initParams.assessmentType = "医疗组";
+      break;
+    case 3:
+      initParams.assessmentType = "员工";
+  }
   initParams.params.assessmentId = $props.message.id;
   initParams.objParams.assessmentId = $props.message.id;
   initParams.indexParams.assessmentId = $props.message.id;
@@ -332,7 +347,11 @@ const editClosedEvent = ({ row, column }) => {
           @selection-change="changeSelection"
         >
           <el-table-column type="selection" width="55" />
-          <el-table-column prop="realName" label="人员" width="100" />
+          <el-table-column
+            prop="assessmentObjectName"
+            :label="initParams.assessmentType"
+            width="100"
+          />
           <el-table-column prop="userName" label="工号" width="180" />
           <el-table-column prop="deptName" label="科室" width="180" />
           <el-table-column

+ 1 - 1
src/views/password/index.vue

@@ -97,7 +97,7 @@ const rules = {
       :model="formLabelAlign"
       style="max-width: 400px"
     >
-      <el-form-item label="账">
+      <el-form-item label="账">
         <el-input v-model="formLabelAlign.name" disabled />
       </el-form-item>
       <el-form-item label="旧密码" prop="oldPwd">