瀏覽代碼

手术室的人必须录入手术编码

DESKTOP-0GD05B0\Administrator 2 年之前
父節點
當前提交
6029f5ecb8
共有 1 個文件被更改,包括 243 次插入277 次删除
  1. 243 277
      src/components/med-tec-mod/YiJiXiangMuLuRu.vue

+ 243 - 277
src/components/med-tec-mod/YiJiXiangMuLuRu.vue

@@ -179,7 +179,7 @@
   </el-container>
 </template>
 
-<script>
+<script setup>
 import {computed, onMounted, ref, watch} from 'vue'
 import {
   getBingQuDuiYingKeShi,
@@ -197,314 +197,280 @@ import {getDatetime} from '@/utils/date'
 import {ElMessage, ElMessageBox} from 'element-plus'
 import {clone} from '@/utils/clone'
 import HuoQuMuBan from './HuoQuMuBan.vue'
+import {stringIsBlank} from "@/utils/blank-utils";
+import {BizException, ExceptionEnum} from "@/utils/BizException";
 
-export default {
-  components: {
-    HuoQuMuBan,
-  },
-  props: {
-    patient: {
-      type: Object,
-    },
+
+const props = defineProps({
+  patient: {
+    type: Object,
   },
-  setup(props, cxt) {
-    const windowSize = store.state.app.windowSize
-    const tableHeight = windowSize.h - 170
-    const deptData = ref([])
-    const wardData = ref([])
+})
 
-    // 手术编码
-    const ssCode = ref('')
 
-    const muBanCurrentPage = ref(1)
-    const muBanPageSize = ref(10)
+const windowSize = store.state.app.windowSize
+const tableHeight = windowSize.h - 170
+const deptData = ref([])
+const wardData = ref([])
 
-    const queryDept = ref('')
-    const queryWard = ref('')
+// 手术编码
+const ssCode = ref('')
 
-    const xiaoKeShiList = ref([])
+const muBanCurrentPage = ref(1)
+const muBanPageSize = ref(10)
 
-    const muBanHandleCurrentChange = (val) => {
-      muBanCurrentPage.value = val
-    }
-    // 获取模板信息
-    const getMuBanXinXiClick = (row) => {
-      getMuBanXinXi(row.name, row.opIdCode).then((res) => {
-        muBanXiangQing.value = res
-      })
-    }
+const queryDept = ref('')
+const queryWard = ref('')
 
-    // 获取模板的详情
-    const muBanXiangQing = ref([])
-
-    // 获取选择的数据
-    const xuanZeXiangMuTable = (param) => {
-      let val = param.val
-      for (let i = 0; i < val.length; i++) {
-        if (chargeCode.value.indexOf(val[i].chargeCodeMx) === -1) {
-          chargeCode.value.push(val[i].chargeCodeMx)
-          val[i].deptCode = store.state.user.info.deptCode
-          feiYongShuJu.value.push(val[i])
-        }
-      }
-    }
-
-    const chargeCode = ref([])
+const xiaoKeShiList = ref([])
 
-    onMounted(() => {
-      // 获取科室
-      getDept().then((res) => {
-        deptData.value = res
-      })
-      getWard().then((res) => {
-        wardData.value = res
-      })
-    })
+const muBanHandleCurrentChange = (val) => {
+  muBanCurrentPage.value = val
+}
+// 获取模板信息
+const getMuBanXinXiClick = (row) => {
+  getMuBanXinXi(row.name, row.opIdCode).then((res) => {
+    muBanXiangQing.value = res
+  })
+}
 
-    const feiYongShuJu = ref([])
-
-    const shangChuanXiangMu = () => {
-      let shangChuanFeiYong = {
-        // 这里又要反回来 就尼玛坑爹 我也不知道为什么
-        dept: queryWard.value,
-        ward: queryDept.value,
-        inpatientNo: props.patient.inpatientNo,
-        admissTimes: props.patient.admissTimes,
-        zySerialNo: props.patient.zySerialNo,
-        ssCode: ssCode.value,
-        referPhysician: props.patient.referPhysician,
-        list: feiYongShuJu.value,
-        orderNo: 3,
-        ledgerSn: props.patient.ledgerSn,
-      }
-
-      if (feiYongShuJu.value.length === 0) {
-        return ElMessage.error('请先选择上传数据。')
-      }
-
-      //在此处上传
-      ElMessageBox.confirm('共上传【' + feiYongShuJu.value.length + '】条', '请认真核对', {
-        cancelButtonText: '取消',
-        confirmButtonText: '确定',
-      })
-          .then(() => {
-            xiangMuFeiYongShangChuan(shangChuanFeiYong).then(() => {
-              feiYongShuJu.value = []
-              chargeCode.value = []
-            })
-          })
-          .catch(() => {
-          })
+// 获取模板的详情
+const muBanXiangQing = ref([])
+
+// 获取选择的数据
+const xuanZeXiangMuTable = (param) => {
+  let val = param.val
+  for (let i = 0; i < val.length; i++) {
+    if (chargeCode.value.indexOf(val[i].chargeCodeMx) === -1) {
+      chargeCode.value.push(val[i].chargeCodeMx)
+      val[i].deptCode = store.state.user.info.deptCode
+      feiYongShuJu.value.push(val[i])
     }
+  }
+}
 
-    const shanChuXiangMuClick = (val) => {
-      feiYongShuJu.value.splice(val, 1)
-      chargeCode.value.splice(val, 1)
-    }
-    // 新增项目或者药品
-    const xinZhengXiangMuDialog = ref(false)
-    // 判断查询药品还是项目
-    const xiangMuHuoYaoPinFlag = ref(0)
-    // 这个是远程查询数据后 保存
-    const xiangMuHuoYaoPinShuJu = ref({
-      currentPage: 1,
-      pageSize: 20,
-      data: [],
-    })
-    // 远程查询的
-    const chargeCodePy = ref('')
-
-    /**
-     * 远程搜索
-     */
-    const rmChargePyCode = () => {
-      if (chargeCodePy.value.length >= 2) {
-        queryDanGeXiangMu(chargeCodePy.value, xiangMuHuoYaoPinFlag.value).then((res) => {
-          xiangMuHuoYaoPinShuJu.value.data = res
-        })
-      }
-    }
-    // 单个费用
-    const danGeFeiYong = ref([])
-
-    const danGeXiangMuBaoCun = (val) => {
-      let key
-      if (xiangMuHuoYaoPinFlag.value === 1) {
-        key = val.chargeCodeMx + val.serial
-      } else {
-        key = val.chargeCodeMx
-      }
-      if (chargeCode.value.indexOf(key) > -1) {
-        return ElMessage.warning({
-          message: '请勿重复录入',
-          showClose: true,
-        })
-      } else {
-        if (typeof val.deptCode === 'undefined') {
-          val.deptCode = store.state.user.info.deptCode
-        }
-        feiYongShuJu.value.push(val)
-        chargeCode.value.push(key)
-        ElMessage.success({
-          message: '添加成功',
-          showClose: true,
-        })
-      }
-    }
+const chargeCode = ref([])
 
-    const xiangMuZongJia = computed(() => {
-      let sum = 0
-      for (let i = 0; i < feiYongShuJu.value.length; i++) {
-        sum += feiYongShuJu.value[i].chargeAmount * feiYongShuJu.value[i].amount
-      }
-      return sum.toFixed(2)
-    })
+onMounted(() => {
+  // 获取科室
+  getDept().then((res) => {
+    deptData.value = res
+  })
+  getWard().then((res) => {
+    wardData.value = res
+  })
+})
 
-    watch(
-        () => props.patient,
-        () => {
-          // 这里刚好是反着的
-          queryWard.value = props.patient.admissDept
-          getBingQuDuiYingKeShiChange()
-          setTimeout(() => {
-            queryDept.value = props.patient.zkWard
-          }, 100)
-        }
-    )
-    // 以下是保存模板
-    const baoCunMuBanDialog = ref(false)
-
-    const cunMuBanPojo = ref({
-      pyCode: '',
-      dcode: '',
-      name: '',
-      paiXu: '',
-      dept: '',
-      deptCode: store.state.user.info.deptCode,
-      list: [],
-    })
+const feiYongShuJu = ref([])
 
-    // 获取到保存模板的拼音码和五笔码
-    const zhuanPinYin = () => {
-      if (cunMuBanPojo.value.name !== '') {
-        getPyCode(cunMuBanPojo.value.name).then((res) => {
-          cunMuBanPojo.value.pyCode = res.pyCode
-          cunMuBanPojo.value.dcode = res.wbCode
-        })
-      }
-    }
+const shangChuanXiangMu = () => {
 
-    const baoCunMuBan = () => {
-      if (feiYongShuJu.value.length === 0) {
-        ElMessage.error({
-          message: '请先选择项目',
-          showClose: true,
-        })
-        return
-      }
-      if (cunMuBanPojo.value.name === '' || cunMuBanPojo.value.pyCode === '' || cunMuBanPojo.value.dcode === '') {
-        ElMessage.error({
-          message: '模板名称,拼音码,五笔码不能为空',
-          showClose: true,
+  if (operationRoom() && stringIsBlank(ssCode)) {
+    BizException(ExceptionEnum.LOGICAL_ERROR, "请填写手术编码。");
+  }
+
+  let shangChuanFeiYong = {
+    // 这里又要反回来 就尼玛坑爹 我也不知道为什么
+    dept: queryWard.value,
+    ward: queryDept.value,
+    inpatientNo: props.patient.inpatientNo,
+    admissTimes: props.patient.admissTimes,
+    zySerialNo: props.patient.zySerialNo,
+    ssCode: ssCode.value,
+    referPhysician: props.patient.referPhysician,
+    list: feiYongShuJu.value,
+    orderNo: 3,
+    ledgerSn: props.patient.ledgerSn,
+  };
+
+  if (feiYongShuJu.value.length === 0) {
+    return ElMessage.error('请先选择上传数据。')
+  }
+
+  //在此处上传
+  ElMessageBox.confirm('共上传【' + feiYongShuJu.value.length + '】条', '请认真核对', {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+  })
+      .then(() => {
+        xiangMuFeiYongShangChuan(shangChuanFeiYong).then(() => {
+          feiYongShuJu.value = []
+          chargeCode.value = []
         })
-        return
-      }
-      cunMuBanPojo.value.list = clone(feiYongShuJu.value)
-      // 开始上传
-      shangChuanMuBan(cunMuBanPojo.value).then(() => {
-        cunMuBanPojo.value = {}
       })
-    }
-
-    // 根据病人的科室来获取
-    const getBingQuDuiYingKeShiChange = () => {
-      getBingQuDuiYingKeShi(queryWard.value).then((res) => {
-        xiaoKeShiList.value = res
-        queryDept.value = ''
+      .catch(() => {
       })
-    }
-    const zhiXingKeShi = ref(store.state.user.info.deptCode)
+}
 
-    const xieGaiZhiXingKeShi = () => {
-      for (let i = 0; i < feiYongShuJu.value.length; i++) {
-        feiYongShuJu.value[i].deptCode = zhiXingKeShi.value
-      }
+const shanChuXiangMuClick = (val) => {
+  feiYongShuJu.value.splice(val, 1)
+  chargeCode.value.splice(val, 1)
+}
+// 新增项目或者药品
+const xinZhengXiangMuDialog = ref(false)
+// 判断查询药品还是项目
+const xiangMuHuoYaoPinFlag = ref(0)
+// 这个是远程查询数据后 保存
+const xiangMuHuoYaoPinShuJu = ref({
+  currentPage: 1,
+  pageSize: 20,
+  data: [],
+})
+// 远程查询的
+const chargeCodePy = ref('')
+
+/**
+ * 远程搜索
+ */
+const rmChargePyCode = () => {
+  if (chargeCodePy.value.length >= 2) {
+    queryDanGeXiangMu(chargeCodePy.value, xiangMuHuoYaoPinFlag.value).then((res) => {
+      xiangMuHuoYaoPinShuJu.value.data = res
+    })
+  }
+}
+// 单个费用
+const danGeFeiYong = ref([])
+
+const danGeXiangMuBaoCun = (val) => {
+  let key
+  if (xiangMuHuoYaoPinFlag.value === 1) {
+    key = val.chargeCodeMx + val.serial
+  } else {
+    key = val.chargeCodeMx
+  }
+  if (chargeCode.value.indexOf(key) > -1) {
+    return ElMessage.warning({
+      message: '请勿重复录入',
+      showClose: true,
+    })
+  } else {
+    if (typeof val.deptCode === 'undefined') {
+      val.deptCode = store.state.user.info.deptCode
     }
+    feiYongShuJu.value.push(val)
+    chargeCode.value.push(key)
+    ElMessage.success({
+      message: '添加成功',
+      showClose: true,
+    })
+  }
+}
 
-    // 新增中的分页 事件
-    const xinZhengSizeChange = (val) => {
-      xiangMuHuoYaoPinShuJu.value.pageSize = val
+const xiangMuZongJia = computed(() => {
+  let sum = 0
+  for (let i = 0; i < feiYongShuJu.value.length; i++) {
+    sum += feiYongShuJu.value[i].chargeAmount * feiYongShuJu.value[i].amount
+  }
+  return sum.toFixed(2)
+})
+
+watch(
+    () => props.patient,
+    () => {
+      // 这里刚好是反着的
+      queryWard.value = props.patient.admissDept
+      getBingQuDuiYingKeShiChange()
+      setTimeout(() => {
+        queryDept.value = props.patient.zkWard
+      }, 100)
     }
+)
+// 以下是保存模板
+const baoCunMuBanDialog = ref(false)
+
+const cunMuBanPojo = ref({
+  pyCode: '',
+  dcode: '',
+  name: '',
+  paiXu: '',
+  dept: '',
+  deptCode: store.state.user.info.deptCode,
+  list: [],
+})
+
+// 获取到保存模板的拼音码和五笔码
+const zhuanPinYin = () => {
+  if (cunMuBanPojo.value.name !== '') {
+    getPyCode(cunMuBanPojo.value.name).then((res) => {
+      cunMuBanPojo.value.pyCode = res.pyCode
+      cunMuBanPojo.value.dcode = res.wbCode
+    })
+  }
+}
 
-    const xinZhengCurrentChange = (val) => {
-      xiangMuHuoYaoPinShuJu.value.currentPage = val
-    }
+const baoCunMuBan = () => {
+  if (feiYongShuJu.value.length === 0) {
+    ElMessage.error({
+      message: '请先选择项目',
+      showClose: true,
+    })
+    return
+  }
+  if (cunMuBanPojo.value.name === '' || cunMuBanPojo.value.pyCode === '' || cunMuBanPojo.value.dcode === '') {
+    ElMessage.error({
+      message: '模板名称,拼音码,五笔码不能为空',
+      showClose: true,
+    })
+    return
+  }
+  cunMuBanPojo.value.list = clone(feiYongShuJu.value)
+  // 开始上传
+  shangChuanMuBan(cunMuBanPojo.value).then(() => {
+    cunMuBanPojo.value = {}
+  })
+}
 
-    watch(
-        () => xiangMuHuoYaoPinFlag.value,
-        () => {
-          xiangMuHuoYaoPinShuJu.value.data = []
-        }
-    )
-    const renYuanList = ref([])
-
-    // 搜索 医生工号
-    const remoteMethodRenYuan = (val) => {
-      if (val.length >= 2)
-        getRenYuan(val).then((res) => {
-          renYuanList.value = res
-        })
-    }
+// 根据病人的科室来获取
+const getBingQuDuiYingKeShiChange = () => {
+  getBingQuDuiYingKeShi(queryWard.value).then((res) => {
+    xiaoKeShiList.value = res
+    queryDept.value = ''
+  })
+}
+const zhiXingKeShi = ref(store.state.user.info.deptCode)
 
-    return {
-      tableHeight,
-      muBanCurrentPage,
-      muBanHandleCurrentChange,
-      muBanPageSize,
-      getMuBanXinXiClick,
-      muBanXiangQing,
-      xuanZeXiangMuTable,
-      deptData,
-      feiYongShuJu,
-      getDatetime,
-      shangChuanXiangMu,
-      shanChuXiangMuClick,
-      xinZhengXiangMuDialog,
-      xiangMuHuoYaoPinFlag,
-      xiangMuHuoYaoPinShuJu,
-      chargeCodePy,
-      rmChargePyCode,
-      danGeFeiYong,
-      danGeXiangMuBaoCun,
-      wardData,
-      queryWard,
-      queryDept,
-      ssCode,
-      xiangMuZongJia,
-      baoCunMuBanDialog,
-      cunMuBanPojo,
-      zhuanPinYin,
-      baoCunMuBan,
-      getBingQuDuiYingKeShiChange,
-      panDuanSFWeiShouShuShi,
-      zhiXingKeShi,
-      xieGaiZhiXingKeShi,
-      xiaoKeShiList,
-      xinZhengCurrentChange,
-      xinZhengSizeChange,
-      remoteMethodRenYuan,
-      renYuanList,
+const xieGaiZhiXingKeShi = () => {
+  for (let i = 0; i < feiYongShuJu.value.length; i++) {
+    feiYongShuJu.value[i].deptCode = zhiXingKeShi.value
+  }
+}
+
+// 新增中的分页 事件
+const xinZhengSizeChange = (val) => {
+  xiangMuHuoYaoPinShuJu.value.pageSize = val
+}
+
+const xinZhengCurrentChange = (val) => {
+  xiangMuHuoYaoPinShuJu.value.currentPage = val
+}
+
+watch(
+    () => xiangMuHuoYaoPinFlag.value,
+    () => {
+      xiangMuHuoYaoPinShuJu.value.data = []
     }
-  },
+)
+const renYuanList = ref([])
+
+// 搜索 医生工号
+const remoteMethodRenYuan = (val) => {
+  if (val.length >= 2)
+    getRenYuan(val).then((res) => {
+      renYuanList.value = res
+    })
 }
 
 function panDuanSFWeiShouShuShi() {
   let dept = store.state.user.info.deptCode
-  if (dept === '1300000' || dept === '3100000' || dept === '1300010') {
-    return true
-  }
-  return false
+  return dept === '1300000' || dept === '3100000' || dept === '1300010';
 }
+
+function operationRoom() {
+  let dept = store.state.user.info.deptCode
+  return dept === '1300000'
+}
+
 </script>
 
 <style></style>