You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

308 lines
8.8 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 智能大屏系统
### 使用 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<XxxSearchEntity>
3):页内分页具体代码可参考基础模块(dict、log、userRole等)
4):table组件中columns 与 visibleColumns 均定义在 tableColumns文件内,用以减少主要页面代码量
```
## 字典
字典使用pinia实现全局管理
使用时首先需要在对应页面初始化字典值
```bash
const useDict =useDictStore();
onMount(() => {
useDict.getDictMap('dataState');
})
```
然后再需要转换字典的位置进行替换:
```bash
<q-td key="status" :props="props">
{{ useDict.getDict('dataState', props.row.status)}}
</q-td>
```
## 动态下拉
动态下拉统一定义在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
<q-select
dense
outlined
rounded
use-input
:options="filterOption['xxxList']"
@filter="filterFunction['xxxList']"
:option-label="filterLabel['xxxList']"
:option-value="filterValue['xxxList']"
emit-value
map-options
/>
```
## 页面拆分
### Dialog
每个页面基础弹窗命名包含:
```bash
新增: addDialog.vue
编辑: EditDialog.vue
新增或编辑: addOrEditDialog.vue
删除: removeDialog.vue
查看: viewDialog
```
每个弹窗单独为一个文件
dialog 包含两个基础方法和一个基础变量
```bash
visible -> 控制弹窗显示/隐藏的变量
```
```bash
clickForm—> 控制弹窗显示/隐藏的方法 需提供给父组件
```
```bash
submitForm—> 提交表单的方法
```
主页面声明时:
```bash
组件名称为引入名称: <addDialog/>
```
```bash
ref名称为组件名删除Dialog: <addDialog ref='add' />
```
```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-service.xml -->
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<logpath>E:\nginx-1.25.1\server-logs\</logpath>
<logmode>roll</logmode>
<depend></depend>
<executable>E:\nginx-1.25.1\nginx.exe</executable>
<stopexecutable>E:\nginx-1.25.1\nginx.exe -s stop</stopexecutable>
</service>
```
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 | 启动服务 |