Browse Source

日期问题

xiaochan 9 months ago
parent
commit
ea4a8d9d8a

+ 71 - 54
src/components/cy/date-range/CyDateRange.vue

@@ -1,62 +1,78 @@
 <script setup lang="ts">
-import {ElDatePicker} from 'element-plus'
-import {listNotBlank} from "@/utils/blank-utils";
-import {DATEFORMAT, elDateRangeAddTime, formatDateToStr} from "@/utils/moment-utils";
+import { ElDatePicker } from "element-plus";
+import { listNotBlank } from "@/utils/blank-utils";
+import {
+  DATEFORMAT,
+  elDateRangeAddTime,
+  formatDateToStr,
+} from "@/utils/moment-utils";
 import moment from "moment/moment";
 import XEUtils from "xe-utils";
-import {ComputedRef, WritableComputedRef} from "vue";
+import { ComputedRef, WritableComputedRef } from "vue";
 
 const shortcuts = [
   {
-    text: '今天',
-    value: [moment(), moment()]
+    text: "今天",
+    value: [moment(), moment()],
   },
   {
-    text: '最近一周',
-    value: [moment().subtract(7, 'days'), moment()]
+    text: "最近一周",
+    value: [moment().subtract(7, "days"), moment()],
   },
   {
-    text: '最近一个月',
-    value: [moment().startOf('month'), moment().endOf('month')]
+    text: "最近一个月",
+    value: [moment().startOf("month"), moment().endOf("month")],
   },
   {
-    text: '最近三个月',
-    value: [moment().subtract(3, 'months').startOf('month'), moment().endOf('month')]
+    text: "最近三个月",
+    value: [
+      moment().subtract(3, "months").startOf("month"),
+      moment().endOf("month"),
+    ],
   },
   {
-    text: '本月',
-    value: [moment().startOf('month'), moment().endOf('month')]
+    text: "本月",
+    value: [moment().startOf("month"), moment().endOf("month")],
   },
   {
-    text: '上个月',
-    value: [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
+    text: "上个月",
+    value: [
+      moment().subtract(1, "month").startOf("month"),
+      moment().subtract(1, "month").endOf("month"),
+    ],
   },
   {
-    text: '今年',
-    value: [moment().startOf('year'), moment()]
+    text: "今年",
+    value: [moment().startOf("year"), moment()],
   },
   {
-    text: '去年',
-    value: [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]
-  }
+    text: "去年",
+    value: [
+      moment().subtract(1, "year").startOf("year"),
+      moment().subtract(1, "year").endOf("year"),
+    ],
+  },
 ];
 
-const props = withDefaults(defineProps<{
-  start?: string,
-  end?: string,
-  clearable?: boolean,
-  unlinkPanels?: boolean
-  shortcutsIndex?: number | null
-}>(), {
-  start: 'startTime',
-  end: 'endTime',
-  clearable: true,
-  unlinkPanels: true,
-  shortcutsIndex: null
-})
+const props = withDefaults(
+  defineProps<{
+    start?: string;
+    end?: string;
+    clearable?: boolean;
+    unlinkPanels?: boolean;
+    shortcutsIndex?: number | null;
+  }>(),
+  {
+    start: "startTime",
+    end: "endTime",
+    clearable: true,
+    unlinkPanels: true,
+    shortcutsIndex: null,
+  }
+);
 
 const model = defineModel<string[] | object>();
