添加CVD项目前端 来自PVD项目

main
xiaoguo 11 months ago
commit 63262eb150

@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

@ -0,0 +1,4 @@
# VITE_BASE_API=http://192.168.10.246:9001/smart
# VITE_BASE_API=http://10.34.48.206:9000/smart
VITE_BASE_API=http://192.168.10.241:5223/

@ -0,0 +1,7 @@
/dist
/src-capacitor
/src-cordova
/.quasar
/node_modules
.eslintrc.js
/src-ssr

@ -0,0 +1,100 @@
module.exports = {
// https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy
// This option interrupts the configuration hierarchy at this file
// Remove this if you have an higher level ESLint config file (it usually happens into a monorepos)
root: true,
// https://eslint.vuejs.org/user-guide/#how-to-use-a-custom-parser
// Must use parserOptions instead of "parser" to allow vue-eslint-parser to keep working
// `parser: 'vue-eslint-parser'` is already included with any 'plugin:vue/**' config and should be omitted
parserOptions: {
parser: require.resolve('@typescript-eslint/parser'),
extraFileExtensions: [ '.vue' ]
},
env: {
browser: true,
es2021: true,
node: true,
'vue/setup-compiler-macros': true
},
// Rules order is important, please avoid shuffling them
extends: [
// Base ESLint recommended rules
// 'eslint:recommended',
// https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#usage
// ESLint typescript rules
'plugin:@typescript-eslint/recommended',
// Uncomment any of the lines below to choose desired strictness,
// but leave only one uncommented!
// See https://eslint.vuejs.org/rules/#available-rules
'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention)
// 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
// 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead)
// https://github.com/prettier/eslint-config-prettier#installation
// usage with Prettier, provided by 'eslint-config-prettier'.
'prettier'
],
plugins: [
// required to apply rules which need type information
'@typescript-eslint',
// https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files
// required to lint *.vue files
'vue'
// https://github.com/typescript-eslint/typescript-eslint/issues/389#issuecomment-509292674
// Prettier has not been included as plugin to avoid performance impact
// add it as an extension for your IDE
],
globals: {
ga: 'readonly', // Google Analytics
cordova: 'readonly',
__statics: 'readonly',
__QUASAR_SSR__: 'readonly',
__QUASAR_SSR_SERVER__: 'readonly',
__QUASAR_SSR_CLIENT__: 'readonly',
__QUASAR_SSR_PWA__: 'readonly',
process: 'readonly',
Capacitor: 'readonly',
chrome: 'readonly'
},
// add your custom rules here
rules: {
'no-empty-function':'off', // 空函数规则
"@typescript-eslint/no-empty-function": "off",
'prefer-promise-reject-errors': 'off',
quotes: ['warn', 'single', { avoidEscape: true }],
// this rule, if on, would require explicit return type on the `render` function
'@typescript-eslint/explicit-function-return-type': 'off',
// in plain CommonJS modules, you can't use `import foo = require('foo')` to pass this rule, so it has to be disabled
'@typescript-eslint/no-var-requires': 'off',
// The core 'no-unused-vars' rules (in the eslint:recommended ruleset)
// does not work with type definitions
'no-unused-vars': 'off',
// allow during development only
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
// 关闭名称校验
// 'vue/multi-word-component-names': 'off'
// 添加组件命名忽略规则
"vue/multi-word-component-names": ["error",{
ignores: ["index","zebrascan"]//需要忽略的组件名
}],
"@typescript-eslint/no-explicit-any": ["off"]
}
}

42
.gitignore vendored

@ -0,0 +1,42 @@
.DS_Store
.thumbs.db
node_modules
.vscode
.env.development
# Quasar core related directories
.quasar
/dist
# Cordova related directories and files
/src-cordova/node_modules
/src-cordova/platforms
/src-cordova/plugins
/src-cordova/www
# Capacitor related directories and files
/src-capacitor/www
/src-capacitor/node_modules
# BEX related directories and files
/src-bex/www
/src-bex/js/core
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
src-electron/electron-flag.d.ts
src-electron/icons/icon.icns
src-electron/icons/icon.ico
src-electron/icons/linux-512x512.png
src-electron/main-process/electron-main.dev.js
src-electron/main-process/electron-main.js
src-electron/main-process/electron-preload.js

@ -0,0 +1,3 @@
# pnpm-related options
shamefully-hoist=true
strict-peer-dependencies=false

@ -0,0 +1,4 @@
{
"singleQuote": true,
"semi": true
}

@ -0,0 +1,307 @@
# 智能大屏系统
### 使用 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 | 启动服务 |

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<title><%= productName %></title>
<meta charset="utf-8">
<meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png">
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
<link rel="icon" type="image/ico" href="favicon.ico">
</head>
<body>
<!-- quasar:entry-point -->
</body>
</html>

5467
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,48 @@
{
"name": "quasar-project",
"version": "0.0.1",
"description": "A Quasar Project",
"productName": "Quasar App",
"author": "YJX <2854770587@qq.com>",
"private": true,
"scripts": {
"dev": "quasar dev",
"build": "quasar build",
"build:pwa": "quasar build -m pwa",
"lint": "eslint --ext .js,.ts,.vue ./",
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
"test": "echo \"No test specified\" && exit 0"
},
"dependencies": {
"@quasar/extras": "^1.16.6",
"axios": "^0.27.2",
"echarts": "^5.4.3",
"pinia": "^2.0.11",
"qrcodejs2-fix": "^0.0.1",
"quasar": "^2.12.7",
"v-scale-screen": "^2.2.0",
"vue": "^3.3.8",
"vue-i18n": "^9.6.5",
"vue-router": "^4.0.0",
"vue3-lottie": "^3.2.0",
"vue3-print-nb": "^0.1.4",
"vue3-seamless-scroll": "^2.0.1"
},
"devDependencies": {
"@quasar/app-vite": "^1.6.0",
"@types/node": "^20.9.0",
"@typescript-eslint/eslint-plugin": "^6.10.0",
"@typescript-eslint/parser": "^6.10.0",
"autoprefixer": "^10.4.2",
"eslint": "^8.53.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-vue": "^9.0.0",
"prettier": "^3.0.3",
"typescript": "^5.2.2"
},
"engines": {
"node": "^18 || ^16 || ^14.19",
"npm": ">= 6.13.4",
"yarn": ">= 1.21.1"
}
}

@ -0,0 +1,27 @@
/* eslint-disable */
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
plugins: [
// https://github.com/postcss/autoprefixer
require('autoprefixer')({
overrideBrowserslist: [
'last 4 Chrome versions',
'last 4 Firefox versions',
'last 4 Edge versions',
'last 4 Safari versions',
'last 4 Android versions',
'last 4 ChromeAndroid versions',
'last 4 FirefoxAndroid versions',
'last 4 iOS versions'
]
})
// https://github.com/elchininet/postcss-rtlcss
// If you want to support RTL css, then
// 1. yarn/npm install postcss-rtlcss
// 2. optionally set quasar.config.js > framework > lang to an RTL language
// 3. uncomment the following line:
// require('postcss-rtlcss')
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save