zsydgithub 1 anno fa
parent
commit
89096ae505

+ 1 - 1
day6/demo/demo.css

@@ -231,7 +231,7 @@
     color: #fff;
     position: absolute;
     top: 0;
-    left: 319px;
+    left: 217px;
 }
 .main .partTwo .banner .dialog .water {
     width: 260px;

+ 11 - 8
day6/demo/demo.html

@@ -1,11 +1,13 @@
 <!DOCTYPE html>
 <html lang="en">
+
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <link rel="stylesheet" href="./demo.css">
 </head>
+
 <body>
     <!-- 大盒子 -->
     <div class="box">
@@ -249,7 +251,7 @@
                                     </div>
                                 </dd>
                             </dl>
-                             <dl>
+                            <dl>
                                 <dt>
                                     <img src="./images/red.png" alt="">
                                 </dt>
@@ -301,7 +303,7 @@
                                     </div>
                                 </dd>
                             </dl>
-                             <dl>
+                            <dl>
                                 <dt>
                                     <img src="./images/red.png" alt="">
                                 </dt>
@@ -338,7 +340,7 @@
             <div class="partFour">
                 <div class="container">
                     <div class="conFirst">
-                        <div class="spa">   
+                        <div class="spa">
                             <div></div>
                             <div>
                                 <p>美容洗护</p>
@@ -375,7 +377,7 @@
                                         <span>¥1866</span>
                                     </div>
                                     <img src="./images/watch.png" alt="">
-                                    
+
                                 </div>
                                 <div class="vase-bottom">
                                     <div class="vase-bottom-partOne">
@@ -468,7 +470,7 @@
                         </div>
                     </div>
                     <div class="conFirst">
-                        <div class="spa">   
+                        <div class="spa">
                             <div></div>
                             <div>
                                 <p>美容洗护</p>
@@ -505,7 +507,7 @@
                                         <span>¥1866</span>
                                     </div>
                                     <img src="./images/watch.png" alt="">
-                                    
+
                                 </div>
                                 <div class="vase-bottom">
                                     <div class="vase-bottom-partOne">
@@ -598,7 +600,7 @@
                         </div>
                     </div>
                     <div class="conFirst">
-                        <div class="spa">   
+                        <div class="spa">
                             <div></div>
                             <div>
                                 <p>美容洗护</p>
@@ -635,7 +637,7 @@
                                         <span>¥1866</span>
                                     </div>
                                     <img src="./images/watch.png" alt="">
-                                    
+
                                 </div>
                                 <div class="vase-bottom">
                                     <div class="vase-bottom-partOne">
@@ -739,4 +741,5 @@
         <div class="footer"></div>
     </div>
 </body>
+
 </html>

+ 1 - 8
v3-admin/src/App.vue

@@ -12,16 +12,9 @@
 
 <script lang="ts">
 import { defineComponent } from "vue";
-import request from "@/utils/request";
-import { onMounted } from "vue";
 export default defineComponent({
   setup() {
-    onMounted(() => {
-      request.get('/hosp/hospital/1/10').then((res)=>{
-        console.log('App展示获取接口',res)
-      })
-    });
-    return { onMounted };
+    return {  };
   },
 });
 </script>

+ 10 - 0
v3-admin/src/api/home/index.ts

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+import type { HospitalResponseData} from './type'
+
+//通过枚举管理首页模块的接口地址
+enum API {
+  //获取已有的医院的数据接口地址
+  HOSPITAL_URL = '/hosp/hospital/',
+}
+//获取医院的数据
+export const reqHospital = (page: number, limit: number) => request.get<any, HospitalResponseData>(API.HOSPITAL_URL + `${page}/${limit}`)

+ 6 - 0
v3-admin/src/api/home/type.ts

@@ -0,0 +1,6 @@
+//定义首页模块ts数据类型
+export interface ResponseData {
+  code: number,
+  message: string,
+  ok: boolean
+}

+ 7 - 5
v3-admin/src/pages/home/card/index.vue

@@ -1,8 +1,8 @@
 <template>
-  <el-card  class="box-card" shadow="hover">
+  <el-card class="box-card" shadow="hover">
     <div class="content">
       <div class="left">
-        <div class="hospital_name">北京人民医院</div>
+        <div class="hospital_name">{{ hospitalInfo.hosname }}</div>
         <div class="tip">
           <div class="level">
             <svg
@@ -21,7 +21,7 @@
                 p-id="5384"
               ></path>
             </svg>
-            <span>三级甲等</span>
+            <span>{{ hospitalInfo.param.hostypeString }}</span>
           </div>
           <div class="time">
             <svg
@@ -51,18 +51,20 @@
                 p-id="6508"
               ></path>
             </svg>
-            <span>每天7点放号</span>
+            <span>每天{{hospitalInfo.bookingRule?.releaseTime}}放号</span>
           </div>
         </div>
       </div>
       <div class="right">
-        <img src="../../../assets/images/logo.png" alt="" />
+        <img :src="`data:image/jpeg;base64,${hospitalInfo.logoData}`" alt="" />
       </div>
     </div>
   </el-card>
 </template>
 
 <script setup lang="ts">
+//接受父组件传递过来的props -> 已有的医院数据
+defineProps(["hospitalInfo"]);
 </script>
 
 <style scoped lang="scss">

+ 54 - 2
v3-admin/src/pages/home/index.vue

@@ -12,7 +12,12 @@
         <Region></Region>
         <!-- 展示医院的信息 -->
         <div class="hospital">
-          <Card class="item" v-for="item in 10" :key="item"></Card>
+          <Card
+            class="item"
+            v-for="item in hasHospitalArr"
+            :hospitalInfo="item"
+            :key="item"
+          ></Card>
         </div>
         <!-- 展示分页器 -->
 
@@ -22,7 +27,9 @@
           :page-sizes="[10, 20, 30, 40]"
           layout="prev, pager, next, jumper,->, sizes,total"
           background="true"
-          :total="20"
+          :total="total"
+          @size-change="sizeChange"
+          @current-change="currentChange"
         />
       </el-col>
       <el-col :span="4"></el-col>
@@ -36,6 +43,51 @@ import Search from "./search/index.vue";
 import Level from "./level/index.vue";
 import Region from "./region/index.vue";
 import Card from "./card/index.vue";
+import { onMounted, ref } from "vue";
+import { reqHospital } from "@/api/home/index";
+
+//分页器页码
+let pageNo = ref<number>(1);
+
+//一页展示多少条数据
+let pageSize = ref<number>(10);
+
+//存储已有的医院数据
+let hasHospitalArr = ref([]);
+
+//存储医院总个数
+let total = ref<number>(0);
+
+onMounted(() => {
+  getHospitalInfo();
+});
+
+//获取医院已有的数据
+const getHospitalInfo = async () => {
+  //获取医院数据  默认获取第一页  一页是个医院的数据
+  let result: any = await reqHospital(pageNo.value, pageSize.value);
+  console.log(result);
+  if (result.data.code == 200) {
+    //存储数据
+    hasHospitalArr.value = result.data.data.content;
+    // console.log(result)
+    //存储医院总个数
+    total.value = result.data.data.totalElements;
+  }
+};
+
+//分页器页码发生变化的时候
+const currentChange = () => {
+  getHospitalInfo();
+};
+
+//分页器下拉菜单发生变化的时候 会触发
+const sizeChange = () => {
+  //当前页码回归第一页
+  pageNo.value = 1
+  //在发送一次请求
+  getHospitalInfo()
+};
 </script>
 
 <style scoped lang="scss">

+ 28 - 1
v3-admin/src/utils/request.ts

@@ -2,6 +2,7 @@
 //目的1: 利用axios请求,拦截功能
 //目的2:请求拦截器,一般可以在公共的部分携带token
 import axios from "axios";
+import { ElMessage } from "element-plus";
 
 //利用axios。crate方法创建一个axios实例
 const request = axios.create({
@@ -14,8 +15,34 @@ request.interceptors.request.use((config) => {
   return config
 })
 //响应拦截器
-request.interceptors.response.use((response)=>{
+request.interceptors.response.use((response) => {
+  //处理http错误
   return response
+}, (error) => {
+  //处理http网络错误
+  let status = error.response.status
+  switch (status) {
+    case 404:
+      //错误提示信息
+      ElMessage({
+        type: 'error',
+        message: '请求路径出现问题'
+      })
+      break;
+    case 500 | 501 | 502 | 503 | 504 | 505:
+      ElMessage({
+        type: 'error',
+        message: "服务器挂了"
+      })
+      break;
+    case 401:
+      ElMessage({
+        type: 'error',
+        message: '参数错误'
+      })
+      break;
+  }
+  return Promise.reject(new Error(error.message))
 })
 
 //对外暴露