-const isArr = XEUtils.isArray(model)
+const isArr = XEUtils.isArray(model);
 
 const dateRange: WritableComputedRef<string[]> = computed({
   get() {
@@ -64,46 +80,47 @@ const dateRange: WritableComputedRef<string[]> = computed({
       if (listNotBlank(model.value)) {
         // @ts-ignore
         const [start, end] = model.value;
-        return [formatDateToStr(start, DATEFORMAT.DATE), formatDateToStr(end, DATEFORMAT.DATE)]
+        return [
+          formatDateToStr(start, DATEFORMAT.DATE),
+          formatDateToStr(end, DATEFORMAT.DATE),
+        ];
       }
-      return []
+      return [];
     } else {
       // @ts-ignore
-      return [model.value[props.start], model.value[props.end]]
+      return [model.value[props.start], model.value[props.end]];
     }
   },
   set(value: string[]) {
-    const {start, end} = elDateRangeAddTime(value)
+    const { start, end } = elDateRangeAddTime(value);
     if (isArr) {
-      model.value = [start, end]
+      model.value = [start, end];
     } else {
       // @ts-ignore
-      model.value[props.start] = start
+      model.value[props.start] = start;
       // @ts-ignore
-      model.value[props.end] = end
+      model.value[props.end] = end;
     }
   },
-})
+});
 
 onMounted(() => {
   if (props.shortcutsIndex != null) {
     // @ts-ignore
-    dateRange.value = shortcuts[props.shortcutsIndex].value
+    dateRange.value = shortcuts[props.shortcutsIndex].value;
   }
-})
+});
 </script>
 
 <template>
   <el-date-picker
-      v-model="dateRange"
-      :unlinkPanels
-      :shortcuts
-      :clearable
-      type="daterange"
-      style="display: inline-flex;vertical-align: middle;width:220px"
+    v-model="dateRange"
+    :unlinkPanels
+    :shortcuts
+    :clearable
+    type="daterange"
+    style="display: inline-flex; vertical-align: middle; width: 220px"
   />
 </template>
 
-<style lang="scss">
-
-</style>
+<style lang="scss"></style>

+ 37 - 35
src/components/xiao-chan/date-picker/XcDatePicker.vue

@@ -1,58 +1,60 @@
 <template>
-  <el-date-picker style="width: 180px"
-                  type="daterange"
-                  @change="change"
-                  :shortcuts="short"
-                  :value-format="format.valueFormat"
-                  v-model="value"/>
+  <el-date-picker
+    style="width: 180px"
+    type="daterange"
+    @change="change"
+    :shortcuts="short"
+    :value-format="format.valueFormat"
+    v-model="value"
+  />
 </template>
 
-<script setup name='XcDatePicker'>
-import {shortcuts} from "@/data/shortcuts";
-import {currentAndAFewDaysAgo} from "@/utils/date";
-
+<script setup name="XcDatePicker">
+import { shortcuts } from "@/data/shortcuts";
+import { currentAndAFewDaysAgo } from "@/utils/date";
 
 const props = defineProps({
   modelValue: {
     type: [String, Array],
-    default: ''
+    default: "",
   },
   type: {
     type: [String],
-    default: 'daterange'
+    default: "daterange",
   },
   aFewDaysAgo: {
     type: Number,
     default: null,
-  }
-})
-const emits = defineEmits(['update:modelValue'])
-const value = ref('')
+  },
+});
+const emits = defineEmits(["update:modelValue"]);
+const value = ref("");
 const format = ref({
-  valueFormat: 'YYYY-MM-DD'
-})
-const short = ref()
-
-const change = (val) => {
-  emits('update:modelValue', val)
-}
-
-watch(() => props.modelValue, () => {
-  value.value = props.modelValue
-}, {immediate: true})
+  valueFormat: "YYYY-MM-DD",
+});
+const short = ref();
+
+const change = val => {
+  emits("update:modelValue", val);
+};
+
+watch(
+  () => props.modelValue,
+  () => {
+    value.value = props.modelValue;
+  },
+  { immediate: true }
+);
 
 onMounted(async () => {
-  if (props.type === 'daterange') {
-    short.value = shortcuts
+  if (props.type === "daterange") {
+    short.value = shortcuts;
   }
   if (props.aFewDaysAgo != null) {
     let data = await currentAndAFewDaysAgo(props.aFewDaysAgo);
-    change(data)
+    change(data);
   }
-})
-
+});
 </script>
 
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>

+ 92 - 79
src/views/data-modify/OrderQuash.vue

