瀏覽代碼

Merge branch 'master' of https://gitlab.taihe.com/lighter/vue-intergration-platform

xiaochan 3 年之前
父節點
當前提交
a9acf21278

+ 6 - 152
src/App.vue

@@ -2,42 +2,12 @@
   <el-config-provider :locale="locale">
     <router-view></router-view>
   </el-config-provider>
-  <div style="position: fixed; z-index: 10000">
-    <el-dialog :title="jdt.title" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
-               v-model="jdt.isOpen">
-      <el-progress :text-inside="true" :stroke-width="22" :percentage="percentage"
-                   :status="percentage===100 ? 'success':''">
-                <span>
-                  {{ cptUpldRsTxt }}
-                  <i v-show="percentage < 100" class="el-icon-loading"></i>
-                  <i v-show="percentage === 100" class="el-icon-check"></i>
-                </span>
-      </el-progress>
-      <el-divider></el-divider>
-      <ul style="overflow: auto" class="infinite-list" id="jdtRef">
-        <li v-for="i in jdtData" :key="i" class="infinite-list-item" :class="infiniteList(i)">
-          <div class="jdt-message" :title="i.message">{{ i.title }} 结果: {{ i.message }}</div>
-        </li>
-      </ul>
-      <el-divider></el-divider>
-      <div style="width: 100%;display: flex; justify-content: right;">
-        <el-button @click="ce" :disabled="percentage < 100" type="warning" icon="el-icon-close" size="small">
-          关闭
-        </el-button>
-        <el-button @click="excel" :disabled="percentage < 100" type="primary" icon="el-icon-download" size="small">
-          导出Excel
-        </el-button>
-      </div>
-    </el-dialog>
-  </div>
 </template>
 
 <script>
-import {computed, defineComponent, ref, onMounted} from 'vue'
+import { defineComponent } from 'vue'
 import locale from 'element-plus/lib/locale/lang/zh-cn'
-import {useStore} from 'vuex'
-import {setCallback} from '@/utils/websocket'
-import {Export} from "./utils/ExportExcel";
+import { useStore } from 'vuex'
 
 export default defineComponent({
   name: 'App',
@@ -46,97 +16,25 @@ export default defineComponent({
     const windowSize = getWindowSize()
     store.commit('app/setWindowSize', windowSize)
     store.commit('app/setJdt', {
-      title: '数据上传', isOpen: false, abnormalClosing: false
+      title: '数据上传',
+      isOpen: false,
+      abnormalClosing: false,
     })
 
-    const jdt = computed(() => {
-      return store.state.app.jdt
-    })
-
-    const cptUpldRsTxt = computed(() => {
-      if (percentage.value < 100) {
-        return `上传中 ( ${percentage.value}% ) ...`
-      }
-      return '上传完成(100%)'
-    })
-
-    const jdtData = ref([])
-
-    const ce = () => {
-      jdtData.value = []
-      percentage.value = 0
-      store.commit('app/closeJdt')
-    }
-
-    const socketCallback = (data) => {
-      percentage.value = data.percentage
-      jdtData.value.push(data)
-      const jdtRef = document.getElementById("jdtRef")
-      jdtRef.scrollTop = jdtRef.scrollHeight + 72
-    }
-
-    const percentage = ref(0)
-
-    const infiniteList = (val) => {
-      switch (val.type) {
-        case 1:
-          val.typeName = '成功'
-          return "jdt-success"
-        case 2:
-          val.typeName = '中心错误'
-          return "jdt-danger"
-        case 3:
-          val.typeName = '内部错误'
-          return "jdt-warning"
-        default:
-          val.typeName = '未知错误'
-          return "jdt-info"
-      }
-    }
-
-    const excel = () => {
-      const fields = ref({})
-      jdtData.value[0].keys.forEach(item => {
-        if (item.code === 'type') {
-          fields.value.typeName = item.name
-        } else {
-          fields.value[item.code] = item.name
-        }
-      })
-      Export(jdtData.value, fields.value, store.state.app.jdt.title)
-    }
-
-
-    onMounted(() => {
-      setCallback(socketCallback)
-    })
-
-
     return {
       locale,
-      jdt,
-      ce,
-      jdtData,
-      infiniteList,
-      excel,
-      percentage,
-      cptUpldRsTxt
     }
   },
 })
 
-
 function getWindowSize() {
   const w = window.innerWidth
   const h = window.innerHeight - 96
-  return {w, h}
+  return { w, h }
 }
 </script>
 
-
 <style>
-
-
 #app {
   font-family: Avenir, Helvetica, Arial, sans-serif;
   -webkit-font-smoothing: antialiased;
@@ -191,48 +89,4 @@ function getWindowSize() {
     opacity: 1;
   }
 }
