diff --git a/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java b/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java
new file mode 100644
index 0000000000000000000000000000000000000000..52b239dd38ba94d406ddf430497d898b06c22b6a
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/controller/admin/CommonAdminHospitalController.java
@@ -0,0 +1,40 @@
+package com.cardiff.client_project.controller.admin;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+import com.cardiff.client_project.service.CommonAdminHospitalService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/commonAdmin/hospital")
+public class CommonAdminHospitalController {
+
+    @Autowired
+    private CommonAdminHospitalService commonAdminHospitalService;
+
+    @GetMapping("/all")
+    public List<HospitalDTO> getAllHospitals() {
+        return commonAdminHospitalService.getAllHospitals();
+    }
+
+    @PostMapping("/add")
+    public ResponseEntity<String> addHospital(@RequestBody HospitalDTO hospital) {
+        commonAdminHospitalService.addHospital(hospital);
+        return ResponseEntity.ok("Hospital added successfully!");
+    }
+
+    @PutMapping("/update")
+    public ResponseEntity<String> updateHospital(@RequestBody HospitalDTO hospital) {
+        commonAdminHospitalService.updateHospital(hospital);
+        return ResponseEntity.ok("Hospital updated successfully!");
+    }
+
+    @DeleteMapping("/delete/{id}")
+    public ResponseEntity<String> deleteHospital(@PathVariable int id) {
+        commonAdminHospitalService.deleteHospital(id);
+        return ResponseEntity.ok("Hospital deleted successfully!");
+    }
+}
diff --git a/src/main/java/com/cardiff/client_project/controller/admin/SuperAdminController.java b/src/main/java/com/cardiff/client_project/controller/admin/SuperAdminController.java
index a33e0be93552abfb37a66157ef00f73d996dd59f..1c01ed8b716310b0badffa0e2c83adbd53949a28 100644
--- a/src/main/java/com/cardiff/client_project/controller/admin/SuperAdminController.java
+++ b/src/main/java/com/cardiff/client_project/controller/admin/SuperAdminController.java
@@ -71,4 +71,15 @@ public class SuperAdminController {
         Result result= superAdminService.update(selectDTO);
         return result;
     }
+
+    /**
+     * page selete
+     */
+    @GetMapping("/pageSelect")
+    public Result pageSelect(@RequestParam String type,@RequestParam Integer pageSize,@RequestParam Integer pageNumber){
+        Result result=superAdminService.selectPage(type,pageSize,pageNumber);
+        return result;
+    }
 }
+
+
diff --git a/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java b/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..9eee82cc265d0f43d5a9d1706977e9cc6cbef0dc
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/mapper/CommonAdminHospitalMapper.java
@@ -0,0 +1,40 @@
+package com.cardiff.client_project.mapper;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public class CommonAdminHospitalMapper {
+
+    @Autowired
+    JdbcTemplate jdbcTemplate;
+
+    // 查询所有医院信息
+    public List<HospitalDTO> findAll() {
+        String sql = "SELECT * FROM hospital";
+        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HospitalDTO.class));
+    }
+
+    // 添加医院信息
+    public int save(HospitalDTO hospital) {
+        String sql = "INSERT INTO hospital (name, location, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
+        return jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate());
+    }
+
+    // 更新医院信息
+    public int update(HospitalDTO hospital) {
+        String sql = "UPDATE hospital SET name=?, location=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
+        return jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(), hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate(), hospital.getId());
+    }
+
+    // 根据 ID 删除医院信息
+    public int deleteById(int id) {
+        String sql = "DELETE FROM hospital WHERE id=?";
+        return jdbcTemplate.update(sql, id);
+    }
+}
diff --git a/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java b/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
new file mode 100644
index 0000000000000000000000000000000000000000..998146130d2bb4d50c931a9e664fb2c5df32a087
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/service/CommonAdminHospitalService.java
@@ -0,0 +1,15 @@
+package com.cardiff.client_project.service;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+
+import java.util.List;
+
+public interface CommonAdminHospitalService {
+    List<HospitalDTO> getAllHospitals();
+
+    void addHospital(HospitalDTO hospital);
+
+    void updateHospital(HospitalDTO hospital);
+
+    void deleteHospital(int id);
+}
diff --git a/src/main/java/com/cardiff/client_project/service/SuperAdminService.java b/src/main/java/com/cardiff/client_project/service/SuperAdminService.java
index 02968edbc4de931bdcbdec570f07a3b031b4fe6e..94d22a2d3dcb9d68d9cd789f8a3501bfb5c9bbfe 100644
--- a/src/main/java/com/cardiff/client_project/service/SuperAdminService.java
+++ b/src/main/java/com/cardiff/client_project/service/SuperAdminService.java
@@ -46,4 +46,6 @@ public interface SuperAdminService {
      * @return
      */
     Result selectByItem(SelectDTO selectDTO);
+
+    Result selectPage(String type, Integer pageSize, int i);
 }