@@ -1,103 +1,115 @@
-<script setup name='OrderQuash'>
-import {getReqOrderQuash, saveDataApi, selectReqListByPat} from "@/api/zhu-yuan-yi-sheng/qrder-quash";
-import {getDateRangeFormatDate} from "@/utils/date";
-import {getServerDateApi} from "@/api/public-api";
+<script setup name="OrderQuash">
+import {
+  getReqOrderQuash,
+  saveDataApi,
+  selectReqListByPat,
+} from "@/api/zhu-yuan-yi-sheng/qrder-quash";
+import { getDateRangeFormatDate } from "@/utils/date";
+import { getServerDateApi } from "@/api/public-api";
 import XcElOption from "@/components/xiao-chan/xc-el-option/XcElOption.vue";
-import {stateList} from "@/data/order-quash-data";
+import { stateList } from "@/data/order-quash-data";
 import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
-import XEUtils from 'xe-utils'
-import {BizException, ExceptionEnum} from "@/utils/BizException";
-import {needRule} from "@/utils/public";
+import XEUtils from "xe-utils";
+import { BizException, ExceptionEnum } from "@/utils/BizException";
+import { needRule } from "@/utils/public";
 
-const dateRange = ref([])
-const stateRaf = ref(1)
-const myReq = ref(!needRule(38))
+const dateRange = ref([]);
+const stateRaf = ref(1);
+const myReq = ref(!needRule(38));
 
-const returnData = ref([])
+const returnData = ref([]);
 
 const queryData = () => {
-  let {startTime, endTime} = getDateRangeFormatDate(dateRange.value)
-  getReqOrderQuash(startTime, endTime, stateRaf.value, myReq.value).then((res) => {
-    returnData.value = res
-  })
-}
+  let { startTime, endTime } = getDateRangeFormatDate(dateRange.value);
+  getReqOrderQuash(startTime, endTime, stateRaf.value, myReq.value).then(
+    res => {
+      returnData.value = res;
+    }
+  );
+};
 
-const patReqData = ref([])
-const currentPat = ref({})
-const rowClick = (row) => {
-  let {patNo, times, state} = row
-  currentPat.value = row
-  selectReqListByPat(patNo, times, state).then((res) => {
-    patReqData.value = res
-  })
-}
+const patReqData = ref([]);
+const currentPat = ref({});
+const rowClick = row => {
+  let { patNo, times, state } = row;
+  currentPat.value = row;
+  selectReqListByPat(patNo, times, state).then(res => {
+    patReqData.value = res;
+  });
+};
 
 const saveData = () => {
-
   if (XEUtils.isEmpty(patReqData.value)) {
     BizException(ExceptionEnum.MESSAGE_ERROR, "请先选择数据。");
   }
 
   XEUtils.arrayEach(patReqData.value, (item, key) => {
     if (item.state === 1) {
-      BizException(ExceptionEnum.MESSAGE_ERROR, `第${(key + 1)}个,未处理。`);
+      BizException(ExceptionEnum.MESSAGE_ERROR, `第${key + 1}个,未处理。`);
     }
-  })
-  saveDataApi(patReqData.value).then((res) => {
-    queryData()
-    patReqData.value = []
-  })
-}
+  });
+  saveDataApi(patReqData.value).then(res => {
+    queryData();
+    patReqData.value = [];
+  });
+};
 
 onMounted(async () => {
-  let now = await getServerDateApi()
-  dateRange.value = [now, now]
-  queryData()
-})
-
+  let now = await getServerDateApi();
+  dateRange.value = [now, now];
+  queryData();
+});
 </script>
 
 <template>
   <div class="layout_display_flex">
     <div class="m-r_8px">
-      <xc-table :local-data="returnData"
-                small
-                @row-click="rowClick"
-                layout="total,  prev, pager, next">
-        <el-table-column prop="patNo" label="住院号"/>
-        <el-table-column prop="name" label="姓名"/>
-        <el-table-column prop="count" label="数量"/>
-        <el-table-column prop="wardName" label="病区"/>
+      <xc-table
+        :local-data="returnData"
+        small
+        @row-click="rowClick"
+        layout="total,  prev, pager, next"
+      >
+        <el-table-column prop="patNo" label="住院号" />
+        <el-table-column prop="name" label="姓名" />
+        <el-table-column prop="count" label="数量" />
+        <el-table-column prop="wardName" label="病区" />
       </xc-table>
     </div>
     <div class="layout_display_flex_y">
       <div class="m-b_8px">
