Procházet zdrojové kódy

feat: 指标数据

haifeng.zhang před 1 měsícem
rodič
revize
93381af544

+ 50 - 0
src/api/indexData.ts

@@ -0,0 +1,50 @@
+/*
+ * @Author: zhanghaifeng
+ * @Date: 2025-01-06 17:11:11
+ * @LastEditors: zhanghaifeng
+ * @LastEditTime: 2025-01-08 11:04:59
+ * @Description:
+ * @FilePath: /hospital-project/src/api/indexData.ts
+ */
+import { http } from "@/utils/http";
+
+type PageListType = {
+  code: number;
+  msg: string;
+  data: recordsList;
+};
+type recordsList = {
+  totalRow: number;
+  records: Array<any>;
+};
+type PageListItemDelType = {
+  code: number;
+  msg: string;
+  data: boolean;
+};
+
+// 分页查询
+export const getPageList = data => {
+  return http.request<PageListType>("post", "/source/pageSourceData", { data });
+};
+
+// 分页-删除
+export const delListItemApi = params => {
+  return http.request<PageListItemDelType>("get", "/source/deleteSourceData", {
+    params
+  });
+};
+
+// 分页-新增
+export const addListApi = data => {
+  return http.request<PageListItemDelType>("post", "/source/addSourceData", {
+    data
+  });
+};
+
+// 分页-编辑
+export const editListApi = data => {
+  return http.request<PageListItemDelType>("post", "/source/updateSourceData", {
+    data
+  });
+};

+ 9 - 1
src/main.ts

@@ -1,3 +1,11 @@
+/*
+ * @Author: zhanghaifeng
+ * @Date: 2025-01-03 09:09:02
+ * @LastEditors: zhanghaifeng
+ * @LastEditTime: 2025-01-06 14:59:51
+ * @Description:
+ * @FilePath: /hospital-project/src/main.ts
+ */
 import App from "./App.vue";
 import router from "./router";
 import { setupStore } from "@/store";
@@ -12,7 +20,7 @@ import * as ElementPlusIconsVue from "@element-plus/icons-vue";
 import Table from "@pureadmin/table";
 // import PureDescriptions from "@pureadmin/descriptions";
 // 控制台被动监听警告
-import "default-passive-events";
+// import "default-passive-events";
 // 引入重置样式
 import "./style/reset.scss";
 // 导入公共样式

+ 185 - 115
src/views/indexData/components/addDialog.vue

@@ -1,103 +1,170 @@
 <script setup lang="ts">
-import { reactive, ref, onMounted } from "vue";
+import { reactive, ref } from "vue";
 import { ElMessage } from "element-plus";
-import { addQuota, getQuotaSourceList } from "@/api/indexDefine";
-import {
-  getSelectDictListtApi,
-  select,
-  getFromSelectDictListtApi
-} from "@/api/select";
-const emit = defineEmits(["closeDialog"]);
-const visible = ref(false);
+import { postListTree } from "@/api/department";
+import { getQuotaPageList } from "@/api/indexDefine";
+import { addListApi } from "@/api/indexData";
+import { postOrganizationUserPage } from "@/api/userSetting";
+import dayjs from "dayjs";
+
+// 表单状态
 const ruleFormRef = ref(null);
 const form = reactive({
-  name: "",
-  categoryName: "",
-  define: "",
-  caliber: "",
-  source: "",
-  statue: null
+  sourceValue: "",
+  deptCode: "",
+  deptId: "",
+  deptName: "",
+  userId: "",
+  userName: "",
+  numerator: "",
+  denominator: "",
+  dataValue: "",
+  specificTime: ""
+});
+const rules = reactive({
+  sourceValue: [{ required: true, message: "请输入指标名称", trigger: "blur" }],
+  deptCode: [{ required: true, message: "请选择部门名称", trigger: "change" }],
+  specificTime: [{ required: true, message: "请选择日期", trigger: "change" }]
+});
+
+// 弹窗逻辑
+const emit = defineEmits(["updateDialog"]);
+const visible = ref(false);
+const open = () => {
+  // 打开弹框
+  Object.assign(form, {
+    sourceValue: "",
+    deptCode: "",
+    deptId: "",
+    deptName: "",
+    userId: "",
+    userName: "",
+    numerator: "",
+    denominator: "",
+    dataValue: "",
+    specificTime: ""
+  });
+  visible.value = true;
+  getQuotaPageListApi();
+  getIndustryListApi();
+};
+defineExpose({
+  open
 });
