|
@@ -0,0 +1,267 @@
|
|
|
+<template>
|
|
|
+ <el-container>
|
|
|
+ <el-aside width="40%">
|
|
|
+ <page-layer>
|
|
|
+ <template #header>
|
|
|
+ 医生:
|
|
|
+ <SelectStaffCode v-model="asideQueryParam" :name="['code','nameDoctor']"></SelectStaffCode>
|
|
|
+ <el-button icon="Search" type="primary" @click="queryInfo">查询</el-button>
|
|
|
+ <el-button type="success" @click="addInfo">添加</el-button>
|
|
|
+ </template>
|
|
|
+ <template #main>
|
|
|
+ <el-table :data="asideTableData"
|
|
|
+ :height="windowSize.h - 100" highlight-current-row @row-click="selectDoctor">
|
|
|
+ <el-table-column label="医生编码" prop="code"></el-table-column>
|
|
|
+ <el-table-column label="医生工号" prop="codeDoctor"></el-table-column>
|
|
|
+ <el-table-column label="医生姓名" prop="nameDoctor"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ small
|
|
|
+ :current-page="asideQueryParam.currentPage"
|
|
|
+ :page-size="asideQueryParam.pageSize"
|
|
|
+ :page-sizes="[20, 30, 40, 50]"
|
|
|
+ :total="asideQueryParam.total"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ style="margin-top: 5px"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ ></el-pagination>
|
|
|
+ </template>
|
|
|
+ </page-layer>
|
|
|
+ </el-aside>
|
|
|
+ <el-main>
|
|
|
+ <div style="width: 100%;height: 100%;display: flex">
|
|
|
+ <div style="width: 45%">
|
|
|
+ <div style="color: #1294fb;text-align: center;margin-bottom: 5px">
|
|
|
+ 请选择要配置的手术
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div>
|
|
|
+ 关键字:
|
|
|
+ <el-input v-model="leftQueryParam.code" placeholder="支持手术编码,名称,拼音" clearable prefix-icon="Search" style="width: 170px"/>
|
|
|
+ <el-button icon="Search" type="primary" @click="queryidc9Info">查询</el-button>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-table :data="leftTableData"
|
|
|
+ :height="windowSize.h - 100" @selection-change="handleSelectionChange" highlight-current-row>
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
+ <el-table-column label="手术编码" prop="code"></el-table-column>
|
|
|
+ <el-table-column label="手术名称" prop="name" show-overflow-tooltip></el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-pagination
|
|
|
+ small
|
|
|
+ :current-page="leftQueryParam.currentPage"
|
|
|
+ :page-size="leftQueryParam.pageSize"
|
|
|
+ :page-sizes="[20, 30, 40, 50]"
|
|
|
+ :total="leftQueryParam.total"
|
|
|
+ layout="total, sizes, prev, pager, next"
|
|
|
+ style="margin-top: 5px"
|
|
|
+ @size-change="leftHandleSizeChange"
|
|
|
+ @current-change="leftHandleCurrentChange"
|
|
|
+ ></el-pagination>
|
|
|
+ </div>
|
|
|
+ <div style="width: 5%;height:89%;display: flex;align-items: center">
|
|
|
+ <div style="width: 10px;height: 10px;padding-left: 12px;cursor: pointer" @click="addRight">></div>
|
|
|
+ </div>
|
|
|
+ <div style="width: 45%">
|
|
|
+ <div style="color: #1294fb;text-align: center;margin-bottom: 5px">
|
|
|
+ 已配置的手术
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div>
|
|
|
+ <el-button type="success" @click="saveInfo">保存</el-button>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-table :data="mainTableData"
|
|
|
+ :height="windowSize.h - 100" highlight-current-row>
|
|
|
+ <el-table-column label="手术编码" prop="codeOp"></el-table-column>
|
|
|
+ <el-table-column label="手术名称" prop="codeOpName" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-popconfirm
|
|
|
+ cancel-button-text="取消"
|
|
|
+ confirm-button-text="确认"
|
|
|
+ icon="Info"
|
|
|
+ iconColor="#F56C6C"
|
|
|
+ title="是否删除"
|
|
|
+ @confirm="delClick(scope.$index, scope.row)"
|
|
|
+ >
|
|
|
+ <template #reference>
|
|
|
+ <el-button size="small" type="danger">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-popconfirm>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-main>
|
|
|
+ </el-container>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup name="OprtDoctorLevel">
|
|
|
+import SelectStaffCode from '@/components/SelectStaffCode.vue'
|
|
|
+import {queryOpLevelManagement, saveOpLevelManagement,queryOprtInfo,getEmpCodeRs,queryZdIcd9Cm3} from '@/api/dictionary/oprt-lecel'
|
|
|
+import {computed} from 'vue'
|
|
|
+import store from '@/store'
|
|
|
+import {stringIsBlank} from '@/utils/blank-utils'
|
|
|
+import {ElMessage} from 'element-plus'
|
|
|
+import PageLayer from "@/layout/PageLayer";
|
|
|
+import { Check, Close } from '@element-plus/icons-vue'
|
|
|
+
|
|
|
+const value1 = ref(true)
|
|
|
+const windowSize = computed(() => {
|
|
|
+ return store.state.app.windowSize
|
|
|
+})
|
|
|
+const asideQueryParam = ref({
|
|
|
+ nameDoctor:'',
|
|
|
+ codeDoctor:'',
|
|
|
+ code:'',
|
|
|
+ currentPage:1,
|
|
|
+ pageSize:30,
|
|
|
+ total:0,
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+const leftQueryParam = ref({
|
|
|
+ code:'',
|
|
|
+ opScaleList:[3,4],
|
|
|
+ currentPage:1,
|
|
|
+ pageSize:30,
|
|
|
+ total:0,
|
|
|
+})
|
|
|
+
|
|
|
+const mainQueryParam = ref({
|
|
|
+ code:'',
|
|
|
+ codeOp:'',
|
|
|
+ codeOpName:'',
|
|
|
+ currentPage:1,
|
|
|
+ pageSize:100000,
|
|
|
+ total:0,
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+const asideTableData = ref([])
|
|
|
+
|
|
|
+const mainTableData = ref([])
|
|
|
+const leftTableData = ref([])
|
|
|
+
|
|
|
+const queryidc9Info = ()=>{
|
|
|
+ queryZdIcd9Cm3(leftQueryParam.value).then((res)=>{
|
|
|
+ leftTableData.value = res.records
|
|
|
+ leftQueryParam.value.total = res.total
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const selectionDoctor = ref({})
|
|
|
+
|
|
|
+const selectDoctor = (row)=>{
|
|
|
+ selectionDoctor.value = row
|
|
|
+ mainQueryParam.value.code = row.code
|
|
|
+ queryidc9Info()
|
|
|
+ oprtQueryInfo()
|
|
|
+}
|
|
|
+
|
|
|
+const queryInfo = ()=>{
|
|
|
+ queryOpLevelManagement(asideQueryParam.value).then((res)=>{
|
|
|
+ asideTableData.value = res.records
|
|
|
+ asideQueryParam.value.total = res.total
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const oprtQueryInfo=()=>{
|
|
|
+ queryOprtInfo(mainQueryParam.value).then((res)=>{
|
|
|
+ mainTableData.value = res.records
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+const addInfo=()=>{
|
|
|
+ getEmpCodeRs(asideQueryParam.value.code).then((res)=>{
|
|
|
+ asideQueryParam.value.codeDoctor =res
|
|
|
+ asideTableData.value.unshift({code:asideQueryParam.value.code,codeDoctor:asideQueryParam.value.codeDoctor,nameDoctor:asideQueryParam.value.nameDoctor})
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const handleSizeChange = (val) => {
|
|
|
+ asideQueryParam.value.pageSize = val
|
|
|
+ queryInfo()
|
|
|
+}
|
|
|
+
|
|
|
+const leftHandleSizeChange = (val) => {
|
|
|
+ leftQueryParam.value.pageSize = val
|
|
|
+ queryidc9Info()
|
|
|
+}
|
|
|
+
|
|
|
+const handleCurrentChange = (val) => {
|
|
|
+ asideQueryParam.value.currentPage = val
|
|
|
+ queryInfo()
|
|
|
+}
|
|
|
+
|
|
|
+const leftHandleCurrentChange = (val) => {
|
|
|
+ leftQueryParam.value.currentPage = val
|
|
|
+ queryidc9Info()
|
|
|
+}
|
|
|
+
|
|
|
+const multipleSelection = ref([])
|
|
|
+const handleSelectionChange=(val)=>{
|
|
|
+ multipleSelection.value = val
|
|
|
+}
|
|
|
+
|
|
|
+const addRight = ()=>{
|
|
|
+ if(multipleSelection.value.length <=0){
|
|
|
+ ElMessage.error('请至少选择一条手术')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for (let i = multipleSelection.value.length-1; i >= 0 ; i--) {
|
|
|
+ let temp = {
|
|
|
+ codeOp:multipleSelection.value[i].code,
|
|
|
+ codeOpName:multipleSelection.value[i].name,
|
|
|
+ }
|
|
|
+ if(isInclude(mainTableData.value,multipleSelection.value[i].code)){
|
|
|
+ ElMessage.error(`手术编码${multipleSelection.value[i].code}已有,请不要重复添加`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mainTableData.value.unshift(temp)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+function isInclude(data,code){
|
|
|
+ for (let i = 0; i <data.length ; i++) {
|
|
|
+ if(data[i].codeOp===code){
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false
|
|
|
+}
|
|
|
+
|
|
|
+const saveInfo =()=>{
|
|
|
+
|
|
|
+ let param = {
|
|
|
+ code:selectionDoctor.value.code,
|
|
|
+ codeDoctor:selectionDoctor.value.codeDoctor,
|
|
|
+ nameDoctor:selectionDoctor.value.nameDoctor,
|
|
|
+ saveData:mainTableData.value
|
|
|
+ }
|
|
|
+ saveOpLevelManagement(param).then((res)=>{
|
|
|
+
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const delClick=(index,row)=>{
|
|
|
+ mainTableData.value.splice(index, 1)
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|