-        <el-date-picker v-model="dateRange"
-                        type="daterange"
-                        style="width: 220px"/>
-        <el-divider direction="vertical"/>
-        <el-select v-model="stateRaf"
-                   style="width: 120px">
-          <xc-el-option :data="stateList"/>
+        <el-date-picker
+          v-model="dateRange"
+          type="daterange"
+          style="width: 220px"
+        />
+        <el-divider direction="vertical" />
+        <el-select v-model="stateRaf" style="width: 120px">
+          <xc-el-option :data="stateList" />
         </el-select>
-        <el-divider direction="vertical"/>
-        <el-checkbox v-model="myReq" label="自己"/>
-        <el-divider direction="vertical"/>
+        <el-divider direction="vertical" />
+        <el-checkbox v-model="myReq" label="自己" />
+        <el-divider direction="vertical" />
         <el-button @click="queryData" type="primary">查询</el-button>
-        <el-button @click="saveData" type="success"
-                   v-if="needRule(38)"
-                   :disabled="currentPat.state !== 1">
+        <el-button
+          @click="saveData"
+          type="success"
+          v-if="needRule(38)"
+          :disabled="currentPat.state !== 1"
+        >
           保存
         </el-button>
       </div>
       <div class="layout_flex_1-y">
-        <xc-table :local-data="patReqData"
-                  :open-paging="false"
-                  :default-expand-all="false">
-          <el-table-column type="index"/>
+        <xc-table
+          :local-data="patReqData"
+          :open-paging="false"
+          :default-expand-all="false"
+        >
+          <el-table-column type="index" />
           <el-table-column type="expand">
-            <template #default="{row}">
-              <div style="width: 100%; height: max-content;padding: 10px">
+            <template #default="{ row }">
+              <div style="width: 100%; height: max-content; padding: 10px">
                 <el-form inline>
                   <el-form-item label="审核人:">
                     {{ row.approverName }}
