|
@@ -0,0 +1,138 @@
|
|
|
+<template>
|
|
|
+ <div class="layout_container">
|
|
|
+ <header class="round-header">
|
|
|
+ <el-input
|
|
|
+ v-model="content"
|
|
|
+ placeholder="请输入科室编码/名称"
|
|
|
+ style="width: 300px"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <template #prepend>科室编码/名称</template>
|
|
|
+ </el-input>
|
|
|
+ <el-divider direction="vertical" />
|
|
|
+ <el-button type="primary" icon="Refresh" @click="refreshData(1)">刷新数据</el-button>
|
|
|
+ <el-button type="primary" icon="Plus" @click="showAddRoom">新增诊室</el-button>
|
|
|
+ </header>
|
|
|
+ <div class="layout_main layout_el-table">
|
|
|
+ <el-table :data="roomDisplay" stripe border>
|
|
|
+ <el-table-column prop="deptCode" label="科室编码" />
|
|
|
+ <el-table-column prop="deptName" label="科室名称" />
|
|
|
+ <el-table-column prop="roomCode" label="诊室编码" />
|
|
|
+ <el-table-column prop="roomName" label="诊室名称" />
|
|
|
+ <el-table-column prop="roomNo" label="诊室号" />
|
|
|
+ <el-table-column label="诊室状态">
|
|
|
+ <template #default="{row}">
|
|
|
+ {{row.statusFlag === 0 ? '在线' : '离线'}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template #default="{row}">
|
|
|
+ <el-button icon="Edit" type="primary" @click="showEditRoom(row)">编辑</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <el-drawer v-model="showDrawer" :title="drawerTitle">
|
|
|
+ <el-form :model="currentRoom" label-width="auto" :rules="formRules">
|
|
|
+ <el-form-item label="所属科室" prop="deptName">
|
|
|
+ <el-select v-model="currentRoom.deptCode" filterable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in allDepts"
|
|
|
+ :key="item.code"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.code"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="诊室名称" prop="roomName">
|
|
|
+ <el-input v-model="currentRoom.roomName" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="诊室号" prop="roomNo">
|
|
|
+ <el-input v-model="currentRoom.roomNo" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="诊室状态" prop="statusFlag">
|
|
|
+ <el-select v-model="currentRoom.statusFlag">
|
|
|
+ <el-option label="在线" :value="0"/>
|
|
|
+ <el-option label="离线" :value="1"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <el-button size="default" type="info" @click="showDrawer = false">取消</el-button>
|
|
|
+ <el-button size="default" type="success" @click="submitChange">提交</el-button>
|
|
|
+ </template>
|
|
|
+ </el-drawer>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import {getAllRooms, getDeptList, changeRoomInfo} from "@/api/dictionary/personnel/clinic-room-dict.js";
|
|
|
+import {xcMessage} from "@/utils/xiaochan-element-plus";
|
|
|
+import {ElMessageBox} from "element-plus";
|
|
|
+
|
|
|
+const content = ref('')
|
|
|
+const allDepts = ref([])
|
|
|
+const allRooms = ref([])
|
|
|
+
|
|
|
+const roomDisplay = computed(() => {
|
|
|
+ return allRooms.value.filter(item => {
|
|
|
+ return item.deptCode.indexOf(content.value) !== -1
|
|
|
+ || item.deptName.indexOf(content.value) !== -1
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+function refreshData(m) {
|
|
|
+ getAllRooms().then(res => {
|
|
|
+ allRooms.value = res
|
|
|
+ if (m) {
|
|
|
+ xcMessage.success('刷新数据成功。')
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getDeptList().then(res => {
|
|
|
+ allDepts.value = res
|
|
|
+ refreshData()
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+const showDrawer = ref(false)
|
|
|
+const currentRoom = ref({})
|
|
|
+const drawerTitle = ref('')
|
|
|
+
|
|
|
+const formRules = reactive({
|
|
|
+ deptName: [ { required: true, message: '请选择科室名称', trigger: 'change' } ],
|
|
|
+ roomName: [ { required: true, message: '请输入诊室名称', trigger: 'blur' } ],
|
|
|
+ roomNo: [ { required: true, message: '请输入诊室号', trigger: 'blur' } ],
|
|
|
+ statusFlag: [ { required: true, message: '请选择诊室状态', trigger: 'change' } ],
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+function showEditRoom(row) {
|
|
|
+ drawerTitle.value = '编辑诊室'
|
|
|
+ currentRoom.value = row
|
|
|
+ showDrawer.value = true
|
|
|
+}
|
|
|
+
|
|
|
+function showAddRoom() {
|
|
|
+ drawerTitle.value = '添加诊室'
|
|
|
+ currentRoom.value = {}
|
|
|
+ showDrawer.value = true
|
|
|
+}
|
|
|
+
|
|
|
+function submitChange() {
|
|
|
+ ElMessageBox.confirm('提示',{
|
|
|
+ type: 'warning',
|
|
|
+ message: '是否确认提交?'
|
|
|
+ }).then(() => {
|
|
|
+ changeRoomInfo(currentRoom.value).then(res => {
|
|
|
+ xcMessage.success('操作成功')
|
|
|
+ showDrawer.value = false
|
|
|
+ if (drawerTitle.value === '添加诊室') {
|
|
|
+ allRooms.value.push(res)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
+</script>
|