-
-.infinite-list {
-  height: 300px;
-  padding: 0;
-  margin: 0;
-  list-style: none;
-}
-
-.infinite-list .infinite-list-item {
-  display: flex;
-  height: 35px;
-  margin: 10px;
-  align-items: center;
-  border-radius: 8px;
-}
-
-.jdt-success {
-  background: #83e3534d;
-  color: #67c23a;
-}
-
-.jdt-danger {
-  background: #f38e8e5c;
-  color: #f56c6c;
-}
-
-.jdt-warning {
-  background: #E5A03A5C;
-  color: #ea9c29
-}
-
-.jdt-info {
-  background: #A3A4AB6C;
-  color: #909399
-}
-
-.jdt-message {
-  padding: 0 8px;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  overflow: hidden;
-}
-
-
 </style>

+ 151 - 0
src/components/progress/Index.vue

@@ -0,0 +1,151 @@
+<template>
+  <div style="position: fixed; z-index: 10000">
+    <el-dialog :title="jdt.title" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" v-model="jdt.isOpen">
+      <el-progress :text-inside="true" :stroke-width="22" :percentage="percentage" :status="percentage === 100 ? 'success' : ''">
+        <span>
+          {{ cptUpldRsTxt }}
+          <i v-show="percentage < 100" class="el-icon-loading"></i>
+          <i v-show="percentage === 100" class="el-icon-check"></i>
+        </span>
+      </el-progress>
+      <el-divider></el-divider>
+      <ul style="overflow: auto" class="infinite-list" id="jdtRef">
+        <li v-for="i in jdtData" :key="i" class="infinite-list-item" :class="infiniteList(i)">
+          <div class="jdt-message" :title="i.message">{{ i.title }} 结果: {{ i.message }}</div>
+        </li>
+      </ul>
+      <el-divider></el-divider>
+      <div style="width: 100%; display: flex; justify-content: right">
+        <el-button @click="closeModal" :disabled="percentage < 100" type="warning" icon="el-icon-close" size="small"> 关闭 </el-button>
+        <el-button @click="exportExcel" :disabled="percentage < 100" type="primary" icon="el-icon-download" size="small"> 导出Excel </el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { computed, onMounted, ref } from 'vue-demi'
+import { useStore } from 'vuex'
+import { setCallback } from '@/utils/websocket'
+import { Export } from '@/utils/ExportExcel'
+
+export default {
+  setup() {
+    const store = useStore()
+    const jdt = computed(() => {
+      return store.state.app.jdt
+    })
+
+    const cptUpldRsTxt = computed(() => {
+      if (percentage.value < 100) {
+        return `上传中 ( ${percentage.value}% ) ...`
+      }
+      return '上传完成(100%)'
+    })
+
+    const jdtData = ref([])
+
+    const closeModal = () => {
+      jdtData.value = []
+      percentage.value = 0
+      store.commit('app/closeJdt')
+    }
+
+    const socketCallback = (data) => {
+      percentage.value = data.percentage
+      jdtData.value.push(data)
+      const jdtRef = document.getElementById('jdtRef')
+      jdtRef.scrollTop = jdtRef.scrollHeight + 72
+    }
+
+    const percentage = ref(0)
+
+    const infiniteList = (val) => {
+      switch (val.type) {
+        case 0:
+          val.typeName = '成功'
+          return 'jdt-success'
+        case 1:
+          val.typeName = '中心错误'
+          return 'jdt-danger'
+        case 2:
+          val.typeName = '内部错误'
+          return 'jdt-warning'
+        default:
+          val.typeName = '未知错误'
+          return 'jdt-info'
+      }
+    }
+
+    const exportExcel = () => {
+      const fields = ref({})
+      jdtData.value[0].keys.forEach((item) => {
+        if (item.code === 'type') {
+          fields.value.typeName = item.name
+        } else {
+          fields.value[item.code] = item.name
+        }
+      })
+      Export(jdtData.value, fields.value, store.state.app.jdt.title)
+    }
+
+    onMounted(() => {
+      setCallback(socketCallback)
+    })
+
+    return {
+      jdt,
+      closeModal,
+      jdtData,
+      infiniteList,
+      exportExcel,
+      percentage,
+      cptUpldRsTxt,
+    }
+  },
+}
+</script>
+
+<style scoped>
+.infinite-list {
+  height: 300px;
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+
+.infinite-list .infinite-list-item {
+  display: flex;
+  height: 35px;
+  margin: 10px;
+  align-items: center;
+  border-radius: 8px;
+}
+
+.jdt-success {
+  background: #83e3534d;
+  color: #67c23a;
+}
+
+.jdt-danger {
+  background: #f38e8e5c;
+  color: #f56c6c;
+}
+
+.jdt-warning {
+  background: #e5a03a5c;
+  color: #ea9c29;
+}
+
+.jdt-info {
+  background: #a3a4ab6c;
+  color: #909399;
+}
+
+.jdt-message {
+  padding: 0 8px;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: hidden;
+}
+</style>

+ 85 - 87
src/utils/request.js

@@ -1,108 +1,106 @@
 import axios from 'axios'
-import {ElMessage, ElMessageBox} from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
 import Cookies from 'js-cookie'
 import router from '@/router'
 import store from '@/store'
-import {startLoading, endLoading} from "./loading";
+import { startLoading, endLoading } from './loading'
 
 const apiUrl = import.meta.env.VITE_BASE_URL
 
 const service = axios.create({
-    baseURL: apiUrl,
-    withCredentials: true,
-    timeout: 0,
+  baseURL: apiUrl,
+  withCredentials: true,
+  timeout: 0,
 })
 
 /*axios请求拦截*/
 service.interceptors.request.use(
-    (config) => {
-        if (typeof config.jdtTitle !== 'undefined') {
-            store.commit('app/setJdt', {title: config.jdtTitle, isOpen: true, abnormalClosing: false})
-        } else {
-            startLoading()
-        }
-        if (store.getters['user/token']) {
-            config.headers['token'] = store.state.user.token
-        }
-        return config
-    },
-    (error) => {
-        endLoading()
-        return Promise.reject(error)
+  (config) => {
+    if (typeof config.jdtTitle !== 'undefined') {
+      store.commit('app/setJdt', { title: config.jdtTitle, isOpen: true, abnormalClosing: false })
+    } else {
+      startLoading()
     }
+    if (store.getters['user/token']) {
+      config.headers['token'] = store.state.user.token
+    }
+    return config
+  },
+  (error) => {
+    endLoading()
+    return Promise.reject(error)
+  }
 )
 
 service.interceptors.response.use(
-    (response) => {
-        endLoading()
-        if (response.data.code === 200 || response.data.code === 0) {
-            return response.data.data
-        }
-        if (response.data.code === 2002) {
-            return response.data
-        }
-        if (response.data.code === 201) {
-            ElMessage({
-                type: 'success',
-                title: '成功',
-                duration: 2800,
-                dangerouslyUseHTMLString: true,
-                message: response.data.message,
-                showClose: true,
-                offset: 130,
-            })
-            return response.data.data
-        }
-        if (response.data.code === 202) {
-            if (response.data.total > 0) {
-                return response.data
-            } else {
-                ElMessage.error({
-                    message: '没有符合条件的数据 ╮(╯▽╰)╭',
-                    showClose: true,
-                })
-                return response.data
-            }
-        }
-        if (response.data.code > 1000 && response.data.code < 2000) {
-            ElMessage({
-                type: 'error',
-                message: response.data.message,
-                duration: 2000,
-                showClose: true,
-            })
-        } else if (response.data.code > 2000 && response.data.code < 3000) {
-            ElMessageBox.alert(response.data.message, '提示', {
-                type: 'error',
-                confirmButtonText: '确定',
-                dangerouslyUseHTMLString: true,
-            }).then(() => {
-            })
-        } else if (response.data.code > 3000 && response.data.code < 4000) {
-            ElMessageBox.alert(response.data.message, '提示', {
-                type: 'warning',
-                confirmButtonText: '确定',
-            }).then(() => {
-                Cookies.remove('token')
-                router.push('/login')
-            })
-        }
-        if (response.data.data) {
-            return Promise.reject(response.data)
-        }
-        return Promise.reject(response.data.message || '服务器内部错误')
-    },
-    (error) => {
-        endLoading()
-
-        ElMessage({
-            message: error,
-            type: 'error',
-            duration: 2500,
-            showClose: true,
+  (response) => {
+    endLoading()
+    if (response.data.code === 200 || response.data.code === 0) {
+      return response.data.data
+    }
+    if (response.data.code === 2002) {
+      return response.data
+    }
+    if (response.data.code === 201) {
+      ElMessage({
+        type: 'success',
+        title: '成功',
+        duration: 2800,
+        dangerouslyUseHTMLString: true,
+        message: response.data.message,
+        showClose: true,
+        offset: 130,
+      })
+      return response.data.data
+    }
+    if (response.data.code === 202) {
+      if (response.data.total > 0) {
+        return response.data
+      } else {
+        ElMessage.error({
+          message: '没有符合条件的数据 ╮(╯▽╰)╭',
+          showClose: true,
         })
-        return Promise.reject(error)
+        return response.data
+      }
+    }
+    if (response.data.code > 1000 && response.data.code < 2000) {
+      ElMessage({
+        type: 'error',
+        message: response.data.message,
+        duration: 2000,
+        showClose: true,
+      })
+    } else if (response.data.code > 2000 && response.data.code < 3000) {
+      ElMessageBox.alert(response.data.message, '提示', {
+        type: 'error',
+        confirmButtonText: '确定',
+        dangerouslyUseHTMLString: true,
+      }).then(() => {})
+    } else if (response.data.code > 3000 && response.data.code < 4000) {
+      ElMessageBox.alert(response.data.message, '提示', {
+        type: 'warning',
+        confirmButtonText: '确定',
+      }).then(() => {
+        Cookies.remove('token')
+        router.push('/login')
+      })
+    }
+    if (response.data.data) {
+      return Promise.reject(response.data)
     }
+    return Promise.reject(response.data.message || '服务器内部错误')
+  },
+  (error) => {
+    endLoading()
+    ElMessage({
+      message: error,
+      type: 'error',
+      duration: 2500,
+      showClose: true,
+    })
+    return Promise.reject(error)
+  }
 )
 
 export default service

+ 12 - 7
src/views/examination/UploadToHealthCard.vue

@@ -11,7 +11,7 @@
         style="width: 400px"
       ></el-date-picker>
       <el-button style="margin-left: 3px" type="primary" icon="el-icon-tickets" @click="scanBarCode">扫描健康证条码</el-button>
-      <el-button type="primary" icon="el-icon-edit" :disabled="disableFixTjNo" @click="fixTjNo">修正体检号</el-button>
+      <el-button type="primary" icon="el-icon-edit" @click="fixTjNo">修正体检号</el-button>
       <el-button type="primary" icon="el-icon-upload" @click="uploadSelected(null)">推送选中检查</el-button>
       <el-divider direction="vertical"></el-divider>
       <el-checkbox v-model="autoPush">在检验结果完整时自动推送</el-checkbox>
@@ -65,7 +65,6 @@ export default {
     const multipleSelection = ref([])
     const pushResult = ref({})
     const autoPush = ref(true)
-    const disableFixTjNo = ref(true)
 
     const makeParam = (value) => {
       if (!datePeriod.value) {
@@ -96,7 +95,6 @@ export default {
             customerInfo.value = res.customerInfo
             inspectionsIndex.value = res.inspectionsIndex
             if (!res.inspectionsIndex || res.inspectionsIndex.length === 0) {
-              disableFixTjNo.value = false
               ElMessageBox.confirm('没有找到【姓名:' + customerInfo.value.name + ',体检号:' + res.tjNo + '】的体检结果,请尝试修正体检号。', '提示', {
                 type: 'warning',
                 confirmButtonText: '修正体检号',
@@ -119,6 +117,15 @@ export default {
     }
 
     const fixTjNo = () => {
+      if (!customerInfo.value.name) {
+        ElMessage({
+          message: '请先扫描健康证条码。',
+          type: 'warning',
+          duration: 2500,
+          showClose: true,
+        })
+        return
+      }
       ElMessageBox.prompt('请扫描或输入【' + customerInfo.value.name + '】的体检号', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
@@ -146,7 +153,7 @@ export default {
     }
 
     const isInspectionsCompleted = (val) => {
-      if (!val || val.length !== 3) {
+      if (!val || val.length < 2) {
         return false
       }
       let jk01 = false
@@ -183,9 +190,8 @@ export default {
         inspectionsIndex: rows ? rows : multipleSelection.value,
       }
       pushSelectedResult(param).then((res) => {
-        disableFixTjNo.value = true
         pushResult.value = res
-        if (res.JK01 === '推送成功' && res.JK02 === '推送成功' && res.JK03 === '推送成功') {
+        if (res.JK01 === '推送成功' && res.JK02 === '推送成功') {
           ElMessage({
             message: '推送成功。',
             type: 'success',
@@ -225,7 +231,6 @@ export default {
       makeColoredRes,
       autoPush,
       tjNo,
-      disableFixTjNo,
       fixTjNo,
     }
   },

+ 66 - 137
src/views/medical-insurance/allpatient/SetlInfo.vue

@@ -5,21 +5,19 @@
         <el-option v-for="item in clrTypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
       <el-date-picker
-          v-model="dateRange"
-          type="daterange"
-          :shortcuts="setlShtcuts"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          style="width: 220px"
-          @change="setlinfos = []"
+        v-model="dateRange"
+        type="daterange"
+        :shortcuts="setlShtcuts"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        style="width: 220px"
+        @change="setlinfos = []"
       ></el-date-picker>
-      <el-select v-model="slctSetlPrm.insutype" placeholder="险种类型" filterable clearable style="width: 120px"
-                 @change="currentPage = 1">
+      <el-select v-model="slctSetlPrm.insutype" placeholder="险种类型" filterable clearable style="width: 120px" @change="currentPage = 1">
         <el-option v-for="item in insutypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
-      <el-select v-model="slctSetlPrm.clrOptins" placeholder="清算机构" filterable clearable
-                 :disabled="setlinfos.length === 0" style="width: 120px" @change="currentPage = 1">
+      <el-select v-model="slctSetlPrm.clrOptins" placeholder="清算机构" filterable clearable :disabled="setlinfos.length === 0" style="width: 120px" @change="currentPage = 1">
         <el-option v-for="item in optins" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
       <el-divider direction="vertical"></el-divider>
@@ -31,11 +29,11 @@
     </el-header>
     <el-main>
       <el-table
-          :data="cptSetlinfos.slice(pageSize * (currentPage - 1), pageSize * currentPage)"
-          stripe
-          :height="tableHeight"
-          highlight-current-row
-          @selection-change="handleSelectionChange"
+        :data="cptSetlinfos.slice(pageSize * (currentPage - 1), pageSize * currentPage)"
+        stripe
+        :height="tableHeight"
+        highlight-current-row
+        @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="35"></el-table-column>
         <el-table-column type="index" label="序号"></el-table-column>
@@ -57,14 +55,14 @@
         <el-table-column prop="clrOptinsName" label="清算机构"></el-table-column>
       </el-table>
       <el-pagination
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-          :current-page="currentPage"
-          :page-sizes="[15, 30, 45, 60]"
-          :page-size="pageSize"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="cptSetlinfos.length"
-          style="margin-top: 5px"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="currentPage"
+        :page-sizes="[15, 30, 45, 60]"
+        :page-size="pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="cptSetlinfos.length"
+        style="margin-top: 5px"
       ></el-pagination>
       <el-dialog v-model="showSetlDtlCheckRslt" title="明细对账结果">
         <el-table :data="setlDtlCheckRslt" stripe :height="300" highlight-current-row>
@@ -78,63 +76,26 @@
           <el-table-column prop="fundPaySumamt" label="报销金额"></el-table-column>
         </el-table>
       </el-dialog>
+      <Progress />
     </el-main>
-    <!--    <div style="position: fixed; z-index: 10000">-->
-    <!--      <el-dialog v-model="showUpldRsps" title="结算单上传详情" :close-on-click-modal="false" :close-on-press-escape="false" :before-close="beforeCloseUpldRsps">-->
-    <!--        <el-progress :text-inside="true" title="sd" :stroke-width="22" :percentage="percentage" status="success">-->
-    <!--          <span><i v-show="percentage < 100" class="el-icon-loading"></i> {{ cptUpldRsTxt }}</span>-->
-    <!--        </el-progress>-->
-    <!--        <el-divider></el-divider>-->
-    <!--        <el-table ref="upldRsTbl" :data="upldRsps" height="300" stripe>-->
-    <!--          <el-table-column type="index" label="序号" width="40">-->
-    <!--            <template #default="scope">-->
-    <!--              <span :style="{ color: scope.row.code === 200 ? 'green' : 'red' }"> {{ scope.$index + 1 }} </span>-->
-    <!--            </template>-->
-    <!--          </el-table-column>-->
-    <!--          <el-table-column label="住院号" width="80">-->
-    <!--            <template #default="scope">-->
-    <!--              <span :style="{ color: scope.row.code === 200 ? 'green' : 'red' }">{{ scope.row.patNo }}</span>-->
-    <!--            </template>-->
-    <!--          </el-table-column>-->
-    <!--          <el-table-column label="次数" width="40">-->
-    <!--            <template #default="scope">-->
-    <!--              <span :style="{ color: scope.row.code === 200 ? 'green' : 'red' }">{{ scope.row.times }}</span>-->
-    <!--            </template>-->
-    <!--          </el-table-column>-->
-    <!--          <el-table-column label="账页号" width="50">-->
-    <!--            <template #default="scope">-->
-    <!--              <span :style="{ color: scope.row.code === 200 ? 'green' : 'red' }">{{ scope.row.ledgerSn }}</span>-->
-    <!--            </template>-->
-    <!--          </el-table-column>-->
-    <!--          <el-table-column label="上传结果">-->
-    <!--            <template #default="scope">-->
-    <!--              <span :style="{ color: scope.row.code === 200 ? 'green' : 'red' }">{{ scope.row.message }}</span>-->
-    <!--            </template>-->
-    <!--          </el-table-column>-->
-    <!--        </el-table>-->
-    <!--      </el-dialog>-->
-    <!--    </div>-->
   </el-container>
 </template>
 
 <script>
-import {computed, onActivated, onMounted, reactive, ref} from '@vue/runtime-core'
+import { computed, onMounted, reactive, ref } from '@vue/runtime-core'
 import store from '@/store'
-import {getClrTypes, getInsutypes} from '@/api/medical-insurance/si-dict'
-import {setlShtcuts} from '@/data/shortcuts'
-import {ElMessage, ElMessageBox} from 'element-plus'
-import {
-  institutionSettlementDetailCheck,
-  institutionSettlementLedgerCheck,
-  selectSetlinfos,
-  upldSetlList,
-  upldSetlListTimes
-} from '@/api/medical-insurance/si-manage'
-import {formatDate} from '@/utils/date'
-import {getDateRangeFormatDate} from '../../../utils/date'
-import {setCallback} from '@/utils/websocket'
+import { getClrTypes, getInsutypes } from '@/api/medical-insurance/si-dict'
+import { setlShtcuts } from '@/data/shortcuts'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { institutionSettlementDetailCheck, institutionSettlementLedgerCheck, selectSetlinfos, upldSetlList, upldSetlListTimes } from '@/api/medical-insurance/si-manage'
+import { formatDate } from '@/utils/date'
+import { getDateRangeFormatDate } from '../../../utils/date'
+import Progress from '../../../components/progress/Index.vue'
 
 export default {
+  components: {
+    Progress,
+  },
   setup() {
     const windowSize = store.state.app.windowSize
     const tableHeight = windowSize.h - 100
@@ -143,16 +104,6 @@ export default {
     const dateRange = ref(null)
     const setlinfos = ref([])
     const optins = ref([])
-    const showUpldRsps = ref(false)
-    const upldRsps = ref([])
-    const percentage = ref(0)
-    const upldRsTbl = ref(null)
-    const cptUpldRsTxt = computed(() => {
-      if (percentage.value < 100) {
-        return `上传中 ( ${percentage.value}% ) ...`
-      }
-      return '上传完成(100%)'
-    })
     const slctSetlPrm = reactive({
       insutype: '',
       clrType: null,
@@ -205,14 +156,14 @@ export default {
       slctSetlPrm.begndate = formatDate(dateRange.value[0])
       slctSetlPrm.enddate = formatDate(dateRange.value[1])
       selectSetlinfos(slctSetlPrm)
-          .then((res) => {
-            setlinfos.value = res.list
-            optins.value = res.optins
-          })
-          .catch(() => {
-            setlinfos.value = []
-            optins.value = []
-          })
+        .then((res) => {
+          setlinfos.value = res.list
+          optins.value = res.optins
+        })
+        .catch(() => {
+          setlinfos.value = []
+          optins.value = []
+        })
     }
 
     const bfrChkSetl = () => {
@@ -325,15 +276,18 @@ export default {
         return
       }
       const dates = getDateRangeFormatDate(dateRange.value)
-      showUpldRsps.value = true
-      upldSetlListTimes(dates.startTime, dates.endTime, slctSetlPrm.insutype).then(() => {
-        ElMessage({
-          message: '上传完成。',
-          type: 'info',
-          duration: 2500,
-          showClose: true,
+      upldSetlListTimes(dates.startTime, dates.endTime, slctSetlPrm.insutype)
+        .then(() => {
+          ElMessage({
+            message: '上传完成。',
+            type: 'info',
+            duration: 2500,
+            showClose: true,
+          })
+        })
+        .catch(() => {
+          store.commit('app/closeJdt')
         })
-      })
     }
 
     const selections = ref([])
@@ -342,39 +296,20 @@ export default {
     }
 
     const upldSelections = () => {
-      showUpldRsps.value = true
-      upldSetlList(selections.value).then(() => {
-        ElMessage({
-          message: '上传完成。',
-          type: 'info',
-          duration: 2500,
-          showClose: true,
+      upldSetlList(selections.value)
+        .then(() => {
+          ElMessage({
+            message: '上传完成。',
+            type: 'info',
+            duration: 2500,
+            showClose: true,
+          })
+        })
+        .catch(() => {
+          store.commit('app/closeJdt')
         })
-      })
-    }
-
-    const beforeCloseUpldRsps = (done) => {
-      percentage.value = 0
-      upldRsps.value = []
-      done()
-    }
-
-    const socketCallback = (data) => {
-      switch (data.name) {
-        case 'upldSetlListMessage':
-          upldRsps.value.push(data)
-          percentage.value = data.percentage
-          upldRsTbl.value.$refs.bodyWrapper.scrollTop = upldRsTbl.value.$refs.bodyWrapper.scrollHeight
-          break
-        default:
-          break
-      }
     }
 
-    // onActivated(() => {
-    //   setCallback(socketCallback)
-    // })
-
     onMounted(() => {
       getInsutypes().then((res) => {
         insutypes.value = res
@@ -398,11 +333,6 @@ export default {
       setlDtlCheckRslt,
       optins,
       showSetlDtlCheckRslt,
-      showUpldRsps,
-      upldRsTbl,
-      upldRsps,
-      percentage,
-      cptUpldRsTxt,
       upldSelections,
       handleCurrentChange,
       handleSizeChange,
@@ -411,7 +341,6 @@ export default {
       upldAllList,
       handleSelectionChange,
       setlDtlCheck,
-      beforeCloseUpldRsps,
     }
   },
 }
@@ -431,6 +360,6 @@ function calSumamt(list) {
   fundSum = fundSum.toFixed(2)
   acctSum = acctSum.toFixed(2)
   psnCashPay = psnCashPay.toFixed(2)
-  return {medSum, fundSum, acctSum, psnCashPay}
+  return { medSum, fundSum, acctSum, psnCashPay }
 }
 </script>

+ 1 - 44
src/views/medical-insurance/inpatient/InHospFeeUpload.vue

@@ -70,14 +70,6 @@
         :total="fees.ypTotal"
       >
       </el-pagination>
-      <div class="dj-center-box-wrapper" style="z-index: 10000" v-show="showProofread">
-        <div class="el-message-box" style="padding: 10px; text-align: center; font-size: 15px">
-          <h3>校对消息</h3>
-          <div :key="msg" v-for="msg in proofreadMsgs" style="margin-top: 5px">
-            {{ msg }}
-          </div>
-        </div>
-      </div>
       <div class="m-wrapper" v-show="showProgress">
         <div class="dj-center-box-wrapper">
           <div class="el-message-box" style="font-size: 13px">
@@ -107,7 +99,7 @@ import { computed, onActivated, onDeactivated, onMounted, reactive, ref, watch }
 import { fetchNotUploadedFees } from '@/api/yibao/patient'
 import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
 import { nullPatient } from '@/utils/validate'
-import { proofread, multipleUpload } from '@/api/yibao/yibao'
+import { multipleUpload } from '@/api/yibao/yibao'
 import { hospitalizationPreSettlement, uploadFeeDetail, revokeUploadFees } from '@/api/medical-insurance/si-inpatient'
 import { uploadInjuryFees, cancelInjuryFee, injuryPrecal } from '@/api/medical-insurance/si-injury'
 import { setCallback } from '@/utils/websocket'
@@ -240,36 +232,7 @@ export default {
 
     const patientIndex = ref(1)
     const showProgress = ref(false)
-    const showProofread = ref(false)
     const percentage = ref(0)
-    const proofreadMsgs = ref([])
-    const startProofread = () => {
-      proofreadMsgs.value = []
-      showProofread.value = true
-      const data = {
-        sid: store.getters['user/sid'],
-        inpatientNo: patient.value.inpatientNo,
-        admissTimes: patient.value.admissTimes,
-        ybJlh: patient.value.ybJlh,
-      }
-      proofread(data)
-        .then((res) => {
-          percentage.value = 0
-          patient.value.chargeYb = res.fundPay
-          showProofread.value = false
-          ElMessageBox.alert('患者【' + patient.value.name + '】院内总费用与医保中心总费用一致,医保报销金额为:¥ ' + res.fundPay + '。', '成功', {
-            type: 'success',
-            confirmButtonText: '确定',
-          }).then(() => {
-            fetchProjectFees()
-            fetchMedicineFees()
-          })
-          proofreadMsgs.value = []
-        })
-        .catch(() => {
-          showProofread.value = false
-        })
-    }
 
     const selections = computed(() => {
       return store.state.ptnt.selections
@@ -366,10 +329,6 @@ export default {
         case 'updateProgress':
           percentage.value = data.percentage
           break
-        case 'proofread':
-          proofreadMsgs.value.push(data.msg)
-          percentage.value = 0
-          break
         default:
           break
       }
@@ -461,8 +420,6 @@ export default {
       handleYpSizeChange,
       handleCurrentYpChange,
       preCalculateCost,
-      showProofread,
-      proofreadMsgs,
       percentage,
       uploadFees,
       showProgress,