vue3医疗项目

news2024/11/27 7:35:09

配置src别名

打开viteconfig.js文件进行配置

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
// 引入node提供内置模块path:可以获取绝对路径
import path from "path";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  // src文件夹配置别名
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"),
    },
  },
});

如果代码标红,需安装@types/node是TypeScript的一个声明文件包,用于描述Node.js核心模块和常用的第三方库的类型信息

pnpm i @types/node --save-dev

在这里插入图片描述

找到tsconfig.json配置文件,找到配置项compilerOptions添加配置,这一步的作用是让IDE可以对路径进行智能提示

// 路径提示
    "baseUrl": ".",
    "paths": {
     "@/*": ["src/*"]
    }

在这里插入图片描述

控制路由滚动行为

// 滚动行为:控制滚动条的位置
  scrollBehavior() {
    return {
      left: 0,
      top: 0,
    };
  },

在这里插入图片描述
深度选择器:>>> /deep/ ::v-deep

服务器地址:http://syt.atguigu.cn
医院接口:http://139.198.34.216:8201/swagger-ui.html
公共数据接口:http://139.198.34.216:8202/swagger-ui.html
会员接口:http://139.198.34.216:8203/swagger-ui.html
短信验证码接口:http://139.198.34.216:8204/swagger-ui.html
订单接口:http://139.198.34.216:8206/swagger-ui.html
文件上传接口:http://139.198.34.216:8205/swagger-ui.html
后台用户接口:http://139.198.34.216:8212/swagger-ui.html

vue3+ts代码标红

取消ts校验

// @ts-ignore

在这里插入图片描述
安装sass

pnpm i sass

base64图片拼接调用

data:image/jpeg;base64
        <img:src="`data:image/jpeg;base64,${hospitalInfo.logoData}`" alt="">

隐藏滚动条

.rightNav {
      overflow: auto;
      &::-webkit-scrollbar{
        display:none;
      }
    }

scrollIntoView()方法属性
在一个移动项目中遇到个这样的需求,一个表单填写页面,每项都有表单验证,并且点击提交按钮,未通过校验的输入框下边显示校验信息,同时页面滑动定位到第一个未通过校验的输入框.
我们在完成这项需求时,使用的scrollIntoView()方法.
alignToTop [可选],目前之前这个参数得到了良好的支持
true 元素的顶部将对齐到可滚动祖先的可见区域的顶部。对应于scrollIntoViewOptions: {block: “start”, inline: “nearest”}。这是默认值
false 元素的底部将与可滚动祖先的可见区域的底部对齐。对应于scrollIntoViewOptions: {block: “end”, inline: “nearest”}。
scrollIntoViewOptions [可选],目前这个参数浏览器对它的支持并不好,可以查看下文兼容性详情
behavior [可选]定义过渡动画。“auto”,“instant"或"smooth”。默认为"auto"。
block [可选] “start”,“center”,“end"或"nearest”。默认为"center"。
inline [可选] “start”,“center”,“end"或"nearest”。默认为"nearest"。

element.scrollIntoView(); // 等同于element.scrollIntoView(true)
element.scrollIntoView(alignToTop); //布尔参数
element.scrollIntoView(scrollIntoViewOptions); //对象参数

在这里插入图片描述

示例
var element = document.getElementById("box");
 
element.scrollIntoView();
element.scrollIntoView(false);
element.scrollIntoView({block: "end"});
element.scrollIntoView({behavior: "instant", block: "end", inline: "nearest"});

微信开放平台网址:https://open.weixin.qq.com/
微信公众平台网址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/getting_started/terminology_introduce.html
极简插件:https://chrome.zzzmh.cn/
组件命名:npm i vite-plugin-vue-setup-extend -D
vite.config.ts文件添加配置

import VueSetupExtend from "vite-plugin-vue-setup-extend";

在这里插入图片描述
在这里插入图片描述

pinia仓库数据持久化插件网址:

https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/why.html

