# 智能大屏系统 ### 使用 Vue3 + Typescript + Quasar + Pinia开发 ##基础命令 安装依赖 Install the dependencies ```bash yarn/npm install ``` 开发环境启动项目 Start the app in development mode (hot-code reloading, error reporting, etc.) ```bash quasar dev ``` 打包项目(dist文件夹) Build the app for production ```bash quasar build ``` 短期启动打包项目(dist文件夹目录下) ```bash quasar serve -p xxxx(端口号,非必要项) ``` 更多 Customize the configuration See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js). # 开发约束 ## 主要目录说明 ```bash ─── public 存放图片等静态资源 ├─ src │ ├─ boot │ │ └─ axios.ts (Ajax请求封装文件,请求拦截,响应拦截) │ │ │ ├─ api │ │ ├─ class.ts (全局对象类型定义(paginaion、convrot)) │ │ ├─ common.ts () │ │ └─ xxx (一级模块) │ │ └─ xxxXxx (二级模块) │ │ ├─ xxxApi.ts (模块接口) │ │ └─ model(模块TS类型定义) │ │ │ ├─ pages │ │ └─ xxx (一级模块) │ │ ├─ xxxTab.vue (tab栏项) │ │ ├─ tableColumn.ts (table组件行列字段定义,动态列定义) │ │ └─ xxxXxx (二级模块) │ │ ├─ components (页面拆分组件) │ │ └─ index.vue (主模块页面) │ │ │ ├─ components (公共组件定义) │ │ │ ├─ layout () │ │ ├─ initalayout.vue (平台检测页面控制) │ │ ├─ mainlayoutXxx.vue (各平台框架页面) │ │ └─ loginout.vue (登录页面) │ │ │ ├─ router │ │ ├─ index.ts (路由初始化挂载,路由守卫(登录校验等)) │ │ ├─ routes.ts (静态路由) │ │ └─ routerConteol.ts (动态路由获取,路由动态挂载方法) │ │ │ ├─ css │ │ └─ quasar.variables.scss(全局CSS样式) │ ├─ shared (工具组件,经常复用的UI组件,比如textIcon) │ ├─ stores (pinia全局状态管理(字典、xx)) │ └─ utils (工具类(动态下拉、xx)) │ ├─ .env.developmnet 个人开发环境配置文件 ├─ .env.production 生产打包环境配置文件 └─ .env.d.ts 全局类型 ``` ## 分页 ```bash 1):分页请求使用axios封装的PostForPage()方法发送后端请求 2):API方法中标准传入类型为Pagianion 3):页内分页具体代码可参考基础模块(dict、log、userRole等) 4):table组件中columns 与 visibleColumns 均定义在 tableColumns文件内,用以减少主要页面代码量 ``` ## 字典 字典使用pinia实现全局管理 使用时首先需要在对应页面初始化字典值 ```bash const useDict =useDictStore(); onMount(() => { useDict.getDictMap('dataState'); }) ``` 然后再需要转换字典的位置进行替换: ```bash {{ useDict.getDict('dataState', props.row.status)}} ``` ## 动态下拉 动态下拉统一定义在Utils文件夹下filterUtils.ts文件内,由四个部分组成 function: ```bash export const filterFunction:any = { xxxList : () => {} } ``` options: ```bash export const filterOption:any =ref({ xxxList: [], }) ``` value: ```bash export const filterValue:any = { xxxList: 'id', } ``` label: ```bash export const filterLabel:any = { xxxList: 'xxxName', } ``` 使用是在页内引入对应方法 ```bash import { filterFunction, filterOption, filterLabel, filterValue, } from 'src/Utils/filterUtils'; ``` 然后使用即可: ```bash ``` ## 页面拆分 ### Dialog 每个页面基础弹窗命名包含: ```bash 新增: addDialog.vue 编辑: EditDialog.vue 新增或编辑: addOrEditDialog.vue 删除: removeDialog.vue 查看: viewDialog ``` 每个弹窗单独为一个文件 dialog 包含两个基础方法和一个基础变量 ```bash visible -> 控制弹窗显示/隐藏的变量 ``` ```bash clickForm()—> 控制弹窗显示/隐藏的方法 需提供给父组件 ``` ```bash submitForm()—> 提交表单的方法 ``` 主页面声明时: ```bash 组件名称为引入名称: ``` ```bash ref名称为组件名删除Dialog: ``` ```bash js代码以及方法命名为: const add = ref(); const addForm = () => { add.value.clickForm(); }; ``` # Nginx部署说明 ## 引言 Nginx 是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前 端分离的情况下。而在开发过程中,我们常常需要在window系统下使用Nginx作为Web服务器。 ## 下载Nginx 1、去到Nginx官网:http://nginx.org/ ,然后点击“download” ![image](./public/statics/readme/2023-09-20_111916.png) 2、在下载界面选择自己想要下载的版本,点击对应版本,下载Nginx。 ![image](./public/statics/readme/2023-09-20_112025.png) 3、 下载完成后,解压Nginx压缩包。 ![image](./public/statics/readme/2023-09-20_112534.png) ## 三、Nginx的使用 1、打开Nginx文件夹。 ![image](./public/statics/readme/2023-09-20_112631.png) 2、在nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果本地电脑的80端口有被占用,如果本地80端口已经使用则修改成其他端口。 ![image](./public/statics/readme/2023-09-20_112703.png) 查看80端口是否被占用的命令是: ``` netstat -ano | findstr 0.0.0.0:80 ``` 或 ``` netstat -ano | findstr "80" ``` 3、启动Nginx方法: 方法一:直接双击Nginxm目录下的nginx.exe,双击后一个黑色的弹窗一闪而过就消失了,启动就完成了。 ![image](./public/statics/readme/2023-09-20_113059.png) 方法二:打开电脑的cmd命令窗口,然后切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可完成启动。 ![image](./public/statics/readme/2023-09-20_113222.png) 4、查看Nginx是否成功的方法 直接在浏览器地址栏输入网址:http://localhost:80 (如果上面修改了其他端口,就将80改成其他端口数),然后点击回车,出现以下页面说明启动成功 ![image](./public/statics/readme/2023-09-20_113548.png) 5、关闭Nginx 方法一:在cmd命令窗口里面输入nginx命令(快速停止nginx) : ``` nginx -s stop ``` 或者使用(完整有序的停止nginx)命令: ``` nginx -s quit ``` 方法二:使用taskkill命令: ``` taskkill /f /t /im nginx.exe ``` # Nginx开机自启 ## 原理 通过 Windows Service Wrapper 工具,将Nginx转换为Windows服务,Windows系统重启后会自动启动Nginx服务。 ## 实现方法 下载Windows Service Wrapper工具,地址:[https://github.com/winsw/winsw/releases]: Releases · winsw/winsw · GitHub ,根据系统版本下载对应工具。 1.将工具放到Nginx安装目录并命名为nginx-service.exe。 2.在Nginx目录新建服务日志文件夹server-logs文件夹。 3.新建nginx-service.xml文件,写入配置文件。 整体目录如下: ![](E:\project\LHR\Smart_Template_PVD\public\statics\readme\bb78a6455acf87c62300156aa5a6ae07.png) 配置文件如下:主要包含日志位置、启动和关闭,目录根据自己安装位置调整(不要有中文)。 ``` nginx nginx nginx E:\nginx-1.25.1\server-logs\ roll E:\nginx-1.25.1\nginx.exe E:\nginx-1.25.1\nginx.exe -s stop ``` 1. 将nginx加载到Windows服务中。在nginx安装目录以管理员身份启用CMD输入:`.\nginx-service.exe install` ![](E:\project\LHR\Smart_Template_PVD\public\statics\readme\8c03bc3b3d99aabf82b88174ed36ccab.png) 2. 在Windows服务中找到nginx服务,将启动方式改成自动并将其启动。 ![](E:\project\LHR\Smart_Template_PVD\public\statics\readme\4ba686221df59b127263ebf77ab18033.png) ## Windows Service Wtapper 命令 | 命令 | 功能 | | :-------------------------- | :----------------- | | nginx-service.exe install | 注册系统服务 | | nginx-service.exe uninstall | 删除已注册系统服务 | | nginx-service.exe stop | 关闭服务 | | nginx-service.exe start | 启动服务 |