瀏覽代碼

Merge branch 'master' into 'master'

慢病,药品账页字典,技术文档等优化

See merge request lighter/vue-intergration-platform!124
huangshuhua 11 月之前
父節點
當前提交
492c1454c8

+ 29 - 11
src/views/clinic/chronicDisease/ChronicDiseaseRegister.vue

@@ -485,9 +485,7 @@
                                   filterable :options="empList" :remote-method="empMethod" placeholder="请选择主管医生">
                       <template #default="{ item }">
                         <span style="margin-right: 8px">{{ item.label }}</span>
-                        <span style="color: var(--el-text-color-secondary); font-size: 13px">
-                                                    {{ item.value }}
-                                                </span>
+                        <span style="color: var(--el-text-color-secondary); font-size: 13px">{{ item.value }}</span>
                       </template>
                     </el-select-v2>
                   </el-form-item>
@@ -499,9 +497,7 @@
                                   :remote-method="creatMethod" placeholder="请选择建档医生">
                       <template #default="{ item }">
                         <span style="margin-right: 8px">{{ item.name }}</span>
-                        <span style="color: var(--el-text-color-secondary); font-size: 13px">
-                                                      {{ item.code }}
-                                                  </span>
+                        <span style="color: var(--el-text-color-secondary); font-size: 13px">{{ item.code }}</span>
                       </template>
                     </el-select-v2>
                     <el-select-v2 v-else v-model="ruleForm.creatId" clearable remote style="width: 100%"
@@ -509,9 +505,7 @@
                                   placeholder="请选择建档医生">
                       <template #default="{ item }">
                         <span style="margin-right: 8px">{{ item.name }}</span>
-                        <span style="color: var(--el-text-color-secondary); font-size: 13px">
-                                                      {{ item.code }}
-                                                  </span>
+                        <span style="color: var(--el-text-color-secondary); font-size: 13px">{{ item.code }}</span>
                       </template>
                     </el-select-v2>
                   </el-form-item>
@@ -540,6 +534,19 @@
                     </el-form-item>
                 </el-col> -->
               </el-row>
+              <el-row>
+                <el-col :span="6">
+                  <el-form-item label="建档科室" prop="creatDept">
+                    <el-select-v2 v-model="ruleForm.creatDept" clearable remote style="width: 100%"
+                                  filterable :options="deptWardList" :remote-method="queryDept" placeholder="请选择建档科室">
+                      <template #default="{ item }">
+                        <span style="margin-right: 8px">{{ item.name }}</span>
+                        <span style="color: var(--el-text-color-secondary); font-size: 13px">{{ item.code }}</span>
+                      </template>
+                    </el-select-v2>
+                  </el-form-item>
+                </el-col>
+              </el-row>
             </el-collapse-item>
           </el-collapse>
         </el-form>
@@ -564,6 +571,7 @@ import {provinceList, cityList, countyList, cityFilter, countyFilter} from "@/da
 import router from '@/router'
 import sleep from "@/utils/sleep";
 import {useUserStore} from "@/pinia/user-store";
+import {queryDept} from "@/api/public-api";
 
 const activeName = ref(['1', '2', '3', '4', '5', '6', '7'])
 const userCode = useUserStore().userInfo.code
@@ -571,6 +579,7 @@ const userName = useUserStore().userInfo.name
 let dics: any = ref({})
 const empList = ref([])
 const creatList = ref([])
+const deptWardList = ref([])
 const provinceData = ref([{code: '', name: ''}])
 const cityData = ref([{code: '', name: ''}])
 const countyData = ref([{code: '', name: ''}])
@@ -581,8 +590,9 @@ onMounted(async () => {
     provinceData.value = provinceList
     cityData.value = cityList
     countyData.value = countyList
-    empMethod('')
-    creatMethod('')
+    await empMethod('')
+    await creatMethod('')
+    await deptMethod('')
     ruleForm.value.creatId = userCode
 
     const patNo = router.currentRoute.value.params.patNo
@@ -628,6 +638,12 @@ const creatMethod = async (val: string) => {
   })
 }
 