element-plus中ElmessageBox弹窗没有样式报错原因及解决:引入了element plus,并没有引入css文件,所以导致了样式的缺失,只需要在main.js文件中添加如下代码:

import 'element-plus/dist/index.css'

如果还是没有效果记得重启一下项目

微信开放平台网址:https://open.weixin.qq.com/
微信公众平台:https://mp.weixin.qq.com/

对网址进行编码:
let redirect_URL=encodeURIComponent(window.location.origin)

微信小程序图片体积过大压缩:https://tinypng.com/

qrcode

npm install -g qrcode
import QRCode from 'qrcode'
imgUrl.value=await QRCode.toDataURL(result.data.codeUrl)
console.log(imgUrl)

级联列表

在这里插入图片描述

 <el-cascader :props="props" />
// 级联选择器数据
const props:CascaderProps = {
  lazy: true,
  // 加载级联选择器数据的方法
 async lazyLoad(node, resolve) {
  let result:any=await reqCity(node.data.id||'86')
  let showData=result.data.map((item:any)=>{
    return{
      id:item.id,
      label:item.name,
      value:item.value,
      leaf: !item.hasChildren
    }
  })
  resolve(showData)
  },
}

进度条(https://www.npmjs.com/package/nprogress)

安装进度条

npm i nprogress
// 引入进度条
import NProgress from "nprogress";
// 引入进度条的样式
import "nprogress/nprogress.css"
// 设置无加载小圆圈
NProgress.configure({ showSpinner: false });
NProgress.start();
NProgress.done();

设置页面动态标题

const routes = [
  {
    path: "/home",
    component: () => import("@/pages/home/index.vue"),
    meta: { title: "首页" },
  },
}

在这里插入图片描述

document.title=`大一医院${to.meta.title}`

路由鉴权

// 路由鉴权
// 引入路由
import router from "@/router";
// 引入进度条
// @ts-ignore
import NProgress from "nprogress";
// 引入进度条的样式
import "nprogress/nprogress.css";
import pinia from "@/store"
// @ts-ignore
import useUserStore from "@/store/modules/user";
let userStore = useUserStore(pinia);
// 存储用户未登录可以访问的路由的路径
let whiteList = [
  "/home",
  "/hospital/register",
  "/hospital/detail",
  "/hospital/notice",
  "/hospital/close",
  "/hospital/search",
];
// 设置无加载小圆圈
NProgress.configure({ showSpinner: false });
// 添加相应的全局守卫
// 全局的前置守卫
router.beforeEach((to, from, next) => {
  // 访问路由组件之前,进度条开始动
  // 动态设置网页左上角的标题
  document.title = `大一医院${to.meta.title}`;
  NProgress.start();
  // 判断用户是否登录-token
  let token = userStore.userInfo.token;
  if (token) {
    // 用户登录了
    next();
  } else {
    // 用户未登录
    if (whiteList.includes(to.path)) {
      next();
    } else {
      // 登录组件显示
      userStore.visible = true;
      // 跳转至首页
      next({ path: "/home",query:{redirect:to.fullPath} });
    }
  }
});
// 后置路由
router.afterEach((to, from) => {
  // 访问路由组件成功,进度条消失
  NProgress.done();
});

登录操作

// 登录操作
const login = async () => {
  await form.value.validate();
  try {
    await userStore.userLogin(loginParam);
    // 关闭对话框
    userStore.visible = false;
    // 获取url的query参数
    let redirect=route.query.redirect
    if(redirect){
      router.push(redirect as string)
    }else{
      router.push('/home')
    }
  } catch (error) {
    ElMessage({
      type: "error",
      message: (error as Error).message
    });
  }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1825829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LIMS(实验室)信息管理系统源码:系统构架组成与功能实现

LIMS&#xff08;实验室&#xff09;信息管理系统源码&#xff1a;系统构架组成与功能实现 采用先进的计算机网络技术、数据库技术和标准化的实验室管理思想&#xff0c;组成一个全面、规范的管理体系&#xff0c;为实现分析数据网上调度、分析数据自动采集、快速分布、信息共…

大模型中的计算精度——FP32, FP16, bfp16之类的都是什么???

大模型中的计算精度——FP32, FP16, bfp16之类的都是什么&#xff1f;&#xff1f;&#xff1f; 这些精度是用来干嘛的&#xff1f;&#xff1f;混合精度 mixed precision training什么是混合精度&#xff1f;怎么转换呢&#xff1f; 为什么大语言模型通常使用FP32精度训练量化…

房地产房型展示信息小程序的内容是什么

地产业规模之大且品牌众多&#xff0c;还有房屋租赁、中介等&#xff0c;无论开发商公司还是衍生行业商家都需要多渠道宣传品牌和客户触达沟通转化&#xff0c;除了线下各种传单&#xff0c;线上也是主要场景&#xff0c;通过各种连接来达到相应目标。 也因此需符合平台生态开…

基于cortex-M3的rtos原理(上)

一、RTOS是什么&#xff1f; 下面是网上搜索到的定义&#xff1a; 看到系统一般会想到window&#xff0c;linux这种&#xff0c;但是rtos区别于它们的是占用资源小&#xff0c;实时性强&#xff0c;可以运行在资源受限的mcu上。一些soc厂商编写的sdk里带有添加“任务”的功能&…

SAP RFC 输入一张表(C# 使用 SapNwRfc 二)

SapNwRfc中的配置参数&#xff0c;记录日志关闭 Trace0&#xff0c;可以得到很好的性能。 有网友在问&#xff0c;SAP RFC返回多张表&#xff08;C# 使用 SapNwRfc 一&#xff09;中如何输入一张表的数据&#xff0c;正好博主也遇到了这个场景&#xff0c;今天做了一个DEMO&…

【Java】类与类的关系及其总结

类和类的关系 代码 总结&#xff1a; 【1】面向对象的思维&#xff1a;找参与者&#xff0c;找女孩类&#xff0c;找男孩类 【2】体会了什么叫方法的性擦&#xff0c;什么叫方法的实参&#xff1a; 具体传入的内容 实参&#xff1a; 【3】类和类可以产生关系&#xff1a; …

python基础面试题(其二)

十一&#xff0c; 常用的字符串处理 常见操作——查找 string.find(str, beg0,endlen(string)) 检测str是否包含在string中&#xff0c;如果beg和end指定范围&#xff0c;则检查是否在指定范围内&#xff0c;如果是返回开始的索引值&#xff0c;则返回-1 string.rfind(str, be…

python-求f(x,n)

[题目描述] 输入&#xff1a; 输入 &#x1d465;和 &#x1d45b;。输出&#xff1a; 函数值&#xff0c;保留两位小数。样例输入1 4.2 10 样例输出1 3.68 来源/分类&#xff08;难度系数&#xff1a;一星&#xff09; 完整代码如下&#xff1a; x,nmap(eval,input().split(…

Internet Download Manager ( 极速下载器 ) 序列号注册码 IDM下载器注册机中文激活破解版

IDM下载器(Internet Download Manager)是一款专业的下载管理软件&#xff0c;它通过多线程技术和智能文件分段技术&#xff0c;有效提升下载速度&#xff0c;并支持断点续传&#xff0c;还具有计划下载功能&#xff0c;用户可以设置特定的下载时间&#xff0c;非常适合需要在特…

推荐一款可以下载B站视频和音频的工具

cobalt是一个免费的下载网站&#xff0c;主要是用于载视频和音频。只要你把相应的网址复制下来&#xff0c;然后打开cobalt网站&#xff0c;黏贴网址&#xff0c;选择要下载的格式&#xff0c;就可以下载相应的音频或者视频了。 该网站非常简洁&#xff0c;使用也很简单。目前只…

RK3568平台(触摸篇)触摸屏基本原理

一.触摸屏概述 触摸屏作为一种新的输入设备&#xff0c;它是目前最简单、方便、自然的一种人机交互方式。 触摸屏又称为“触控屏”、“触控面板”&#xff0c;是一种可接收触头等输入讯号的感应式液晶显示装置&#xff1b;当接触了屏幕上的图形按钮时&#xff0c;屏幕上的触觉…

大话C语言:第24篇 预处理

1 C语言编译流程 C语言的编译流程包括&#xff1a; 预编译&#xff1a;将.c 中的头文件展开、宏展开&#xff0c;生成的文件是.i 文件。gcc指令&#xff1a;gcc -E file.c -o file.i 编译&#xff1a;将预处理之后的.i 文件生成 .s 汇编文件。gcc指令&#xff1a;gcc -S file…

编译一个叫:未来的IDE-Zed编辑器(Windows平台)

一、前言 截止到2024-6-15&#xff0c;Zed官方并未给出Windows的二进制安装包&#xff0c;如果想在Windows平台使用的话需要自己编译&#xff0c;我是如何编译的请随我道来&#xff0c;有兴趣的码友可以尝试下&#xff0c;在下可不敢保证各位码友按我这方法能100%编译出来&…

流量卡怎么办理的攻略

一、确定需求 在办理流量卡之前&#xff0c;你需要明确自己的需求。根据不同的使用场景&#xff0c;你可能需要考虑以下几个方面&#xff1a; 月租费用&#xff1a;不同运营商提供的流量卡套餐价格各异&#xff0c;从低至19元到高达199元不等。 流量大小&#xff1a;从30GB到3…

CompletableFuture.runAsync的多线程下异步操作

CompletableFuture.runAsync的多线程下异步操作 &#x1f9f0;业务使用场景 ​CompletableFuture.runAsync()​方法是Java中用于创建异步任务的工具&#xff0c;它可以在后台线程中执行指定的任务&#xff0c;并且可以在任务完成后返回结果或执行后续操作。这种方式可以实现多…

Elixir学习笔记——别名、需要、导入和使用

为了便于软件重用&#xff0c;Elixir 提供了三个指令&#xff08;alias、require 和 import&#xff09;以及一个名为 use 的宏&#xff0c;总结如下&#xff1a; # 为模块添加别名&#xff0c;以便可以将其称为 Bar 而不是 Foo.Bar alias Foo.Bar, as: Bar # 需要模块才能使…

数字化校园:打造未来教育新风尚

在21世纪的教育蓝图中&#xff0c;"数字化校园"正逐渐从愿景走向现实&#xff0c;它不仅是科技进步与教育创新深度融合的产物&#xff0c;更是重塑教育生态、引领未来学习风尚的关键力量。随着云计算、大数据、人工智能等前沿技术的蓬勃发展&#xff0c;传统的教育模…

基于RandLA-Net深度学习模型的激光点云语义分割

一、场景要素语义分割部分的文献阅读笔记 RandLA-Net是一种高效、轻量级的神经网络&#xff0c;其可直接逐点推理大规模点云的语义标签。RandLA-Net基于随机点采样获得了显著的计算和内存效率&#xff0c;并采用新的局部特征聚合模块有效地保留了几何细节&#xff0c;弥补了随机…

warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略

文章目录 warning LNK4017: DESCRIPTION 语句不支持目标平台&#xff1b;已忽略概述笔记备注END warning LNK4017: DESCRIPTION 语句不支持目标平台&#xff1b;已忽略 概述 基于ATL的COM DLL导出函数&#xff0c;无法用__declspec(dllexport)直接在函数上标记为导出函数。 只…

Linux crontabs定时执行任务

文章目录 前言一、安装二、服务1. 启动crond服务2. 关闭crond服务3. 重启crond服务4. 设置crond开机启动5. 禁用crond开机启动6. 查看crond是否开机启动7. 重新载入配置8. 查看crond运行状态 三、使用1. 查看当前用户的crontab2. 编辑用户的crontab3. 删除用户的crontab的内容 …