Browse Source

维护界面

xiaochan 6 months ago
parent
commit
fd283e4e5c

+ 30 - 0
src/api/orderZdMaintain/index.ts

@@ -116,3 +116,33 @@ export function saveOrderOccurence(data) {
     data: data,
   });
 }
+
+export function getAllYzOrderItemConfirm() {
+  return requestV2({
+    url: "/orderZdMaintain/getAllYzOrderItemConfirm",
+    method: "get",
+  });
+}
+
+export function saveOrderItemConfirm(data) {
+  return requestV2({
+    url: "/orderZdMaintain/saveOrderItemConfirm",
+    method: "post",
+    data: data,
+  });
+}
+
+export function delOrderItemConfirm(data) {
+  return requestV2({
+    url: "/orderZdMaintain/delOrderItemConfirm",
+    method: "post",
+    data: data,
+  });
+}
+
+export function selectOrderFrequency() {
+  return requestV2({
+    url: "/orderZdMaintain/selectOrderFrequency",
+    method: "get",
+  });
+}

+ 6 - 0
src/utils/cy-message-box/index.tsx

@@ -5,6 +5,7 @@ import XEUtils from "xe-utils";
 import "./index.scss";
 import { useCompShallowRef } from "@/utils/useCompRef";
 import sleep from "@/utils/sleep";
+import { stringIsBlank } from "@/utils/blank-utils";
 
 type CodeName = { code: any; name: string };
 
@@ -246,6 +247,10 @@ const analyzeConfiguration = (options: CyMessageBoxOptions) => {
 
   // @ts-ignore
   if (type === "delete") {
+    if (stringIsBlank(message)) {
+      message = "是否删除";
+    }
+
     opt.icon = markRaw(DeleteFilled);
     type = "error";
   }
@@ -283,5 +288,6 @@ const analyzeConfiguration = (options: CyMessageBoxOptions) => {
 const CyMessageBoxOptions = (options: CyMessageBoxOptions, boxType) => {
   options.boxType = boxType;
   const opt1 = analyzeConfiguration(options);
+
   return ElMessageBox[boxType](opt1.message, opt1.type, opt1);
 };

+ 39 - 0
src/views/dictionary/orderZdMaintain/compoents/order-item-confirm/AddDialog.vue

@@ -0,0 +1,39 @@
+<script setup lang="ts">
+import { UseDialogType } from "@/components/cy/CyDialog/index";
+import XEUtils from "xe-utils";
+import { BizException, ExceptionEnum } from "@/utils/BizException";
+import { saveOrderItemConfirm } from "@/api/orderZdMaintain";
+
+const store = reactive({
+  orderCode: "",
+  itemName: "",
+  count: 0,
+});
+
+defineExpose<UseDialogType.Expose>({
+  async confirm() {
+    if (XEUtils.isStringNumber(store.orderCode)) {
+      await saveOrderItemConfirm(store);
+      return store;
+    } else {
+      BizException(ExceptionEnum.MESSAGE_ERROR, "请输入纯数字。");
+    }
+  },
+});
+</script>
+
+<template>
+  <el-form>
+    <el-form-item label="医嘱编码:">
+      <el-input v-model="store.orderCode" maxlength="6" />
+    </el-form-item>
+    <el-form-item label="医嘱名称:">
+      <el-input v-model="store.itemName" show-word-limit maxlength="10" />
+    </el-form-item>
+    <el-form-item label="可开次数:">
+      <el-input-number v-model="store.count" />
+    </el-form-item>
+  </el-form>
+</template>
+
+<style lang="scss"></style>

+ 69 - 0
src/views/dictionary/orderZdMaintain/compoents/order-item-confirm/index.vue

@@ -0,0 +1,69 @@
+<script setup lang="tsx">
+import {
+  delOrderItemConfirm,
+  getAllYzOrderItemConfirm,
+} from "@/api/orderZdMaintain";
+import { useDialog } from "@/components/cy/CyDialog/index";
+import { CyMessageBox } from "@/utils/cy-message-box";
+
+const AddDialog = defineAsyncComponent(() => import("./AddDialog.vue"));
+
+const store = reactive({
+  allOrderItem: [],
+});
+
+function handleGetAllYzOrderItemConfirm() {
+  getAllYzOrderItemConfirm().then(res => {
+    store.allOrderItem = res;
+  });
+}
+
+async function handleDel(row, index) {
+  await CyMessageBox.confirm({
+    type: "delete",
+  });
+
+  await delOrderItemConfirm(row);
+  store.allOrderItem.splice(index, 1);
+}
+
+function handleAdd() {
+  useDialog(AddDialog, {
+    dialogProps: {
+      title: "新增",
+    },
+  }).then(res => {
+    store.allOrderItem.push(res);
+  });
+}
+
+onMounted(() => {
+  handleGetAllYzOrderItemConfirm();
+});
+</script>
+
+<template>
+  <el-table :data="store.allOrderItem" height="100%">
+    <el-table-column prop="orderCode" label="医嘱编码"></el-table-column>
+    <el-table-column prop="itemName" label="医嘱名称"></el-table-column>
+    <el-table-column prop="count" label="医嘱可开次数"></el-table-column>
+    <el-table-column label="操作">
+      <template #header>
+        <el-button type="info" @click="handleAdd">新增</el-button>
+        <el-button
+          type="primary"
+          icon="Refresh"
+          @click="handleGetAllYzOrderItemConfirm"
+          >刷新
+        </el-button>
+      </template>
+      <template #default="{ row, $index }">
+        <el-button type="danger" @click="handleDel(row, $index)"
+          >删除
+        </el-button>
+      </template>
+    </el-table-column>
+  </el-table>
+</template>
+
+<style lang="scss"></style>

+ 18 - 5
src/views/dictionary/orderZdMaintain/index.ts

@@ -1,18 +1,31 @@
 import { reactive } from "vue";
+import { isDev } from "@/utils/public";
 
 const OrderItem = defineAsyncComponent(
   () => import("./compoents/orderitem/OrderIten.vue")
 );
 
+const OrderItemConfirm = defineAsyncComponent(
+  () => import("./compoents/order-item-confirm/index.vue")
+);
+
+const OrderFrequency = defineAsyncComponent(
+  () => import("./compoents/order-frequency/index.vue")
+);
+
 export const tabsList = [
   {
     name: "医嘱项目",
     component: OrderItem,
   },
-  // {
-  //   name: "执行频率",
-  //   component: "",
-  // },
+  {
+    name: "特殊医嘱",
+    component: OrderItemConfirm,
+  },
+  {
+    name: "执行频率",
+    component: OrderFrequency,
+  },
   // {
   //   name: "给药方式",
   //   component: "",
@@ -30,7 +43,7 @@ export const tabsList = [
 export const useStore = () => {
   const store = reactive({
     changeItemType: [] as { code: string; name: string }[],
-    tagValue: tabsList[0].name,
+    tagValue: isDev ? tabsList[2].name : tabsList[0].name,
   });
 
   return {