+const deptMethod = (val: string) => {
+  queryDept(val).then((res: any) => {
+    deptWardList.value = res
+  })
+}
+
 interface RuleForm {
   pId: string
   pName: string
@@ -692,6 +708,7 @@ interface RuleForm {
   heartRate: string
   bloodSugar: string
   bloodOxygen: string
+  creatDept: string
 }
 
 const keyCode = ref('')
@@ -764,6 +781,7 @@ const ruleForm = ref<RuleForm>({
   heartRate: '',
   bloodSugar: '',
   bloodOxygen: '',
+  creatDept: '',
 })
 
 const rulesAll = reactive<FormRules<RuleForm>>({

+ 25 - 3
src/views/clinic/chronicDisease/ChronicDiseaseSearch.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="layout_container">
     <header>
-      <el-input v-model="keyCode" class="w-50 m-2" style="width: 360px" placeholder="请输入姓名/证件号/门诊号/住院号" clearable>
+      <el-input v-model="keyCode" class="w-50 m-2" style="width: 300px" placeholder="请输入姓名/证件号/门诊号/住院号" clearable>
         <template #prepend>关键字</template>
       </el-input>
       <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
@@ -12,6 +12,15 @@
       <el-select v-model="delFlag" placeholder="请选择是否有效" clearable style="width: 160px;margin-left: 3px">
         <el-option v-for="item in delFlagOptions" :key="item.code" :label="item.name" :value="item.code" />
       </el-select>
+<!--      <el-select v-model="creatDept" placeholder="请选择建档科室" clearable filterable :remote-method="queryUnitCode" style="width: 160px;margin-left: 3px">-->
+<!--        <el-option v-for="item in unitData" :key="item.code" :label="item.name" :value="item.code" />-->
+<!--      </el-select>-->
+      <el-select-v2 v-model="creatDept" clearable remote style="width: 200px;margin-left: 3px"
+                    filterable :options="unitData" :remote-method="queryUnitCode" placeholder="请选择建档科室">
+        <template #default="{ item }">
+          <span style="margin-right: 8px">{{ item.name }}</span>
+        </template>
+      </el-select-v2>
       <el-button type="primary" icon="Search" @click="queryChronicDisease" style="margin-left: 5px">查询</el-button>
       <el-button type="primary" icon="Download" @click="exportData" style="margin-left: 5px">导出</el-button>
     </header>
@@ -56,6 +65,7 @@
             <el-table-column prop="bloodOxygen" label="血氧" width="80" />
             <el-table-column prop="referPhysicianName" label="主管医生" width="100" />
             <el-table-column prop="userName" label="建档医生" width="100" />
+            <el-table-column prop="deptName" label="建档科室" width="140" />
             <el-table-column prop="createDate" label="建卡时间" width="140" />
             <el-table-column prop="visitDate" label="下次随访时间" width="100" />
             <el-table-column prop="delFlag" label="是否有效" width="80">
@@ -94,6 +104,7 @@ import { selectChronicDisease, getCrmDictionary, selectMbDelPermissions, delChro
 import { Export } from '@/utils/ExportExcel'
 import { clone } from '@/utils/clone'
 import router from "@/router";
+import {queryDept} from "@/api/public-api";
 
 const pageSize = ref(30)
 const currentPage = ref(1)
@@ -109,6 +120,8 @@ const diseaseType = ref('')
 let dics = ref({})
 const delUser = ref('')
 const delFlag = ref('')
+// 建档科室
+const creatDept = ref('')
 const start = formatDate(seltYearAndNowLast[1].value[0])
 const end = formatDate(seltYearAndNowLast[1].value[1])
 const dateRange = ref([])
@@ -118,6 +131,7 @@ const queryTerm = reactive({
   keyCode: '',
   diseaseType: '',
   delFlag: '',
+  deptCode: '',
 })
 
 const delFlagOptions = [{ code: '', name: '全部' }, { code: '0', name: '有效' }, { code: '1', name: '无效' }]
@@ -125,6 +139,7 @@ const delFlagOptions = [{ code: '', name: '全部' }, { code: '0', name: '有效
 onMounted(() => {
   nextTick(async () => {
     queryMbDelPermissions()
+    await queryUnitCode('')
     dics.value = await getCrmDictionary()
     queryTerm.startTime = start
     queryTerm.endTime = end + ' 23:59:59'
@@ -133,6 +148,13 @@ onMounted(() => {
   })
 })
 
+const unitData = ref([])
+const queryUnitCode = async (code) => {
+  await queryDept(code).then((res) => {
+    unitData.value = res
+  })
+}
+
 const queryMbDelPermissions = () => {
   selectMbDelPermissions()
     .then((res) => {
@@ -160,6 +182,7 @@ const queryChronicDisease = () => {
   queryTerm.keyCode = keyCode.value
   queryTerm.diseaseType = diseaseType.value
   queryTerm.delFlag = delFlag.value
+  queryTerm.deptCode = creatDept.value
   selectChronicDisease(queryTerm)
     .then((res) => {
       chronicDiseaseData.value = res
@@ -208,7 +231,6 @@ function delChronicDisease({ pId }) {
         duration: 2500,
         showClose: true,
       });
-      return
     })
   })
 }
@@ -229,7 +251,6 @@ function hfChronicDisease({ pId }) {
         duration: 2500,
         showClose: true,
       });
-      return
     })
   })
 }
@@ -273,6 +294,7 @@ const exportData = () => {
       bloodOxygen: "血氧",
       referPhysicianName: "主管医生",
       userName: "建档医生",
+      deptName: "建档科室",
       createDate: "建卡时间",
       visitDate: "下次随访时间",
       delFlag: "是否有效"

+ 10 - 10
src/views/dictionary/personnel/DeptRoomDict.vue

@@ -18,23 +18,23 @@
                   border style="width: 100%" height="100%" stripe highlight-current-row
                   class="roomDeptTable normal-size">
                 <el-table-column type="index" label="序号" width="80" />
-                <el-table-column prop="deptCode" label="科室编码" width="100">
+                <el-table-column prop="deptCode" label="科室编码" width="100"></el-table-column>
+                <el-table-column prop="deptName" label="科室名称" width="240">
                   <template v-slot="scope">
                     <div v-if="scope.row.isEdit">
-                      <el-select v-model="scope.row.deptCode" placeholder="请选择科室" @change="deptChange(scope.row)">
-                        <el-option v-for="option in unitData" :key="option.code" :label="option.code"
-                                   :value="option.code"></el-option>
+                      <el-select v-model="scope.row.deptName" placeholder="请选择科室" @change="deptChange(scope.row)">
+                        <el-option v-for="option in unitData" :key="option.code" :label="option.name"
+                                   :value="option.name"></el-option>
                       </el-select>
                     </div>
                     <div v-else>
-                      <el-select v-model="scope.row.deptCode" disabled placeholder="请选择科室">
-                        <el-option v-for="option in unitData" :key="option.code" :label="option.code"
-                                   :value="option.code"></el-option>
+                      <el-select v-model="scope.row.deptName" disabled placeholder="请选择科室">
+                        <el-option v-for="option in unitData" :key="option.code" :label="option.name"
+                                   :value="option.name"></el-option>
                       </el-select>
                     </div>
                   </template>
                 </el-table-column>
-                <el-table-column prop="deptName" label="科室名称" width="240"></el-table-column>
                 <el-table-column prop="wardCode" label="病房编码" width="100"></el-table-column>
                 <el-table-column prop="wardName" label="病房名称" width="240"></el-table-column>
                 <el-table-column prop="openBedNum" label="开放床位数" width="100">
@@ -206,10 +206,10 @@ const queryUnitCode = (code) => {
 const deptChange = async (row) => {
   await nextTick()
   let dataF = unitData.value.filter((item) => {
-    return item.code === row.deptCode
+    return item.name === row.deptName
   })
   if (dataF) {
-    row.deptName = dataF[0].name
+    row.deptCode = dataF[0].code
     row.wardCode = dataF[0].code
     row.wardName = dataF[0].name
   }

+ 2 - 2
src/views/technology-archives/TechnologyArchivesCore.vue

@@ -454,7 +454,7 @@ const onAddItem = () => {
       name: '',
       opName: '',
       opCode: '',
-      delFlag: '',
+      delFlag: '0',
       comment: '',
       isEdit: true,
       isAdd: true,
@@ -478,7 +478,7 @@ const onAddItem = () => {
       time: '',
       name: '',
       content: '',
-      delFlag: '',
+      delFlag: '0',
       comment: '',
       nameStr: '',
       contentStr: '',

+ 11 - 1
src/views/yp-dict/YpZdDict.vue

@@ -756,7 +756,7 @@
                 </el-col>
                 <el-col :span="6">
                   <el-form-item label="国家医保编码" prop="nationalCode">
-                    <el-input v-if="!isEdit" v-model="ypForm.nationalCode" placeholder="请填写国家医保编码"
+                    <el-input v-if="isEdit" v-model="ypForm.nationalCode" placeholder="请填写国家医保编码"
                               disabled />
                     <el-input v-else v-model="ypForm.nationalCode" placeholder="请填写国家医保编码" />
                   </el-form-item>
@@ -1050,6 +1050,16 @@ const ybxjPriceFormat = () => {
 const submitForm = async (formEl) => {
     if (!formEl) return
 
+    if((ypForm.value.ybFlagNew === 'a' || ypForm.value.ybFlagNew === 'b') && ypForm.value.selfFlagYb === '1'){
+      ElMessage({
+        type: "error",
+        message: '医保甲类/乙类药品不能勾选医保自费,请检查!',
+        duration: 2500,
+        showClose: true,
+      });
+      return
+    }
+
     await formEl.validate((valid, fields) => {
         if (valid) {
             ElMessageBox.confirm('请确认是否保存药品账页字典信息?', {