diff --git a/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java b/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
new file mode 100644
index 0000000000000000000000000000000000000000..90a14b5af8fbb93f4da7395c9cfc3e0fd9c102af
--- /dev/null
+++ b/src/main/java/com/cardiff/client_project/service/imp/CommonAdminHospitalServiceImp.java
@@ -0,0 +1,43 @@
+package com.cardiff.client_project.service.imp;
+
+import com.cardiff.client_project.pojo.dto.HospitalDTO;
+import com.cardiff.client_project.service.CommonAdminHospitalService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CommonAdminHospitalServiceImp implements CommonAdminHospitalService {
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    @Override
+    public List<HospitalDTO> getAllHospitals() {
+        String sql = "SELECT * FROM hospital";
+        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HospitalDTO.class));
+    }
+
+    @Override
+    public void addHospital(HospitalDTO hospital) {
+        String sql = "INSERT INTO hospital (name, location, phone, totalBeds, availableBeds, occupancyRate) VALUES (?, ?, ?, ?, ?, ?)";
+        jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(),
+                hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate());
+    }
+
+    @Override
+    public void updateHospital(HospitalDTO hospital) {
+        String sql = "UPDATE hospital SET name=?, location=?, phone=?, totalBeds=?, availableBeds=?, occupancyRate=? WHERE id=?";
+        jdbcTemplate.update(sql, hospital.getName(), hospital.getLocation(), hospital.getPhone(),
+                hospital.getTotalBeds(), hospital.getAvailableBeds(), hospital.getOccupancyRate(), hospital.getId());
+    }
+
+    @Override
+    public void deleteHospital(int id) {
+        String sql = "DELETE FROM hospital WHERE id=?";
+        jdbcTemplate.update(sql, id);
+    }
+}
diff --git a/src/main/java/com/cardiff/client_project/service/imp/SuperAdminServiceImp.java b/src/main/java/com/cardiff/client_project/service/imp/SuperAdminServiceImp.java
index 4589db4183759ad1b7be5687419df2ecf6cebc41..d238ec423a368aca939e788060b03ba5f86a8fda 100644
--- a/src/main/java/com/cardiff/client_project/service/imp/SuperAdminServiceImp.java
+++ b/src/main/java/com/cardiff/client_project/service/imp/SuperAdminServiceImp.java
@@ -200,5 +200,25 @@ public class SuperAdminServiceImp implements SuperAdminService {
         }
 
     }
+
+    @Override
+    public Result selectPage(String type, Integer pageSize, int pageNumber) {
+        if(type.equals("commonAdmin")){
+            List<CommonAdmin> commonAdmins = superAdminMapper.selectPageCommonAdmin(pageSize, pageNumber);
+            //get all and count items
+            List<AdminVO> adminVOS = superAdminMapper.selectAllAdmin();
+            if(commonAdmins.size()>0){
+                System.out.println(adminVOS.size());
+                Integer count=adminVOS.size()%pageSize==0?adminVOS.size()/pageSize:adminVOS.size()/pageSize+1;
+                return Result.success(count.toString(),commonAdmins);
+            }
+        }
+        if(type.equals("hospital")){
+
+        }
+        return Result.error(ResponseCode.ERROR);
+    }
+
+
 }
 
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index ae3309bbd3927093b2b55a5e17ae320797fbc6c0..b0f4bde722ce1aad6861d9e9ce85187f71605cac 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -3,4 +3,4 @@ healthcare:
     url: jdbc:mysql://localhost:3306/health_care
     port: 3306
     username: root
-    password: root
\ No newline at end of file
+    password: 472500
\ No newline at end of file
diff --git a/src/main/resources/static/html/admin.html b/src/main/resources/static/html/admin.html
index 8199126c1505b7269c8c0c98278ebd9017aa818b..8c8d95b2f9e79d190bdc99225cb580a811f6d9d5 100644
--- a/src/main/resources/static/html/admin.html
+++ b/src/main/resources/static/html/admin.html
@@ -3,16 +3,16 @@
 <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Administrator Management</title>
