dev
This commit is contained in:
parent
e98fc8cca8
commit
a961680501
|
|
@ -5,6 +5,7 @@ export enum apiConfig{
|
|||
"ManagerLogin"="manager/user/login",//登录
|
||||
"signIn"="sign/in",//签到
|
||||
"signOut"="sign/out",//签退
|
||||
"getInfo"="manager/user/verify",//获取用户信息
|
||||
/**
|
||||
* 接诊操作
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ const clickFirst = () => {
|
|||
clickItem(ChargeQueueList.value[0])
|
||||
}
|
||||
const getOrderList = () => {
|
||||
debugger
|
||||
post("medical/record/getChargeQueue", {query: query.value}).then(
|
||||
(res: any) => {
|
||||
ChargeQueueList.value = res.list
|
||||
|
|
|
|||
|
|
@ -11,8 +11,9 @@
|
|||
<router-link to="/social" class="menu-item" active-class="active active7">医保</router-link>
|
||||
<router-link to="/statistics" class="menu-item" active-class="active active8">统计</router-link>
|
||||
<router-link to="/settings" class="menu-item" active-class="active active9">设置</router-link>
|
||||
<div class="btn">
|
||||
<el-button :icon="Right" style="float: right;color: #fff" @click="logout" text>退出登录</el-button>
|
||||
<div class="info">
|
||||
<span class="username">{{username}}</span>
|
||||
<el-button class="hover" :icon="Right" style="color: #fff" @click="logout" text>退出登录</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -146,12 +147,24 @@ header {
|
|||
padding: 15px 0;
|
||||
}
|
||||
|
||||
.btn {
|
||||
.info {
|
||||
color: #FFF;
|
||||
font-size: 18px;
|
||||
float: right;
|
||||
margin-right: 24px;
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
align-items: center; // 垂直居中
|
||||
.username{
|
||||
display: inline-block;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
}
|
||||
.hover{
|
||||
margin-left: 10px;
|
||||
cursor: pointer;
|
||||
&:hover{
|
||||
color: #4d6de4 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
|
|
@ -159,8 +172,9 @@ import {useRouter} from 'vue-router'
|
|||
import {type Action, ElMessage, ElMessageBox} from 'element-plus'
|
||||
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
||||
import {post} from "@/utils/request";
|
||||
import {singStatus} from "@/stores/counter.ts";
|
||||
import {Right} from "@element-plus/icons-vue";
|
||||
import {onMounted,ref} from "vue";
|
||||
|
||||
|
||||
let logout = function () {
|
||||
ElMessageBox.confirm(
|
||||
|
|
@ -186,4 +200,13 @@ let logout = function () {
|
|||
useRouter().push("/")
|
||||
})
|
||||
}
|
||||
onMounted(()=>{
|
||||
getInfo()
|
||||
})
|
||||
const username=ref<any>('')
|
||||
const getInfo=()=>{
|
||||
post(apiConfig.getInfo).then((res: any) => {
|
||||
username.value=res.username
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -24,16 +24,16 @@
|
|||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item label="名称">
|
||||
<el-descriptions-item label="姓名">
|
||||
<el-form-item prop="name">
|
||||
<el-input v-model="edit_data.name" placeholder="请输入名称" clearable></el-input>
|
||||
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">
|
||||
<el-form-item prop="gender">
|
||||
<el-radio-group v-model="edit_data.gender">
|
||||
<el-radio value="1">男</el-radio>
|
||||
<el-radio value="2">女</el-radio>
|
||||
<el-radio :value="1">男</el-radio>
|
||||
<el-radio :value="2">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
|
@ -42,6 +42,21 @@
|
|||
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="科室">
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="edit_data.sectionId"
|
||||
placeholder="选择科室"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="医生">
|
||||
<el-form-item prop="organizationDoctorId">
|
||||
<el-select
|
||||
|
|
@ -58,6 +73,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="证件类型">
|
||||
<el-form-item prop="certType">
|
||||
<el-select v-model="edit_data.certType" placeholder="证件类型">
|
||||
|
|
@ -89,8 +105,19 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="备注">
|
||||
<el-descriptions-item label="待遇状态">
|
||||
<el-form-item prop="treatmentStatus">
|
||||
<el-select v-model="edit_data.treatmentStatus" placeholder="待遇状态">
|
||||
<el-option label="新患者" :value="0"></el-option>
|
||||
<el-option label="老患者" :value="1"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item
|
||||
label="备注">
|
||||
<el-form-item>
|
||||
<el-input v-model="edit_data.memo" placeholder="备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
|
|
@ -152,6 +179,8 @@ import Mask from "@/components/common/Mask.vue";
|
|||
import psnCertTypes from "@/assets/config/directory/psnCertTypes.json"
|
||||
import {getKey} from "@/utils/discrotyUtil.ts";
|
||||
import insutypes from "@/assets/config/directory/insutypes.json"
|
||||
import depts from "@/assets/config/directory/depts.json";
|
||||
|
||||
|
||||
// 定义医生选项的接口
|
||||
interface Doctor {
|
||||
|
|
@ -259,6 +288,7 @@ const socialCard: any = ref({
|
|||
const id = ref<any>(null)
|
||||
const init = () => {
|
||||
isShow.value = true
|
||||
list()
|
||||
edit_data.value.organizationDoctorId = props.doctorId
|
||||
id.value = props.id
|
||||
if (id.value) {
|
||||
|
|
@ -299,10 +329,17 @@ const deleteCard = () => {
|
|||
const showBtn = ref(false)
|
||||
const showCardBtn = () => {
|
||||
showBtn.value = true
|
||||
|
||||
}
|
||||
const hide = () => {
|
||||
showBtn.value = false
|
||||
}
|
||||
const sectionList = ref<any>([])
|
||||
const list = () => {
|
||||
post('organization/section/allList').then((res: any) => {
|
||||
sectionList.value = res
|
||||
})
|
||||
}
|
||||
defineExpose({init})
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
|
|
|||
|
|
@ -1,11 +1,32 @@
|
|||
<template>
|
||||
<el-table :data="props.patientList" @row-click="rowClick">
|
||||
<el-table-column prop="createDatetime" label="日期" width="180">
|
||||
<div class="patient-list">
|
||||
<el-table
|
||||
:data="props.patientList"
|
||||
@row-click="rowClick"
|
||||
style="height: 100%"
|
||||
>
|
||||
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
|
||||
<el-table-column prop="gender" label="性别" width="180">
|
||||
<template #default="scope">
|
||||
{{formatDate(scope.row.createDatetime)||'-'}}
|
||||
<img style="width: 25px;height: 25px"
|
||||
:src="scope.row.gender === 1 ? '/public/static/images/member/man.png' :scope.row.gender === 2 ? '/public/static/images/member/women.png':'无'"
|
||||
alt="" srcset="">
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
|
||||
<el-table-column prop="phone" label="手机号" width="180"></el-table-column>
|
||||
<el-table-column prop="status" label="状态" width="180">
|
||||
<template #default="scope">
|
||||
<el-tag
|
||||
:type="scope.row.status === 1 ? 'warning' : scope.row.status === 2 ? 'success' : scope.row.status === 3 ? 'info' : 'danger'"
|
||||
>
|
||||
{{
|
||||
scope.row.status === 1 ? '待诊' : scope.row.status === 2 ? '在诊' : scope.row.status === 3 ? '已诊' : '-'
|
||||
}}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="section_name" label="科室"></el-table-column>
|
||||
<el-table-column prop="organizationDoctorId" label="医生">
|
||||
<template #default="scope">
|
||||
{{ roleList.find((item: any) => item.id === scope.row.organizationDoctorId)?.name || '-' }}
|
||||
|
|
@ -16,13 +37,20 @@
|
|||
{{ visitType[scope.row.visitType] || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createDatetime" label="挂号日期" width="180">
|
||||
<template #default="scope">
|
||||
{{ formatDate(scope.row.createDatetime) || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="memo" label="备注"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import {defineProps, onMounted, ref} from 'vue'
|
||||
import {formatDate} from "@/utils/dateUtils.ts";
|
||||
import {post} from "@/utils/request.ts";
|
||||
|
||||
const props = defineProps({
|
||||
patientList: {
|
||||
type: Array,
|
||||
|
|
@ -52,5 +80,9 @@ const rowClick = (row: any) => {
|
|||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
||||
.patient-list {
|
||||
width: 100%;
|
||||
padding: 0 24px;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -12,6 +12,7 @@ import {useWsStore} from "@/stores/wsStore.ts";
|
|||
const username = ref('')
|
||||
const password = ref('')
|
||||
const router = useRouter();
|
||||
const loading = ref(false)
|
||||
|
||||
interface NetWorkType {
|
||||
ip: string,
|
||||
|
|
@ -25,6 +26,7 @@ const netWork = ref<NetWorkType>({
|
|||
|
||||
|
||||
const handleLogin = () => {
|
||||
loading.value = true
|
||||
if (netWork.value.mac == "00-00-00-00-00") {
|
||||
//提示 获取本地IP地址失败,将使用默认IP地址
|
||||
ElMessage({
|
||||
|
|
@ -33,33 +35,40 @@ const handleLogin = () => {
|
|||
duration: 1000,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
post(apiConfig.ManagerLogin, {username: username.value, password: password.value}).then((token: any) => {
|
||||
post(apiConfig.ManagerLogin, {username: username.value, password: password.value},{catch_error: true}).then((token: any) => {
|
||||
localStorage.setItem('token', token)
|
||||
//签到,如果 签到成功,则直接调用success,如果失败,调用error
|
||||
ElMessage({
|
||||
message: "登录成功,正在读卡签到,请稍后...",
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
})
|
||||
post(apiConfig.signIn, {mac: netWork.value.mac, ip: netWork.value.ip}, {catch_error: true}).then((res: any) => {
|
||||
success()
|
||||
}).catch(() => {
|
||||
error()
|
||||
})
|
||||
}).catch(() => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const success = () => {
|
||||
ElMessage({
|
||||
message: "登录成功,即将为您跳转到首页",
|
||||
loading.value = false
|
||||
ElMessageBox.alert('登录成功且签到,即将为您进入到首页', '签到提示', {
|
||||
type:'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
showClose: false,
|
||||
callback: (action: Action) => {
|
||||
router.push("/home/index")
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
const error = () => {
|
||||
ElMessageBox.alert('签到失败,我们将已非签到模式启动系统', '签到提示', {
|
||||
loading.value = false
|
||||
ElMessageBox.alert('读卡签到失败,我们将以非签到模式启动系统', '签到提示', {
|
||||
confirmButtonText: '确定',
|
||||
type:'error',
|
||||
showClose: false,
|
||||
callback: (action: Action) => {
|
||||
router.push("/home/index")
|
||||
|
|
@ -105,7 +114,10 @@ const showAuth = () => {
|
|||
<div class="particle particle-4"></div>
|
||||
</div>
|
||||
|
||||
<div class="login-card">
|
||||
<div class="login-card"
|
||||
v-loading="loading"
|
||||
element-loading-text="正在登录,请稍候......"
|
||||
>
|
||||
<h1 class="title">欢迎使用药慧精灵</h1>
|
||||
<div class="input-group">
|
||||
<i class="fas fa-user input-icon"></i>
|
||||
|
|
|
|||
|
|
@ -205,6 +205,7 @@ watch(() => registerId.value, (newValue) => {
|
|||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
|
||||
.case {
|
||||
background: #FFFFFF;
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@
|
|||
<div class="role_list">
|
||||
<ul>
|
||||
<li v-for="(item, index) in roleList" :key="index"
|
||||
@click="isShowNum=index">
|
||||
@click="openDialog(item,index)" :class="{active:isShowNum==index}" >
|
||||
<span class="name">{{ item.name }}</span>
|
||||
<span class="section_name">{{ item.sectionName }}</span>
|
||||
<span class="btn" @click="openDialog(item)">挂号</span>
|
||||
<span class="btn">挂号</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -77,7 +77,7 @@ import {formatDate, getToday, formatDateArray} from "@/utils/dateUtils.ts";
|
|||
import Calendar from "@/components/common/Calendar.vue";
|
||||
import Panel from "@/components/common/Panel.vue";
|
||||
|
||||
const isShowNum = ref(0)
|
||||
const isShowNum = ref(-1)
|
||||
const roleList = ref<any>([])
|
||||
|
||||
onMounted(() => {
|
||||
|
|
@ -129,7 +129,8 @@ const rowClick = (row: any) => {
|
|||
})
|
||||
}
|
||||
const editRef = ref<any>('')
|
||||
const openDialog = (item: any) => {
|
||||
const openDialog = (item: any,index: any) => {
|
||||
isShowNum.value=index
|
||||
doctorId.value = item.id
|
||||
nextTick(() => {
|
||||
editRef.value?.init()
|
||||
|
|
@ -171,31 +172,42 @@ const close = () => {
|
|||
height: 50px;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
border-radius: 5px;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: #4D6DE4;
|
||||
|
||||
.name {
|
||||
color: #999;
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.section_name {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.btn {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
color: #999;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.section_name {
|
||||
flex: 1;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.btn {
|
||||
width: 50px;
|
||||
color: #b9b9ba;
|
||||
border: 1px solid #b9b9ba;
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
background: #4D6DE4;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -209,13 +221,28 @@ const close = () => {
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.active {
|
||||
background: #4D6DE4;
|
||||
|
||||
.name {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.section_name {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.btn {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
margin-left: 20px;
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
|
||||
min-width: 0;
|
||||
.right-content {
|
||||
padding-left: 20px;
|
||||
display: flex;
|
||||
|
|
|
|||
Loading…
Reference in New Issue