@@ -109,14 +121,14 @@ onMounted(async () => {
               </div>
             </template>
           </el-table-column>
-          <el-table-column label="医嘱名" prop="actOrderNo" width="70"/>
-          <el-table-column label="医嘱名" prop="orderName"/>
-          <el-table-column label="频率" prop="frequCode" width="50"/>
-          <el-table-column label="撤销备注" prop="reqRemark"/>
-          <el-table-column label="医生" prop="enterOperName"/>
-          <el-table-column label="申请时间" prop="reqDatetime"/>
-          <el-table-column label="医嘱开始" prop="startTime"/>
-          <el-table-column label="医嘱结束" prop="endTime"/>
+          <el-table-column label="医嘱名" prop="actOrderNo" width="70" />
+          <el-table-column label="医嘱名" prop="orderName" />
+          <el-table-column label="频率" prop="frequCode" width="50" />
+          <el-table-column label="撤销备注" prop="reqRemark" />
+          <el-table-column label="医生" prop="enterOperName" />
+          <el-table-column label="申请时间" prop="reqDatetime" />
+          <el-table-column label="医嘱开始" prop="startTime" />
+          <el-table-column label="医嘱结束" prop="endTime" />
           <el-table-column label="操作" width="160">
             <template #default="scope">
               <el-radio-group v-model="scope.row.state" size="small">
@@ -128,8 +140,11 @@ onMounted(async () => {
           </el-table-column>
           <el-table-column label="审核备注" prop="approverRemark">
             <template #default="scope">
-              <el-input maxlength="20" :disabled="scope.row.state !== 3"
-                        v-model="scope.row.approverRemark"/>
+              <el-input
+                maxlength="20"
+                :disabled="scope.row.state !== 3"
+                v-model="scope.row.approverRemark"
+              />
             </template>
           </el-table-column>
         </xc-table>
@@ -138,6 +153,4 @@ onMounted(async () => {
   </div>
 </template>
 
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>

+ 111 - 95
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/EmrRelieveRule.vue

@@ -1,40 +1,47 @@
 <template>
   <div class="layout_container">
     <header>
-      <xc-date-picker v-model="queryParam.dateRange"/>
+      <cy-date-range v-model="queryParam" />
+      <!--      <xc-date-picker v-model="queryParam.dateRange" />-->
       <el-select v-model="queryParam.flag" style="width: 120px">
-        <el-option label="全部" :value="-1"/>
-        <el-option label="待审核" :value="0"/>
-        <el-option label="通过" :value="1"/>
-        <el-option label="不通过" :value="2"/>
+        <el-option label="全部" :value="-1" />
+        <el-option label="待审核" :value="0" />
+        <el-option label="通过" :value="1" />
+        <el-option label="不通过" :value="2" />
       </el-select>
-      <el-button icon="Search" @click="queryData()" type="primary">查询</el-button>
-      <el-button icon="Download" @click="download" type="primary">导出</el-button>
+      <el-button icon="Search" @click="queryData()" type="primary"
+        >查询
+      </el-button>
+      <el-button icon="Download" @click="download" type="primary"
+        >导出
+      </el-button>
     </header>
     <div class="layout_main layout_el-table">
-      <xc-table :data="queryParam"
-                @current-change="currentPage"
-                open-paging>
-        <el-table-column label="住院号" prop="patNo" width="90"/>
-        <el-table-column label="次数" prop="times" width="90"/>
-        <el-table-column label="申请人" prop="applicantName" width="90"/>
-        <el-table-column label="申请时间" prop="applicationTime" width="130"/>
-        <el-table-column label="申请权限" prop="unlockJson" width="130"/>
-        <el-table-column label="申请编辑" prop="effectiveTime" width="130"/>
-        <el-table-column label="申请备注" prop="requestRemarks" width="450"
-                         show-overflow-tooltip
-                         show-tooltip-when-overflow/>
+      <xc-table :data="queryParam" @current-change="currentPage" open-paging>
+        <el-table-column label="住院号" prop="patNo" width="90" />
+        <el-table-column label="次数" prop="times" width="90" />
+        <el-table-column label="申请人" prop="applicantName" width="90" />
+        <el-table-column label="申请时间" prop="applicationTime" width="130" />
+        <el-table-column label="申请权限" prop="unlockJson" width="130" />
+        <el-table-column label="申请编辑" prop="effectiveTime" width="130" />
+        <el-table-column
+          label="申请备注"
+          prop="requestRemarks"
+          width="450"
+          show-overflow-tooltip
+          show-tooltip-when-overflow
+        />
         <el-table-column label="状态" prop="state" width="100">
-          <template #default="{row}">
-            <component :is="stateHtml(row.state)"/>
+          <template #default="{ row }">
+            <component :is="stateHtml(row.state)" />
           </template>
         </el-table-column>
-        <el-table-column label="审核人" prop="approveName" width="90"/>
-        <el-table-column label="审核时间" prop="reviewTime" width="130"/>
-        <el-table-column label="审核备注" prop="reviewNotes" width="130"/>
+        <el-table-column label="审核人" prop="approveName" width="90" />
+        <el-table-column label="审核时间" prop="reviewTime" width="130" />
+        <el-table-column label="审核备注" prop="reviewNotes" width="130" />
 
         <el-table-column label="操作" width="120" fixed="right">
-          <template #default="{row}">
+          <template #default="{ row }">
             <el-button @click="approved(row)">通过</el-button>
             <el-button @click="refuseToPass(row)">拒绝</el-button>
           </template>
@@ -42,111 +49,120 @@
       </xc-table>
     </div>
   </div>
-
-
 </template>
 
 <script setup>
-import PageLayer from "@/layout/PageLayer.vue";
-import XcDatePicker from "@/components/xiao-chan/date-picker/XcDatePicker.vue";
 import {
   getApplicationData,
-  reviewMedicalRecordsToUnlock
+  reviewMedicalRecordsToUnlock,
 } from "@/api/zhu-yuan-yi-sheng/emr-control-rule";
 import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
-import {getWindowSize} from "@/utils/window-size";
-import {ElMessageBox, ElTag} from "element-plus";
-import {clone} from "@/utils/clone";
-import {downloadExcel} from "@/utils/excel";
+import { ElMessageBox, ElTag } from "element-plus";
+import { clone } from "@/utils/clone";
+import { downloadExcel } from "@/utils/excel";
+import CyDateRange from "@/components/cy/date-range/CyDateRange.vue";
 
 const queryParam = ref({
   dateRange: [],
   flag: 0,
-
+  startTime: "",
+  endTime: "",
   currentPage: 1,
   pageSize: 30,
   total: 0,
-  data: []
-})
+  data: [],
+});
 
 const queryData = (total = 0) => {
-  queryParam.value.total = total
+  queryParam.value.total = total;
+  queryParam.value.dateRange = [
+    queryParam.value.startTime,
+    queryParam.value.endTime,
+  ];
   getApplicationData(queryParam.value).then(res => {
-    queryParam.value.data = res.records
-    queryParam.value.total = res.total
-  })
-}
+    queryParam.value.data = res.records;
+    queryParam.value.total = res.total;
+  });
+};
 
-const currentPage = (val) => {
-  queryParam.value.currentPage = val
-  queryData(queryParam.value.total)
-}
+const currentPage = val => {
+  queryParam.value.currentPage = val;
+  queryData(queryParam.value.total);
+};
 
 const download = () => {
   const tempData = {
     param: queryParam.value,
-    url: '/emrControlRule/exportExcelUnlock',
-    fileName: '质控解锁导出',
-  }
+    url: "/emrControlRule/exportExcelUnlock",
+    fileName: "质控解锁导出",
+  };
   setTimeout(() => {
-    downloadExcel(tempData)
-  })
-}
+    downloadExcel(tempData);
+  });
+};
 
