Browse Source

小优化

xiaochan 8 months ago
parent
commit
a68b4f7194

+ 2 - 4
src/components/zhu-yuan-yi-sheng/emr/emr-template/comp/PatientEmrData.vue

@@ -151,10 +151,8 @@ const contextmenuItemV2 = (e, data) => {
             },
             showConfirm: false,
             params: {
-              templateData: [
-                ...root.store.emrTemplate.value.emrTree,
-                ...root.store.emrTemplate.value.deptTree,
-              ],
+              templateData: root.store.emrTemplate.value.emrTree,
+              deptTree: root.store.emrTemplate.value.deptTree,
             },
           }).then(res => {
             // @ts-ignore

+ 30 - 3
src/views/archive/ArchiveRun.vue

@@ -6,6 +6,7 @@ const data = ref([]);
 
 const formData = reactive({
   passTaskName: [],
+  executeTasks: [],
   forceStart: false,
 });
 
@@ -13,20 +14,46 @@ onMounted(async () => {
   data.value = await archiveApi.getTaskNameList();
 });
 
+const passTask = computed(() => {
+  if (formData.executeTasks.length > 0) {
+    return data.value.filter(item => !formData.executeTasks.includes(item));
+  }
+  if (formData.passTaskName.length > 0) {
+    return formData.passTaskName;
+  }
+  return [];
+});
+
 defineExpose({
   confirm: () => {
-    if (formData.passTaskName.length === data.value.length) {
+    if (passTask.value.length === data.value.length) {
       BizException(ExceptionEnum.MESSAGE_ERROR, "不能全部跳过");
     }
-    return formData;
+
+    return {
+      forceStart: formData.forceStart,
+      passTaskName: passTask.value,
+    };
   },
 });
 </script>
 
 <template>
   <el-form label-position="top">
+    <el-alert title="执行任务和跳过任务都不选择,则全部执行" />
+    <el-form-item label="执行任务">
+      <el-checkbox-group
+        v-model="formData.executeTasks"
+        @change="formData.passTaskName = []"
+      >
+        <el-checkbox v-for="item in data" :value="item" :label="item" />
+      </el-checkbox-group>
+    </el-form-item>
     <el-form-item label="跳过任务">
-      <el-checkbox-group v-model="formData.passTaskName">
+      <el-checkbox-group
+        v-model="formData.passTaskName"
+        @change="formData.executeTasks = []"
+      >
         <el-checkbox v-for="item in data" :value="item" :label="item" />
       </el-checkbox-group>
     </el-form-item>

+ 48 - 18
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/add-emr-dialog/AddEmrDialog.vue

@@ -1,20 +1,21 @@
-<script setup lang="ts">
+<script setup lang="tsx">
 import XEUtils from "xe-utils";
 import CyTreeInput from "@/components/cy/tree-input/src/CyTreeInput.vue";
+import { ElTree } from "element-plus";
 
-const props = defineProps<{ templateData: any[] }>();
+const props = defineProps<{ templateData?: any[]; deptTree?: any[] }>();
 
 const defaultProps = {
   children: "children",
   label: "name",
 };
 
-const treeRef = ref();
-
 const emits = defineEmits<{
   (e: "cyDialogConfirm" | "cyDialogCancel", value?: any): void;
 }>();
 
+const tabsValue = ref("hospAll");
+
 const defaultExpandedKeys = computed(() => {
   return XEUtils.map(props.templateData, item => {
     return item._id;
@@ -27,23 +28,52 @@ function contextmenu(event: Event, data) {
   if (data.type === "group-category") return;
   emits("cyDialogConfirm", data);
 }
+
+const TreeShow = defineComponent({
+  props: {
+    data: Object,
+    defaultExpandAll: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  setup(props) {
+    const treeRef = ref(null);
+
+    return () => (
+      <CyTreeInput treeRef={treeRef}>
+        {{
+          default: ({ handelFilter }) => {
+            return (
+              <ElTree
+                ref={treeRef}
+                nodeKey="_id"
+                data={props.data}
+                props={defaultProps}
+                defaultExpandedKeys={defaultExpandedKeys.value}
+                filterNodeMethod={handelFilter}
+                onNodeContextmenu={contextmenu}
+                defaultExpandAll={props.defaultExpandAll}
+              />
+            );
+          },
+        }}
+      </CyTreeInput>
+    );
+  },
+});
 </script>
 
 <template>
-  <div style="max-height: calc(100vh - 200px); overflow: auto">
+  <div style="height: calc(100vh - 200px)" class="layout_container">
     <el-alert type="warning" title="鼠标右键选中" />
-    <cy-tree-input :tree-ref="treeRef" :remote-method="XEUtils.noop">
-      <template #default="{ handelFilter, treeData }">
-        <el-tree
-          ref="treeRef"
-          node-key="_id"
-          :data="props.templateData"
-          :props="defaultProps"
-          :default-expanded-keys="defaultExpandedKeys"
-          :filter-node-method="handelFilter"
-          @nodeContextmenu="contextmenu"
-        />
-      </template>
-    </cy-tree-input>
+    <el-tabs v-model="tabsValue" class="el-tabs__fill layout_main">
+      <el-tab-pane label="全院" name="hospAll">
+        <TreeShow :data="props.templateData" />
+      </el-tab-pane>
+      <el-tab-pane label="科室" name="dept">
+        <TreeShow :data="props.deptTree" defaultExpandAll />
+      </el-tab-pane>
+    </el-tabs>
   </div>
 </template>