Browse Source

撤销医嘱申请和审核带完善

xiaochan 2 years ago
parent
commit
399a8b189f

+ 20 - 0
src/api/zhu-yuan-yi-sheng/qrder-quash.js

@@ -0,0 +1,20 @@
+import request from "@/utils/request";
+
+let url = '/orderQuash/'
+
+export function applicationForRevocation(data) {
+    return request({
+        url: url + 'applicationForRevocation',
+        method: 'post',
+        data
+    })
+}
+
+export function getReqOrderQuash(startTime, endTime) {
+    return request({
+        url: url + 'applicationForRevocation',
+        method: 'get',
+        params: {startTime, endTime}
+    })
+}
+

+ 3 - 9
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/yz-edit/YzEditor.vue

@@ -18,12 +18,13 @@
       <el-divider direction="vertical"/>
       <button @click="duplicateAndPaste" title="复制当前工作台的医嘱,并粘贴到工作台中">复制并粘贴</button>
       <el-divider direction="vertical"/>
-      <button @click="openTheOrderPopUpWindow" title="打开医嘱弹窗,如转科,抗菌药物信息,处置医嘱等">打开医嘱弹窗
+      <button @click="openTheOrderPopUpWindow"
+              title="打开医嘱弹窗,如转科,抗菌药物信息,处置医嘱等">
+        打开医嘱弹窗
       </button>
       <outpatient-appointments/>
       <one-click-stop/>
       <doctor-authorization/>
-      <button @click="orderQuashClick">申请撤销医嘱</button>
     </div>
     <div class="editing_area"
          :style="{color: isEdit ? '#0014fc' : ''}">
@@ -969,13 +970,6 @@ const supplyDisabled = () => {
   return yiZhuData.value.serial === '00';
 }
 
-const orderQuashClick = () => {
-  if (isDev){
-    yzMitt.emit('openOrderQuash')
-  }
-
-}
-
 onMounted(() => {
 
   yzMitt.on('copy', copy)

+ 5 - 0
src/data/order-quash-data.js

@@ -0,0 +1,5 @@
+export const stateList = [
+    {code: 1, name: '待审核'},
+    {code: 2, name: '审核通过'},
+    {code: 3, name: '审核拒绝'},
+]

+ 6 - 1
src/router/modules/dashboard.js

@@ -548,6 +548,11 @@ const route = [
                 component: createNameComponent(() => import('@/views/data-modify/DeliveryDetailsQuery.vue')),
                 meta: {title: '出库明细查询'},
             },
+            {
+                path: 'reqOrderQuash',
+                component: createNameComponent(() => import('@/views/data-modify/OrderQuash.vue')),
+                meta: {title: '医嘱撤销审核'},
+            },
         ],
     },
     {
@@ -911,7 +916,7 @@ const route = [
                 path: 'nursingManagement/printThreeTestList',
                 component: createNameComponent(() => import('@/views/medical-advice/nursing-manage/PrintThreeTestList.vue')),
                 meta: {title: '打印三测单'},
-            },{
+            }, {
                 path: 'patientInfo/adjustBed',
                 component: createNameComponent(() => import('@/views/medical-advice/patient-info/AdjustBed.vue')),
                 meta: {title: '整理床位'},

+ 4 - 4
src/utils/date.js

@@ -113,11 +113,11 @@ export function getDateRangeFormatDate(data) {
     //用户手动输入了日期 并且没有按下大键盘上面的回车
     if (data === null || data.length === 0) return {startTime, endTime}
     if (typeof data[0].$d !== 'undefined') {
-        startTime = formatDate(data[0].$d) + ' 00:00:00'
-        endTime = formatDate(data[1].$d) + ' 23:59:59'
+        startTime = getFormatDatetime(data[0].$d, 'YYYY-MM-DD') + ' 00:00:00'
+        endTime = getFormatDatetime(data[1].$d, 'YYYY-MM-DD') + ' 23:59:59'
     } else {
-        startTime = formatDate(data[0]) + ' 00:00:00'
-        endTime = formatDate(data[1]) + ' 23:59:59'
+        startTime = getFormatDatetime(data[0], 'YYYY-MM-DD') + ' 00:00:00'
+        endTime = getFormatDatetime(data[1], 'YYYY-MM-DD') + ' 23:59:59'
     }
     return {startTime, endTime}
 }

+ 36 - 2
src/views/data-modify/OrderQuash.vue

@@ -1,9 +1,43 @@
-<script setup lang="ts" name='OrderQuash'>
+<script setup name='OrderQuash'>
+import {getReqOrderQuash} from "@/api/zhu-yuan-yi-sheng/qrder-quash";
+import {getDateRangeFormatDate} from "@/utils/date";
+import {getServerDateApi} from "@/api/public-api";
+
+const dateRange = ref([])
+
+const queryData = () => {
+  let {startTime, endTime} = getDateRangeFormatDate(dateRange.value)
+  console.log(startTime, endTime)
+  getReqOrderQuash(startTime, endTime).then((res) => {
+    console.log(res)
+  })
+
+}
+
+
+onMounted(async () => {
+  let now = await getServerDateApi()
+  dateRange.value = [now, now]
+  console.log(dateRange.value)
+  queryData()
+})
 
 </script>
 
 <template>
-  $END$
+  <el-container>
+    <el-aside>
+
+    </el-aside>
+    <el-container>
+      <el-header>
+
+      </el-header>
+      <el-main>
+        <el-date-picker v-model="dateRange" type="daterange" style="width: 220px"/>
+      </el-main>
+    </el-container>
+  </el-container>
 </template>
 
 <style scoped lang="scss">

+ 33 - 21
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/YiZhuLuRu.vue

@@ -70,7 +70,6 @@
     <!--  合理用药窗口  -->
     <rational-drug-use-window ref="reasonableRef" @submit="confirmOrder"/>
     <fee-table/>
-    <order-quash-dialog v-if="orderQuash.dialog" :data="orderQuash.data"/>
   </div>
 </template>
 
@@ -113,8 +112,8 @@ import YzTableV2 from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/table/YzTable
 import {clone} from "@/utils/clone";
 import BloodSugar from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/BloodSugar.vue";
 import FeeTable from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/FeeTable.vue";
-import OrderQuashDialog from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OrderQuashDialog.vue";
-import XEUtils from 'xe-utils'
+import {isDev} from "@/utils/public";
+import {applicationForRevocation} from "@/api/zhu-yuan-yi-sheng/qrder-quash";
 
 const windowSize = computed(() => {
   return store.state.app.windowSize
@@ -246,11 +245,41 @@ const clickToStopTheOrder = () => {
   })
 }
 
+const orderQuash = (val) => {
+  if (val.serial !== '00') {
+    BizException(ExceptionEnum.MESSAGE_ERROR, "药品类型医嘱无法撤销。");
+  }
+  ElMessageBox.prompt(`申请撤销<span style="color: red">【${val.orderName}】</span>医嘱,医务部通过审核后医嘱自动撤销。`, '提示', {
+    type: 'warning',
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    inputValidator: (val) => {
+      val = val.trim()
+      if (val === null || val.length < 1 || val.length > 50) {
+        return false;
+      }
+    },
+    dangerouslyUseHTMLString: true,
+    inputErrorMessage: '作废原因,不能为空,最多可输入20个字。',
+    closeOnPressEscape: false,
+    closeOnClickModal: false
+  }).then(({value}) => {
+    applicationForRevocation({
+      actOrderNo: val.actOrderNo,
+      reasonsForRevocation: value
+    })
+  })
+}
 
 /**
  * 作废医嘱
  */
 const voidOrdersClick = (val) => {
+  if (isDev) {
+    orderQuash(val)
+    return
+  }
+
   ElMessageBox.prompt(`请问是否要撤销<br><span style="color: red">【${val.orderName}】</span>医嘱<br>
                         撤销父医嘱会自动撤销子医嘱。`, '提示', {
     type: 'warning',
@@ -272,7 +301,7 @@ const voidOrdersClick = (val) => {
     })
   }).catch(() => {
 
-  })
+  });
 }
 
 