-const sourceDataList = ref([]);
-const getQuotaSourceListApi = async () => {
-  const { data, code } = await getQuotaSourceList();
-  console.log("1112132", data);
+const close = () => {
+  visible.value = false;
+  ruleFormRef.value.resetFields();
+};
+
+// 指标名称
+const restaurants = ref([]);
+const querySearch = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants.value.filter(createFilter(queryString))
+    : restaurants.value;
+  cb(results);
+};
+const createFilter = (queryString: string) => {
+  return restaurant => {
+    return restaurant.name.indexOf(queryString) === 0;
+  };
+};
+const getQuotaPageListApi = async () => {
+  const { code, data, msg } = await getQuotaPageList({
+    pageNumber: 1,
+    pageSize: 99999,
+    orderField: "updateTime",
+    param: null,
+    categoryName: null,
+    statue: null,
+    orderType: null
+  });
   if (code == 200) {
-    sourceDataList.value = data;
+    if (data.records && data.records.length) {
+      restaurants.value = data.records;
+    } else {
+      restaurants.value = [];
+    }
+  } else {
+    ElMessage.error(msg);
   }
 };
-onMounted(() => {
-  getQuotaSourceListApi();
-  getSelectDictListtApi();
-  getFromSelectDictListtApi();
-});
-const msgName = ref("");
-const addQuotaApi = async () => {
+
+// 部门名称
+const defaultProps = {
+  children: "childrenRes",
+  label: "deptName",
+  value: "deptCode"
+};
+const deptSelect = ref([]);
+const getIndustryListApi = async () => {
+  const { code, data } = await postListTree();
+  if (code == 200) {
+    deptSelect.value = data || [];
+  }
+};
+const handleNodeDeptClick = data => {
+  form.deptId = data.hospitalCode;
+  form.deptName = data.deptName;
+};
+
+// 员工名称
+const userSelect = ref([]);
+const handleDept = async val => {
+  const { code, data, msg } = await postOrganizationUserPage({
+    pageNumber: 1,
+    pageSize: 99999,
+    organizationCode: val,
+    organizationType: "dept",
+    realName: ""
+  });
+  if (code == 200) {
+    userSelect.value = data.records;
+  } else {
+    ElMessage.error(msg);
+  }
+};
+const handleUser = val => {
+  userSelect.value.forEach(item => {
+    if (item.hospitalCode === val) {
+      form.userName = item.realName;
+    }
+  });
+};
+
+// 保存
+const addSave = async () => {
   ruleFormRef.value.validate(async (valid: boolean) => {
     if (valid) {
-      const { code, msg } = await addQuota(form);
+      if (form.specificTime) {
+        form.specificTime = dayjs(form.specificTime).format("YYYY-MM-DD");
+      }
+      const { code, msg } = await addListApi(form);
       if (code === 200) {
         ElMessage({
           message: "添加成功",
           type: "success"
         });
-        close(ruleFormRef.value);
-      }
-      if (code === 10027) {
-        msgName.value = msg;
+        close();
+        emit("updateDialog");
+      } else {
+        ElMessage({
+          message: msg,
+          type: "error"
+        });
       }
     }
   });
 };
-const rules = reactive({
-  name: [{ required: true, message: "请填写指标名称", trigger: "blur" }],
-  define: [{ required: true, message: "请填写指标分类", trigger: "blur" }],
-  categoryName: [
-    { required: true, message: "请填写指标定义", trigger: "blur" }
-  ],
-  caliber: [{ required: true, message: "请填写指标口径", trigger: "blur" }],
-  source: [{ required: true, message: "来源", trigger: "blur" }],
-  statue: [{ required: true, message: "请填写选择状态", trigger: "blur" }]
-});
-const close = (formEl: FormInstance | undefined) => {
-  visible.value = false;
-  formEl.resetFields();
-  emit("closeDialog");
-};
-const save = () => {
-  addQuotaApi();
-};
-const open = () => {
-  console.log(1111);
-  getQuotaSourceListApi();
-  // 打开弹框
-  Object.assign(form, {
-    name: "",
-    categoryName: "",
-    define: "",
-    caliber: "",
-    source: "",
-    statue: null
-  });
-  msgName.value = "";
-  visible.value = true;
-};
-defineExpose({
-  open
-});
-const handleClose = (done: () => void) => {
-  close(ruleFormRef.value);
-  done();
-};
 </script>
 
 <template>
   <el-dialog
     v-model="visible"
-    title="新建指标"
+    title="添加数据"
     width="480"
     :close-on-click-modal="false"
-    :before-close="handleClose"
+    :before-close="close"
   >
     <div class="m-auto w-full">
       <el-form
@@ -108,76 +175,79 @@ const handleClose = (done: () => void) => {
         :rules="rules"
         style="max-width: 600px"
       >
-        <el-form-item label="指标名称" prop="name">
-          <el-input
-            v-model="form.name"
-            autocomplete="off"
+        <el-form-item label="指标名称" prop="sourceValue">
+          <el-autocomplete
+            v-model="form.sourceValue"
+            value-key="name"
+            :fetch-suggestions="querySearch"
+            :trigger-on-focus="false"
+            clearable
             placeholder="请输入"
+            style="width: 100%"
           />
-          <el-text v-if="msgName" class="absolute top-6 msgName" type="warning">
-            指标名称已存在,请更换一个名称
-          </el-text>
         </el-form-item>
-        <el-form-item label="指标分类">
+        <el-form-item label="部门名称" prop="deptCode">
+          <el-tree-select
+            v-model="form.deptCode"
+            :data="deptSelect"
+            :props="defaultProps"
+            default-expand-all
+            check-strictly
+            :render-after-expand="false"
+            @change="handleDept"
+            @node-click="handleNodeDeptClick"
+          />
+        </el-form-item>
+        <el-form-item label="员工名称">
           <el-select
-            v-model="form.categoryName"
+            v-model="form.userId"
             filterable
             placeholder="请选择"
+            @change="handleUser"
           >
             <el-option
-              v-for="(item, index) in select"
+              v-for="(item, index) in userSelect"
               :key="index"
-              :label="item.dictValue"
-              :value="item.dictValue"
+              :label="item.realName"
+              :value="item.hospitalCode"
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="指标定义" prop="define">
+        <el-form-item label="分子">
           <el-input
-            v-model="form.define"
-            type="textarea"
+            v-model="form.numerator"
             autocomplete="off"
             placeholder="请输入"
           />
         </el-form-item>
-        <el-form-item label="指标口径" prop="caliber">
+        <el-form-item label="分母">
           <el-input
-            v-model="form.caliber"
-            type="textarea"
+            v-model="form.denominator"
             autocomplete="off"
             placeholder="请输入"
           />
         </el-form-item>
-        <el-form-item label="来源">
-          <el-select v-model="form.source" placeholder="请选择" clearable>
-            <el-option
-              v-for="item in sourceDataList"
-              :key="item.id"
-              :label="item.sourceValue"
-              :value="item.sourceValue"
-            />
-          </el-select>
+        <el-form-item label="值">
+          <el-input
+            v-model="form.dataValue"
+            autocomplete="off"
+            placeholder="请输入"
+          />
         </el-form-item>
-        <el-form-item label="状态" prop="statue">
-          <el-select v-model="form.statue" placeholder="请选择">
-            <el-option label="草稿" value="0" />
-            <el-option label="上架" value="1" />
-            <el-option label="下架" value="2" />
-          </el-select>
+        <el-form-item label="数据时间" prop="specificTime">
+          <el-date-picker
+            v-model="form.specificTime"
+            type="date"
+            placeholder="请选择日期"
+          />
         </el-form-item>
       </el-form>
     </div>
     <template #footer>
       <div class="dialog-footer">
-        <el-button @click="close(ruleFormRef)">取消</el-button>
-        <el-button type="primary" @click="save">保存</el-button>
+        <el-button @click="close">取消</el-button>
+        <el-button type="primary" @click="addSave">保存</el-button>
       </div>
     </template>
   </el-dialog>
 </template>
-
-<style lang="scss" scope>
-.msgName {
-  font-size: 10px;
-}
-</style>

+ 190 - 93
src/views/indexData/components/editDrawer.vue

@@ -1,37 +1,53 @@
 <script setup lang="ts">
 import { ref, reactive, onMounted } from "vue";
 import { ElMessage, ElMessageBox } from "element-plus";
-import type { DrawerProps, FormItemProps, FormProps } from "element-plus";
-import { postUpdateDept, getQuotaSourceList } from "@/api/indexDefine";
-import {
-  getSelectDictListtApi,
-  select,
-  getFromSelectDictListtApi
-} from "@/api/select";
-const emit = defineEmits(["closeEditDialog"]);
+import type { DrawerProps, FormProps } from "element-plus";
+import { getQuotaPageList } from "@/api/indexDefine";
+import { editListApi } from "@/api/indexData";
+import { postListTree } from "@/api/department";
+import { postOrganizationUserPage } from "@/api/userSetting";
+import dayjs from "dayjs";
+
+const emit = defineEmits(["updateDialog"]);
 const formRef = ref();
 const drawer = ref(false);
 const disabledShow = ref<any>(true);
-onMounted(() => {
-  getSelectDictListtApi();
-  getFromSelectDictListtApi();
-});
 const direction = ref<DrawerProps["direction"]>("rtl");
+
+// 表单
 const formLabelAlign = reactive({
   id: "",
-  name: "",
-  categoryName: "",
-  define: "",
-  caliber: "",
-  source: "",
-  statue: null
+  sourceValue: "",
+  deptCode: "",
+  deptId: "",
+  deptName: "",
+  userId: "",
+  userName: "",
+  numerator: "",
+  denominator: "",
+  dataValue: "",
+  specificTime: ""
 });
 const rules = reactive<FormProps["rules"]>({
-  name: [{ required: true, message: "请输入指标名称", trigger: "blur" }],
+  sourceValue: [{ required: true, message: "请输入指标名称", trigger: "blur" }],
   define: { required: true, message: "请输入指标定义", trigger: "blur" },
   caliber: { required: true, message: "请输入指标口径", trigger: "blur" },
   statue: { required: true, message: "请选择指标状态", trigger: "blur" }
 });
+
+// 抽屉逻辑
+const open = row => {
+  getQuotaPageListApi();
+  getIndustryListApi();
+  Object.assign(formLabelAlign, row);
+  if (row.deptCode) {
+    handleDept(row.deptCode);
+  }
+  drawer.value = true;
+};
+defineExpose({
+  open
+});
 const handleClose = (done: () => void) => {
   if (disabledShow.value) {
     disabledShow.value = true;
@@ -47,56 +63,117 @@ const handleClose = (done: () => void) => {
     });
   }
 };
-function cancelClick() {
+const cancelClick = () => {
   formRef.value.validate(valid => {
     if (valid) {
       disabledShow.value = true;
     }
   });
-}
+};
+const editClick = () => {
+  disabledShow.value = false;
+};
+
 // 确认
-const postUpdateDeptApi = async () => {
-  const { code, msg } = await postUpdateDept(formLabelAlign);
-  if (code === 200) {
-    ElMessage({
-      message: "修改成功",
-      type: "success"
-    });
-    disabledShow.value = true;
-    drawer.value = false;
-    emit("closeEditDialog");
+const confirmClick = () => {
+  formRef.value.validate(async valid => {
+    if (valid) {
+      if (formLabelAlign.specificTime) {
+        formLabelAlign.specificTime = dayjs(formLabelAlign.specificTime).format(
+          "YYYY-MM-DD"
+        );
+      }
+      const { code, msg } = await editListApi(formLabelAlign);
+      if (code === 200) {
+        ElMessage({
+          message: "修改成功",
+          type: "success"
+        });
+        disabledShow.value = true;
+        drawer.value = false;
+        emit("updateDialog");
+      } else {
+        ElMessage.error(msg);
+      }
+    }
+  });
+};
+
+// 指标名称
+const restaurants = ref([]);
+const querySearch = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants.value.filter(createFilter(queryString))
+    : restaurants.value;
+  cb(results);
+};
+const createFilter = (queryString: string) => {
+  return restaurant => {
+    return restaurant.name.indexOf(queryString) === 0;
+  };
+};
+const getQuotaPageListApi = async () => {
+  const { code, data, msg } = await getQuotaPageList({
+    pageNumber: 1,
+    pageSize: 99999,
+    orderField: "updateTime",
+    param: null,
+    categoryName: null,
+    statue: null,
+    orderType: null
+  });
+  if (code == 200) {
+    if (data.records && data.records.length) {
+      restaurants.value = data.records;
+    } else {
+      restaurants.value = [];
+    }
   } else {
     ElMessage.error(msg);
   }
 };
-function confirmClick() {
-  formRef.value.validate(valid => {
-    if (valid) {
-      postUpdateDeptApi();
-    }
-  });
-}
-const open = row => {
-  Object.assign(formLabelAlign, row);
-  getQuotaSourceListApi();
-  drawer.value = true;
+
+// 部门名称
+const defaultProps = {
+  children: "childrenRes",
+  label: "deptName",
+  value: "deptCode"
 };
-// 编辑
-const editClick = () => {
-  disabledShow.value = false;
+const deptSelect = ref([]);
+const getIndustryListApi = async () => {
+  const { code, data } = await postListTree();
+  if (code == 200) {
+    deptSelect.value = data || [];
+  }
+};
+const handleNodeDeptClick = data => {
+  formLabelAlign.deptId = data.hospitalCode;
+  formLabelAlign.deptName = data.deptName;
 };
-// 来源
-const sourceDataList = ref([]);
-const getQuotaSourceListApi = async () => {
-  const { data, code } = await getQuotaSourceList();
-  console.log("1112132", data);
+
+// 员工名称
+const userSelect = ref([]);
+const handleDept = async val => {
+  const { code, data, msg } = await postOrganizationUserPage({
+    pageNumber: 1,
+    pageSize: 99999,
+    organizationCode: val,
+    organizationType: "dept",
+    realName: ""
+  });
   if (code == 200) {
-    sourceDataList.value = data;
+    userSelect.value = data.records;
+  } else {
+    ElMessage.error(msg);
   }
 };
-defineExpose({
-  open
-});
+const handleUser = val => {
+  userSelect.value.forEach(item => {
+    if (item.hospitalCode === val) {
+      formLabelAlign.userName = item.realName;
+    }
+  });
+};
 </script>
 
 <template>
@@ -107,7 +184,7 @@ defineExpose({
       :before-close="handleClose"
     >
       <template #header>
-        <h4>指标详情</h4>
+        <h4>数据详情</h4>
       </template>
       <template #default>
         <div>
@@ -118,66 +195,86 @@ defineExpose({
             :rules="rules"
             :model="formLabelAlign"
           >
-            <el-form-item label="指标名称" label-position="top" prop="name">
-              <el-input
-                v-model="formLabelAlign.name"
+            <el-form-item
+              label="指标名称"
+              label-position="top"
+              prop="sourceValue"
+            >
+              <el-autocomplete
+                v-model="formLabelAlign.sourceValue"
+                value-key="name"
+                :fetch-suggestions="querySearch"
+                :trigger-on-focus="false"
+                clearable
+                placeholder="请输入"
                 :disabled="disabledShow"
+                style="width: 100%"
               />
             </el-form-item>
-            <el-form-item label="指标分类" label-position="top">
+            <el-form-item label="部门名称" label-position="top" prop="deptCode">
+              <el-tree-select
+                v-model="formLabelAlign.deptCode"
+                :disabled="disabledShow"
+                :data="deptSelect"
+                :props="defaultProps"
+                default-expand-all
+                check-strictly
+                :render-after-expand="false"
+                @change="handleDept"
+                @node-click="handleNodeDeptClick"
+              />
+            </el-form-item>
+            <el-form-item label="员工名称" label-position="top">
               <el-select
-                :key="formLabelAlign.categoryName"
-                v-model="formLabelAlign.categoryName"
+                v-model="formLabelAlign.userId"
                 :disabled="disabledShow"
-                placeholder="请选择状态"
+                filterable
+                placeholder="请选择"
+                @change="handleUser"
               >
                 <el-option
-                  v-for="(item, index) in select"
+                  v-for="(item, index) in userSelect"
                   :key="index"
-                  :label="item.dictValue"
-                  :value="item.dictValue"
+                  :label="item.realName"
+                  :value="item.hospitalCode"
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="指标定义" label-position="top" prop="define">
+            <el-form-item label="分子" label-position="top">
               <el-input
-                v-model="formLabelAlign.define"
+                v-model="formLabelAlign.numerator"
                 :disabled="disabledShow"
-                type="textarea"
+                autocomplete="off"
+                placeholder="请输入"
               />
             </el-form-item>
-            <el-form-item label="指标口径" label-position="top" prop="caliber">
+            <el-form-item label="分母" label-position="top">
               <el-input
-                v-model="formLabelAlign.caliber"
+                v-model="formLabelAlign.denominator"
                 :disabled="disabledShow"
-                type="textarea"
+                autocomplete="off"
+                placeholder="请输入"
               />
             </el-form-item>
-            <el-form-item label="来源" label-position="top">
-              <el-select
-                v-model="formLabelAlign.source"
+            <el-form-item label="" label-position="top">
+              <el-input
+                v-model="formLabelAlign.dataValue"
                 :disabled="disabledShow"
-                clearable
-                placeholder="请选择来源"
-              >
-                <el-option
-                  v-for="item in sourceDataList"
-                  :key="item.id"
-                  :label="item.sourceValue"
-                  :value="item.sourceValue"
-              /></el-select>
+                autocomplete="off"
+                placeholder="请输入"
+              />
             </el-form-item>
-            <el-form-item label="状态" label-position="top" prop="statue">
-              <el-select
-                :key="formLabelAlign.statue"
-                v-model="formLabelAlign.statue"
+            <el-form-item
+              label="数据时间"
+              prop="specificTime"
+              label-position="top"
+            >
+              <el-date-picker
+                v-model="formLabelAlign.specificTime"
                 :disabled="disabledShow"
-                placeholder="请选择状态"
-              >
-                <el-option label="草稿" :value="0" />
-                <el-option label="发布" :value="1" />
-                <el-option label="下架" :value="2" />
-              </el-select>
+                type="date"
+                placeholder="请选择日期"
+              />
             </el-form-item>
           </el-form>
         </div>

+ 65 - 41
src/views/indexData/index.vue

@@ -2,7 +2,7 @@
  * @Author: zhanghaifeng
  * @Date: 2025-01-03 13:57:58
  * @LastEditors: zhanghaifeng
- * @LastEditTime: 2025-01-03 17:13:59
+ * @LastEditTime: 2025-01-08 11:01:19
  * @Description: 指标数据
  * @FilePath: /hospital-project/src/views/indexData/index.vue
 -->
@@ -10,6 +10,7 @@
 defineOptions({
   name: "IndexData"
 });
+import { ElMessage, ElMessageBox } from "element-plus";
 import { ref, reactive, onMounted } from "vue";
 import { Search } from "@element-plus/icons-vue";
 import dayjs from "dayjs";
@@ -17,13 +18,16 @@ import IndexImport from "./components/indexImport.vue";
 import addDialog from "./components/addDialog.vue";
 import editDrawer from "./components/editDrawer.vue";
 import logDrawer from "./components/logDrawer.vue";
+import { getPageList, delListItemApi } from "@/api/indexData";
 
 // 状态
 const params = reactive({
   params: {
     pageNumber: 1,
     pageSize: 10,
-    param: ""
+    sourceValue: "",
+    deptName: "",
+    userName: ""
   },
   records: [],
   total: 0
@@ -31,11 +35,11 @@ const params = reactive({
 
 // 获取列表数据
 const getList = async () => {
-  // const { code, data } = await getQuotaPageList(params.params);
-  // if (code === 200) {
-  //   params.records = data.records;
-  //   params.total = data.totalRow;
-  // }
+  const { code, data } = await getPageList(params.params);
+  if (code === 200) {
+    params.records = data.records;
+    params.total = data.totalRow;
+  }
 };
 const handleSizeChange = val => {
   params.params.pageSize = val;
@@ -67,6 +71,33 @@ const setEdit = row => {
   editdrawerShow.value && editdrawerShow.value.open(row);
 };
 
+// 删除
+const setDelete = row => {
+  ElMessageBox.confirm("确定要继续删除这项数据吗?", "数据删除后将无法恢复", {
+    confirmButtonText: "确认",
+    cancelButtonText: "取消",
+    type: "warning"
+  })
+    .then(async () => {
+      const { code } = await delListItemApi({
+        sourceDateId: row.id
+      });
+      if (code === 200) {
+        ElMessage({
+          type: "success",
+          message: "删除成功"
+        });
+        getList();
+      }
+    })
+    .catch(() => {
+      ElMessage({
+        type: "info",
+        message: "已取消"
+      });
+    });
+};
+
 // 日志
 const logDrawerRef = ref(null);
 const showLogs = row => {
@@ -84,14 +115,23 @@ const showLogs = row => {
           <div class="flex mt-2">
             <div class="flex mr-2">
               <el-input
-                v-model="params.params.param"
-                style="width: 500px"
+                v-model="params.params.sourceValue"
+                style="width: 200px"
                 :prefix-icon="Search"
                 clearable
-                placeholder="搜索指标名称、部门、员工"
+                placeholder="搜索指标名称"
                 @change="getList"
               />
             </div>
+            <!--暂时注释,产品说下一期迭代-->
+            <!-- <div class="flex mr-2">
+              <el-input v-model="params.params.deptName" style="width: 200px" :prefix-icon="Search" clearable
+                placeholder="搜索部门名称" @change="getList" />
+            </div>
+            <div class="flex mr-2">
+              <el-input v-model="params.params.userName" style="width: 200px" :prefix-icon="Search" clearable
+                placeholder="搜索员工名称" @change="getList" />
+            </div> -->
           </div>
           <div class="flex pt-2 mr-6">
             <el-button class="mr-2" @click="bulkImport">批量导入</el-button>
@@ -102,33 +142,21 @@ const showLogs = row => {
         </div>
       </div>
       <div class="mt-8">
-        <el-table :data="params.records" style="z-index: 0; width: 100%">
+        <el-table :data="params.records" style="width: 100%">
           <el-table-column
-            prop="name"
+            prop="sourceValue"
             label="指标名称"
-            show-overflow-tooltip
-            fixed="left"
-          />
-          <el-table-column
-            prop="deptName"
-            label="部门名称"
-            show-overflow-tooltip
+            fixed
+            width="150"
           />
+          <el-table-column prop="deptName" label="部门名称" width="200" />
           <el-table-column prop="userName" label="员工名称" />
-          <el-table-column prop="hospitalCode" label="工号" />
-          <el-table-column prop="molecule" label="分子" />
+          <el-table-column prop="userId" label="工号" width="120" />
+          <el-table-column prop="numerator" label="分子" />
           <el-table-column prop="denominator" label="分母" />
-          <el-table-column prop="value" label="值" />
-          <el-table-column prop="dataTime" label="数据时间">
-            <template #default="{ row }">
-              {{
-                row.dataTime
-                  ? dayjs(row.dataTime).format("YYYY-MM-DD HH:mm:ss")
-                  : "无效日期"
-              }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="updateTime" label="更新时间">
+          <el-table-column prop="dataValue" label="值" />
+          <el-table-column prop="specificTime" label="数据时间" width="120" />
+          <el-table-column prop="updateTime" label="更新时间" width="200">
             <template #default="{ row }">
               {{
                 row.updateTime
@@ -137,8 +165,8 @@ const showLogs = row => {
               }}
             </template>
           </el-table-column>
-          <el-table-column prop="creator" label="创建人" />
-          <el-table-column label="操作">
+          <el-table-column prop="createUser" label="创建人" />
+          <el-table-column label="操作" fixed="right" width="120">
             <template #default="{ row }">
               <el-dropdown trigger="click">
                 <span class="el-dropdown-link navbar-bg-hover select-none pt-1">
@@ -183,9 +211,9 @@ const showLogs = row => {
         </div>
       </div>
       <!-- 编辑/详情 -->
-      <editDrawer ref="editdrawerShow" @closeEditDialog="getList" />
+      <editDrawer ref="editdrawerShow" @updateDialog="getList" />
       <!-- 新建 -->
-      <addDialog ref="dialogShow" @closeDialog="getList" />
+      <addDialog ref="dialogShow" @updateDialog="getList" />
       <!-- 日志 -->
       <logDrawer ref="logDrawerRef" />
     </div>
@@ -208,14 +236,10 @@ const showLogs = row => {
   border: 1px solid red;
 }
 
-::v-deep .el-table .el-table__header th {
+::v-deep(.el-table .el-table__header th) {
   background-color: #f2f3f5;
 }
 
-::v-deep .el-table .el-table__cell {
-  z-index: 99;
-}
-
 .setting {
   font-size: 12px;
 }