-const approved = (row) => {
-  toExamine(row, 1)
-}
+const approved = row => {
+  toExamine(row, 1);
+};
 
-const refuseToPass = (row) => {
-  ElMessageBox.prompt('审核备注', '提示', {
+const refuseToPass = row => {
+  ElMessageBox.prompt("审核备注", "提示", {
     inputPattern: /\S/,
-    inputErrorMessage: '审核备注不能为空',
-  }).then(({value}) => {
-    toExamine(row, 2, value)
-  })
-}
-
-const toExamine = (data, state, reviewNotes = '审核通过') => {
-  let temp = clone(data)
-  temp.state = state
-  temp.reviewNotes = reviewNotes
+    inputErrorMessage: "审核备注不能为空",
+  }).then(({ value }) => {
+    toExamine(row, 2, value);
+  });
+};
+
+const toExamine = (data, state, reviewNotes = "审核通过") => {
+  let temp = clone(data);
+  temp.state = state;
+  temp.reviewNotes = reviewNotes;
   reviewMedicalRecordsToUnlock(temp).then(() => {
-    queryData()
-  })
-}
-
+    queryData();
+  });
+};
 
 onMounted(() => {
-  queryData()
-})
+  queryData();
+});
 
-const stateHtml = (val) => {
+const stateHtml = val => {
   switch (val) {
     case 0:
-      return h(ElTag, {
-            type: 'info'
-          },
-          {default: () => '待审核'})
+      return h(
+        ElTag,
+        {
+          type: "info",
+        },
+        { default: () => "待审核" }
+      );
     case 1:
-      return h(ElTag, {
-            type: 'success'
-          },
-          {default: () => '审核通过'})
+      return h(
+        ElTag,
+        {
+          type: "success",
+        },
+        { default: () => "审核通过" }
+      );
     case 2:
-      return h(ElTag, {
-            type: 'danger'
-          },
-          {default: () => '审核拒绝'})
+      return h(
+        ElTag,
+        {
+          type: "danger",
+        },
+        { default: () => "审核拒绝" }
+      );
     case 3:
-      return h(ElTag, {
-            type: 'warning'
-          },
-          {default: () => '申请替换'})
+      return h(
+        ElTag,
+        {
+          type: "warning",
+        },
+        { default: () => "申请替换" }
+      );
   }
-}
-
+};
 </script>
 
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>

+ 9 - 36
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/EmrMain.vue

