add
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@@ -65,6 +65,17 @@
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
<compilerArgs>
|
||||
<arg>-parameters</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
CREATE DATABASE IF NOT EXISTS nursing_home DEFAULT CHARACTER SET utf8mb4;
|
||||
CREATE DATABASE IF NOT EXISTS nursing_home DEFAULT CHARACTER SET utf8mb4;
|
||||
USE nursing_home;
|
||||
|
||||
DROP TABLE IF EXISTS payment_record;
|
||||
@@ -141,3 +141,60 @@ CREATE TABLE payment_record (
|
||||
|
||||
INSERT INTO sys_user(username, password, name, phone, role, status)
|
||||
VALUES ('admin', 'admin123', 'Administrator', '13800000000', 'ADMIN', 1);
|
||||
|
||||
INSERT INTO sys_user(username, password, name, phone, role, status)
|
||||
VALUES
|
||||
('nurse1', 'nurse123', '护工刘敏', '13800000001', 'NURSE', 1),
|
||||
('nurse2', 'nurse123', '护工张凯', '13800000002', 'NURSE', 1),
|
||||
('family1', 'family123', '家属王伟', '13800000003', 'FAMILY', 1);
|
||||
|
||||
INSERT INTO elder(name, gender, id_card, birthday, room_no, check_in_date, care_level, status, remark)
|
||||
VALUES
|
||||
('陈国强', 'M', '110101194001010011', '1940-01-01', 'A101', '2023-01-10', '一级', '在住', '糖尿病史'),
|
||||
('李秀兰', 'F', '110101194502020022', '1945-02-02', 'A102', '2023-02-15', '二级', '在住', '需要日常护理'),
|
||||
('王德华', 'M', '110101195003030033', '1950-03-03', 'B201', '2023-03-20', '一级', '在住', '身体状况良好');
|
||||
|
||||
INSERT INTO family_elder(family_id, elder_id, relationship)
|
||||
VALUES
|
||||
(3, 1, '儿子'),
|
||||
(3, 2, '女儿');
|
||||
|
||||
INSERT INTO schedule(nurse_id, date, shift, task)
|
||||
VALUES
|
||||
(2, '2024-06-01', '早班', 'A区日常巡查'),
|
||||
(2, '2024-06-02', '夜班', 'A区夜间护理'),
|
||||
(3, '2024-06-01', '中班', 'B区护理支持');
|
||||
|
||||
INSERT INTO care_record(elder_id, nurse_id, content, attachment_url, record_time)
|
||||
VALUES
|
||||
(1, 2, '协助用餐与日常清洁', NULL, '2024-06-01 09:30:00'),
|
||||
(2, 3, '协助进行下肢活动训练', NULL, '2024-06-01 14:10:00');
|
||||
|
||||
INSERT INTO health_record(elder_id, nurse_id, temperature, bp_systolic, bp_diastolic, heart_rate, note, record_time)
|
||||
VALUES
|
||||
(1, 2, 36.6, 120, 80, 72, '正常', '2024-06-01 09:45:00'),
|
||||
(2, 3, 36.8, 130, 85, 78, '血压略高', '2024-06-01 14:20:00');
|
||||
|
||||
INSERT INTO handover(nurse_id, date, content)
|
||||
VALUES
|
||||
(2, '2024-06-01', 'A区平稳,晚餐后关注陈国强'),
|
||||
(3, '2024-06-01', 'B区训练完成,无异常情况');
|
||||
|
||||
INSERT INTO notice(title, content, target_role, target_user_id, created_by)
|
||||
VALUES
|
||||
('培训通知', '本周五10点进行消防演练培训', 'NURSE', NULL, 1),
|
||||
('探视时间', '探视时间更新为 14:00-17:00', 'FAMILY', NULL, 1),
|
||||
('全员会议', '周一上午召开月度会议', 'ALL', NULL, 1);
|
||||
|
||||
INSERT INTO feedback(family_id, elder_id, type, content, rating, status)
|
||||
VALUES
|
||||
(3, 1, 'SUGGESTION', '建议餐食增加蔬菜比例', 4, 'NEW');
|
||||
|
||||
INSERT INTO bill(elder_id, month, bed_fee, care_fee, meal_fee, other_fee, total, status)
|
||||
VALUES
|
||||
(1, '2024-05', 2000.00, 1500.00, 800.00, 0.00, 4300.00, 'UNPAID'),
|
||||
(2, '2024-05', 2000.00, 1800.00, 800.00, 100.00, 4700.00, 'PAID');
|
||||
|
||||
INSERT INTO payment_record(bill_id, family_id, amount, method, paid_at)
|
||||
VALUES
|
||||
(2, 3, 4700.00, 'ONLINE', '2024-05-28 10:00:00');
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome;
|
||||
package com.nursinghome;
|
||||
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.common;
|
||||
package com.nursinghome.common;
|
||||
|
||||
public class ApiException extends RuntimeException {
|
||||
public ApiException(String message) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.common;
|
||||
package com.nursinghome.common;
|
||||
|
||||
public class ApiResponse<T> {
|
||||
private int code;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.common;
|
||||
package com.nursinghome.common;
|
||||
|
||||
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.config;
|
||||
package com.nursinghome.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.config;
|
||||
package com.nursinghome.config;
|
||||
|
||||
import cn.dev33.satoken.stp.StpInterface;
|
||||
import com.nursinghome.entity.User;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.config;
|
||||
package com.nursinghome.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.controller;
|
||||
package com.nursinghome.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.controller;
|
||||
package com.nursinghome.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.controller;
|
||||
package com.nursinghome.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.controller;
|
||||
package com.nursinghome.controller;
|
||||
|
||||
import com.nursinghome.common.ApiResponse;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.controller;
|
||||
package com.nursinghome.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
public class FeedbackRequest {
|
||||
private Long elderId;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
public class FeedbackUpdateRequest {
|
||||
private Long id;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
public class NoticeRequest {
|
||||
private String title;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
public class PayRequest {
|
||||
private String method;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
public class UserRequest {
|
||||
private String username;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.dto;
|
||||
package com.nursinghome.dto;
|
||||
|
||||
public class UserUpdateRequest {
|
||||
private Long id;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.entity;
|
||||
package com.nursinghome.entity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.Bill;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.CareRecord;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.Elder;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.FamilyElder;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.Feedback;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.Handover;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.HealthRecord;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.Notice;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.PaymentRecord;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.Schedule;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.mapper;
|
||||
package com.nursinghome.mapper;
|
||||
|
||||
import com.nursinghome.entity.User;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.service;
|
||||
package com.nursinghome.service;
|
||||
|
||||
import com.nursinghome.entity.Bill;
|
||||
import com.nursinghome.entity.PaymentRecord;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.service;
|
||||
package com.nursinghome.service;
|
||||
|
||||
import com.nursinghome.common.ApiException;
|
||||
import com.nursinghome.entity.Elder;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.service;
|
||||
package com.nursinghome.service;
|
||||
|
||||
import com.nursinghome.common.ApiException;
|
||||
import com.nursinghome.entity.Elder;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.service;
|
||||
package com.nursinghome.service;
|
||||
|
||||
import com.nursinghome.common.ApiException;
|
||||
import com.nursinghome.entity.User;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.nursinghome.util;
|
||||
package com.nursinghome.util;
|
||||
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
server:
|
||||
server:
|
||||
port: 8080
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://localhost:3306/nursing_home?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
|
||||
url: jdbc:mysql://localhost:3307/nursing_home?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
|
||||
username: root
|
||||
password: root
|
||||
password: qq5211314
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
servlet:
|
||||
multipart:
|
||||
@@ -23,6 +23,7 @@ sa-token:
|
||||
is-concurrent: true
|
||||
is-share: true
|
||||
token-style: uuid
|
||||
active-timeout: -1
|
||||
|
||||
app:
|
||||
upload-dir: uploads
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
{
|
||||
"name": "nursing-home-frontend",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
@@ -8,6 +8,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^1.6.8",
|
||||
"core-js": "^3.36.0",
|
||||
"element-ui": "^2.15.14",
|
||||
"vue": "^2.7.16",
|
||||
"vue-router": "^3.6.5"
|
||||
@@ -15,8 +16,12 @@
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^5.0.8",
|
||||
"@vue/cli-service": "^5.0.8",
|
||||
"@babel/preset-env": "7.23.9",
|
||||
"babel-core": "^7.0.0-bridge.0",
|
||||
"babel-loader": "^8.3.0",
|
||||
"vue-template-compiler": "^2.7.16"
|
||||
},
|
||||
"overrides": {
|
||||
"@babel/preset-env": "7.23.9"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Nursing Home</title>
|
||||
<title>颐云养老院管理平台</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<el-container style="min-height: 100vh;">
|
||||
<el-aside width="220px" style="background: #0f2f23; color: #fff;">
|
||||
<div style="padding: 18px 16px; font-size: 18px; font-weight: 600;">
|
||||
Nursing Home
|
||||
颐云养老院管理平台
|
||||
</div>
|
||||
<el-menu
|
||||
:default-active="activeMenu"
|
||||
@@ -16,12 +16,12 @@
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<div class="header-bar">
|
||||
<el-header class="header-bar">
|
||||
<div>{{ roleLabel }}</div>
|
||||
<div>
|
||||
<el-button size="mini" type="primary" @click="handleLogout">Logout</el-button>
|
||||
<el-button size="mini" type="primary" @click="handleLogout">退出登录</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main>
|
||||
<router-view />
|
||||
</el-main>
|
||||
@@ -42,42 +42,42 @@ export default {
|
||||
menu() {
|
||||
if (this.role === "ADMIN") {
|
||||
return [
|
||||
{ path: "/admin/dashboard", label: "Dashboard" },
|
||||
{ path: "/admin/users", label: "Users" },
|
||||
{ path: "/admin/elders", label: "Elders" },
|
||||
{ path: "/admin/schedules", label: "Schedules" },
|
||||
{ path: "/admin/bills", label: "Bills" },
|
||||
{ path: "/admin/feedback", label: "Feedback" },
|
||||
{ path: "/admin/notices", label: "Notices" }
|
||||
{ path: "/admin/dashboard", label: "运营概览" },
|
||||
{ path: "/admin/users", label: "账号管理" },
|
||||
{ path: "/admin/elders", label: "长者档案" },
|
||||
{ path: "/admin/schedules", label: "排班管理" },
|
||||
{ path: "/admin/bills", label: "账单管理" },
|
||||
{ path: "/admin/feedback", label: "反馈处理" },
|
||||
{ path: "/admin/notices", label: "通知公告" }
|
||||
];
|
||||
}
|
||||
if (this.role === "NURSE") {
|
||||
return [
|
||||
{ path: "/nurse/dashboard", label: "Dashboard" },
|
||||
{ path: "/nurse/schedules", label: "My Schedule" },
|
||||
{ path: "/nurse/care", label: "Care Records" },
|
||||
{ path: "/nurse/health", label: "Health Records" },
|
||||
{ path: "/nurse/handovers", label: "Handovers" },
|
||||
{ path: "/nurse/notices", label: "Notices" }
|
||||
{ path: "/nurse/dashboard", label: "工作台" },
|
||||
{ path: "/nurse/schedules", label: "我的排班" },
|
||||
{ path: "/nurse/care", label: "护理记录" },
|
||||
{ path: "/nurse/health", label: "健康监测" },
|
||||
{ path: "/nurse/handovers", label: "交班记录" },
|
||||
{ path: "/nurse/notices", label: "通知中心" }
|
||||
];
|
||||
}
|
||||
return [
|
||||
{ path: "/family/dashboard", label: "Dashboard" },
|
||||
{ path: "/family/elders", label: "Elders" },
|
||||
{ path: "/family/care", label: "Daily Care" },
|
||||
{ path: "/family/health", label: "Health" },
|
||||
{ path: "/family/bills", label: "Bills" },
|
||||
{ path: "/family/feedback", label: "Feedback" },
|
||||
{ path: "/family/notices", label: "Notices" }
|
||||
{ path: "/family/dashboard", label: "家属首页" },
|
||||
{ path: "/family/elders", label: "亲人档案" },
|
||||
{ path: "/family/care", label: "每日动态" },
|
||||
{ path: "/family/health", label: "健康记录" },
|
||||
{ path: "/family/bills", label: "账单支付" },
|
||||
{ path: "/family/feedback", label: "服务反馈" },
|
||||
{ path: "/family/notices", label: "通知中心" }
|
||||
];
|
||||
},
|
||||
activeMenu() {
|
||||
return this.$route.path;
|
||||
},
|
||||
roleLabel() {
|
||||
if (this.role === "ADMIN") return "Administrator";
|
||||
if (this.role === "NURSE") return "Nurse";
|
||||
return "Family";
|
||||
if (this.role === "ADMIN") return "管理员";
|
||||
if (this.role === "NURSE") return "护工";
|
||||
return "家属";
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<template>
|
||||
<div class="login-page">
|
||||
<div class="login-card">
|
||||
<h2>Welcome Back</h2>
|
||||
<h2>欢迎登录</h2>
|
||||
<el-form :model="form" label-position="top">
|
||||
<el-form-item label="Username">
|
||||
<el-input v-model="form.username" placeholder="username"></el-input>
|
||||
<el-form-item label="账号">
|
||||
<el-input v-model="form.username" placeholder="请输入账号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Password">
|
||||
<el-input v-model="form.password" type="password" placeholder="password"></el-input>
|
||||
<el-form-item label="密码">
|
||||
<el-input v-model="form.password" type="password" placeholder="请输入密码"></el-input>
|
||||
</el-form-item>
|
||||
<el-button type="primary" style="width: 100%;" @click="handleLogin">Login</el-button>
|
||||
<el-button type="primary" style="width: 100%;" @click="handleLogin">登录</el-button>
|
||||
</el-form>
|
||||
<div class="login-footer">
|
||||
<span>No account?</span>
|
||||
<el-button type="text" @click="$router.push('/register')">Register</el-button>
|
||||
<span>还没有账号?</span>
|
||||
<el-button type="text" @click="$router.push('/register')">注册</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
<template>
|
||||
<div class="login-page">
|
||||
<div class="login-card">
|
||||
<h2>Family Register</h2>
|
||||
<h2>家属注册</h2>
|
||||
<el-form :model="form" label-position="top">
|
||||
<el-form-item label="Username">
|
||||
<el-form-item label="账号">
|
||||
<el-input v-model="form.username"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Password">
|
||||
<el-form-item label="密码">
|
||||
<el-input v-model="form.password" type="password"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Name">
|
||||
<el-form-item label="姓名">
|
||||
<el-input v-model="form.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Phone">
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="form.phone"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Elder ID Card">
|
||||
<el-form-item label="亲属身份证号">
|
||||
<el-input v-model="form.elderIdCard"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Relationship">
|
||||
<el-input v-model="form.relationship" placeholder="son/daughter/spouse"></el-input>
|
||||
<el-form-item label="关系">
|
||||
<el-input v-model="form.relationship" placeholder="如:儿子/女儿/配偶"></el-input>
|
||||
</el-form-item>
|
||||
<el-button type="primary" style="width: 100%;" @click="handleRegister">Register</el-button>
|
||||
<el-button type="primary" style="width: 100%;" @click="handleRegister">注册</el-button>
|
||||
</el-form>
|
||||
<div class="login-footer">
|
||||
<el-button type="text" @click="$router.push('/login')">Back to Login</el-button>
|
||||
<el-button type="text" @click="$router.push('/login')">返回登录</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Billing</h3>
|
||||
<h3>账单管理</h3>
|
||||
<div style="display:flex; gap: 12px; margin-bottom: 12px;">
|
||||
<el-input v-model="filterElderId" placeholder="Elder ID" style="width: 200px;" />
|
||||
<el-button type="primary" @click="load">Search</el-button>
|
||||
<el-button @click="showCreate = true">New Bill</el-button>
|
||||
<el-input v-model="filterElderId" placeholder="长者ID" style="width: 200px;" />
|
||||
<el-button type="primary" @click="load">查询</el-button>
|
||||
<el-button @click="showCreate = true">新建账单</el-button>
|
||||
</div>
|
||||
<el-table :data="bills" stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column prop="elderId" label="Elder ID" width="100" />
|
||||
<el-table-column prop="month" label="Month" />
|
||||
<el-table-column prop="total" label="Total" />
|
||||
<el-table-column prop="status" label="Status" />
|
||||
<el-table-column prop="id" label="编号" width="80" />
|
||||
<el-table-column prop="elderId" label="长者ID" width="100" />
|
||||
<el-table-column prop="month" label="月份" />
|
||||
<el-table-column prop="total" label="金额" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
</el-table>
|
||||
|
||||
<el-dialog title="New Bill" :visible.sync="showCreate">
|
||||
<el-dialog title="新建账单" :visible.sync="showCreate">
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Elder ID"><el-input v-model="form.elderId"/></el-form-item>
|
||||
<el-form-item label="Month"><el-input v-model="form.month" placeholder="YYYY-MM"/></el-form-item>
|
||||
<el-form-item label="Bed Fee"><el-input v-model="form.bedFee"/></el-form-item>
|
||||
<el-form-item label="Care Fee"><el-input v-model="form.careFee"/></el-form-item>
|
||||
<el-form-item label="Meal Fee"><el-input v-model="form.mealFee"/></el-form-item>
|
||||
<el-form-item label="Other Fee"><el-input v-model="form.otherFee"/></el-form-item>
|
||||
<el-form-item label="长者ID"><el-input v-model="form.elderId"/></el-form-item>
|
||||
<el-form-item label="月份"><el-input v-model="form.month" placeholder="YYYY-MM"/></el-form-item>
|
||||
<el-form-item label="床位费"><el-input v-model="form.bedFee"/></el-form-item>
|
||||
<el-form-item label="护理费"><el-input v-model="form.careFee"/></el-form-item>
|
||||
<el-form-item label="餐饮费"><el-input v-model="form.mealFee"/></el-form-item>
|
||||
<el-form-item label="其他费用"><el-input v-model="form.otherFee"/></el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showCreate = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="create">Create</el-button>
|
||||
<el-button @click="showCreate = false">取消</el-button>
|
||||
<el-button type="primary" @click="create">创建</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Admin Dashboard</h3>
|
||||
<h3>运营概览</h3>
|
||||
<el-row :gutter="16" style="margin-top: 12px;">
|
||||
<el-col :span="6">
|
||||
<el-card>
|
||||
<div>Elders</div>
|
||||
<div>在住长者</div>
|
||||
<h2>{{ stats.elders }}</h2>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-card>
|
||||
<div>Nurses</div>
|
||||
<div>护工数量</div>
|
||||
<h2>{{ stats.nurses }}</h2>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-card>
|
||||
<div>Families</div>
|
||||
<div>家属数量</div>
|
||||
<h2>{{ stats.families }}</h2>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-card>
|
||||
<div>Income</div>
|
||||
<div>累计收入</div>
|
||||
<h2>{{ stats.income }}</h2>
|
||||
</el-card>
|
||||
</el-col>
|
||||
|
||||
@@ -1,57 +1,89 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<div style="display:flex; justify-content: space-between; align-items:center;">
|
||||
<h3>Elders</h3>
|
||||
<el-button type="primary" @click="showCreate = true">Add Elder</el-button>
|
||||
<h3>长者档案</h3>
|
||||
<el-button type="primary" @click="showCreate = true">新增长者</el-button>
|
||||
</div>
|
||||
<el-table :data="elders" stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column prop="name" label="Name" />
|
||||
<el-table-column prop="gender" label="Gender" width="80" />
|
||||
<el-table-column prop="idCard" label="ID Card" />
|
||||
<el-table-column prop="roomNo" label="Room" width="100" />
|
||||
<el-table-column prop="careLevel" label="Care Level" />
|
||||
<el-table-column label="Actions" width="200">
|
||||
<el-table-column prop="id" label="编号" width="80" />
|
||||
<el-table-column prop="name" label="姓名" />
|
||||
<el-table-column prop="gender" label="性别" width="80" />
|
||||
<el-table-column prop="idCard" label="身份证号" />
|
||||
<el-table-column prop="roomNo" label="房间号" width="100" />
|
||||
<el-table-column prop="careLevel" label="护理等级" />
|
||||
<el-table-column label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="editElder(scope.row)">Edit</el-button>
|
||||
<el-button size="mini" type="danger" @click="deleteElder(scope.row)">Delete</el-button>
|
||||
<el-button size="mini" @click="editElder(scope.row)">编辑</el-button>
|
||||
<el-button size="mini" type="danger" @click="deleteElder(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog title="Add Elder" :visible.sync="showCreate">
|
||||
<el-dialog title="新增长者" :visible.sync="showCreate">
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Name"><el-input v-model="form.name"/></el-form-item>
|
||||
<el-form-item label="Gender"><el-input v-model="form.gender"/></el-form-item>
|
||||
<el-form-item label="ID Card"><el-input v-model="form.idCard"/></el-form-item>
|
||||
<el-form-item label="Birthday"><el-date-picker v-model="form.birthday" type="date"/></el-form-item>
|
||||
<el-form-item label="Room No"><el-input v-model="form.roomNo"/></el-form-item>
|
||||
<el-form-item label="Check In"><el-date-picker v-model="form.checkInDate" type="date"/></el-form-item>
|
||||
<el-form-item label="Care Level"><el-input v-model="form.careLevel"/></el-form-item>
|
||||
<el-form-item label="Status"><el-input v-model="form.status"/></el-form-item>
|
||||
<el-form-item label="Remark"><el-input v-model="form.remark"/></el-form-item>
|
||||
<el-form-item label="姓名"><el-input v-model="form.name"/></el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-select v-model="form.gender" placeholder="选择性别">
|
||||
<el-option label="男" value="M" />
|
||||
<el-option label="女" value="F" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号"><el-input v-model="form.idCard" @input="syncBirthday('create')"/></el-form-item>
|
||||
<el-form-item label="出生日期"><el-date-picker v-model="form.birthday" type="date"/></el-form-item>
|
||||
<el-form-item label="房间号"><el-input v-model="form.roomNo"/></el-form-item>
|
||||
<el-form-item label="入住日期"><el-date-picker v-model="form.checkInDate" type="date"/></el-form-item>
|
||||
<el-form-item label="护理等级">
|
||||
<el-select v-model="form.careLevel" placeholder="选择护理等级">
|
||||
<el-option label="一级" value="一级" />
|
||||
<el-option label="二级" value="二级" />
|
||||
<el-option label="三级" value="三级" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-select v-model="form.status" placeholder="选择状态">
|
||||
<el-option label="在住" value="在住" />
|
||||
<el-option label="离院" value="离院" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注"><el-input v-model="form.remark"/></el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showCreate = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="createElder">Create</el-button>
|
||||
<el-button @click="showCreate = false">取消</el-button>
|
||||
<el-button type="primary" @click="createElder">创建</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="Edit Elder" :visible.sync="showEdit">
|
||||
<el-dialog title="编辑长者" :visible.sync="showEdit">
|
||||
<el-form :model="editForm" label-width="120px">
|
||||
<el-form-item label="Name"><el-input v-model="editForm.name"/></el-form-item>
|
||||
<el-form-item label="Gender"><el-input v-model="editForm.gender"/></el-form-item>
|
||||
<el-form-item label="ID Card"><el-input v-model="editForm.idCard"/></el-form-item>
|
||||
<el-form-item label="Birthday"><el-date-picker v-model="editForm.birthday" type="date"/></el-form-item>
|
||||
<el-form-item label="Room No"><el-input v-model="editForm.roomNo"/></el-form-item>
|
||||
<el-form-item label="Check In"><el-date-picker v-model="editForm.checkInDate" type="date"/></el-form-item>
|
||||
<el-form-item label="Care Level"><el-input v-model="editForm.careLevel"/></el-form-item>
|
||||
<el-form-item label="Status"><el-input v-model="editForm.status"/></el-form-item>
|
||||
<el-form-item label="Remark"><el-input v-model="editForm.remark"/></el-form-item>
|
||||
<el-form-item label="姓名"><el-input v-model="editForm.name"/></el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-select v-model="editForm.gender" placeholder="选择性别">
|
||||
<el-option label="男" value="M" />
|
||||
<el-option label="女" value="F" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号"><el-input v-model="editForm.idCard" @input="syncBirthday('edit')"/></el-form-item>
|
||||
<el-form-item label="出生日期"><el-date-picker v-model="editForm.birthday" type="date"/></el-form-item>
|
||||
<el-form-item label="房间号"><el-input v-model="editForm.roomNo"/></el-form-item>
|
||||
<el-form-item label="入住日期"><el-date-picker v-model="editForm.checkInDate" type="date"/></el-form-item>
|
||||
<el-form-item label="护理等级">
|
||||
<el-select v-model="editForm.careLevel" placeholder="选择护理等级">
|
||||
<el-option label="一级" value="一级" />
|
||||
<el-option label="二级" value="二级" />
|
||||
<el-option label="三级" value="三级" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-select v-model="editForm.status" placeholder="选择状态">
|
||||
<el-option label="在住" value="在住" />
|
||||
<el-option label="离院" value="离院" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注"><el-input v-model="editForm.remark"/></el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showEdit = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="updateElder">Save</el-button>
|
||||
<el-button @click="showEdit = false">取消</el-button>
|
||||
<el-button type="primary" @click="updateElder">保存</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@@ -122,6 +154,30 @@ export default {
|
||||
} catch (e) {
|
||||
this.$message.error(e.message || "delete failed");
|
||||
}
|
||||
},
|
||||
syncBirthday(type) {
|
||||
const target = type === "edit" ? this.editForm : this.form;
|
||||
if (!target || !target.idCard) return;
|
||||
const id = target.idCard.trim();
|
||||
if (id.length === 18) {
|
||||
const year = id.substring(6, 10);
|
||||
const month = id.substring(10, 12);
|
||||
const day = id.substring(12, 14);
|
||||
target.birthday = `${year}-${month}-${day}`;
|
||||
const genderFlag = parseInt(id.substring(16, 17), 10);
|
||||
if (!Number.isNaN(genderFlag)) {
|
||||
target.gender = genderFlag % 2 === 0 ? "F" : "M";
|
||||
}
|
||||
} else if (id.length === 15) {
|
||||
const year = `19${id.substring(6, 8)}`;
|
||||
const month = id.substring(8, 10);
|
||||
const day = id.substring(10, 12);
|
||||
target.birthday = `${year}-${month}-${day}`;
|
||||
const genderFlag = parseInt(id.substring(14, 15), 10);
|
||||
if (!Number.isNaN(genderFlag)) {
|
||||
target.gender = genderFlag % 2 === 0 ? "F" : "M";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Feedback</h3>
|
||||
<h3>反馈处理</h3>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column prop="elderId" label="Elder ID" />
|
||||
<el-table-column prop="type" label="Type" />
|
||||
<el-table-column prop="content" label="Content" />
|
||||
<el-table-column prop="status" label="Status" width="120" />
|
||||
<el-table-column label="Actions" width="200">
|
||||
<el-table-column prop="id" label="编号" width="80" />
|
||||
<el-table-column prop="elderId" label="长者ID" />
|
||||
<el-table-column prop="type" label="类型" />
|
||||
<el-table-column prop="content" label="内容" />
|
||||
<el-table-column prop="status" label="状态" width="120" />
|
||||
<el-table-column label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="openReply(scope.row)">Reply</el-button>
|
||||
<el-button size="mini" @click="openReply(scope.row)">回复</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog title="Reply" :visible.sync="showReply">
|
||||
<el-dialog title="回复处理" :visible.sync="showReply">
|
||||
<el-form :model="replyForm" label-width="120px">
|
||||
<el-form-item label="Status">
|
||||
<el-form-item label="状态">
|
||||
<el-select v-model="replyForm.status">
|
||||
<el-option label="New" value="NEW" />
|
||||
<el-option label="Processing" value="PROCESSING" />
|
||||
<el-option label="Closed" value="CLOSED" />
|
||||
<el-option label="新建" value="NEW" />
|
||||
<el-option label="处理中" value="PROCESSING" />
|
||||
<el-option label="已关闭" value="CLOSED" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Reply">
|
||||
<el-form-item label="回复">
|
||||
<el-input v-model="replyForm.reply" type="textarea" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showReply = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveReply">Save</el-button>
|
||||
<el-button @click="showReply = false">取消</el-button>
|
||||
<el-button type="primary" @click="saveReply">保存</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Notices</h3>
|
||||
<h3>通知公告</h3>
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-button type="primary" @click="showCreate = true">New Notice</el-button>
|
||||
<el-button type="primary" @click="showCreate = true">发布通知</el-button>
|
||||
</div>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column prop="title" label="Title" />
|
||||
<el-table-column prop="targetRole" label="Target" width="120" />
|
||||
<el-table-column prop="createdAt" label="Created" />
|
||||
<el-table-column prop="id" label="编号" width="80" />
|
||||
<el-table-column prop="title" label="标题" />
|
||||
<el-table-column prop="targetRole" label="对象" width="120" />
|
||||
<el-table-column prop="createdAt" label="创建时间" />
|
||||
</el-table>
|
||||
|
||||
<el-dialog title="New Notice" :visible.sync="showCreate">
|
||||
<el-dialog title="发布通知" :visible.sync="showCreate">
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Title"><el-input v-model="form.title"/></el-form-item>
|
||||
<el-form-item label="Content"><el-input v-model="form.content" type="textarea"/></el-form-item>
|
||||
<el-form-item label="Target Role">
|
||||
<el-form-item label="标题"><el-input v-model="form.title"/></el-form-item>
|
||||
<el-form-item label="内容"><el-input v-model="form.content" type="textarea"/></el-form-item>
|
||||
<el-form-item label="通知对象">
|
||||
<el-select v-model="form.targetRole">
|
||||
<el-option label="All" value="ALL" />
|
||||
<el-option label="Nurse" value="NURSE" />
|
||||
<el-option label="Family" value="FAMILY" />
|
||||
<el-option label="全部" value="ALL" />
|
||||
<el-option label="护工" value="NURSE" />
|
||||
<el-option label="家属" value="FAMILY" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Target User ID"><el-input v-model="form.targetUserId"/></el-form-item>
|
||||
<el-form-item label="指定用户ID"><el-input v-model="form.targetUserId"/></el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showCreate = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="create">Create</el-button>
|
||||
<el-button @click="showCreate = false">取消</el-button>
|
||||
<el-button type="primary" @click="create">发布</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@@ -1,48 +1,48 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Schedule Management</h3>
|
||||
<h3>排班管理</h3>
|
||||
<div style="margin: 12px 0; display:flex; gap: 12px;">
|
||||
<el-date-picker v-model="date" type="date" placeholder="Pick date" />
|
||||
<el-button type="primary" @click="load">Search</el-button>
|
||||
<el-button @click="showCreate = true">Add Schedule</el-button>
|
||||
<el-date-picker v-model="date" type="date" placeholder="选择日期" />
|
||||
<el-button type="primary" @click="load">查询</el-button>
|
||||
<el-button @click="showCreate = true">新增排班</el-button>
|
||||
</div>
|
||||
<el-table :data="schedules" stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column prop="nurseId" label="Nurse ID" width="100" />
|
||||
<el-table-column prop="date" label="Date" />
|
||||
<el-table-column prop="shift" label="Shift" />
|
||||
<el-table-column prop="task" label="Task" />
|
||||
<el-table-column label="Actions" width="200">
|
||||
<el-table-column prop="id" label="编号" width="80" />
|
||||
<el-table-column prop="nurseId" label="护工ID" width="100" />
|
||||
<el-table-column prop="date" label="日期" />
|
||||
<el-table-column prop="shift" label="班次" />
|
||||
<el-table-column prop="task" label="任务" />
|
||||
<el-table-column label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="edit(scope.row)">Edit</el-button>
|
||||
<el-button size="mini" type="danger" @click="remove(scope.row)">Delete</el-button>
|
||||
<el-button size="mini" @click="edit(scope.row)">编辑</el-button>
|
||||
<el-button size="mini" type="danger" @click="remove(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog title="Schedule" :visible.sync="showCreate">
|
||||
<el-dialog title="新增排班" :visible.sync="showCreate">
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Nurse ID"><el-input v-model="form.nurseId"/></el-form-item>
|
||||
<el-form-item label="Date"><el-date-picker v-model="form.date" type="date"/></el-form-item>
|
||||
<el-form-item label="Shift"><el-input v-model="form.shift"/></el-form-item>
|
||||
<el-form-item label="Task"><el-input v-model="form.task"/></el-form-item>
|
||||
<el-form-item label="护工ID"><el-input v-model="form.nurseId"/></el-form-item>
|
||||
<el-form-item label="日期"><el-date-picker v-model="form.date" type="date"/></el-form-item>
|
||||
<el-form-item label="班次"><el-input v-model="form.shift"/></el-form-item>
|
||||
<el-form-item label="任务"><el-input v-model="form.task"/></el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showCreate = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="create">Save</el-button>
|
||||
<el-button @click="showCreate = false">取消</el-button>
|
||||
<el-button type="primary" @click="create">保存</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="Edit Schedule" :visible.sync="showEdit">
|
||||
<el-dialog title="编辑排班" :visible.sync="showEdit">
|
||||
<el-form :model="editForm" label-width="120px">
|
||||
<el-form-item label="Nurse ID"><el-input v-model="editForm.nurseId"/></el-form-item>
|
||||
<el-form-item label="Date"><el-date-picker v-model="editForm.date" type="date"/></el-form-item>
|
||||
<el-form-item label="Shift"><el-input v-model="editForm.shift"/></el-form-item>
|
||||
<el-form-item label="Task"><el-input v-model="editForm.task"/></el-form-item>
|
||||
<el-form-item label="护工ID"><el-input v-model="editForm.nurseId"/></el-form-item>
|
||||
<el-form-item label="日期"><el-date-picker v-model="editForm.date" type="date"/></el-form-item>
|
||||
<el-form-item label="班次"><el-input v-model="editForm.shift"/></el-form-item>
|
||||
<el-form-item label="任务"><el-input v-model="editForm.task"/></el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showEdit = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="update">Save</el-button>
|
||||
<el-button @click="showEdit = false">取消</el-button>
|
||||
<el-button type="primary" @click="update">保存</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@@ -1,71 +1,71 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<div style="display:flex; justify-content: space-between; align-items:center;">
|
||||
<h3>User Management</h3>
|
||||
<el-button type="primary" @click="showCreate = true">New User</el-button>
|
||||
<h3>账号管理</h3>
|
||||
<el-button type="primary" @click="showCreate = true">新建用户</el-button>
|
||||
</div>
|
||||
<div style="margin: 12px 0;">
|
||||
<el-select v-model="role" placeholder="role" @change="loadUsers">
|
||||
<el-option label="All" value=""></el-option>
|
||||
<el-option label="Admin" value="ADMIN"></el-option>
|
||||
<el-option label="Nurse" value="NURSE"></el-option>
|
||||
<el-option label="Family" value="FAMILY"></el-option>
|
||||
<el-select v-model="role" placeholder="角色" @change="loadUsers">
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option label="管理员" value="ADMIN"></el-option>
|
||||
<el-option label="护工" value="NURSE"></el-option>
|
||||
<el-option label="家属" value="FAMILY"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table :data="users" stripe>
|
||||
<el-table-column prop="id" label="ID" width="80" />
|
||||
<el-table-column prop="username" label="Username" />
|
||||
<el-table-column prop="name" label="Name" />
|
||||
<el-table-column prop="role" label="Role" width="100" />
|
||||
<el-table-column prop="status" label="Status" width="100">
|
||||
<el-table-column prop="id" label="编号" width="80" />
|
||||
<el-table-column prop="username" label="账号" />
|
||||
<el-table-column prop="name" label="姓名" />
|
||||
<el-table-column prop="role" label="角色" width="100" />
|
||||
<el-table-column prop="status" label="状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="scope.row.status === 1 ? 'success' : 'info'">
|
||||
{{ scope.row.status === 1 ? 'Active' : 'Disabled' }}
|
||||
{{ scope.row.status === 1 ? '启用' : '禁用' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Actions" width="200">
|
||||
<el-table-column label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="editUser(scope.row)">Edit</el-button>
|
||||
<el-button size="mini" @click="resetPwd(scope.row)">Reset</el-button>
|
||||
<el-button size="mini" @click="editUser(scope.row)">编辑</el-button>
|
||||
<el-button size="mini" @click="resetPwd(scope.row)">重置密码</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog title="Create User" :visible.sync="showCreate">
|
||||
<el-dialog title="新建用户" :visible.sync="showCreate">
|
||||
<el-form :model="createForm" label-width="120px">
|
||||
<el-form-item label="Username"><el-input v-model="createForm.username"/></el-form-item>
|
||||
<el-form-item label="Password"><el-input v-model="createForm.password" type="password"/></el-form-item>
|
||||
<el-form-item label="Name"><el-input v-model="createForm.name"/></el-form-item>
|
||||
<el-form-item label="Phone"><el-input v-model="createForm.phone"/></el-form-item>
|
||||
<el-form-item label="Role">
|
||||
<el-form-item label="账号"><el-input v-model="createForm.username"/></el-form-item>
|
||||
<el-form-item label="密码"><el-input v-model="createForm.password" type="password"/></el-form-item>
|
||||
<el-form-item label="姓名"><el-input v-model="createForm.name"/></el-form-item>
|
||||
<el-form-item label="手机号"><el-input v-model="createForm.phone"/></el-form-item>
|
||||
<el-form-item label="角色">
|
||||
<el-select v-model="createForm.role">
|
||||
<el-option label="Admin" value="ADMIN"/>
|
||||
<el-option label="Nurse" value="NURSE"/>
|
||||
<el-option label="Family" value="FAMILY"/>
|
||||
<el-option label="管理员" value="ADMIN"/>
|
||||
<el-option label="护工" value="NURSE"/>
|
||||
<el-option label="家属" value="FAMILY"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showCreate = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="createUser">Create</el-button>
|
||||
<el-button @click="showCreate = false">取消</el-button>
|
||||
<el-button type="primary" @click="createUser">创建</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="Edit User" :visible.sync="showEdit">
|
||||
<el-dialog title="编辑用户" :visible.sync="showEdit">
|
||||
<el-form :model="editForm" label-width="120px">
|
||||
<el-form-item label="Name"><el-input v-model="editForm.name"/></el-form-item>
|
||||
<el-form-item label="Phone"><el-input v-model="editForm.phone"/></el-form-item>
|
||||
<el-form-item label="Status">
|
||||
<el-form-item label="姓名"><el-input v-model="editForm.name"/></el-form-item>
|
||||
<el-form-item label="手机号"><el-input v-model="editForm.phone"/></el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-select v-model="editForm.status">
|
||||
<el-option label="Active" :value="1"/>
|
||||
<el-option label="Disabled" :value="0"/>
|
||||
<el-option label="启用" :value="1"/>
|
||||
<el-option label="禁用" :value="0"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer">
|
||||
<el-button @click="showEdit = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="updateUser">Save</el-button>
|
||||
<el-button @click="showEdit = false">取消</el-button>
|
||||
<el-button type="primary" @click="updateUser">保存</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Bills</h3>
|
||||
<h3>账单支付</h3>
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-select v-model="elderId" placeholder="Select elder" @change="load">
|
||||
<el-select v-model="elderId" placeholder="选择亲人" @change="load">
|
||||
<el-option v-for="elder in elders" :key="elder.id" :label="elder.name" :value="elder.id" />
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="month" label="Month" />
|
||||
<el-table-column prop="total" label="Total" />
|
||||
<el-table-column prop="status" label="Status" />
|
||||
<el-table-column label="Actions" width="160">
|
||||
<el-table-column prop="month" label="月份" />
|
||||
<el-table-column prop="total" label="金额" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
<el-table-column label="操作" width="160">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="pay(scope.row)" :disabled="scope.row.status === 'PAID'">
|
||||
Pay
|
||||
支付
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Daily Care</h3>
|
||||
<h3>每日动态</h3>
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-select v-model="elderId" placeholder="Select elder" @change="load">
|
||||
<el-select v-model="elderId" placeholder="选择亲人" @change="load">
|
||||
<el-option v-for="elder in elders" :key="elder.id" :label="elder.name" :value="elder.id" />
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="recordTime" label="Time" />
|
||||
<el-table-column prop="content" label="Content" />
|
||||
<el-table-column prop="attachmentUrl" label="Attachment" />
|
||||
<el-table-column prop="recordTime" label="时间" />
|
||||
<el-table-column prop="content" label="护理内容" />
|
||||
<el-table-column prop="attachmentUrl" label="附件" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Family Dashboard</h3>
|
||||
<p>View elder status, bills, and send feedback.</p>
|
||||
<h3>家属首页</h3>
|
||||
<p>查看亲人情况、账单与服务反馈。</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Elders</h3>
|
||||
<h3>亲人档案</h3>
|
||||
<el-table :data="elders" stripe>
|
||||
<el-table-column prop="name" label="Name" />
|
||||
<el-table-column prop="gender" label="Gender" width="80" />
|
||||
<el-table-column prop="roomNo" label="Room" width="100" />
|
||||
<el-table-column prop="careLevel" label="Care Level" />
|
||||
<el-table-column prop="name" label="姓名" />
|
||||
<el-table-column prop="gender" label="性别" width="80" />
|
||||
<el-table-column prop="roomNo" label="房间号" width="100" />
|
||||
<el-table-column prop="careLevel" label="护理等级" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Feedback</h3>
|
||||
<h3>服务反馈</h3>
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Elder">
|
||||
<el-select v-model="form.elderId" placeholder="Select elder">
|
||||
<el-form-item label="亲人">
|
||||
<el-select v-model="form.elderId" placeholder="选择亲人">
|
||||
<el-option v-for="elder in elders" :key="elder.id" :label="elder.name" :value="elder.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Type">
|
||||
<el-form-item label="类型">
|
||||
<el-select v-model="form.type">
|
||||
<el-option label="Suggestion" value="SUGGESTION" />
|
||||
<el-option label="Complaint" value="COMPLAINT" />
|
||||
<el-option label="Praise" value="PRAISE" />
|
||||
<el-option label="建议" value="SUGGESTION" />
|
||||
<el-option label="投诉" value="COMPLAINT" />
|
||||
<el-option label="表扬" value="PRAISE" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Content">
|
||||
<el-form-item label="内容">
|
||||
<el-input v-model="form.content" type="textarea" />
|
||||
</el-form-item>
|
||||
<el-form-item label="Rating">
|
||||
<el-form-item label="评分">
|
||||
<el-input v-model="form.rating" />
|
||||
</el-form-item>
|
||||
<el-button type="primary" @click="submit">Submit</el-button>
|
||||
<el-button type="primary" @click="submit">提交</el-button>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Health Records</h3>
|
||||
<h3>健康记录</h3>
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-select v-model="elderId" placeholder="Select elder" @change="load">
|
||||
<el-select v-model="elderId" placeholder="选择亲人" @change="load">
|
||||
<el-option v-for="elder in elders" :key="elder.id" :label="elder.name" :value="elder.id" />
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="recordTime" label="Time" />
|
||||
<el-table-column prop="temperature" label="Temp" />
|
||||
<el-table-column prop="bpSystolic" label="BP S" />
|
||||
<el-table-column prop="bpDiastolic" label="BP D" />
|
||||
<el-table-column prop="heartRate" label="HR" />
|
||||
<el-table-column prop="recordTime" label="时间" />
|
||||
<el-table-column prop="temperature" label="体温" />
|
||||
<el-table-column prop="bpSystolic" label="收缩压" />
|
||||
<el-table-column prop="bpDiastolic" label="舒张压" />
|
||||
<el-table-column prop="heartRate" label="心率" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Notices</h3>
|
||||
<h3>通知中心</h3>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="title" label="Title" />
|
||||
<el-table-column prop="content" label="Content" />
|
||||
<el-table-column prop="createdAt" label="Created" />
|
||||
<el-table-column prop="title" label="标题" />
|
||||
<el-table-column prop="content" label="内容" />
|
||||
<el-table-column prop="createdAt" label="时间" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Care Records</h3>
|
||||
<h3>护理记录</h3>
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Elder ID"><el-input v-model="form.elderId"/></el-form-item>
|
||||
<el-form-item label="Content"><el-input v-model="form.content" type="textarea"/></el-form-item>
|
||||
<el-form-item label="Record Time"><el-date-picker v-model="form.recordTime" type="datetime"/></el-form-item>
|
||||
<el-form-item label="Attachment">
|
||||
<el-form-item label="长者ID"><el-input v-model="form.elderId"/></el-form-item>
|
||||
<el-form-item label="护理内容"><el-input v-model="form.content" type="textarea"/></el-form-item>
|
||||
<el-form-item label="记录时间"><el-date-picker v-model="form.recordTime" type="datetime"/></el-form-item>
|
||||
<el-form-item label="附件">
|
||||
<el-upload :http-request="upload" :show-file-list="false">
|
||||
<el-button size="mini">Upload</el-button>
|
||||
<el-button size="mini">上传</el-button>
|
||||
</el-upload>
|
||||
<div v-if="form.attachmentUrl" style="margin-top: 6px;">
|
||||
Uploaded: {{ form.attachmentUrl }}
|
||||
已上传: {{ form.attachmentUrl }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-button type="primary" @click="create">Save</el-button>
|
||||
<el-button type="primary" @click="create">保存</el-button>
|
||||
</el-form>
|
||||
|
||||
<div style="margin-top: 16px;">
|
||||
<el-input v-model="filterElderId" placeholder="Elder ID" style="width: 200px;" />
|
||||
<el-button @click="load" style="margin-left: 8px;">Search</el-button>
|
||||
<el-input v-model="filterElderId" placeholder="长者ID" style="width: 200px;" />
|
||||
<el-button @click="load" style="margin-left: 8px;">查询</el-button>
|
||||
<el-table :data="items" stripe style="margin-top: 12px;">
|
||||
<el-table-column prop="elderId" label="Elder ID" width="100" />
|
||||
<el-table-column prop="content" label="Content" />
|
||||
<el-table-column prop="recordTime" label="Record Time" />
|
||||
<el-table-column prop="elderId" label="长者ID" width="100" />
|
||||
<el-table-column prop="content" label="护理内容" />
|
||||
<el-table-column prop="recordTime" label="记录时间" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Nurse Dashboard</h3>
|
||||
<p>Use the menu to manage schedules and records.</p>
|
||||
<h3>护工工作台</h3>
|
||||
<p>通过左侧菜单管理排班与护理记录。</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Handovers</h3>
|
||||
<h3>交班记录</h3>
|
||||
<el-form :model="form" label-width="120px">
|
||||
<el-form-item label="Date"><el-date-picker v-model="form.date" type="date"/></el-form-item>
|
||||
<el-form-item label="Content"><el-input v-model="form.content" type="textarea"/></el-form-item>
|
||||
<el-button type="primary" @click="create">Save</el-button>
|
||||
<el-form-item label="日期"><el-date-picker v-model="form.date" type="date"/></el-form-item>
|
||||
<el-form-item label="内容"><el-input v-model="form.content" type="textarea"/></el-form-item>
|
||||
<el-button type="primary" @click="create">保存</el-button>
|
||||
</el-form>
|
||||
|
||||
<el-table :data="items" stripe style="margin-top: 12px;">
|
||||
<el-table-column prop="date" label="Date" />
|
||||
<el-table-column prop="content" label="Content" />
|
||||
<el-table-column prop="date" label="日期" />
|
||||
<el-table-column prop="content" label="内容" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Health Records</h3>
|
||||
<h3>健康监测</h3>
|
||||
<el-form :model="form" label-width="140px">
|
||||
<el-form-item label="Elder ID"><el-input v-model="form.elderId"/></el-form-item>
|
||||
<el-form-item label="Temperature"><el-input v-model="form.temperature"/></el-form-item>
|
||||
<el-form-item label="Blood Pressure">
|
||||
<el-form-item label="长者ID"><el-input v-model="form.elderId"/></el-form-item>
|
||||
<el-form-item label="体温"><el-input v-model="form.temperature"/></el-form-item>
|
||||
<el-form-item label="血压">
|
||||
<div style="display:flex; gap:8px;">
|
||||
<el-input v-model="form.bpSystolic" placeholder="Systolic" />
|
||||
<el-input v-model="form.bpDiastolic" placeholder="Diastolic" />
|
||||
<el-input v-model="form.bpSystolic" placeholder="收缩压" />
|
||||
<el-input v-model="form.bpDiastolic" placeholder="舒张压" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="Heart Rate"><el-input v-model="form.heartRate"/></el-form-item>
|
||||
<el-form-item label="Note"><el-input v-model="form.note"/></el-form-item>
|
||||
<el-form-item label="Record Time"><el-date-picker v-model="form.recordTime" type="datetime"/></el-form-item>
|
||||
<el-button type="primary" @click="create">Save</el-button>
|
||||
<el-form-item label="心率"><el-input v-model="form.heartRate"/></el-form-item>
|
||||
<el-form-item label="备注"><el-input v-model="form.note"/></el-form-item>
|
||||
<el-form-item label="记录时间"><el-date-picker v-model="form.recordTime" type="datetime"/></el-form-item>
|
||||
<el-button type="primary" @click="create">保存</el-button>
|
||||
</el-form>
|
||||
|
||||
<div style="margin-top: 16px;">
|
||||
<el-input v-model="filterElderId" placeholder="Elder ID" style="width: 200px;" />
|
||||
<el-button @click="load" style="margin-left: 8px;">Search</el-button>
|
||||
<el-input v-model="filterElderId" placeholder="长者ID" style="width: 200px;" />
|
||||
<el-button @click="load" style="margin-left: 8px;">查询</el-button>
|
||||
<el-table :data="items" stripe style="margin-top: 12px;">
|
||||
<el-table-column prop="elderId" label="Elder ID" width="100" />
|
||||
<el-table-column prop="temperature" label="Temp" />
|
||||
<el-table-column prop="bpSystolic" label="BP S" />
|
||||
<el-table-column prop="bpDiastolic" label="BP D" />
|
||||
<el-table-column prop="heartRate" label="HR" />
|
||||
<el-table-column prop="recordTime" label="Record Time" />
|
||||
<el-table-column prop="elderId" label="长者ID" width="100" />
|
||||
<el-table-column prop="temperature" label="体温" />
|
||||
<el-table-column prop="bpSystolic" label="收缩压" />
|
||||
<el-table-column prop="bpDiastolic" label="舒张压" />
|
||||
<el-table-column prop="heartRate" label="心率" />
|
||||
<el-table-column prop="recordTime" label="记录时间" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>Notices</h3>
|
||||
<h3>通知中心</h3>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="title" label="Title" />
|
||||
<el-table-column prop="content" label="Content" />
|
||||
<el-table-column prop="createdAt" label="Created" />
|
||||
<el-table-column prop="title" label="标题" />
|
||||
<el-table-column prop="content" label="内容" />
|
||||
<el-table-column prop="createdAt" label="时间" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div class="page-card">
|
||||
<h3>My Schedule</h3>
|
||||
<h3>我的排班</h3>
|
||||
<div style="margin-bottom: 12px; display:flex; gap: 12px;">
|
||||
<el-date-picker v-model="date" type="date" placeholder="Pick date" />
|
||||
<el-button type="primary" @click="load">Search</el-button>
|
||||
<el-date-picker v-model="date" type="date" placeholder="选择日期" />
|
||||
<el-button type="primary" @click="load">查询</el-button>
|
||||
</div>
|
||||
<el-table :data="items" stripe>
|
||||
<el-table-column prop="date" label="Date" />
|
||||
<el-table-column prop="shift" label="Shift" />
|
||||
<el-table-column prop="task" label="Task" />
|
||||
<el-table-column prop="date" label="日期" />
|
||||
<el-table-column prop="shift" label="班次" />
|
||||
<el-table-column prop="task" label="任务" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user