Browse Source

手术收费项目匹配优化。

lighter 2 years ago
parent
commit
61ddd29245
1 changed files with 23 additions and 5 deletions
  1. 23 5
      src/views/dictionary/HisWjwMatch.vue

+ 23 - 5
src/views/dictionary/HisWjwMatch.vue

@@ -14,8 +14,15 @@
     <template #main>
       <div style="display: flex; height: 100%; width: 100%">
         <div style="height: 100%; width: 45%">
-          <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="hisInput"
-                    clearable></el-input>
+          <div style="display: flex">
+            <el-input prefix-icon="Search" placeholder="输入拼音、编码或名称以进行检索" v-model="hisInput"
+                      clearable></el-input>
+            <el-select v-if="hisWjwMatchEntity.label === 'surgery_chargeCode'" v-model="currentStatus">
+              <el-option :value="0" label="未匹配"></el-option>
+              <el-option :value="1" label="已匹配"></el-option>
+              <el-option :value="2" label="全部"></el-option>
+            </el-select>
+          </div>
           <el-table :data="filterHisList.slice((hisCurrentPage - 1) * 30, hisCurrentPage * 30)"
                     height="500" highlight-current-row stripe @row-click="handleClickHisRow">
             <el-table-column type="index" label="序号"></el-table-column>
@@ -108,6 +115,7 @@ let hisList = $ref([])
 let wjwList = $ref([])
 
 let currentHisRow = $ref({})
+let currentStatus = $ref(0)
 const hisWjwMatchEntity = reactive({
   code: null,
   wjwCode: null,
@@ -133,7 +141,15 @@ const disableWjwTable = computed(() => {
 
 const filterHisList = computed(() => {
   return hisList.filter((item) => {
-    return item.code.indexOf(hisInput) > -1 || item.name.indexOf(hisInput) > -1 || item.pyCode.indexOf(hisInput.toUpperCase()) > -1
+    if (currentStatus === 0) {
+      return (!item.chargeCode || item.chargeCode.length === 0) &&
+          (item.code.indexOf(hisInput) > -1 || item.name.indexOf(hisInput) > -1 || item.pyCode.indexOf(hisInput.toUpperCase()) > -1)
+    } else if (currentStatus === 1) {
+      return (item.chargeCode && item.chargeCode.length > 0) &&
+          (item.code.indexOf(hisInput) > -1 || item.name.indexOf(hisInput) > -1 || item.pyCode.indexOf(hisInput.toUpperCase()) > -1)
+    } else {
+      return item.code.indexOf(hisInput) > -1 || item.name.indexOf(hisInput) > -1 || item.pyCode.indexOf(hisInput.toUpperCase()) > -1
+    }
   })
 })
 
@@ -203,8 +219,10 @@ const handleClickHisRow = (row) => {
 
 const handleClickWjwRow = (row) => {
   if (hisWjwMatchEntity.label === 'surgery_chargeCode') {
-    hisWjwMatchEntity.chargeCode.push(row.code)
-    hisWjwMatchEntity.chargeName.push(row.name)
+    if (hisWjwMatchEntity.chargeCode.indexOf(row.code) === -1) {
+      hisWjwMatchEntity.chargeCode.push(row.code)
+      hisWjwMatchEntity.chargeName.push(row.name)
+    }
   } else {
     hisWjwMatchEntity.wjwCode = row.code
     hisWjwMatchEntity.wjwName = row.name