+    <title>Hospital Management</title>
     <link rel="stylesheet" type="text/css" href="../css/admin.css">
 </head>
 <body>
 <!-- Left Sidebar Navigation -->
 <nav class="sidebar">
     <div class="text-lg font-semibold">System</div>
-    <a href="#" data-content="admin">Hospital</a>
-    <a href="#" data-content="patient">Patient</a>
-    <a href="#" data-content="logout">Log Out</a>
+    <a href="#" data-content="hospital">Hospital</a>
+    <a href="#" data-content="patient">Nursing staff</a>
+    <a href="#" data-content="logout">LogOut</a>
 </nav>
 
 <!-- Main Content Area -->
@@ -23,28 +23,29 @@
     </div>
 </div>
 
-<!-- Modal for Adding Admin -->
+<!-- Modal for Adding Hospital -->
 <div id="modal">
     <div class="modal-content">
-        <h2>Add New Admin</h2>
+        <h2>Add New Hospital</h2>
         <div>
             <label for="modal-name">Name</label>
             <input type="text" id="modal-name" />
         </div>
         <div>
-            <label for="modal-email">Email</label>
-            <input type="email" id="modal-email" />
+            <label for="modal-location">Location</label>
+            <input type="text" id="modal-location" />
         </div>
         <div>
             <label for="modal-phone">Phone</label>
             <input type="text" id="modal-phone" />
         </div>
         <div>
-            <label for="modal-status">Status</label>
-            <select id="modal-status">
-                <option value="Active">Active</option>
-                <option value="Inactive">Inactive</option>
-            </select>
+            <label for="modal-totalBeds">Total Beds</label>
+            <input type="number" id="modal-totalBeds" />
+        </div>
+        <div>
+            <label for="modal-availableBeds">Available Beds</label>
+            <input type="number" id="modal-availableBeds" />
         </div>
         <div class="modal-footer">
             <button id="modal-save">Save</button>
@@ -60,30 +61,31 @@
         const modalClose = document.getElementById("modal-close");
         const modalSave = document.getElementById("modal-save");
 