@@ -356,6 +356,7 @@ const emrMainWidth = () => {
 const emrEvent = {
   loaded: async _event => {
     emrMitt.emit("clearKindReminder");
+    // 每次加载的时候先关闭再打开
     magicScript(emrStore.store.categoryCode);
     getOutline();
     setEditor();
@@ -432,6 +433,11 @@ const emrEvent = {
     const node = view.model;
     const values = parsingFragmentDataElements(editor, node);
     const editorCode = getBcjlUserInfo(values).code;
+    // 因为签名只有在保存时才有所以,如果是空的就是本人创建的
+    if (stringIsBlank(editorCode)) {
+      editor!.setRevisionMode("off");
+      return;
+    }
     openTheTraceByUser(editorCode);
   },
   beforeCopy: (evt, data) => {
@@ -1516,6 +1522,7 @@ const loadDocument = (param: EmrParam): Promise<void> => {
     load(param)
       .then(res => {
         setValue();
+        editor!.setRevisionMode("off");
         editor!.setDocument(res, true);
         resolve();
       })
@@ -1648,44 +1655,10 @@ const initEdit = () => {
     if (isDev) {
       await sleep(500);
       loadDocument({
-        documentId: "926126765108168704",
-        categoryCode: "shoucibingchengjilu",
+        documentId: "927936636556216320",
+        categoryCode: "wqzjsqb",
         name: "病程记录",
         parent: "38ed7f50a6ba11eda4de571d638b2c14",
-        emrPatientData: {
-          id: 305698,
-          patNo: "0432709",
-          times: 1,
-          emrDocumentId: "926126765108168704",
-          emrCategoryCode: "shoucibingchengjilu",
-          delFlag: 0,
-          emrName: "首次病程记录",
-          name: "病程记录",
-          createId: "02686",
-          createName: "刘子琨",
-          createDate: "2024-11-01 15:37:10",
-          modifyId: "02686",
-          modifyDate: "2024-11-06 11:31:25",
-          emrDataElement: null,
-          emrDataElementStr: "",
-          submit: 0,
-          submitId: null,
-          submitTime: null,
-          documentData: null,
-          fragment: null,
-          parent: "38ed7f50a6ba11eda4de571d638b2c14",
-          referPhysician: null,
-          consultPhysician: null,
-          deptDirector: null,
-          reviewDoctors: null,
-          reviewTime: null,
-          signType: null,
-          signComplete: null,
-          archivePath: null,
-          type: "group-category",
-          courseJumpId: "qIGmwwSoIQ",
-        },
-        courseJumpId: "qIGmwwSoIQ",
       });
     }
   });

+ 13 - 2
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/plugins/ca/EmrCAComp.vue

@@ -16,6 +16,7 @@ import XcElOption from "@/components/xiao-chan/xc-el-option/XcElOption.vue";
 import { useUserStore } from "@/pinia/user-store";
 import { patientInfo } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
 import { stringIsBlank } from "@/utils/blank-utils";
+import sleep from "@/utils/sleep";
 
 const { store } = inject(emrRootContextKey);
 const selectList = ref<SignComp[]>([]);
@@ -254,6 +255,16 @@ const addCompByInternal = (name: string) => {
   change();
 };
 
+onMounted(async () => {
+  await sleep(1000);
+  signTypeValue.value = 1;
+  selectList.value.forEach((item, index) => {
+    item.signType = index + 1;
+    item.idCard = "430922200002078519";
+    item.signName = "肖蟾";
+  });
+});
+
 const addAuthorizedSignatureDataElement = () => {
   const editor = store.getEditor();
 
@@ -287,8 +298,8 @@ defineExpose({
       <el-button @click="addAuthorizedSignatureDataElement()"
         >医生授权签名组件
       </el-button>
-      <el-button @click="addCompByInternal('患者CA签名')">签名组件 </el-button>
-      <el-button @click="addCompByInternal('患者CA意见')">意见组件 </el-button>
+      <el-button @click="addCompByInternal('患者CA签名')">签名组件</el-button>
+      <el-button @click="addCompByInternal('患者CA意见')">意见组件</el-button>
       <el-form label-position="top">
         <el-form-item label="签名方式">
           <el-select