@@ -497,24 +526,7 @@ const batchDeleteOrdersClick = () => {
   })
 }
 
-const orderQuash = ref({
-  dialog: false,
-  data: []
-})
-
 onMounted(async () => {
-  yzMitt.on('openOrderQuash', () => {
-    let data = yzMitt.emit('getSelectedData')
-    if (XEUtils.isEmpty(data)) {
-      orderQuash.value = {
-        dialog: true,
-        data
-      }
-    } else {
-      xcMessage.error('请选择要撤销的医嘱')
-    }
-
-  })
 
   getSupplyType().then(res => {
     geiYaoFangShiData.value = res

+ 29 - 5
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OrderQuashDialog.vue

@@ -1,20 +1,44 @@
 <script setup name='OrderQuashDialog'>
+import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue";
+import {applicationForRevocation} from "@/api/zhu-yuan-yi-sheng/qrder-quash";
+
 const {data} = defineProps({
   data: Object
 })
 
 const dialog = ref(true)
 
-onMounted(() => {
-  console.log(data)
-})
+const closed = () => {
+  data.dialog = false
+}
+
+const confirm = () => {
+  applicationForRevocation(data.data).then((res) => {
+
+  })
+}
 
 </script>
 
 <template>
-  <el-dialog v-model="dialog" title="申请撤销医嘱">
 
-  </el-dialog>
+  <xc-dialog-v2 v-model="dialog" title="申请撤销医嘱"
+                @closed="closed"
+                show-button
+                @confirm="confirm"
+                @cancel="dialog = false">
+    <el-table :data="data.data">
+      <el-table-column type="index"/>
+      <el-table-column prop="actOrderNo" label="医嘱号"></el-table-column>
+      <el-table-column prop="orderName" label="医嘱名"></el-table-column>
+      <el-table-column prop="reasonsForRevocation" label="撤销理由">
+        <template #default="scope">
+          <el-input type="textarea" :rows="2"
+                    v-model="scope.row.reasonsForRevocation"/>
+        </template>
+      </el-table-column>
+    </el-table>
+  </xc-dialog-v2>
 </template>
 
 <style scoped lang="scss">