-        // Fetch admin data based on search criteria
-        function loadAdmins(filters = {}) {
+        // Fetch hospital data
+        function loadHospitals(filters = {}) {
             const query = new URLSearchParams(filters).toString();
-            fetch(`/admin/select?${query}`)
+            fetch(`/commonAdmin/hospital/all?${query}`)
                 .then(response => response.json())
                 .then(data => {
                     const tableBody = document.getElementById("table-body");
                     tableBody.innerHTML = "";
-                    data.forEach(admin => {
+                    data.forEach(hospital => {
                         const row = document.createElement("tr");
                         row.innerHTML = `
-                            <td>${admin.id}</td>
-                            <td>${admin.email}</td>
-                            <td>${admin.phone}</td>
-                            <td>${admin.name}</td>
-                            <td>${admin.status}</td>
+                            <td>${hospital.id}</td>
+                            <td>${hospital.name}</td>
+                            <td>${hospital.location}</td>
+                            <td>${hospital.phone}</td>
+                            <td>${hospital.totalBeds}</td>
+                            <td>${hospital.availableBeds}</td>
                         `;
                         tableBody.appendChild(row);
                     });
                 })
-                .catch(error => console.error('Error loading admins:', error));
+                .catch(error => console.error('Error loading hospitals:', error));
         }
 
-        // Open add admin modal
+        // Open modal
         function openModal() {
             modal.style.display = "block";
         }
@@ -93,58 +95,52 @@
             modal.style.display = "none";
         });
 
-        // Save new admin
+        // Save new hospital
         modalSave.addEventListener("click", () => {
             const name = document.getElementById("modal-name").value;
-            const email = document.getElementById("modal-email").value;
+            const location = document.getElementById("modal-location").value;
             const phone = document.getElementById("modal-phone").value;
-            const status = document.getElementById("modal-status").value;
+            const totalBeds = document.getElementById("modal-totalBeds").value;
+            const availableBeds = document.getElementById("modal-availableBeds").value;
 
-            const newAdmin = { name, email, phone, status };
+            const newHospital = { name, location, phone, totalBeds, availableBeds };
 
-            fetch('/admin/sign', {
+            fetch('/commonAdmin/hospital/add', {
                 method: 'POST',
                 headers: {
                     'Content-Type': 'application/json'
                 },
-                body: JSON.stringify(newAdmin)
+                body: JSON.stringify(newHospital)
             })
                 .then(response => response.json())
                 .then(() => {
-                    loadAdmins(); // Reload admin list
+                    loadHospitals(); // Reload hospital list
                     modal.style.display = "none"; // Close modal
                 })
-                .catch(error => console.error('Error saving admin:', error));
+                .catch(error => console.error('Error saving hospital:', error));
         });
 
-        // Load admin interface with search toolbar
-        function loadAdminInterface() {
+        // Load hospital interface
+        function loadHospitalInterface() {
             dynamicContent.innerHTML = `
                 <div id="toolbar">
                     <label for="searchName">Name</label>
                     <input type="text" class="searchBox" id="searchName" placeholder="type name..." />
-                    <label for="searchEmail">Email</label>
-                    <input type="text" class="searchBox" id="searchEmail" placeholder="type email..." />
-                    <label for="searchPhone">Phone</label>
-                    <input type="text" class="searchBox" id="searchPhone" placeholder="type phone..." />
-                    <label for="searchStatus">Status</label>
-                    <select class="searchBox" id="searchStatus">
-                        <option value="">All</option>
-                        <option value="Active">Active</option>
-                        <option value="Inactive">Inactive</option>
-                    </select>
+                    <label for="searchLocation">Location</label>
+                    <input type="text" class="searchBox" id="searchLocation" placeholder="type location..." />
                     <button id="searchButton">Search</button>
                 </div>
                 <div class="table-container">
-                    <button id="add-btn" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Add Admin</button>
+                    <button id="add-btn" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Add</button>
                     <table>
                         <thead>
                             <tr>
                                 <th>ID</th>
-                                <th>Email</th>
-                                <th>Phone</th>
                                 <th>Name</th>
-                                <th>Status</th>
+                                <th>Location</th>
+                                <th>Phone</th>
+                                <th>Total Beds</th>
+                                <th>Available Beds</th>
                             </tr>
                         </thead>
                         <tbody id="table-body">
@@ -154,22 +150,20 @@
                 </div>
             `;
 
-            // Add admin button event
+            // Add hospital button event
             document.getElementById("add-btn").addEventListener("click", openModal);
 
             // Search button event
             document.getElementById("searchButton").addEventListener("click", () => {
                 const filters = {
                     name: document.getElementById("searchName").value,
-                    email: document.getElementById("searchEmail").value,
-                    phone: document.getElementById("searchPhone").value,
-                    status: document.getElementById("searchStatus").value
+                    location: document.getElementById("searchLocation").value
                 };
-                loadAdmins(filters);
+                loadHospitals(filters);
             });
 
-            // Load admin data initially
-            loadAdmins();
+            // Load hospital data initially
+            loadHospitals();
         }
 
         // Sidebar navigation
@@ -177,8 +171,8 @@
             link.addEventListener("click", function (event) {
                 event.preventDefault();
                 const contentKey = this.getAttribute("data-content");
-                if (contentKey === "admin") {
-                    loadAdminInterface();
+                if (contentKey === "hospital") {
+                    loadHospitalInterface();
                 }
             });
         });
diff --git a/src/main/resources/static/js/mainHospitalView.js b/src/main/resources/static/js/mainHospitalView.js
index 1e6a9e183c6874cc0af7b47a9784c149e4a06117..22d8d4702ee4860fbbde1c75a974befcb15e194c 100644
--- a/src/main/resources/static/js/mainHospitalView.js
+++ b/src/main/resources/static/js/mainHospitalView.js
@@ -280,7 +280,7 @@ function updateTable(data) {
                 <td class="tdOption">
                 <label id="edit" class="btn">Edit</label>
                 <label id="delete" class="btn">Delete</label>
-                <label id="freeze" class="btn">Freeze</label>
+                <label id="freeze" class="btn">Change status</label>
             </td>
             </tr>
         `;
diff --git a/src/main/resources/static/js/mainSupAdminView.js b/src/main/resources/static/js/mainSupAdminView.js
index 8d4328f4f27bf1ae04881fd531bca973f0f1062f..2005f653be22fff349de1d1e1cf654b65587ec7a 100644
--- a/src/main/resources/static/js/mainSupAdminView.js
+++ b/src/main/resources/static/js/mainSupAdminView.js
@@ -247,23 +247,36 @@ function updateTable(data) {
             <td class="tdOption">
                 <label id="edit" class="btn">Edit</label>
                 <label id="delete" class="btn">Delete</label>
-                <label id="freeze" class="btn">Freeze</label>
+                <label id="freeze" class="btn">Change status</label>
             </td>
             </tr>
         `;
         tbody.append(tr);
     });
 }
-$(document).on("change","#page-size",function (){
-    let pageSize=document.getElementById("page-size").value
+
+function pageSelect(pageSize,paginationDiv,pageNumber) {
+
     $.ajax({
         contentType: "application/json",
-        url: `/superAdmin/pageSelect?type=commonAdmin&pageSize=${pageSize}`,
+        url: `/superAdmin/pageSelect?type=commonAdmin&pageSize=${pageSize}&pageNumber=${pageNumber}`,
         type: "GET",
         dataType: "Json",
         success: function (data) {
-                console.log(data)
+            console.log(data)
             if (data.code != 0) {
+                console.log(data.code)
+                console.log(data.data)
+                paginationDiv.innerHTML = ""; //clear old button
+                for (let i = 1; i <= data.msg; i++) {
+                    const button = document.createElement("button");
+                    button.textContent = i;
+                    button.style.margin = "0 5px";
+                    button.style.padding = "5px 10px";
+                    button.style.cursor = "pointer";
+                    button.onclick = () => pageSelect(pageSize,paginationDiv,button.textContent);
+                    paginationDiv.appendChild(button);
+                }
                 updateTable(data.data)
                 //location.reload()
             } else {
@@ -271,5 +284,10 @@ $(document).on("change","#page-size",function (){
             }
         },
     })
+}
 
+$(document).on("change","#page-size",function (){
+    let pageSize=document.getElementById("page-size").value
+    let paginationDiv = document.getElementById("pagination");
+    pageSelect(pageSize,paginationDiv,"1");
 })
\ No newline at end of file
diff --git a/src/main/resources/templates/mainHospitalView.html b/src/main/resources/templates/mainHospitalView.html
index d53b851731370c57dfc2d9123f68a6a57be608e0..8531c7773fb71da8cabe13a2c7af3edc4bf31b7f 100644
--- a/src/main/resources/templates/mainHospitalView.html
+++ b/src/main/resources/templates/mainHospitalView.html
@@ -60,7 +60,7 @@
             <td class="tdOption">
                 <label id="edit" class="btn">Edit</label>
                 <label id="delete" class="btn">Delete</label>
-                <label id="freeze" class="btn">Freeze</label>
+                <label id="freeze" class="btn">Change status</label>
             </td>
         </tr>
         </tbody>
diff --git a/src/main/resources/templates/mainSupAdminView.html b/src/main/resources/templates/mainSupAdminView.html
index c0d52d8c8936318bcfcdc2a215e498caa8fafdb3..d3d05a2464b6386f182cf8d9f090d41fdd9e2a8a 100644
--- a/src/main/resources/templates/mainSupAdminView.html
+++ b/src/main/resources/templates/mainSupAdminView.html
@@ -48,7 +48,7 @@
             <td class="tdOption">
                 <label id="edit" class="btn">Edit</label>
                 <label id="delete" class="btn">Delete</label>
-                <label id="freeze" class="btn">Freeze</label>
+                <label id="freeze" class="btn">Change status</label>
             </td>
         </tr>
 
@@ -91,13 +91,22 @@
     <button type="button" id="addAdmin" style="margin-right: 170px;margin-left: 20px">Submit</button>
     <button type="button" onclick="location.reload()">Cancel</button>
 </div>
-<div>
-    <select id="page-size">
+<div style="display: flex; align-items: center; gap: 10px; justify-content: center;">
+    <select id="page-size" style="background-color: #f9f9f9;
+        border: 1px solid #ccc;
+        border-radius: 4px;
+        padding: 8px 12px;
+        font-size: 14px;
+        color: #333;
+        cursor: pointer;
+        width: 150px;
+        transition: all 0.3s ease;">
         <option value="">items per page</option>
         <option value="1">1</option>
         <option value="2">2</option>
         <option value="15">15</option>
     </select>
+    <div id="pagination" style="margin-top: 10px;"></div>
 </div>
 <script src="/js/mainSupAdminView.js"></script>
 </body>