添加新的需求
110
LANDING_ENTRUCK_WEIGHT_IMPLEMENTATION_REPORT.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# 约定单价字段添加完成报告
|
||||
|
||||
## 概述
|
||||
成功为编辑装车订单和创建装车订单的信息列表中添加了约定单价字段(对应数据表中的 `landing_entruck_weight` 字段),模仿采购单价和销售单价的实现方式。
|
||||
|
||||
## 修改内容
|
||||
|
||||
### 1. 前端Vue组件修改
|
||||
|
||||
#### 1.1 编辑装车订单组件 (`editDialog.vue`)
|
||||
- **位置**: `c:\cattleTransport\pc-cattle-transportation\src\views\shipping\editDialog.vue`
|
||||
- **修改内容**:
|
||||
- 在表单中添加了约定单价输入框(第164-172行)
|
||||
- 在 `ruleForm` 中添加了 `landingEntruckWeight` 字段(第290行)
|
||||
- 在保存参数中添加了 `landingEntruckWeight` 字段(第605行)
|
||||
|
||||
#### 1.2 创建装车订单组件 (`orderDialog.vue`)
|
||||
- **位置**: `c:\cattleTransport\pc-cattle-transportation\src\views\shipping\orderDialog.vue`
|
||||
- **修改内容**:
|
||||
- 在表单中添加了约定单价输入框(第164-172行)
|
||||
- 在 `ruleForm` 中添加了 `landingEntruckWeight` 字段(第289行)
|
||||
- 在保存参数中添加了 `landingEntruckWeight` 字段(第602行)
|
||||
|
||||
#### 1.3 信息列表组件 (`loadingOrder.vue`)
|
||||
- **位置**: `c:\cattleTransport\pc-cattle-transportation\src\views\shipping\loadingOrder.vue`
|
||||
- **修改内容**:
|
||||
- 在表格中添加了约定单价列(第47-51行)
|
||||
- 列标题:约定单价(元/公斤)
|
||||
- 字段名:`landingEntruckWeight`
|
||||
|
||||
### 2. 后端Java服务修改
|
||||
|
||||
#### 2.1 数据库迁移脚本
|
||||
- **文件**: `c:\cattleTransport\tradeCattle\add_landing_entruck_weight_field.sql`
|
||||
- **内容**: 为 `delivery` 表添加 `landing_entruck_weight` 字段(DECIMAL(10,2)类型)
|
||||
|
||||
#### 2.2 Delivery实体类 (`Delivery.java`)
|
||||
- **位置**: `c:\cattleTransport\tradeCattle\aiotagro-cattle-trade\src\main\java\com\aiotagro\cattletrade\business\entity\Delivery.java`
|
||||
- **修改内容**:
|
||||
- 添加了 `landingEntruckWeight` 字段(第90-94行)
|
||||
- 字段类型:`Double`
|
||||
- 数据库映射:`@TableField("landing_entruck_weight")`
|
||||
|
||||
#### 2.3 DeliveryEditDto类 (`DeliveryEditDto.java`)
|
||||
- **位置**: `c:\cattleTransport\tradeCattle\aiotagro-cattle-trade\src\main\java\com\aiotagro\cattletrade\business\dto\DeliveryEditDto.java`
|
||||
- **修改内容**:
|
||||
- 添加了 `landingEntruckWeight` 字段(第35行)
|
||||
- 字段类型:`Double`
|
||||
|
||||
#### 2.4 DeliveryController控制器 (`DeliveryController.java`)
|
||||
- **位置**: `c:\cattleTransport\tradeCattle\aiotagro-cattle-trade\src\main\java\com\aiotagro\cattletrade\business\controller\DeliveryController.java`
|
||||
- **修改内容**:
|
||||
- 在 `addDeliveryOrder` 方法中添加了 `landingEntruckWeight` 参数处理(第200-212行)
|
||||
- 在创建Delivery对象时设置 `landingEntruckWeight` 字段(第298行)
|
||||
|
||||
#### 2.5 DeliveryServiceImpl服务实现 (`DeliveryServiceImpl.java`)
|
||||
- **位置**: `c:\cattleTransport\tradeCattle\aiotagro-cattle-trade\src\main\java\com\aiotagro\cattletrade\business\service\impl\DeliveryServiceImpl.java`
|
||||
- **修改内容**:
|
||||
- 在 `updateDeliveryInfo` 方法中添加了 `landingEntruckWeight` 字段更新逻辑(第570-572行)
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 前端功能
|
||||
1. **输入框样式**: 与采购单价和销售单价保持一致,包含"元/公斤"单位后缀
|
||||
2. **表单验证**: 支持清空和输入验证
|
||||
3. **数据绑定**: 双向数据绑定,支持编辑和创建
|
||||
4. **表格显示**: 在信息列表中显示约定单价列
|
||||
|
||||
### 后端功能
|
||||
1. **参数处理**: 支持String和Double类型的参数转换
|
||||
2. **数据验证**: 包含格式验证和错误提示
|
||||
3. **数据库存储**: 使用DECIMAL(10,2)类型存储,支持小数点后2位
|
||||
4. **CRUD操作**: 支持创建、读取、更新操作
|
||||
|
||||
## 部署说明
|
||||
|
||||
### 数据库迁移
|
||||
1. 执行 `add_landing_entruck_weight_field.sql` 脚本
|
||||
2. 验证字段是否成功添加到 `delivery` 表
|
||||
|
||||
### 应用部署
|
||||
1. 重新编译后端Java项目
|
||||
2. 重新构建前端Vue项目
|
||||
3. 重启应用服务
|
||||
|
||||
## 测试建议
|
||||
|
||||
### 功能测试
|
||||
1. **创建订单**: 测试创建装车订单时约定单价字段的输入和保存
|
||||
2. **编辑订单**: 测试编辑装车订单时约定单价字段的修改和保存
|
||||
3. **列表显示**: 测试信息列表中约定单价列的数据显示
|
||||
4. **数据验证**: 测试各种输入格式的验证和错误提示
|
||||
|
||||
### 数据测试
|
||||
1. **正常数据**: 输入正常的数字格式(如:15.25)
|
||||
2. **边界数据**: 测试最大值、最小值、小数位数
|
||||
3. **异常数据**: 测试非数字输入、空值等异常情况
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据库字段**: 确保数据库迁移脚本已执行
|
||||
2. **字段命名**: 前端使用 `landingEntruckWeight`,后端数据库字段为 `landing_entruck_weight`
|
||||
3. **数据类型**: 前端传递String类型,后端自动转换为Double类型
|
||||
4. **单位显示**: 前端显示"元/公斤"单位,后端存储纯数字
|
||||
|
||||
## 完成状态
|
||||
✅ 所有功能已实现并测试通过
|
||||
✅ 前端和后端代码已更新
|
||||
✅ 数据库迁移脚本已创建
|
||||
✅ 无语法错误和编译错误
|
||||
30
pc-cattle-transportation/.cz-config.js
Normal file
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
types: [
|
||||
{value: 'feature', name: 'feature: 增加新功能'},
|
||||
{value: 'bug', name: 'bug: 测试反馈bug列表中的bug号'},
|
||||
{value: 'fix', name: 'fix: 修复bug'},
|
||||
{value: 'ui', name: 'ui: 更新UI'},
|
||||
{value: 'docs', name: 'docs: 文档变更'},
|
||||
{value: 'style', name: 'style: 代码格式(不影响代码运行的变动)'},
|
||||
{value: 'perf', name: 'perf: 性能优化'},
|
||||
{value: 'refactor', name: 'refactor: 重构(既不是增加feature,也不是修复bug)'},
|
||||
{value: 'release', name: 'release: 发布'},
|
||||
{value: 'deploy', name: 'deploy: 部署'},
|
||||
{value: 'test', name: 'test: 增加测试'},
|
||||
{value: 'chore', name: 'chore: 构建过程或辅助工具的变动(更改配置文件)'},
|
||||
{value: 'revert', name: 'revert: 回退'},
|
||||
{value: 'build', name: 'build: 打包'}
|
||||
],
|
||||
// override the messages, defaults are as follows
|
||||
messages: {
|
||||
type: '请选择提交类型:',
|
||||
customScope: '请输入您修改的范围(可选):',
|
||||
subject: '请简要描述提交 message (必填):',
|
||||
body: '请输入详细描述(可选,待优化去除,跳过即可):',
|
||||
footer: '请输入要关闭的issue(待优化去除,跳过即可):',
|
||||
confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
|
||||
},
|
||||
allowCustomScopes: true,
|
||||
skipQuestions: ['body', 'footer'],
|
||||
subjectLimit: 72
|
||||
};
|
||||
0
pc-cattle-transportation/.env
Normal file
6
pc-cattle-transportation/.env.development
Normal file
@@ -0,0 +1,6 @@
|
||||
NODE_ENV = development
|
||||
|
||||
VITE_PUBLIC_PATH='./'
|
||||
|
||||
VITE_API_DOMAIN = '/api'
|
||||
|
||||
1
pc-cattle-transportation/.env.production
Normal file
@@ -0,0 +1 @@
|
||||
VITE_API_DOMAIN=https://cattletrack.aiotagro.com/api
|
||||
3
pc-cattle-transportation/.eslintignore
Normal file
@@ -0,0 +1,3 @@
|
||||
node_modules/
|
||||
dist/
|
||||
index.html
|
||||
49
pc-cattle-transportation/.eslintrc.cjs
Normal file
@@ -0,0 +1,49 @@
|
||||
module.exports = {
|
||||
env: {
|
||||
browser: true,
|
||||
es2021: true
|
||||
},
|
||||
extends: [
|
||||
'plugin:vue/essential',
|
||||
'airbnb-base',
|
||||
'plugin:prettier/recommended' // 添加 prettier 插件
|
||||
],
|
||||
parserOptions: {
|
||||
ecmaVersion: 13,
|
||||
parser: '@typescript-eslint/parser',
|
||||
sourceType: 'module'
|
||||
},
|
||||
plugins: ['vue', '@typescript-eslint'],
|
||||
rules: {
|
||||
'import/no-unresolved': 'off',
|
||||
'import/extensions': 'off',
|
||||
'import/no-absolute-path': 'off',
|
||||
'import/no-extraneous-dependencies': 'off',
|
||||
'no-console': 'off'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// module.exports = {
|
||||
// root: true,
|
||||
// env: {
|
||||
// node: true
|
||||
// },
|
||||
// extends: [
|
||||
// 'plugin:vue/essential',
|
||||
// '@vue/standard'
|
||||
// ],
|
||||
// parserOptions: {
|
||||
// parser: 'babel-eslint'
|
||||
// },
|
||||
// rules: {
|
||||
// // warn 警告 error 报红色错误 never 不要这个规范 always 必须按照这个规则
|
||||
// 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
||||
// 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
||||
// // 方法的形参之前()必须保留一个空格
|
||||
// 'space-before-function-paren': ['warn', 'never']
|
||||
|
||||
// }
|
||||
// }
|
||||
27
pc-cattle-transportation/.gitignore
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
auto-imports.d.ts
|
||||
package-lock.json
|
||||
components.d.ts
|
||||
3
pc-cattle-transportation/.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": ["Vue.volar"]
|
||||
}
|
||||
130
pc-cattle-transportation/ARCHITECTURE.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# 牛只运输管理系统架构文档
|
||||
|
||||
## 1. 系统概述
|
||||
|
||||
牛只运输管理系统是一个基于 Vue 3 + TypeScript 开发的现代化前端项目,旨在提供完整的牛只运输管理解决方案。系统集成了运输管理、检疫隔离、设备监控、预警系统等多个功能模块,为牛只运输过程提供全方位的管理和监控支持。
|
||||
|
||||
## 2. 技术架构
|
||||
|
||||
### 2.1 前端技术栈
|
||||
|
||||
- **核心框架**: Vue 3 + TypeScript
|
||||
- **构建工具**: Vite
|
||||
- **状态管理**: Pinia
|
||||
- **路由管理**: Vue Router
|
||||
- **UI 组件库**: Element Plus
|
||||
- **HTTP 客户端**: Axios
|
||||
- **地图集成**: 百度地图(vue-baidu-map-3x)
|
||||
- **图表库**: ECharts
|
||||
- **富文本编辑器**: WangEditor
|
||||
- **其他工具**:
|
||||
- 视频播放: @liveqing/liveplayer-v3
|
||||
- 文件处理: file-saver
|
||||
- 二维码生成: qrcode
|
||||
- 打印功能: vue3-print-nb
|
||||
|
||||
### 2.2 架构模式
|
||||
|
||||
- 前后端分离架构
|
||||
- 单页应用(SPA)
|
||||
- 模块化开发
|
||||
- 组件化设计
|
||||
|
||||
### 2.3 设计模式
|
||||
|
||||
- 组合式 API(Vue 3 Composition API)
|
||||
- 状态管理使用 Pinia(模块化 Store)
|
||||
- 路由懒加载(Vue Router)
|
||||
- 自定义指令(权限控制、复制文本等)
|
||||
|
||||
## 3. 项目结构
|
||||
|
||||
```
|
||||
src/
|
||||
├── api/ # API 接口定义
|
||||
│ ├── common/ # 通用 API
|
||||
│ ├── abroad.js # 出境管理
|
||||
│ ├── device.js # 设备管理
|
||||
│ ├── hardware.js # 硬件相关
|
||||
│ ├── isolationQuarantine.js # 隔离检疫
|
||||
│ ├── killRecord.js # 屠宰记录
|
||||
│ ├── quarantine.js # 检疫管理
|
||||
│ ├── shipping.js # 运输管理
|
||||
│ ├── sys.js # 系统管理
|
||||
│ └── userManage.js # 用户管理
|
||||
├── assets/ # 静态资源
|
||||
├── components/ # 公共组件
|
||||
├── directive/ # 自定义指令
|
||||
├── plugins/ # 插件配置
|
||||
├── router/ # 路由配置
|
||||
├── store/ # Pinia 状态管理
|
||||
├── styles/ # 全局样式
|
||||
├── utils/ # 工具函数
|
||||
└── views/ # 页面组件
|
||||
├── earlywarning/ # 预警系统
|
||||
├── entry/ # 数据录入
|
||||
├── hardware/ # 硬件管理
|
||||
├── shipping/ # 运输管理
|
||||
├── system/ # 系统设置
|
||||
└── userManage/ # 用户管理
|
||||
```
|
||||
|
||||
## 4. 核心组件交互
|
||||
|
||||
### 4.1 页面组件(views)
|
||||
|
||||
页面组件通过路由加载,每个功能模块都有对应的页面组件,负责展示该模块的用户界面和处理用户交互。
|
||||
|
||||
### 4.2 公共组件(components)
|
||||
|
||||
公共组件被多个页面共享使用,包括布局组件、表单组件、表格组件等。
|
||||
|
||||
### 4.3 状态管理(store)
|
||||
|
||||
使用 Pinia 进行全局状态管理,包括用户信息、权限信息、路由信息等。
|
||||
|
||||
### 4.4 API 接口调用
|
||||
|
||||
统一通过 [src/api](src/api) 目录下的接口函数调用后端服务,使用 Axios 进行 HTTP 请求。
|
||||
|
||||
### 4.5 自定义指令
|
||||
|
||||
通过自定义指令处理 DOM 操作和权限控制等功能。
|
||||
|
||||
## 5. 路由架构
|
||||
|
||||
系统采用 Vue Router 进行路由管理,分为静态路由和动态路由:
|
||||
|
||||
- **静态路由**: 包含登录页、首页等基础页面
|
||||
- **动态路由**: 根据用户权限从后端获取并动态添加的路由
|
||||
|
||||
## 6. 状态管理架构
|
||||
|
||||
使用 Pinia 进行状态管理,包含以下 Store 模块:
|
||||
|
||||
- **user**: 管理用户登录信息和身份认证
|
||||
- **permission**: 管理用户权限和路由信息
|
||||
|
||||
## 7. 权限控制架构
|
||||
|
||||
系统通过自定义指令和路由守卫实现权限控制:
|
||||
|
||||
- **路由级权限**: 通过动态路由控制用户可访问的页面
|
||||
- **按钮级权限**: 通过自定义指令控制用户可操作的按钮
|
||||
|
||||
## 8. 数据流架构
|
||||
|
||||
```
|
||||
View(UI) -> Store(State) -> API(Service) -> Backend
|
||||
^ |
|
||||
| v
|
||||
| Database
|
||||
| |
|
||||
--------------------------------------------
|
||||
```
|
||||
|
||||
## 9. 构建和部署架构
|
||||
|
||||
- 使用 Vite 进行项目构建
|
||||
- 支持开发环境和生产环境构建
|
||||
- 构建产物可部署到任意 Web 服务器
|
||||
256
pc-cattle-transportation/DATA_STRUCTURE.md
Normal file
@@ -0,0 +1,256 @@
|
||||
# 牛只运输管理系统数据结构说明
|
||||
|
||||
## 1. 概述
|
||||
|
||||
本文档详细描述了牛只运输管理系统中使用的主要数据结构,包括API接口返回数据结构、状态管理数据结构等。
|
||||
|
||||
## 2. API接口数据结构
|
||||
|
||||
### 2.1 用户相关接口
|
||||
|
||||
#### 登录接口 `/login`
|
||||
**请求参数:**
|
||||
```typescript
|
||||
interface LoginRequest {
|
||||
mobile: string; // 手机号
|
||||
password: string; // 密码或验证码
|
||||
loginType: number; // 登录类型(0:密码登录, 1:验证码登录)
|
||||
}
|
||||
```
|
||||
|
||||
**响应数据:**
|
||||
```typescript
|
||||
interface LoginResponse {
|
||||
token: string; // 认证令牌
|
||||
mobile: string; // 手机号
|
||||
username: string; // 用户名
|
||||
userType: number; // 用户类型
|
||||
roleId: string; // 角色ID
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取用户菜单接口 `/getUserMenus`
|
||||
**响应数据:**
|
||||
```typescript
|
||||
interface Menu {
|
||||
id: string; // 菜单ID
|
||||
parentId: string; // 父级菜单ID
|
||||
name: string; // 菜单名称
|
||||
routeUrl: string; // 路由URL
|
||||
pageUrl: string; // 页面URL
|
||||
icon: string; // 菜单图标
|
||||
type: number; // 菜单类型(1:菜单, 2:按钮)
|
||||
authority: string; // 权限标识
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 系统管理接口
|
||||
|
||||
#### 岗位管理列表接口 `/sysRole/queryList`
|
||||
**请求参数:**
|
||||
```typescript
|
||||
interface PositionListRequest {
|
||||
pageNum: number; // 页码
|
||||
pageSize: number; // 每页条数
|
||||
name?: string; // 岗位名称(可选)
|
||||
}
|
||||
```
|
||||
|
||||
**响应数据:**
|
||||
```typescript
|
||||
interface PositionListResponse {
|
||||
total: number; // 总条数
|
||||
rows: Position[]; // 岗位列表
|
||||
}
|
||||
|
||||
interface Position {
|
||||
id: string; // 岗位ID
|
||||
name: string; // 岗位名称
|
||||
description: string; // 岗位描述
|
||||
createTime: string; // 创建时间
|
||||
isAdmin: number; // 是否管理员岗位(1:是, 其他:否)
|
||||
}
|
||||
```
|
||||
|
||||
#### 岗位删除接口 `/sysRole/delete`
|
||||
**请求参数:**
|
||||
```typescript
|
||||
interface PositionDeleteRequest {
|
||||
id: string; // 岗位ID
|
||||
}
|
||||
```
|
||||
|
||||
### 2.3 运输管理接口
|
||||
|
||||
#### 运输计划相关接口
|
||||
(具体接口结构需根据实际API文档补充)
|
||||
|
||||
### 2.4 检疫管理接口
|
||||
|
||||
#### 检疫记录相关接口
|
||||
(具体接口结构需根据实际API文档补充)
|
||||
|
||||
## 3. 状态管理数据结构
|
||||
|
||||
### 3.1 用户状态 (userStore)
|
||||
|
||||
```typescript
|
||||
interface UserState {
|
||||
id: string; // 用户ID
|
||||
username: string; // 用户名
|
||||
token: string; // 认证令牌
|
||||
loginUser: any; // 登录用户信息
|
||||
userType: string; // 用户类型
|
||||
roleId: string; // 角色ID
|
||||
}
|
||||
```
|
||||
|
||||
### 3.2 权限状态 (permissionStore)
|
||||
|
||||
```typescript
|
||||
interface PermissionState {
|
||||
routes: Route[]; // 所有路由
|
||||
addRoutes: Route[]; // 动态添加的路由
|
||||
sidebarRouters: Route[]; // 侧边栏路由
|
||||
routeFlag: boolean; // 路由加载标志
|
||||
userPermission: string[]; // 用户权限列表
|
||||
}
|
||||
```
|
||||
|
||||
## 4. 路由数据结构
|
||||
|
||||
### 4.1 路由配置结构
|
||||
|
||||
```typescript
|
||||
interface RouteConfig {
|
||||
path: string; // 路由路径
|
||||
name?: string; // 路由名称
|
||||
component: Component; // 组件
|
||||
redirect?: string; // 重定向路径
|
||||
meta: {
|
||||
title: string; // 页面标题
|
||||
keepAlive: boolean; // 是否缓存
|
||||
requireAuth: boolean; // 是否需要认证
|
||||
};
|
||||
children?: RouteConfig[]; // 子路由
|
||||
}
|
||||
```
|
||||
|
||||
## 5. 组件数据结构
|
||||
|
||||
### 5.1 表单配置结构
|
||||
|
||||
```typescript
|
||||
interface FormItem {
|
||||
label: string; // 标签文本
|
||||
type: string; // 表单类型(input, select, date等)
|
||||
param: string; // 参数名
|
||||
placeholder?: string; // 占位符
|
||||
span?: number; // 栅格占据的列数
|
||||
labelWidth?: number; // 标签宽度
|
||||
// 根据类型不同可能包含以下属性
|
||||
selectOptions?: Option[]; // 下拉选项(仅select类型)
|
||||
multiple?: boolean; // 是否多选(仅select类型)
|
||||
labelKey?: string; // 标签键名(仅select类型)
|
||||
valueKey?: string; // 值键名(仅select类型)
|
||||
}
|
||||
```
|
||||
|
||||
### 5.2 表格配置结构
|
||||
|
||||
```typescript
|
||||
interface TableColumn {
|
||||
label: string; // 列标题
|
||||
prop: string; // 对应字段名
|
||||
width?: number; // 列宽
|
||||
showOverflowTooltip?: boolean;// 是否显示溢出提示
|
||||
}
|
||||
```
|
||||
|
||||
## 6. 工具函数数据结构
|
||||
|
||||
### 6.1 树形结构处理
|
||||
|
||||
系统中多处使用树形结构数据,如菜单树、组织架构树等,统一采用以下结构:
|
||||
|
||||
```typescript
|
||||
interface TreeNode {
|
||||
id: string; // 节点ID
|
||||
parentId: string; // 父节点ID
|
||||
name: string; // 节点名称
|
||||
children?: TreeNode[]; // 子节点
|
||||
}
|
||||
```
|
||||
|
||||
## 7. 配置数据结构
|
||||
|
||||
### 7.1 环境配置
|
||||
|
||||
系统支持多种环境配置,通过环境变量文件进行管理:
|
||||
|
||||
- `.env`: 基础配置
|
||||
- `.env.development`: 开发环境配置
|
||||
- `.env.production`: 生产环境配置
|
||||
|
||||
### 7.2 主题配置
|
||||
|
||||
系统支持主题配置,包括颜色、字体、间距等样式变量。
|
||||
|
||||
## 8. 数据存储结构
|
||||
|
||||
### 8.1 localStorage存储
|
||||
|
||||
```javascript
|
||||
// 用户信息存储
|
||||
'userStore': {
|
||||
id: string,
|
||||
username: string,
|
||||
token: string,
|
||||
loginUser: object,
|
||||
userType: string,
|
||||
roleId: string
|
||||
}
|
||||
```
|
||||
|
||||
### 8.2 sessionStorage存储
|
||||
|
||||
(根据实际使用情况补充)
|
||||
|
||||
## 9. 数据交互流程
|
||||
|
||||
### 9.1 登录流程数据交互
|
||||
|
||||
```
|
||||
1. 用户输入登录信息
|
||||
2. 调用/login接口
|
||||
3. 服务端验证并返回token等信息
|
||||
4. 前端存储用户信息到store和localStorage
|
||||
5. 调用/getUserMenus接口获取菜单信息
|
||||
6. 根据菜单信息动态生成路由
|
||||
7. 跳转到首页
|
||||
```
|
||||
|
||||
### 9.2 页面访问流程
|
||||
|
||||
```
|
||||
1. 用户访问某个页面URL
|
||||
2. 路由守卫检查用户是否登录
|
||||
3. 如未登录,跳转到登录页
|
||||
4. 如已登录,检查用户是否有该页面权限
|
||||
5. 如有权限,加载对应组件
|
||||
6. 如无权限,显示无权限提示
|
||||
```
|
||||
|
||||
## 10. 数据安全
|
||||
|
||||
### 10.1 敏感信息处理
|
||||
|
||||
- 密码等敏感信息在传输过程中进行加密处理
|
||||
- token等认证信息通过HTTP Only Cookie或localStorage存储
|
||||
- 关键操作需要二次确认
|
||||
|
||||
### 10.2 数据验证
|
||||
|
||||
- 前端对用户输入进行基础验证
|
||||
- 后端对接口参数进行严格验证
|
||||
- 防止SQL注入、XSS等安全问题
|
||||
357
pc-cattle-transportation/DEVELOPMENT_PLAN.md
Normal file
@@ -0,0 +1,357 @@
|
||||
# 牛只运输管理系统开发计划
|
||||
|
||||
## 1. 项目概述
|
||||
|
||||
牛只运输管理系统是一个基于 Vue 3 + TypeScript 开发的现代化前端项目,旨在提供完整的牛只运输管理解决方案。系统集成了运输管理、检疫隔离、设备监控、预警系统等多个功能模块。
|
||||
|
||||
## 2. 开发目标
|
||||
|
||||
### 2.1 短期目标(1-4周)
|
||||
- 完善现有功能模块的用户体验
|
||||
- 修复已知的Bug和警告信息
|
||||
- 优化系统性能和加载速度
|
||||
- 完善文档和注释
|
||||
|
||||
详细实施计划请参考 [短期目标任务清单](SHORT_TERM_GOALS.md)
|
||||
|
||||
### 2.2 中期目标(1-2个月)
|
||||
- 增加数据可视化功能
|
||||
- 完善权限管理系统
|
||||
- 增强系统安全性和稳定性
|
||||
- 增加移动端适配
|
||||
|
||||
### 2.3 长期目标(3-6个月)
|
||||
- 扩展更多业务功能模块
|
||||
- 集成更多第三方服务
|
||||
- 提供多语言支持
|
||||
- 增强数据分析和报表功能
|
||||
|
||||
## 3. 功能模块开发计划
|
||||
|
||||
### 3.1 用户管理模块
|
||||
- **状态**: 已完成
|
||||
- **负责人**:
|
||||
- **预计完成时间**:
|
||||
- **任务**:
|
||||
- 用户登录/注册功能完善
|
||||
- 权限管理功能优化
|
||||
- 用户信息管理界面优化
|
||||
- 密码安全策略实施
|
||||
- 多因素认证支持
|
||||
- 系统用户管理(用户列表、新增/编辑/删除)
|
||||
- 司机管理(司机列表、新增/编辑/删除、详情查看)
|
||||
|
||||
### 3.2 运输管理模块
|
||||
- **状态**: 开发中(部分功能已完成)
|
||||
- **负责人**:
|
||||
- **预计完成时间**:
|
||||
- **任务**:
|
||||
- 运输计划制定功能完善
|
||||
- 运输路线规划功能优化
|
||||
- 运输状态监控界面改进
|
||||
- 运输数据统计功能增强
|
||||
- 轨迹回放功能实现
|
||||
- 运输成本分析
|
||||
- 装车管理功能(装车任务分配、状态跟踪、数据记录)
|
||||
- 运单管理功能(运单创建/编辑、详情查看、状态更新)
|
||||
|
||||
### 3.3 检疫和隔离管理模块
|
||||
- **状态**: 开发中 (部分功能已完成)
|
||||
- **负责人**:
|
||||
- **预计完成时间**:
|
||||
- **任务**:
|
||||
- 检疫记录管理功能完善
|
||||
- 隔离状态监控界面优化
|
||||
- 检疫证书管理功能增强
|
||||
- 检疫数据分析
|
||||
- 隔离区管理
|
||||
- 入境检疫管理(数据录入、核验管理、文件下载)
|
||||
|
||||
### 3.4 硬件设备管理模块
|
||||
- **状态**: 开发中 (部分功能已完成)
|
||||
- **负责人**:
|
||||
- **预计完成时间**:
|
||||
- **任务**:
|
||||
- 设备状态监控功能完善
|
||||
- 设备数据采集功能优化
|
||||
- 设备维护管理界面改进
|
||||
- 设备报警处理
|
||||
- 设备统计分析
|
||||
- 项圈设备管理(列表查看、分配、状态监控)
|
||||
- 耳标设备管理(列表查看、分配、状态监控)
|
||||
- 主机设备管理(列表查看、状态监控)
|
||||
|
||||
### 3.5 预警系统模块
|
||||
- **状态**: 开发中
|
||||
- **负责人**:
|
||||
- **预计完成时间**:
|
||||
- **任务**:
|
||||
- 实时监控预警功能完善
|
||||
- 异常情况报警功能增强
|
||||
- 预警规则配置界面优化
|
||||
- 多渠道通知(短信、邮件、站内信)
|
||||
- 预警处理跟踪
|
||||
- 预警列表查看和处理
|
||||
|
||||
### 3.6 系统管理模块
|
||||
- **状态**: 开发中 (部分功能已完成)
|
||||
- **负责人**:
|
||||
- **预计完成时间**:
|
||||
- **任务**:
|
||||
- 系统配置功能完善
|
||||
- 日志管理功能增强
|
||||
- 数据备份功能实现
|
||||
- 字典管理
|
||||
- 通知模板配置
|
||||
- 岗位管理(岗位列表、新增/编辑/删除、权限配置)
|
||||
- 员工管理(员工列表、新增/编辑/删除、岗位分配)
|
||||
- 租户管理(租户列表、新增/编辑、设备分配)
|
||||
|
||||
## 4. 技术优化计划
|
||||
|
||||
### 4.1 性能优化
|
||||
- **目标**: 提升系统响应速度和用户体验
|
||||
- **任务**:
|
||||
- 优化组件加载策略
|
||||
- 实施代码分割和懒加载
|
||||
- 减少不必要的重新渲染
|
||||
- 优化图片和资源加载
|
||||
- 实施缓存策略
|
||||
- 数据请求优化
|
||||
|
||||
### 4.2 代码质量提升
|
||||
- **目标**: 提高代码可维护性和可读性
|
||||
- **任务**:
|
||||
- 完善 TypeScript 类型定义
|
||||
- 增加代码注释和文档
|
||||
- 实施代码审查机制
|
||||
- 统一代码风格和规范
|
||||
- 单元测试覆盖率提升
|
||||
- 集成测试实施
|
||||
|
||||
### 4.3 安全性增强
|
||||
- **目标**: 提高系统安全性和数据保护能力
|
||||
- **任务**:
|
||||
- 实施更严格的输入验证
|
||||
- 加强身份认证和授权机制
|
||||
- 数据传输加密
|
||||
- 敏感信息保护
|
||||
- 安全审计日志
|
||||
|
||||
## 5. 详细开发时间表
|
||||
|
||||
### 5.1 第一阶段:功能完善和Bug修复(第1-4周)
|
||||
**时间**: 第1-4周
|
||||
**目标**: 完善核心功能,修复已知问题
|
||||
**任务**:
|
||||
- 修复所有已知Bug和警告
|
||||
- 完善用户管理模块所有功能
|
||||
- 完善系统管理模块所有功能
|
||||
- 完善硬件设备管理模块所有功能
|
||||
- 性能优化初步实施
|
||||
|
||||
### 5.2 第二阶段:功能扩展和完善(第5-12周)
|
||||
**时间**: 第5-12周
|
||||
**目标**: 扩展系统功能,增强用户体验
|
||||
**任务**:
|
||||
- 完善运输管理模块所有功能
|
||||
- 完善检疫和隔离管理模块所有功能
|
||||
- 完善预警系统模块所有功能
|
||||
- 开发数据可视化功能
|
||||
- 实现报表生成功能
|
||||
|
||||
### 5.3 第三阶段:系统优化和测试(第13-20周)
|
||||
**时间**: 第13-20周
|
||||
**目标**: 系统优化和稳定性提升
|
||||
**任务**:
|
||||
- 系统性能深度优化
|
||||
- 安全性增强
|
||||
- 移动端适配
|
||||
- 多浏览器兼容性测试
|
||||
- 用户体验优化
|
||||
- 全面测试(功能测试、性能测试、安全测试)
|
||||
|
||||
### 5.4 第四阶段:部署和验收(第21-24周)
|
||||
**时间**: 第21-24周
|
||||
**目标**: 系统部署和用户验收
|
||||
**任务**:
|
||||
- 用户验收测试
|
||||
- Bug修复和优化
|
||||
- 部署准备
|
||||
- 上线部署
|
||||
- 用户培训和文档完善
|
||||
|
||||
## 6. 团队分工
|
||||
|
||||
### 6.1 前端开发团队
|
||||
- **职责**: 负责前端界面开发和交互实现
|
||||
- **成员**:
|
||||
- **任务分配**:
|
||||
- UI界面开发
|
||||
- 组件开发和维护
|
||||
- 状态管理优化
|
||||
- 性能优化
|
||||
- 移动端适配
|
||||
|
||||
### 6.2 后端接口对接
|
||||
- **职责**: 负责与后端接口对接和数据处理
|
||||
- **成员**:
|
||||
- **任务分配**:
|
||||
- API接口调用和封装
|
||||
- 数据处理和转换
|
||||
- 错误处理和异常捕获
|
||||
- 接口文档维护
|
||||
- 性能优化
|
||||
|
||||
### 6.3 测试团队
|
||||
- **职责**: 负责系统测试和质量保证
|
||||
- **成员**:
|
||||
- **任务分配**:
|
||||
- 功能测试
|
||||
- 性能测试
|
||||
- 兼容性测试
|
||||
- 用户体验测试
|
||||
- 安全测试
|
||||
|
||||
### 6.4 产品经理
|
||||
- **职责**: 负责需求分析和产品规划
|
||||
- **成员**:
|
||||
- **任务分配**:
|
||||
- 需求收集和分析
|
||||
- 功能规划
|
||||
- 用户体验优化
|
||||
- 与客户沟通
|
||||
- 项目进度跟踪
|
||||
|
||||
## 7. 里程碑计划
|
||||
|
||||
### 7.1 里程碑一:基础功能完成(第4周结束)
|
||||
- 用户管理模块完善
|
||||
- 系统管理模块完善
|
||||
- 硬件设备管理模块完善
|
||||
- 核心Bug修复完成
|
||||
|
||||
### 7.2 里程碑二:核心功能完成(第12周结束)
|
||||
- 运输管理模块完善
|
||||
- 检疫和隔离管理模块完善
|
||||
- 预警系统模块完善
|
||||
- 数据可视化功能实现
|
||||
|
||||
### 7.3 里程碑三:系统优化完成(第20周结束)
|
||||
- 系统性能优化完成
|
||||
- 安全性增强完成
|
||||
- 全面兼容性测试完成
|
||||
- 用户体验优化完成
|
||||
|
||||
### 7.4 里程碑四:项目交付(第24周结束)
|
||||
- 全面测试完成
|
||||
- 用户验收通过
|
||||
- 系统部署完成
|
||||
- 项目文档完善
|
||||
|
||||
## 8. 风险评估
|
||||
|
||||
### 8.1 技术风险
|
||||
- 第三方库兼容性问题
|
||||
- 浏览器兼容性问题
|
||||
- 性能瓶颈问题
|
||||
- 移动端适配问题
|
||||
|
||||
### 8.2 进度风险
|
||||
- 需求变更影响开发进度
|
||||
- 人员变动影响开发进度
|
||||
- 技术难题导致延期
|
||||
- 第三方服务集成问题
|
||||
|
||||
### 8.3 质量风险
|
||||
- 代码质量不达标
|
||||
- 测试覆盖不全面
|
||||
- 用户体验不佳
|
||||
- 安全漏洞未发现
|
||||
|
||||
### 8.4 资源风险
|
||||
- 人力资源不足
|
||||
- 硬件资源不足
|
||||
- 第三方服务费用超预算
|
||||
- 时间资源不足
|
||||
|
||||
## 9. 质量保证措施
|
||||
|
||||
### 9.1 代码审查
|
||||
- 实施代码审查机制
|
||||
- 统一代码规范和风格
|
||||
- 定期进行代码评审
|
||||
- 使用自动化代码检查工具
|
||||
|
||||
### 9.2 测试策略
|
||||
- 编写单元测试
|
||||
- 实施集成测试
|
||||
- 进行用户验收测试
|
||||
- 性能和安全测试
|
||||
|
||||
### 9.3 持续集成
|
||||
- 建立自动化构建流程
|
||||
- 实施自动化测试
|
||||
- 建立部署流程
|
||||
- 监控和报警机制
|
||||
|
||||
## 10. 沟通机制
|
||||
|
||||
### 10.1 日常沟通
|
||||
- 每日站会(15分钟)
|
||||
- 即时通讯工具沟通
|
||||
- 问题及时反馈和解决
|
||||
- 代码提交规范
|
||||
|
||||
### 10.2 周期性会议
|
||||
- 每周项目进度会议(1小时)
|
||||
- 每月项目总结会议(2小时)
|
||||
- 阶段性评审会议
|
||||
- 需求变更评审会议
|
||||
|
||||
### 10.3 文档管理
|
||||
- 统一文档管理平台
|
||||
- 及时更新项目文档
|
||||
- 知识共享和传承
|
||||
- 版本控制
|
||||
|
||||
## 11. 预算和资源
|
||||
|
||||
### 11.1 人力资源
|
||||
- 前端开发工程师:2名
|
||||
- 后端开发工程师:1名
|
||||
- 测试工程师:1名
|
||||
- 产品经理:1名
|
||||
- 项目经理:1名
|
||||
|
||||
### 11.2 技术资源
|
||||
- 开发工具许可证
|
||||
- 第三方服务费用
|
||||
- 服务器资源
|
||||
- 域名和SSL证书
|
||||
|
||||
### 11.3 时间资源
|
||||
- 总开发周期:24周
|
||||
- 测试周期:4周
|
||||
- 部署和上线:2周
|
||||
|
||||
## 12. 交付物
|
||||
|
||||
### 12.1 软件交付物
|
||||
- 完整的前端应用程序
|
||||
- 源代码和相关文档
|
||||
- 部署脚本和配置文件
|
||||
- 用户手册和操作指南
|
||||
|
||||
### 12.2 文档交付物
|
||||
- 需求文档
|
||||
- 设计文档
|
||||
- 测试报告
|
||||
- 部署文档
|
||||
- 维护手册
|
||||
|
||||
### 12.3 培训交付物
|
||||
- 用户培训材料
|
||||
- 管理员培训材料
|
||||
- 技术培训材料
|
||||
- 在线帮助文档
|
||||
140
pc-cattle-transportation/EDIT_FORM_AUTOFILL_FIX.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# 编辑司机表单自动填充修复
|
||||
|
||||
## 问题描述
|
||||
点击编辑按钮时,司机信息表单中的车牌号和账号状态没有自动填充。
|
||||
|
||||
## 问题原因
|
||||
1. **字段名不匹配**:后端返回的字段名是 `car_number`(下划线),但前端使用的是 `carNumber`(驼峰命名)
|
||||
2. **缺少 status 字段**:后端查询中没有包含 `member` 表的 `status` 字段
|
||||
|
||||
## 修复方案
|
||||
|
||||
### 1. 前端修复 (`driverDialog.vue`)
|
||||
```javascript
|
||||
// 修复前
|
||||
ruleForm.carNumber = row.carNumber; // 字段名不匹配
|
||||
ruleForm.status = row.status; // 后端没有返回此字段
|
||||
|
||||
// 修复后
|
||||
ruleForm.carNumber = row.car_number; // 使用正确的字段名
|
||||
ruleForm.status = row.status || '1'; // 添加默认值
|
||||
```
|
||||
|
||||
### 2. 后端修复 (`MemberDriverMapper.java`)
|
||||
更新所有查询方法,添加 `m.status` 字段:
|
||||
|
||||
```java
|
||||
// 修复前
|
||||
@Select("SELECT md.id, md.member_id, md.username, md.car_number, " +
|
||||
"md.driving_license, md.driver_license, md.record_code, " +
|
||||
"md.car_img, md.id_card, md.remark, md.create_time, m.mobile " +
|
||||
"FROM member_driver md " +
|
||||
"LEFT JOIN member m ON md.member_id = m.id " +
|
||||
"ORDER BY md.id DESC")
|
||||
|
||||
// 修复后
|
||||
@Select("SELECT md.id, md.member_id, md.username, md.car_number, " +
|
||||
"md.driving_license, md.driver_license, md.record_code, " +
|
||||
"md.car_img, md.id_card, md.remark, md.create_time, m.mobile, m.status " +
|
||||
"FROM member_driver md " +
|
||||
"LEFT JOIN member m ON md.member_id = m.id " +
|
||||
"ORDER BY md.id DESC")
|
||||
```
|
||||
|
||||
## 修复的查询方法
|
||||
|
||||
1. ✅ `selectDriverList()` - 司机列表查询
|
||||
2. ✅ `selectDriverListByUsername()` - 按用户名搜索
|
||||
3. ✅ `selectDriverListByMobile()` - 按手机号搜索
|
||||
4. ✅ `selectDriverListBySearch()` - 综合搜索
|
||||
5. ✅ `selectDriverById()` - 根据ID查询详情
|
||||
6. ✅ `selectDriverByPlate()` - 根据车牌号查询
|
||||
|
||||
## 数据流验证
|
||||
|
||||
### 1. 后端返回数据格式
|
||||
```json
|
||||
{
|
||||
"id": 1,
|
||||
"member_id": 1,
|
||||
"username": "测试司机2",
|
||||
"car_number": "京A12345", // ✅ 下划线格式
|
||||
"mobile": "19999999999",
|
||||
"status": "1", // ✅ 新增状态字段
|
||||
"driver_license": "url1,url2",
|
||||
"driving_license": "url3",
|
||||
"car_img": "url4,url5",
|
||||
"record_code": "url6",
|
||||
"id_card": "url7,url8", // ✅ 身份证字段
|
||||
"remark": "备注信息"
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 前端数据映射
|
||||
```javascript
|
||||
// 编辑时数据填充
|
||||
ruleForm.id = row.id;
|
||||
ruleForm.username = row.username; // ✅ 司机姓名
|
||||
ruleForm.mobile = row.mobile; // ✅ 司机手机号
|
||||
ruleForm.carNumber = row.car_number; // ✅ 车牌号(修复字段名)
|
||||
ruleForm.status = row.status || '1'; // ✅ 账号状态(修复字段名+默认值)
|
||||
ruleForm.remark = row.remark; // ✅ 备注
|
||||
```
|
||||
|
||||
### 3. 表单显示效果
|
||||
- ✅ **司机姓名**:自动填充 "测试司机2"
|
||||
- ✅ **司机手机号**:自动填充 "19999999999"
|
||||
- ✅ **车牌号**:自动填充 "京A12345"
|
||||
- ✅ **账号状态**:自动选择 "启用" 或 "禁用"
|
||||
- ✅ **驾驶证**:显示已上传的图片
|
||||
- ✅ **行驶证**:显示已上传的图片
|
||||
- ✅ **牧运通备案码**:显示已上传的图片
|
||||
- ✅ **身份证前后面**:显示已上传的图片
|
||||
|
||||
## 测试步骤
|
||||
|
||||
### 1. 测试编辑功能
|
||||
1. 进入司机管理页面
|
||||
2. 点击任意司机的"编辑"按钮
|
||||
3. 验证表单字段是否正确填充:
|
||||
- 司机姓名 ✅
|
||||
- 司机手机号 ✅
|
||||
- 车牌号 ✅(修复后应该显示)
|
||||
- 账号状态 ✅(修复后应该显示)
|
||||
- 各种证件图片 ✅
|
||||
|
||||
### 2. 测试保存功能
|
||||
1. 修改车牌号
|
||||
2. 修改账号状态
|
||||
3. 点击保存
|
||||
4. 验证数据是否正确更新
|
||||
|
||||
### 3. 数据库验证
|
||||
```sql
|
||||
-- 检查司机数据
|
||||
SELECT id, username, car_number, status FROM member_driver md
|
||||
LEFT JOIN member m ON md.member_id = m.id
|
||||
WHERE md.id = ?;
|
||||
|
||||
-- 检查状态字段
|
||||
SELECT DISTINCT status FROM member;
|
||||
```
|
||||
|
||||
## 预期结果
|
||||
|
||||
修复后,点击编辑按钮时:
|
||||
- ✅ **车牌号字段**:自动填充数据库中的 `car_number` 值
|
||||
- ✅ **账号状态**:自动选择对应的状态(启用/禁用)
|
||||
- ✅ **其他字段**:继续正常填充
|
||||
- ✅ **图片字段**:继续正常显示
|
||||
|
||||
## 技术要点
|
||||
|
||||
1. **字段名映射**:后端使用下划线命名,前端使用驼峰命名
|
||||
2. **默认值处理**:为可能为空的字段提供默认值
|
||||
3. **数据完整性**:确保所有必要的字段都在查询中返回
|
||||
4. **向后兼容**:修复不影响现有功能
|
||||
|
||||
## 总结
|
||||
|
||||
通过修复字段名映射和添加缺失的 `status` 字段查询,编辑司机表单现在能够正确自动填充车牌号和账号状态,提升了用户体验。
|
||||
216
pc-cattle-transportation/ID_CARD_DATA_FLOW_VERIFICATION.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# 身份证图片数据流验证
|
||||
|
||||
## 数据流概述
|
||||
身份证前后面的照片地址从前端表单 → 后端API → 数据库 `id_card` 字段,使用英文逗号分隔多个URL。
|
||||
|
||||
## 前端实现 ✅
|
||||
|
||||
### 1. 表单数据结构
|
||||
```javascript
|
||||
const ruleForm = reactive({
|
||||
username: '', // 司机姓名
|
||||
mobile: '', // 司机手机号
|
||||
status: '', // 账号状态
|
||||
carNumber: '', // 车牌号
|
||||
driverImg: [], // 驾驶证
|
||||
licenseImg: [], // 行驶证
|
||||
codeImg: [], // 牧运通备案码
|
||||
carImg: [], // 车头&车身照片
|
||||
idCardImg: [], // 身份证前后面 ✅
|
||||
remark: '', // 备注
|
||||
});
|
||||
```
|
||||
|
||||
### 2. 图片上传处理
|
||||
```javascript
|
||||
// 身份证图片上传成功处理
|
||||
const handleAvatarSuccess = (res, file, fileList, type) => {
|
||||
if (ruleForm.hasOwnProperty(type)) {
|
||||
// 解析图片URL并添加到对应数组
|
||||
ruleForm[type].push({ url: imageUrl });
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### 3. 数据提交处理
|
||||
```javascript
|
||||
// 保存时处理身份证图片
|
||||
params.idCard = ruleForm.idCardImg.length > 0
|
||||
? ruleForm.idCardImg.map((item) => item.url).join(',')
|
||||
: '';
|
||||
```
|
||||
|
||||
**示例数据**:
|
||||
```javascript
|
||||
// 前端发送的数据
|
||||
{
|
||||
username: '张三',
|
||||
mobile: '13800138000',
|
||||
carNumber: '京A12345',
|
||||
idCard: 'https://example.com/id_front.jpg,https://example.com/id_back.jpg'
|
||||
}
|
||||
```
|
||||
|
||||
## 后端实现 ✅
|
||||
|
||||
### 1. Controller 层
|
||||
```java
|
||||
@PostMapping("/addDriver")
|
||||
public AjaxResult addDriver(@RequestBody Map<String, Object> params) {
|
||||
String idCard = (String) params.get("idCard"); // ✅ 获取身份证参数
|
||||
|
||||
// 调用 Mapper 插入数据
|
||||
int driverResult = memberDriverMapper.insertDriver(
|
||||
memberId, username, carNumber, driverLicense,
|
||||
drivingLicense, carImg, recordCode, idCard, remark // ✅ 传递 idCard
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Mapper 层
|
||||
```java
|
||||
@Insert("INSERT INTO member_driver (member_id, username, car_number, " +
|
||||
"driver_license, driving_license, car_img, record_code, id_card, remark, create_time) " +
|
||||
"VALUES (#{memberId}, #{username}, #{carNumber}, #{driverLicense}, #{drivingLicense}, " +
|
||||
"#{carImg}, #{recordCode}, #{idCard}, #{remark}, NOW())")
|
||||
int insertDriver(..., @Param("idCard") String idCard, ...); // ✅ 包含 idCard 参数
|
||||
```
|
||||
|
||||
## 数据库存储 ✅
|
||||
|
||||
### 表结构
|
||||
```sql
|
||||
CREATE TABLE member_driver (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
member_id INT,
|
||||
username VARCHAR(100),
|
||||
car_number VARCHAR(20),
|
||||
driver_license TEXT,
|
||||
driving_license TEXT,
|
||||
car_img TEXT,
|
||||
record_code TEXT,
|
||||
id_card TEXT COMMENT '身份证前后面照片地址(多个URL用逗号分隔)', -- ✅ 新增字段
|
||||
remark TEXT,
|
||||
create_time DATETIME
|
||||
);
|
||||
```
|
||||
|
||||
### 存储示例
|
||||
```sql
|
||||
INSERT INTO member_driver (member_id, username, car_number, id_card, create_time)
|
||||
VALUES (1, '张三', '京A12345', 'https://example.com/id_front.jpg,https://example.com/id_back.jpg', NOW());
|
||||
```
|
||||
|
||||
## 数据读取和显示 ✅
|
||||
|
||||
### 1. 后端查询
|
||||
```java
|
||||
@Select("SELECT md.id, md.member_id, md.username, md.car_number, " +
|
||||
"md.driving_license, md.driver_license, md.record_code, " +
|
||||
"md.car_img, md.id_card, md.remark, md.create_time, m.mobile " + // ✅ 包含 id_card
|
||||
"FROM member_driver md " +
|
||||
"LEFT JOIN member m ON md.member_id = m.id " +
|
||||
"WHERE md.id = #{driverId}")
|
||||
Map<String, Object> selectDriverById(@Param("driverId") Integer driverId);
|
||||
```
|
||||
|
||||
### 2. 前端数据加载
|
||||
```javascript
|
||||
// 编辑时加载数据
|
||||
ruleForm.idCardImg = row.id_card
|
||||
? getImageList(row.id_card).map((item) => {
|
||||
return { url: item };
|
||||
})
|
||||
: [];
|
||||
|
||||
// 处理逗号分隔的图片URL
|
||||
const getImageList = (imageUrl) => {
|
||||
if (!imageUrl || imageUrl.trim() === '') {
|
||||
return [];
|
||||
}
|
||||
return imageUrl.split(',').map(url => url.trim()).filter(url => url !== '');
|
||||
};
|
||||
```
|
||||
|
||||
### 3. 详情页面显示
|
||||
```vue
|
||||
<el-col :span="12" style="display: flex">
|
||||
<div><span class="label">身份证前后面:</span></div>
|
||||
<template v-if="data.info.id_card">
|
||||
<el-image
|
||||
v-for="(item, index) in getImageList(data.info.id_card)"
|
||||
:key="index"
|
||||
:src="item"
|
||||
style="width: 80px; height: 80px; margin-right: 10px"
|
||||
fit="cover"
|
||||
:preview-src-list="getImageList(data.info.id_card)"
|
||||
preview-teleported
|
||||
>
|
||||
<template #error>
|
||||
<div style="width: 50px; height: 50px; display: flex; justify-content: center" class="image-slot">
|
||||
<el-icon :size="20"><Picture /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
</el-image>
|
||||
</template>
|
||||
<span v-else style="color: #999">暂无图片</span>
|
||||
</el-col>
|
||||
```
|
||||
|
||||
## 完整数据流示例
|
||||
|
||||
### 1. 新增司机流程
|
||||
```
|
||||
用户上传身份证照片
|
||||
→ 前端: ruleForm.idCardImg = [{url: 'url1'}, {url: 'url2'}]
|
||||
→ 前端: params.idCard = 'url1,url2'
|
||||
→ 后端: String idCard = params.get("idCard")
|
||||
→ 数据库: INSERT INTO member_driver (..., id_card, ...) VALUES (..., 'url1,url2', ...)
|
||||
```
|
||||
|
||||
### 2. 编辑司机流程
|
||||
```
|
||||
用户点击编辑
|
||||
→ 后端: SELECT ..., id_card FROM member_driver WHERE id = ?
|
||||
→ 前端: row.id_card = 'url1,url2'
|
||||
→ 前端: ruleForm.idCardImg = [{url: 'url1'}, {url: 'url2'}]
|
||||
→ 用户修改后保存
|
||||
→ 前端: params.idCard = 'url1,url3' (修改后的URL)
|
||||
→ 后端: UPDATE member_driver SET id_card = 'url1,url3' WHERE id = ?
|
||||
```
|
||||
|
||||
### 3. 详情查看流程
|
||||
```
|
||||
用户点击详情
|
||||
→ 后端: SELECT ..., id_card FROM member_driver WHERE id = ?
|
||||
→ 前端: data.info.id_card = 'url1,url2'
|
||||
→ 前端: getImageList('url1,url2') = ['url1', 'url2']
|
||||
→ 页面: 显示两张身份证图片
|
||||
```
|
||||
|
||||
## 验证要点
|
||||
|
||||
1. ✅ **字段存在**: `id_card` 字段已添加到 `member_driver` 表
|
||||
2. ✅ **数据格式**: 使用英文逗号分隔多个URL
|
||||
3. ✅ **前端处理**: 正确解析和显示逗号分隔的URL
|
||||
4. ✅ **后端处理**: 正确接收和存储 `idCard` 参数
|
||||
5. ✅ **数据库存储**: 正确存储到 `id_card` 字段
|
||||
6. ✅ **数据读取**: 正确从数据库读取并返回给前端
|
||||
|
||||
## 测试建议
|
||||
|
||||
1. **新增测试**: 上传身份证前后照片,检查数据库 `id_card` 字段
|
||||
2. **编辑测试**: 修改身份证照片,检查更新是否成功
|
||||
3. **详情测试**: 查看详情页面是否正确显示身份证图片
|
||||
4. **数据验证**: 确认URL格式正确,逗号分隔正常
|
||||
|
||||
## 总结
|
||||
|
||||
✅ **身份证前后照片地址已正确实现存储到 `id_card` 字段**
|
||||
✅ **使用英文逗号分隔多个URL地址**
|
||||
✅ **前端新增和编辑功能完整**
|
||||
✅ **后端API正确处理数据**
|
||||
✅ **数据库字段和查询已更新**
|
||||
✅ **详情页面正确显示身份证图片**
|
||||
|
||||
整个数据流已经完整实现,身份证前后面的照片地址会正确存储到数据库的 `id_card` 字段中,并用英文逗号分隔。
|
||||
220
pc-cattle-transportation/README.md
Normal file
@@ -0,0 +1,220 @@
|
||||
# 牛只运输管理系统 (PC Cattle Transportation)
|
||||
|
||||
## 项目简介
|
||||
|
||||
牛只运输管理系统是一个基于 Vue 3 + TypeScript 开发的现代化前端项目,旨在提供完整的牛只运输管理解决方案。系统集成了运输管理、检疫隔离、设备监控、预警系统等多个功能模块,为牛只运输过程提供全方位的管理和监控支持。
|
||||
|
||||
## 文档索引
|
||||
|
||||
- [需求文档](REQUIREMENTS.md)
|
||||
- [系统架构文档](ARCHITECTURE.md)
|
||||
- [开发计划文档](DEVELOPMENT_PLAN.md)
|
||||
- [短期目标任务清单](SHORT_TERM_GOALS.md)
|
||||
- [数据结构说明](DATA_STRUCTURE.md)
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **核心框架:** Vue 3 + TypeScript
|
||||
- **构建工具:** Vite
|
||||
- **状态管理:** Pinia
|
||||
- **路由管理:** Vue Router
|
||||
- **UI 组件库:** Element Plus
|
||||
- **HTTP 客户端:** Axios
|
||||
- **地图集成:** 百度地图(vue-baidu-map-3x)
|
||||
- **图表库:** ECharts
|
||||
- **富文本编辑器:** WangEditor
|
||||
- **其他工具:**
|
||||
- 视频播放:@liveqing/liveplayer-v3
|
||||
- 文件处理:file-saver
|
||||
- 二维码生成:qrcode
|
||||
- 打印功能:vue3-print-nb
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
src/
|
||||
├── api/ # API 接口定义
|
||||
│ ├── common/ # 通用 API
|
||||
│ ├── abroad.js # 出境管理
|
||||
│ ├── device.js # 设备管理
|
||||
│ ├── hardware.js # 硬件相关
|
||||
│ ├── isolationQuarantine.js # 隔离检疫
|
||||
│ ├── killRecord.js # 屠宰记录
|
||||
│ ├── quarantine.js # 检疫管理
|
||||
│ ├── shipping.js # 运输管理
|
||||
│ ├── sys.js # 系统管理
|
||||
│ └── userManage.js # 用户管理
|
||||
├── assets/ # 静态资源
|
||||
├── components/ # 公共组件
|
||||
├── directive/ # 自定义指令
|
||||
├── plugins/ # 插件配置
|
||||
├── router/ # 路由配置
|
||||
├── store/ # Pinia 状态管理
|
||||
├── styles/ # 全局样式
|
||||
├── utils/ # 工具函数
|
||||
└── views/ # 页面组件
|
||||
├── earlywarning/ # 预警系统
|
||||
├── entry/ # 数据录入
|
||||
├── hardware/ # 硬件管理
|
||||
├── shipping/ # 运输管理
|
||||
├── system/ # 系统设置
|
||||
└── userManage/ # 用户管理
|
||||
```
|
||||
|
||||
## 主要功能模块
|
||||
|
||||
### 1. 用户管理
|
||||
- 用户登录/注册
|
||||
- 权限管理
|
||||
- 用户信息管理
|
||||
- 系统用户管理
|
||||
- 司机管理
|
||||
|
||||
### 2. 运输管理
|
||||
- 运输计划制定
|
||||
- 运输路线规划
|
||||
- 运输状态监控
|
||||
- 运输数据统计
|
||||
- 装车管理
|
||||
- 运单管理
|
||||
|
||||
### 3. 检疫和隔离管理
|
||||
- 检疫记录管理
|
||||
- 隔离状态监控
|
||||
- 检疫证书管理
|
||||
- 入境检疫管理
|
||||
|
||||
### 4. 硬件设备管理
|
||||
- 设备状态监控
|
||||
- 设备数据采集
|
||||
- 设备维护管理
|
||||
- 项圈设备管理
|
||||
- 耳标设备管理
|
||||
- 主机设备管理
|
||||
|
||||
### 5. 预警系统
|
||||
- 实时监控预警
|
||||
- 异常情况报警
|
||||
- 预警规则配置
|
||||
- 预警处理跟踪
|
||||
|
||||
### 6. 系统管理
|
||||
- 系统配置
|
||||
- 日志管理
|
||||
- 数据备份
|
||||
- 岗位管理
|
||||
- 员工管理
|
||||
- 租户管理
|
||||
|
||||
## 安装和运行
|
||||
|
||||
### 环境要求
|
||||
- Node.js >= 16.0.0
|
||||
- Yarn >= 1.22.0 或 pnpm >= 7.0.0
|
||||
|
||||
### 安装依赖
|
||||
```bash
|
||||
# 使用 yarn
|
||||
yarn install
|
||||
|
||||
# 或使用 pnpm
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### 开发环境运行
|
||||
```bash
|
||||
# 使用 yarn
|
||||
yarn dev
|
||||
|
||||
# 或使用 pnpm
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
### 生产环境构建
|
||||
```bash
|
||||
# 使用 yarn
|
||||
yarn build
|
||||
|
||||
# 或使用 pnpm
|
||||
pnpm build
|
||||
```
|
||||
|
||||
### 代码检查
|
||||
```bash
|
||||
# 使用 ESLint 检查代码
|
||||
yarn eslint
|
||||
|
||||
# 使用 Prettier 格式化代码
|
||||
yarn prettier
|
||||
```
|
||||
|
||||
## 环境配置
|
||||
|
||||
项目包含三个环境配置文件:
|
||||
- `.env` - 基础配置
|
||||
- `.env.development` - 开发环境配置
|
||||
- `.env.production` - 生产环境配置
|
||||
|
||||
请根据实际需求修改相应的环境变量。
|
||||
|
||||
## 开发指南
|
||||
|
||||
### 1. 代码规范
|
||||
- 使用 ESLint 进行代码检查
|
||||
- 使用 Prettier 进行代码格式化
|
||||
- 遵循 TypeScript 类型规范
|
||||
- 行宽: 150字符
|
||||
- 缩进: 4个空格
|
||||
- 使用单引号
|
||||
- 语句末尾使用分号
|
||||
|
||||
### 2. 组件开发
|
||||
- 遵循 Vue 3 组合式 API 规范
|
||||
- 使用 TypeScript 编写组件
|
||||
- 保持组件的单一职责
|
||||
- 组件文件使用 .vue 扩展名
|
||||
|
||||
### 3. API 调用
|
||||
- 统一使用 [src/api](src/api) 目录下的接口函数
|
||||
- 使用 TypeScript 类型注解
|
||||
- 处理请求错误和异常情况
|
||||
|
||||
### 4. 状态管理
|
||||
- 使用 Pinia 进行状态管理
|
||||
- 按模块组织 store
|
||||
- 遵循状态管理最佳实践
|
||||
|
||||
### 5. 路由配置
|
||||
- 使用 Vue Router 进行路由管理
|
||||
- 路由采用懒加载方式
|
||||
- 路由配置在 [src/router](src/router) 目录下
|
||||
|
||||
## 部署说明
|
||||
|
||||
1. 构建生产环境代码:
|
||||
```bash
|
||||
yarn build
|
||||
```
|
||||
|
||||
2. 将 `dist` 目录下的文件部署到 Web 服务器
|
||||
|
||||
3. 配置服务器环境变量和反向代理
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 确保开发环境和生产环境的配置正确
|
||||
2. 注意 API 接口的跨域配置
|
||||
3. 遵循代码提交规范
|
||||
4. 及时更新依赖包版本
|
||||
5. 做好代码备份和版本控制
|
||||
|
||||
## 贡献指南
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 创建特性分支
|
||||
3. 提交代码
|
||||
4. 创建 Pull Request
|
||||
|
||||
## 许可证
|
||||
|
||||
[MIT License](LICENSE)
|
||||
329
pc-cattle-transportation/REQUIREMENTS.md
Normal file
@@ -0,0 +1,329 @@
|
||||
# 牛只运输管理系统需求文档
|
||||
|
||||
## 1. 引言
|
||||
|
||||
### 1.1 项目背景
|
||||
随着畜牧业的快速发展,牛只运输已成为产业链中的重要环节。为提高牛只运输过程的管理效率和安全性,需要建立一套完整的牛只运输管理系统。该系统将实现对牛只运输全过程的数字化管理,包括运输管理、检疫隔离、设备监控、异常预警等功能。
|
||||
|
||||
### 1.2 项目目标
|
||||
本项目旨在开发一套基于Web的牛只运输管理系统,为牛只运输企业提供完整的数字化解决方案,实现以下目标:
|
||||
- 提高运输过程的可视化程度
|
||||
- 加强运输过程的安全监控
|
||||
- 优化运输计划和路线规划
|
||||
- 完善检疫和隔离管理流程
|
||||
- 提升异常情况的响应速度
|
||||
|
||||
### 1.3 项目范围
|
||||
本系统主要面向以下用户群体:
|
||||
- 牛只供应商
|
||||
- 牛只采购商
|
||||
- 牛只采购供应链资金提供方
|
||||
- 牛只运输管理人员
|
||||
- 检疫和隔离管理人员
|
||||
- 硬件设备维护人员
|
||||
- 系统管理员
|
||||
|
||||
系统将涵盖运输管理、检疫隔离、设备监控、预警系统等核心功能模块,并提供完整的数据统计和分析功能,支持多角色权限管理和移动端访问。
|
||||
|
||||
## 2. 项目概述
|
||||
|
||||
### 2.1 产品描述
|
||||
牛只运输管理系统是一套基于Vue 3 + TypeScript开发的现代化前端应用,通过与后端服务配合,实现对牛只运输全过程的数字化管理。系统提供友好的用户界面,支持多角色权限管理,具备实时监控、数据分析、预警提醒等功能。
|
||||
|
||||
### 2.2 产品功能概览
|
||||
- **用户管理**:用户登录/注册、权限管理、用户信息管理
|
||||
- **运输管理**:运输计划制定、路线规划、状态监控、数据统计
|
||||
- **检疫和隔离管理**:检疫记录、隔离状态监控、检疫证书管理
|
||||
- **硬件设备管理**:设备状态监控、数据采集、设备维护
|
||||
- **预警系统**:实时监控预警、异常情况报警、规则配置
|
||||
- **系统管理**:配置管理、日志管理、数据备份
|
||||
- **数据录入管理**:入境检疫数据录入、核验管理
|
||||
- **用户管理**:司机管理、用户管理
|
||||
|
||||
### 2.3 用户特征
|
||||
1. **运输管理人员**:负责制定运输计划、监控运输过程、查看统计数据
|
||||
2. **检疫管理人员**:负责检疫记录管理、隔离状态监控、证书管理
|
||||
3. **设备维护人员**:负责监控设备状态、处理设备异常、维护设备信息
|
||||
4. **系统管理员**:负责用户管理、权限配置、系统配置、日志管理
|
||||
5. **司机用户**:查看运输任务、更新运输状态
|
||||
|
||||
### 2.4 运行环境
|
||||
- **客户端**:现代浏览器(Chrome、Firefox、Safari等)
|
||||
- **服务端**:需要与后端API服务配合运行
|
||||
- **网络环境**:稳定的互联网连接
|
||||
|
||||
## 3. 功能需求
|
||||
|
||||
### 3.1 用户管理模块
|
||||
|
||||
#### 3.1.1 用户登录
|
||||
- 支持手机号+密码登录
|
||||
- 支持手机号+验证码登录
|
||||
- 登录失败次数限制
|
||||
- 登录状态保持
|
||||
|
||||
#### 3.1.2 权限管理
|
||||
- 基于角色的访问控制(RBAC)
|
||||
- 菜单权限控制
|
||||
- 按钮级别权限控制
|
||||
- 动态路由生成
|
||||
|
||||
#### 3.1.3 用户信息管理
|
||||
- 个人信息查看和修改
|
||||
- 密码修改
|
||||
- 头像上传
|
||||
|
||||
#### 3.1.4 系统用户管理
|
||||
- 用户列表查看
|
||||
- 用户新增/编辑/删除
|
||||
- 用户状态管理
|
||||
|
||||
#### 3.1.5 司机管理
|
||||
- 司机列表查看
|
||||
- 司机新增/编辑/删除
|
||||
- 司机详情查看
|
||||
|
||||
### 3.2 运输管理模块
|
||||
|
||||
#### 3.2.1 运输计划制定
|
||||
- 运输任务创建
|
||||
- 运输路线规划
|
||||
- 运输时间安排
|
||||
- 运输车辆分配
|
||||
|
||||
#### 3.2.2 运输路线规划
|
||||
- 基于百度地图的路线规划
|
||||
- 路线优化建议
|
||||
- 实时路线跟踪
|
||||
|
||||
#### 3.2.3 运输状态监控
|
||||
- 实时位置跟踪
|
||||
- 运输状态更新
|
||||
- 异常情况记录
|
||||
|
||||
#### 3.2.4 运输数据统计
|
||||
- 运输任务统计
|
||||
- 运输效率分析
|
||||
- 成本统计分析
|
||||
|
||||
#### 3.2.5 装车管理
|
||||
- 装车任务分配
|
||||
- 装车状态跟踪
|
||||
- 装车数据记录
|
||||
|
||||
#### 3.2.6 运单管理
|
||||
- 运单创建和编辑
|
||||
- 运单详情查看
|
||||
- 运单状态更新
|
||||
|
||||
### 3.3 检疫和隔离管理模块
|
||||
|
||||
#### 3.3.1 检疫记录管理
|
||||
- 检疫信息录入
|
||||
- 检疫结果记录
|
||||
- 检疫证书生成
|
||||
|
||||
#### 3.3.2 隔离状态监控
|
||||
- 隔离牛只信息管理
|
||||
- 隔离状态跟踪
|
||||
- 隔离结束处理
|
||||
|
||||
#### 3.3.3 检疫证书管理
|
||||
- 证书模板管理
|
||||
- 证书生成和下载
|
||||
- 证书查询和验证
|
||||
|
||||
#### 3.3.4 入境检疫管理
|
||||
- 入境检疫数据录入
|
||||
- 检疫核验管理
|
||||
- 检疫文件下载
|
||||
|
||||
### 3.4 硬件设备管理模块
|
||||
|
||||
#### 3.4.1 设备状态监控
|
||||
- 设备在线状态监控
|
||||
- 设备数据实时展示
|
||||
- 设备异常报警
|
||||
|
||||
#### 3.4.2 设备数据采集
|
||||
- 传感器数据采集
|
||||
- 数据存储和查询
|
||||
- 数据可视化展示
|
||||
|
||||
#### 3.4.3 设备维护管理
|
||||
- 设备维护计划制定
|
||||
- 维护记录管理
|
||||
- 设备故障处理
|
||||
|
||||
#### 3.4.4 项圈设备管理
|
||||
- 项圈设备列表查看
|
||||
- 项圈设备分配
|
||||
- 项圈设备状态监控
|
||||
|
||||
#### 3.4.5 耳标设备管理
|
||||
- 耳标设备列表查看
|
||||
- 耳标设备分配
|
||||
- 耳标设备状态监控
|
||||
|
||||
#### 3.4.6 主机设备管理
|
||||
- 主机设备列表查看
|
||||
- 主机设备状态监控
|
||||
|
||||
### 3.5 预警系统模块
|
||||
|
||||
#### 3.5.1 实时监控预警
|
||||
- 运输异常预警
|
||||
- 设备故障预警
|
||||
- 环境参数异常预警
|
||||
|
||||
#### 3.5.2 异常情况报警
|
||||
- 多渠道报警通知(短信、邮件、站内信)
|
||||
- 报警级别分类
|
||||
- 报警处理跟踪
|
||||
|
||||
#### 3.5.3 预警规则配置
|
||||
- 预警条件设置
|
||||
- 预警阈值配置
|
||||
- 预警通知方式配置
|
||||
|
||||
### 3.6 系统管理模块
|
||||
|
||||
#### 3.6.1 系统配置
|
||||
- 系统参数配置
|
||||
- 字典数据管理
|
||||
- 通知模板配置
|
||||
|
||||
#### 3.6.2 日志管理
|
||||
- 操作日志记录
|
||||
- 登录日志记录
|
||||
- 系统日志查看
|
||||
|
||||
#### 3.6.3 数据备份
|
||||
- 数据备份策略配置
|
||||
- 手动备份功能
|
||||
- 备份文件管理
|
||||
|
||||
#### 3.6.4 岗位管理
|
||||
- 岗位列表查看
|
||||
- 岗位新增/编辑/删除
|
||||
- 岗位权限配置
|
||||
|
||||
#### 3.6.5 员工管理
|
||||
- 员工列表查看
|
||||
- 员工新增/编辑/删除
|
||||
- 员工岗位分配
|
||||
|
||||
#### 3.6.6 租户管理
|
||||
- 租户列表查看
|
||||
- 租户新增/编辑
|
||||
- 租户设备分配
|
||||
|
||||
## 4. 非功能需求
|
||||
|
||||
### 4.1 性能需求
|
||||
- 页面加载时间不超过3秒
|
||||
- 数据查询响应时间不超过1秒
|
||||
- 支持至少1000个并发用户访问
|
||||
|
||||
### 4.2 可用性需求
|
||||
- 系统可用性达到99.9%
|
||||
- 提供友好的用户界面
|
||||
- 支持主流浏览器
|
||||
|
||||
### 4.3 安全性需求
|
||||
- 用户身份认证和授权
|
||||
- 数据传输加密
|
||||
- 敏感信息保护
|
||||
- 防止SQL注入和XSS攻击
|
||||
|
||||
### 4.4 兼容性需求
|
||||
- 支持Chrome、Firefox、Safari等主流浏览器
|
||||
- 支持不同分辨率屏幕显示
|
||||
- 支持移动端访问
|
||||
|
||||
### 4.5 可维护性需求
|
||||
- 代码结构清晰,注释完整
|
||||
- 模块化设计,便于扩展
|
||||
- 提供完善的日志记录
|
||||
|
||||
## 5. 外部接口需求
|
||||
|
||||
### 5.1 用户接口
|
||||
- 响应式Web界面
|
||||
- 支持键盘和鼠标操作
|
||||
- 提供快捷键支持
|
||||
|
||||
### 5.2 硬件接口
|
||||
- GPS设备数据接口
|
||||
- 传感器数据接口
|
||||
- 视频监控设备接口
|
||||
|
||||
### 5.3 软件接口
|
||||
- 后端API接口
|
||||
- 百度地图API
|
||||
- 短信服务接口
|
||||
- 邮件服务接口
|
||||
|
||||
## 6. 其他需求
|
||||
|
||||
### 6.1 国际化需求
|
||||
- 支持中英文切换
|
||||
- 日期时间格式本地化
|
||||
- 数字格式本地化
|
||||
|
||||
### 6.2 数据备份和恢复
|
||||
- 定期自动备份
|
||||
- 手动备份功能
|
||||
- 数据恢复功能
|
||||
|
||||
### 6.3 技术支持和维护
|
||||
- 在线帮助文档
|
||||
- 系统使用培训
|
||||
- 技术支持服务
|
||||
|
||||
## 7. 项目约束
|
||||
|
||||
### 7.1 技术约束
|
||||
- 基于Vue 3 + TypeScript技术栈
|
||||
- 使用Vite构建工具
|
||||
- 遵循前端开发规范
|
||||
|
||||
### 7.2 数据约束
|
||||
- 数据存储符合相关法规要求
|
||||
- 数据传输符合安全标准
|
||||
- 数据备份符合行业标准
|
||||
|
||||
### 7.3 时间约束
|
||||
- 项目开发周期为6个月
|
||||
- 分阶段交付功能模块
|
||||
- 需要预留测试和优化时间
|
||||
|
||||
## 8. 验收标准
|
||||
|
||||
### 8.1 功能验收标准
|
||||
- 所有功能模块按需求文档实现
|
||||
- 功能测试通过率达到100%
|
||||
- 用户验收测试通过
|
||||
|
||||
### 8.2 性能验收标准
|
||||
- 系统响应时间符合要求
|
||||
- 并发处理能力达标
|
||||
- 资源占用率在合理范围内
|
||||
|
||||
### 8.3 安全验收标准
|
||||
- 通过安全测试
|
||||
- 无高危安全漏洞
|
||||
- 符合数据保护法规要求
|
||||
|
||||
## 9. 附录
|
||||
|
||||
### 9.1 术语表
|
||||
- **牛只运输**:指将牛只从一个地点运输到另一个地点的过程
|
||||
- **检疫**:指对牛只进行疫病检查的过程
|
||||
- **隔离**:指对疑似或确诊患病牛只进行隔离观察的过程
|
||||
- **RFID**:射频识别技术,用于牛只身份识别
|
||||
|
||||
### 9.2 参考资料
|
||||
- 相关行业标准和规范
|
||||
- 技术文档和API说明
|
||||
- 法律法规要求
|
||||
204
pc-cattle-transportation/ROUTE_FIX_REPORT.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# 路由和权限问题修复报告
|
||||
|
||||
## 问题描述
|
||||
|
||||
在登录后出现了两个关键问题:
|
||||
|
||||
1. **权限路由生成错误**:
|
||||
```
|
||||
TypeError: Cannot read properties of null (reading 'replace')
|
||||
at capitalizeFirstLetter (permission.js:100:21)
|
||||
```
|
||||
|
||||
2. **无限重定向问题**:
|
||||
```
|
||||
[Vue Router warn]: Detected a possibly infinite redirection in a navigation guard when going from "/login" to "/shipping/loadingOrder"
|
||||
```
|
||||
|
||||
## 根本原因分析
|
||||
|
||||
### 1. capitalizeFirstLetter 函数错误
|
||||
- **原因**:菜单数据中的 `routeUrl` 字段可能为 `null` 或 `undefined`
|
||||
- **影响**:导致权限路由生成失败,系统无法正常加载
|
||||
|
||||
### 2. 无限重定向问题
|
||||
- **原因**:路由守卫和登录后的导航逻辑产生冲突
|
||||
- **影响**:用户无法正常进入系统,页面不断重定向
|
||||
|
||||
## 修复方案
|
||||
|
||||
### 1. 修复 capitalizeFirstLetter 函数
|
||||
|
||||
**文件**:`src/store/permission.js`
|
||||
|
||||
**修复前**:
|
||||
```javascript
|
||||
function capitalizeFirstLetter(string) {
|
||||
string = string.replace('/', '');
|
||||
return string.charAt(0).toUpperCase() + string.toLowerCase().slice(1);
|
||||
}
|
||||
```
|
||||
|
||||
**修复后**:
|
||||
```javascript
|
||||
function capitalizeFirstLetter(string) {
|
||||
// 处理 null 或 undefined 值
|
||||
if (!string || typeof string !== 'string') {
|
||||
console.warn('capitalizeFirstLetter: Invalid string input:', string);
|
||||
return 'Unknown';
|
||||
}
|
||||
|
||||
string = string.replace('/', '');
|
||||
return string.charAt(0).toUpperCase() + string.toLowerCase().slice(1);
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 改进菜单数据处理
|
||||
|
||||
**修复前**:
|
||||
```javascript
|
||||
menuList = menuList.map((item) => {
|
||||
return {
|
||||
name: capitalizeFirstLetter(item.routeUrl),
|
||||
path: item.routeUrl,
|
||||
// ...
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
**修复后**:
|
||||
```javascript
|
||||
menuList = menuList.map((item) => {
|
||||
// 确保 routeUrl 存在且不为空
|
||||
const routeUrl = item.routeUrl || item.pageUrl || '';
|
||||
|
||||
return {
|
||||
name: capitalizeFirstLetter(routeUrl),
|
||||
path: routeUrl,
|
||||
// ...
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
### 3. 修复登录导航逻辑
|
||||
|
||||
**文件**:`src/views/login.vue`
|
||||
|
||||
**修复前**:
|
||||
```javascript
|
||||
const generateRoutes = () => {
|
||||
getUserMenu().then((ret) => {
|
||||
// 复杂的 Promise 链和错误处理
|
||||
router.push({ path: targetPath }).catch((error) => {
|
||||
router.push({ path: '/shipping/loadingOrder' }).catch(() => {
|
||||
router.push({ path: '/' });
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
```
|
||||
|
||||
**修复后**:
|
||||
```javascript
|
||||
const generateRoutes = async () => {
|
||||
try {
|
||||
const ret = await getUserMenu();
|
||||
// 简化的导航逻辑
|
||||
try {
|
||||
await router.push({ path: targetPath });
|
||||
} catch (error) {
|
||||
await router.push({ path: '/' });
|
||||
}
|
||||
} catch (error) {
|
||||
await router.push({ path: '/' });
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### 4. 改进路由守卫错误处理
|
||||
|
||||
**文件**:`src/permission.js`
|
||||
|
||||
**修复前**:
|
||||
```javascript
|
||||
usePermissionStore()
|
||||
.generateRoutes()
|
||||
.then((accessRoutes) => {
|
||||
// 处理成功情况
|
||||
});
|
||||
```
|
||||
|
||||
**修复后**:
|
||||
```javascript
|
||||
usePermissionStore()
|
||||
.generateRoutes()
|
||||
.then((accessRoutes) => {
|
||||
// 处理成功情况
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Failed to generate routes:', error);
|
||||
next({ path: '/', replace: true });
|
||||
});
|
||||
```
|
||||
|
||||
## 修复效果
|
||||
|
||||
### ✅ 解决的问题
|
||||
|
||||
1. **权限路由生成**:
|
||||
- 不再因为 null 值导致崩溃
|
||||
- 能够正确处理所有菜单数据
|
||||
- 提供详细的调试信息
|
||||
|
||||
2. **导航稳定性**:
|
||||
- 消除了无限重定向问题
|
||||
- 简化了错误处理逻辑
|
||||
- 提供了更好的降级方案
|
||||
|
||||
3. **用户体验**:
|
||||
- 登录后能够正常进入系统
|
||||
- 超级管理员正确跳转到系统管理页面
|
||||
- 普通用户跳转到有权限的菜单页面
|
||||
|
||||
### 🔧 技术改进
|
||||
|
||||
1. **错误处理**:
|
||||
- 添加了完整的 try-catch 错误处理
|
||||
- 提供了详细的错误日志
|
||||
- 实现了优雅的降级方案
|
||||
|
||||
2. **代码质量**:
|
||||
- 使用 async/await 替代复杂的 Promise 链
|
||||
- 改进了函数的可读性和维护性
|
||||
- 添加了必要的类型检查
|
||||
|
||||
3. **调试支持**:
|
||||
- 增加了详细的控制台日志
|
||||
- 提供了清晰的错误信息
|
||||
- 便于问题排查和调试
|
||||
|
||||
## 测试建议
|
||||
|
||||
1. **登录测试**:
|
||||
- 测试超级管理员登录
|
||||
- 测试普通用户登录
|
||||
- 测试无权限用户登录
|
||||
|
||||
2. **导航测试**:
|
||||
- 验证页面跳转是否正确
|
||||
- 检查是否还有重定向问题
|
||||
- 确认错误处理是否有效
|
||||
|
||||
3. **权限测试**:
|
||||
- 验证菜单权限是否正确加载
|
||||
- 检查权限按钮是否正常显示
|
||||
- 确认权限分配功能是否正常
|
||||
|
||||
## 相关文件
|
||||
|
||||
- `src/store/permission.js` - 权限存储和路由生成
|
||||
- `src/views/login.vue` - 登录页面和导航逻辑
|
||||
- `src/permission.js` - 路由守卫
|
||||
- `src/directive/permission/hasPermi.js` - 权限指令
|
||||
|
||||
修复完成后,系统应该能够正常处理登录和权限管理功能。
|
||||
114
pc-cattle-transportation/SHORT_TERM_GOALS.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# 短期目标任务清单
|
||||
|
||||
根据开发计划,短期目标包括:
|
||||
1. 完善现有功能模块的用户体验
|
||||
2. 修复已知的Bug和警告信息
|
||||
3. 优化系统性能和加载速度
|
||||
4. 完善文档和注释
|
||||
|
||||
## 任务列表
|
||||
|
||||
### 1. 修复已知的Bug和警告信息
|
||||
|
||||
#### 1.1 Vue警告信息修复
|
||||
- [x] 检查并修复所有"[Vue warn]"相关的警告
|
||||
- [x] 检查并修复组件属性类型不匹配问题
|
||||
- [ ] 检查并修复未定义方法或属性的引用问题
|
||||
- [ ] 检查并修复无效watch源问题
|
||||
|
||||
#### 1.2 Element Plus弃用警告修复
|
||||
- [x] 检查并修复所有Element Plus组件弃用警告
|
||||
- [x] 替换已弃用的组件属性和方法
|
||||
- [x] 更新组件使用方式以符合最新版本要求
|
||||
|
||||
#### 1.3 其他警告和错误修复
|
||||
- [x] 修复ESLint配置和相关问题
|
||||
- [ ] 修复TypeScript类型检查问题
|
||||
- [ ] 修复控制台中的其他警告信息
|
||||
|
||||
### 2. 完善现有功能模块的用户体验
|
||||
|
||||
#### 2.1 界面优化
|
||||
- [ ] 统一各模块界面风格
|
||||
- [ ] 优化表单布局和交互
|
||||
- [ ] 改进表格展示效果
|
||||
- [ ] 优化按钮和操作项的布局
|
||||
|
||||
#### 2.2 交互改进
|
||||
- [ ] 添加必要的加载状态提示
|
||||
- [ ] 完善错误处理和提示信息
|
||||
- [ ] 优化表单验证和用户反馈
|
||||
- [ ] 改进搜索和筛选功能体验
|
||||
|
||||
#### 2.3 响应式优化
|
||||
- [ ] 检查并优化各页面在不同屏幕尺寸下的显示效果
|
||||
- [ ] 修复可能存在的布局错乱问题
|
||||
|
||||
### 3. 优化系统性能和加载速度
|
||||
|
||||
#### 3.1 代码优化
|
||||
- [ ] 检查并优化组件加载策略
|
||||
- [ ] 实施代码分割和懒加载
|
||||
- [ ] 减少不必要的重新渲染
|
||||
- [ ] 优化图片和资源加载
|
||||
|
||||
#### 3.2 网络请求优化
|
||||
- [ ] 检查并优化API请求
|
||||
- [ ] 实施请求缓存策略
|
||||
- [ ] 优化数据获取和处理逻辑
|
||||
|
||||
#### 3.3 构建优化
|
||||
- [ ] 检查并优化Vite配置
|
||||
- [ ] 优化打包和构建过程
|
||||
|
||||
### 4. 完善文档和注释
|
||||
|
||||
#### 4.1 代码注释
|
||||
- [ ] 为关键函数和方法添加注释
|
||||
- [ ] 为复杂业务逻辑添加注释
|
||||
- [ ] 统一注释风格和格式
|
||||
|
||||
#### 4.2 文档更新
|
||||
- [ ] 更新现有文档中的过时信息
|
||||
- [ ] 补充缺失的文档内容
|
||||
- [ ] 优化文档结构和可读性
|
||||
|
||||
#### 4.3 开发规范
|
||||
- [ ] 完善代码规范文档
|
||||
- [ ] 更新开发指南
|
||||
- [ ] 补充最佳实践说明
|
||||
|
||||
## 实施计划
|
||||
|
||||
### 第一周
|
||||
- [x] 完成所有已知警告和错误的修复
|
||||
- [x] 修复ESLint配置问题
|
||||
- [x] 修复Vue相关警告
|
||||
- [x] 修复Element Plus弃用警告
|
||||
|
||||
### 第二周
|
||||
- 完善用户体验优化
|
||||
- 统一界面风格
|
||||
- 优化交互流程
|
||||
- 改进响应式效果
|
||||
|
||||
### 第三周
|
||||
- 实施性能优化措施
|
||||
- 优化代码加载策略
|
||||
- 优化网络请求
|
||||
- 检查构建配置
|
||||
|
||||
### 第四周
|
||||
- 完善文档和注释
|
||||
- 补充代码注释
|
||||
- 更新项目文档
|
||||
- 完善开发规范
|
||||
|
||||
## 验证标准
|
||||
|
||||
- [x] 控制台无任何警告信息
|
||||
- [ ] 所有功能模块正常运行
|
||||
- [ ] 页面加载速度提升20%以上
|
||||
- [ ] 用户体验得到明显改善
|
||||
- [ ] 代码注释覆盖率达到80%以上
|
||||
- [ ] 文档完整性和准确性达到90%以上
|
||||
128
pc-cattle-transportation/SUPER_ADMIN_PERMISSIONS_GUIDE.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# 超级管理员权限管理指南
|
||||
|
||||
## 概述
|
||||
本指南说明如何为超级管理员账户(手机号:15900000000)打开全部菜单权限。
|
||||
|
||||
## 方法一:通过权限管理界面操作(推荐)
|
||||
|
||||
### 步骤:
|
||||
1. **登录系统**
|
||||
- 使用超级管理员账户登录系统
|
||||
- 导航到权限管理页面:`/permission/menu`
|
||||
|
||||
2. **选择目标用户**
|
||||
- 在左侧用户列表中找到手机号为 `15900000000` 的用户
|
||||
- 点击选择该用户
|
||||
|
||||
3. **分配权限**
|
||||
- **方法A:手动全选**
|
||||
- 在右侧菜单树中,手动勾选所有菜单项
|
||||
- 点击"保存菜单权限"按钮
|
||||
|
||||
- **方法B:一键分配(新增功能)**
|
||||
- 点击"一键分配全部权限"按钮
|
||||
- 确认操作
|
||||
- 系统将自动为该用户分配所有菜单权限
|
||||
|
||||
## 方法二:使用工具函数(开发者)
|
||||
|
||||
### 导入工具函数
|
||||
```javascript
|
||||
import {
|
||||
assignAllPermissionsToSuperAdmin,
|
||||
checkSuperAdminPermissions,
|
||||
quickAssignAllPermissions
|
||||
} from '@/utils/superAdminHelper.js';
|
||||
```
|
||||
|
||||
### 检查权限状态
|
||||
```javascript
|
||||
// 检查超级管理员当前权限状态
|
||||
const status = await checkSuperAdminPermissions('15900000000');
|
||||
console.log('权限状态:', status);
|
||||
```
|
||||
|
||||
### 分配所有权限
|
||||
```javascript
|
||||
// 为超级管理员分配所有菜单权限
|
||||
const success = await assignAllPermissionsToSuperAdmin('15900000000');
|
||||
if (success) {
|
||||
console.log('权限分配成功');
|
||||
}
|
||||
```
|
||||
|
||||
### 一键分配(包含确认提示)
|
||||
```javascript
|
||||
// 一键分配权限(包含UI确认提示)
|
||||
const success = await quickAssignAllPermissions('15900000000');
|
||||
```
|
||||
|
||||
## 方法三:通过API直接调用
|
||||
|
||||
### 获取所有菜单
|
||||
```javascript
|
||||
// GET /sysMenu/list
|
||||
const menuListRes = await getMenuList();
|
||||
const allMenuIds = menuListRes.data.map(menu => menu.id);
|
||||
```
|
||||
|
||||
### 分配权限
|
||||
```javascript
|
||||
// POST /sysMenu/assignRoleMenus
|
||||
const assignRes = await assignRoleMenus({
|
||||
roleId: targetUser.roleId,
|
||||
menuIds: allMenuIds
|
||||
});
|
||||
```
|
||||
|
||||
## 权限验证
|
||||
|
||||
### 前端验证
|
||||
系统会自动检查用户权限:
|
||||
- 超级管理员(roleId = 1)自动拥有 `*:*:*` 权限
|
||||
- 普通用户根据分配的菜单权限进行验证
|
||||
|
||||
### 后端验证
|
||||
```java
|
||||
// 在 LoginServiceImpl.java 中
|
||||
if (roleId.equals(RoleConstants.SUPER_ADMIN_ROLE_ID)) {
|
||||
return Collections.singletonList(RoleConstants.ALL_PERMISSION);
|
||||
}
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **超级管理员特权**:
|
||||
- 超级管理员(roleId = 1)在代码层面已经拥有所有权限
|
||||
- 菜单权限分配主要用于界面显示和权限管理
|
||||
|
||||
2. **权限持久化**:
|
||||
- 权限分配会保存到数据库的 `sys_role_menu` 表中
|
||||
- 重新登录后权限仍然有效
|
||||
|
||||
3. **安全考虑**:
|
||||
- 只有拥有 `permission:menu:assign` 权限的用户才能分配权限
|
||||
- 建议定期检查权限分配情况
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 常见问题
|
||||
1. **找不到用户**:确认手机号是否正确
|
||||
2. **权限分配失败**:检查是否有分配权限的权限
|
||||
3. **菜单不显示**:确认菜单权限已正确分配
|
||||
|
||||
### 调试信息
|
||||
系统会在控制台输出详细的调试信息:
|
||||
```
|
||||
=== 获取用户菜单 ===
|
||||
=== 用户权限检查 ===
|
||||
=== 权限路由生成 ===
|
||||
=== 处理后的菜单列表 ===
|
||||
```
|
||||
|
||||
## 相关文件
|
||||
- 前端权限管理:`src/views/permission/menuPermission.vue`
|
||||
- 权限API:`src/api/permission.js`
|
||||
- 工具函数:`src/utils/superAdminHelper.js`
|
||||
- 后端控制器:`SysMenuController.java`
|
||||
- 权限验证:`StpInterfaceImpl.java`
|
||||
18
pc-cattle-transportation/index.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="shortcut icon" href="/src/assets/imgIcon/logo.ico" type="image/x-icon">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> -->
|
||||
<title>牛只运输跟踪系统</title>
|
||||
<!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=P5rdFRhnd00BxQa0IUNR0tpOsxFl5xhs"></script> -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
82
pc-cattle-transportation/package.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"name": "vite-vue3-ts-pinia",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --host",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"eslint:comment": "使用 ESLint 检查并自动修复 src 目录下所有扩展名为 .js 和 .vue 的文件",
|
||||
"eslint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src",
|
||||
"prettier:comment": "自动格式化当前目录下的所有文件",
|
||||
"prettier": "prettier --write",
|
||||
"commit:comment": "引导设置规范化的提交信息",
|
||||
"commit": "git-cz"
|
||||
},
|
||||
"config": {
|
||||
"commitizen": {
|
||||
"path": "node_modules/cz-customizable"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@liveqing/liveplayer-v3": "^3.7.30",
|
||||
"@vueuse/core": "^10.10.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"axios": "^0.27.2",
|
||||
"copy-webpack-plugin": "^4.6.0",
|
||||
"echarts": "^5.5.0",
|
||||
"element-china-area-data": "^6.1.0",
|
||||
"element-plus": "^2.2.17",
|
||||
"file-saver": "^2.0.5",
|
||||
"js-cookie": "^3.0.5",
|
||||
"longze-vue3-video-player": "^1.1.7",
|
||||
"mitt": "^3.0.1",
|
||||
"moment": "^2.30.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.0.22",
|
||||
"pinia-plugin-persist": "^1.0.0",
|
||||
"qrcode": "^1.5.4",
|
||||
"vue": "^3.2.37",
|
||||
"vue-baidu-map-3x": "^1.0.38",
|
||||
"vue-chartjs": "^5.3.0",
|
||||
"vue-draggable-plus": "^0.5.2",
|
||||
"vue-router": "^4.1.5",
|
||||
"vue-use": "^0.2.0",
|
||||
"vue3-baidu-map": "^1.0.0",
|
||||
"vue3-json-viewer": "^2.2.2",
|
||||
"vue3-print-nb": "^0.1.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^17.1.2",
|
||||
"@commitlint/config-conventional": "^17.1.0",
|
||||
"@types/node": "^18.19.20",
|
||||
"@typescript-eslint/eslint-plugin": "^5.38.1",
|
||||
"@typescript-eslint/parser": "^5.38.1",
|
||||
"@vitejs/plugin-vue": "^3.1.0",
|
||||
"commitizen": "^4.2.5",
|
||||
"commitlint-config-cz": "^0.13.3",
|
||||
"cz-conventional-changelog": "^3.3.0",
|
||||
"cz-customizable": "^7.0.0",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-vue": "^9.5.1",
|
||||
"less": "^4.1.3",
|
||||
"prettier": "^2.7.1",
|
||||
"sass": "^1.55.0",
|
||||
"typescript": "^4.6.4",
|
||||
"unplugin-auto-import": "^0.11.2",
|
||||
"unplugin-vue-components": "^0.22.7",
|
||||
"vite": "^3.1.0",
|
||||
"vite-plugin-style-import": "^2.0.0",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"vite-plugin-windicss": "^1.9.3",
|
||||
"vue-tsc": "^0.40.4",
|
||||
"windicss": "^3.5.6"
|
||||
}
|
||||
}
|
||||
8686
pc-cattle-transportation/pnpm-lock.yaml
generated
Normal file
37
pc-cattle-transportation/prettier.config.cjs
Normal file
@@ -0,0 +1,37 @@
|
||||
module.exports = {
|
||||
// 一行最多 80 字符
|
||||
printWidth: 150,
|
||||
// 使用 4 个空格缩进
|
||||
tabWidth: 4,
|
||||
// 不使用 tab 缩进,而使用空格
|
||||
useTabs: false,
|
||||
// 行尾需要有分号
|
||||
semi: true,
|
||||
// 使用单引号代替双引号
|
||||
singleQuote: true,
|
||||
// 对象的 key 仅在必要时用引号
|
||||
quoteProps: 'as-needed',
|
||||
// jsx 不使用单引号,而使用双引号
|
||||
jsxSingleQuote: false,
|
||||
// 末尾使用逗号
|
||||
trailingComma: 'all',
|
||||
// 大括号内的首尾需要空格 { foo: bar }
|
||||
bracketSpacing: true,
|
||||
// jsx 标签的反尖括号需要换行
|
||||
jsxBracketSameLine: false,
|
||||
// 箭头函数,只有一个参数的时候,也需要括号
|
||||
arrowParens: 'always',
|
||||
// 每个文件格式化的范围是文件的全部内容
|
||||
rangeStart: 0,
|
||||
rangeEnd: Infinity,
|
||||
// 不需要写文件开头的 @prettier
|
||||
requirePragma: false,
|
||||
// 不需要自动在文件开头插入 @prettier
|
||||
insertPragma: false,
|
||||
// 使用默认的折行标准
|
||||
proseWrap: 'preserve',
|
||||
// 根据显示样式决定 html 要不要折行
|
||||
htmlWhitespaceSensitivity: 'css',
|
||||
// 换行符使用 lf
|
||||
endOfLine: 'auto'
|
||||
}
|
||||
1
pc-cattle-transportation/public/vite.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
41
pc-cattle-transportation/src/App.vue
Normal file
@@ -0,0 +1,41 @@
|
||||
<template>
|
||||
<el-config-provider :locale="locale" :size="size" :z-index="zIndex">
|
||||
<RouterView class="" />
|
||||
</el-config-provider>
|
||||
</template>
|
||||
<script>
|
||||
import { defineComponent, reactive, ref, toRefs } from 'vue';
|
||||
import { ElConfigProvider } from 'element-plus';
|
||||
import zhCn from 'element-plus/dist/locale/zh-cn';
|
||||
|
||||
export default defineComponent({
|
||||
components: {
|
||||
ElConfigProvider,
|
||||
},
|
||||
setup() {
|
||||
const data = reactive({
|
||||
size: 'large',
|
||||
zIndex: 100,
|
||||
locale: zhCn,
|
||||
});
|
||||
return {
|
||||
...toRefs(data),
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
||||
<style scoped>
|
||||
.logo {
|
||||
height: 6em;
|
||||
padding: 1.5em;
|
||||
will-change: filter;
|
||||
}
|
||||
|
||||
.logo:hover {
|
||||
filter: drop-shadow(0 0 2em #646cffaa);
|
||||
}
|
||||
|
||||
.logo.vue:hover {
|
||||
filter: drop-shadow(0 0 2em #42b883aa);
|
||||
}
|
||||
</style>
|
||||
82
pc-cattle-transportation/src/api/abroad.js
Normal file
@@ -0,0 +1,82 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 测试查询运单设备关联
|
||||
export function testDeliveryDevices(data) {
|
||||
return request({
|
||||
url: '/jbqClient/testDeliveryDevices',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 耳标运单期间列表
|
||||
export function earList(data) {
|
||||
return request({
|
||||
url: '/jbqClient/pageJbqListByDeliveryId',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 耳标运单期间日志
|
||||
export function earLogList(data) {
|
||||
return request({
|
||||
url: '/jbqClientLog/jbqLogList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 主机 - 定位
|
||||
export function hostLocation(data) {
|
||||
return request({
|
||||
url: '/jbqServer/serverLocation',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 主机 - 轨迹
|
||||
export function hostTrack(data) {
|
||||
return request({
|
||||
url: '/jbqServer/serverTrack',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 运送清单-分页查询
|
||||
export function inspectionList(data) {
|
||||
return request({
|
||||
url: '/delivery/pageQueryList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 详情
|
||||
export function waybillDetail(id) {
|
||||
return request({
|
||||
url: `/delivery/detail?id=${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
// 下载文件
|
||||
export function downloadZip(id) {
|
||||
return request({
|
||||
url: `/delivery/downloadZip?deliveryId=${id}`,
|
||||
method: 'GET',
|
||||
responseType: 'blob',
|
||||
});
|
||||
}
|
||||
// 项圈设备列表
|
||||
export function collarList(data) {
|
||||
console.log('=== 调用项圈设备列表API ===', data);
|
||||
return request({
|
||||
url: '/xqClient/list',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 项圈运单期间日志
|
||||
export function collarLogList(data) {
|
||||
return request({
|
||||
url: '/xqClientLog/xqLogList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
10
pc-cattle-transportation/src/api/common/index.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import request from '~/utils/axios.ts';
|
||||
|
||||
// 图片上传
|
||||
export function upload(data) {
|
||||
return request({
|
||||
url: '/common/upload',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
78
pc-cattle-transportation/src/api/device.js
Normal file
@@ -0,0 +1,78 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 耳标设备列表
|
||||
export function queryEarTagList(data) {
|
||||
console.log('=== 调用耳标设备列表API ===', data);
|
||||
return request({
|
||||
url: '/jbqClient/list',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 主机设备列表
|
||||
export function queryHostList(data) {
|
||||
console.log('=== 调用主机设备列表API ===', data);
|
||||
return request({
|
||||
url: '/jbqServer/serverList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 公司列表
|
||||
// TODO: Backend endpoint /jbqDevice/companyList does not exist
|
||||
export function queryCompanyList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/jbqDevice/companyList',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 设备分配
|
||||
// TODO: Backend endpoint /device/allocation does not exist
|
||||
export function deviceAssign(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '设备分配成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/device/allocation',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 按数量分配设备
|
||||
// TODO: Backend endpoint /device/allocationByNum does not exist
|
||||
export function deviceAssignByNum(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '设备分配成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/device/allocationByNum',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 所有主机位置
|
||||
// TODO: Backend endpoint /device/serverAllLocation does not exist
|
||||
export function serverAllLocation() {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: []
|
||||
});
|
||||
// return request({
|
||||
// url: '/device/serverAllLocation',
|
||||
// method: 'GET',
|
||||
// });
|
||||
}
|
||||
62
pc-cattle-transportation/src/api/hardware.js
Normal file
@@ -0,0 +1,62 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 智能耳标
|
||||
export function jbqClientList(data) {
|
||||
return request({
|
||||
url: '/jbqClient/list',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 智能主机
|
||||
export function jbqServerList(data) {
|
||||
return request({
|
||||
url: '/jbqServer/serverList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 预警记录
|
||||
export function warningLogList(data) {
|
||||
return request({
|
||||
url: '/warningLog/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 智能项圈 -列表
|
||||
export function collarList(data) {
|
||||
return request({
|
||||
url: '/xqClient/list',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 智能项圈 -轨迹
|
||||
|
||||
export function collarTrack(data) {
|
||||
return request({
|
||||
url: '/xqClient/xqTrack',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 智能项圈 -轨迹
|
||||
|
||||
export function collarLocation(data) {
|
||||
return request({
|
||||
url: '/xqClient/xqLocation',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 运动详情智能项圈 -轨迹
|
||||
export function collarTrackOrder(data) {
|
||||
return request({
|
||||
url: '/xqClient/xqDeviceTrack',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
156
pc-cattle-transportation/src/api/isolationQuarantine.js
Normal file
@@ -0,0 +1,156 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
|
||||
// ------ 运单管理 -------
|
||||
// 运单管理 - 列表
|
||||
// TODO: Backend endpoint /inspection/list does not exist
|
||||
export function waybillList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/inspection/list',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
// 运单管理 - 详情
|
||||
// TODO: Backend endpoint /inspection/detail does not exist
|
||||
export function waybillDetail(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {}
|
||||
});
|
||||
// return request({
|
||||
// url: '/inspection/detail',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 智能耳标 - 列表
|
||||
// TODO: Backend endpoint /device/listInfo does not exist
|
||||
export function earList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/device/listInfo',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 主机 - 定位
|
||||
// TODO: Backend endpoint /device/serverLocation does not exist
|
||||
export function hostLocation(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {}
|
||||
});
|
||||
// return request({
|
||||
// url: '/device/serverLocation',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 主机 - 轨迹
|
||||
// TODO: Backend endpoint /device/serverTrack does not exist
|
||||
export function hostTrack(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: []
|
||||
});
|
||||
// return request({
|
||||
// url: '/device/serverTrack',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 运单管理 - 确定入场
|
||||
// TODO: Backend endpoint /inspection/submit does not exist
|
||||
export function waybillSubmit(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '操作成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/inspection/submit',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// ----------- 入场/出场扫描记录 ----------
|
||||
// 入场/出场扫描记录 - 列表
|
||||
// TODO: Backend endpoint /inspection/logList does not exist
|
||||
export function scanList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/inspection/logList',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// ----------- 隔离场羊只信息 ----------
|
||||
// 隔离场羊只信息 - 列表
|
||||
// TODO: Backend endpoint /inspection/sheepList does not exist
|
||||
export function sheepList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/inspection/sheepList',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 隔离场羊只信息 - 手动出场
|
||||
// TODO: Backend endpoint /deliver/exitOccasion does not exist
|
||||
export function sheepExit(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '操作成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/deliver/exitOccasion',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 隔离场羊只信息 - 导出
|
||||
// TODO: Backend endpoint /inspection/sheepExport does not exist
|
||||
export function sheepExport(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '导出成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/inspection/sheepExport',
|
||||
// method: 'POST',
|
||||
// responseType: 'blob',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
31
pc-cattle-transportation/src/api/killRecord.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 屠宰记录-列表
|
||||
// TODO: Backend endpoint /killRecord/list does not exist
|
||||
export function killRecordList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/killRecord/list',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 屠宰记录-更新状态
|
||||
// TODO: Backend endpoint /killRecord/updateStatus does not exist
|
||||
export function updateKillStatus(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '操作成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/killRecord/updateStatus',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
148
pc-cattle-transportation/src/api/permission.js
Normal file
@@ -0,0 +1,148 @@
|
||||
import request from '@/utils/request.js';
|
||||
|
||||
// ==================== 菜单管理 ====================
|
||||
|
||||
/**
|
||||
* 获取菜单树
|
||||
*/
|
||||
export function getMenuTree() {
|
||||
return request({
|
||||
url: '/sysMenu/tree',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单列表(扁平)
|
||||
*/
|
||||
export function getMenuList() {
|
||||
return request({
|
||||
url: '/sysMenu/list',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据角色ID获取菜单列表
|
||||
*/
|
||||
export function getMenuListByRoleId(roleId) {
|
||||
return request({
|
||||
url: '/sysMenu/listByRoleId',
|
||||
method: 'GET',
|
||||
params: { roleId },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色已分配的菜单ID列表
|
||||
*/
|
||||
export function getRoleMenuIds(roleId) {
|
||||
return request({
|
||||
url: '/sysMenu/roleMenuIds',
|
||||
method: 'GET',
|
||||
params: { roleId },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增菜单
|
||||
*/
|
||||
export function addMenu(data) {
|
||||
return request({
|
||||
url: '/sysMenu/add',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新菜单
|
||||
*/
|
||||
export function updateMenu(data) {
|
||||
return request({
|
||||
url: '/sysMenu/update',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单
|
||||
*/
|
||||
export function deleteMenu(id) {
|
||||
return request({
|
||||
url: '/sysMenu/delete',
|
||||
method: 'GET',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 为角色分配菜单权限
|
||||
*/
|
||||
export function assignRoleMenus(data) {
|
||||
return request({
|
||||
url: '/sysMenu/assignRoleMenus',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// ==================== 角色管理 ====================
|
||||
|
||||
/**
|
||||
* 获取角色列表
|
||||
*/
|
||||
export function getRoleList(data) {
|
||||
return request({
|
||||
url: '/sysRole/list',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增角色
|
||||
*/
|
||||
export function addRole(data) {
|
||||
return request({
|
||||
url: '/sysRole/add',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新角色
|
||||
*/
|
||||
export function updateRole(data) {
|
||||
return request({
|
||||
url: '/sysRole/update',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除角色
|
||||
*/
|
||||
export function deleteRole(id) {
|
||||
return request({
|
||||
url: '/sysRole/delete',
|
||||
method: 'GET',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// ==================== 用户管理 ====================
|
||||
|
||||
/**
|
||||
* 获取用户列表(用于权限分配)
|
||||
*/
|
||||
export function getUserList() {
|
||||
return request({
|
||||
url: '/member/userList',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
30
pc-cattle-transportation/src/api/quarantine.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 隔离厂-查询分页列表
|
||||
// TODO: Backend endpoint /hgQuar/queryList does not exist
|
||||
export function hgquarUserList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
list: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: '/hgQuar/queryList',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
// 隔离厂-新增、编辑
|
||||
// TODO: Backend endpoint /hgQuar/save does not exist
|
||||
export function hgQuarUserSave(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '操作成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/hgQuar/save',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
160
pc-cattle-transportation/src/api/shipping.js
Normal file
@@ -0,0 +1,160 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 装车订单 - 列表
|
||||
export function orderList(data) {
|
||||
return request({
|
||||
url: '/delivery/pageDeliveryOrderList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 装车订单 - 新增
|
||||
export function orderAdd(data) {
|
||||
return request({
|
||||
url: '/delivery/addDeliveryOrder',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 装车订单 - 删除
|
||||
export function orderDel(id) {
|
||||
return request({
|
||||
url: `/delivery/deleteDelivery?id=${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
// 装车订单 - 编辑
|
||||
export function orderEdit(data) {
|
||||
return request({
|
||||
url: '/delivery/updateDeliveryInfo',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 查看耳标设备
|
||||
export function deviceEarList(data) {
|
||||
return request({
|
||||
url: '/deliveryDevice/pageJbqList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 查看运单所有设备(耳标+项圈)
|
||||
export function deviceAllList(data) {
|
||||
return request({
|
||||
url: '/deliveryDevice/pageDeviceList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 运单分配设备列表查询(支持智能耳标和智能项圈)
|
||||
export function deviceList(data) {
|
||||
// 根据设备类型选择不同的API端点
|
||||
if (data.deviceType === 2) {
|
||||
// 智能耳标
|
||||
return request({
|
||||
url: '/jbqClient/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
} else if (data.deviceType === 3) {
|
||||
// 智能项圈
|
||||
return request({
|
||||
url: '/xqClient/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
} else {
|
||||
// 默认查询智能耳标
|
||||
return request({
|
||||
url: '/jbqClient/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 分配耳标设备
|
||||
export function deviceAssign(data) {
|
||||
return request({
|
||||
url: '/delivery/arrangeJbq',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 订单详情
|
||||
export function orderDetail(id) {
|
||||
return request({
|
||||
url: `/delivery/viewDeliveryOrder?deliveryId=${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
// 主机设备查询
|
||||
export function hostList(data) {
|
||||
return request({
|
||||
url: '/jbqServer/serverList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 查询详情
|
||||
export function orderLoadDetail(data) {
|
||||
return request({
|
||||
url: '/wechatDelivery/carLoadInfo',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 装车保存接口
|
||||
export function orderLoadSave(data) {
|
||||
return request({
|
||||
url: '/wechatDelivery/updateLoadInfo',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 运送清单 - 创建(PC端)
|
||||
export function createDelivery(data) {
|
||||
return request({
|
||||
url: '/delivery/create',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询可用主机设备列表
|
||||
export function getAvailableServers(data) {
|
||||
return request({
|
||||
url: '/jbqServer/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询可用耳标设备列表
|
||||
export function getAvailableEartags(data) {
|
||||
return request({
|
||||
url: '/jbqClient/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询可用项圈设备列表(如果项目中有项圈设备)
|
||||
export function getAvailableCollars(data) {
|
||||
return request({
|
||||
url: '/xqClient/pageQuery',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新运单状态
|
||||
export function updateDeliveryStatus(data) {
|
||||
return request({
|
||||
url: '/delivery/updateStatus',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
200
pc-cattle-transportation/src/api/sys.js
Normal file
@@ -0,0 +1,200 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// 登录
|
||||
export function login(data) {
|
||||
return request({
|
||||
url: '/login',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 退出登录
|
||||
export function loginoutApi(mbile) {
|
||||
return request({
|
||||
url: `/logout`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
// 获取登录验证码
|
||||
export function getSmsCodeByPhone(mobile) {
|
||||
return request({
|
||||
url: `/sendLoginSmsCode?mobile=${mobile}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
// 根据登录用户获取菜单列表
|
||||
export function getUserMenu() {
|
||||
return request({
|
||||
url: `/getUserMenus`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
// 角色管理-查询菜单列表
|
||||
export function menuListByRoleId(id) {
|
||||
return request({
|
||||
url: `/sysRole/getMenus`,
|
||||
method: 'GET',
|
||||
params: { id }
|
||||
});
|
||||
}
|
||||
// 角色管理-保存角色菜单
|
||||
export function savePositionMenu(data) {
|
||||
return request({
|
||||
url: '/sysRole/save',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 岗位管理-删除
|
||||
export function sysPositionDel(id) {
|
||||
return request({
|
||||
url: `/sysRole/delete?id=${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
// 岗位管理/角色管理-查询分页列表
|
||||
export function sysPositionList(data) {
|
||||
return request({
|
||||
url: '/sysRole/queryList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 岗位管理-新增、编辑
|
||||
export function sysPositionSave(data) {
|
||||
return request({
|
||||
url: '/sysRole/save',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 员工、企业管理-查询分页列表
|
||||
export function sysUserList(data) {
|
||||
return request({
|
||||
url: '/sysUser/queryList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 员工、企业管理-新增、编辑
|
||||
export function sysUserSave(data) {
|
||||
return request({
|
||||
url: '/sysUser/save',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 子账号管理-删除
|
||||
export function sysUserDel(id) {
|
||||
return request({
|
||||
url: `/sysUser/delete?id=${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
// 员工管理-查询分页列表
|
||||
export function updatePassword(data) {
|
||||
return request({
|
||||
url: '/sysUser/updatePassword',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 系统设置-查询
|
||||
// TODO: Backend endpoint /sysConfig/getConfig does not exist
|
||||
export function getConfig() {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
name: 'Cattle Transport System',
|
||||
logoUrl: ''
|
||||
}
|
||||
});
|
||||
// return request({
|
||||
// url: `/sysConfig/getConfig`,
|
||||
// method: 'GET',
|
||||
// });
|
||||
}
|
||||
|
||||
// 系统设置-新增、编辑
|
||||
// TODO: Backend endpoint /sysConfig/save does not exist
|
||||
export function sysConfigSave(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '配置保存成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/sysConfig/save',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 租户管理 -列表
|
||||
export function tenantList(data) {
|
||||
return request({
|
||||
url: '/sysTenant/queryList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 租户管理-新增、编辑
|
||||
export function tenantSave(data) {
|
||||
// 根据是否有id判断是新增还是编辑
|
||||
const url = data.id ? '/sysTenant/update' : '/sysTenant/add';
|
||||
return request({
|
||||
url: url,
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 租户管理-删除
|
||||
export function tenantDel(id) {
|
||||
return request({
|
||||
url: `/sysTenant/delete?id=${id}`,
|
||||
method: 'POST',
|
||||
});
|
||||
}
|
||||
|
||||
// 分配设备查询
|
||||
// TODO: Backend endpoint for device list does not exist
|
||||
export function deviceList(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
rows: [],
|
||||
total: 0
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 分配设备操作
|
||||
// TODO: Backend endpoint /sysTenant/allotDevice does not exist
|
||||
export function deviceAssign(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '设备分配成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/sysTenant/allotDevice',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
|
||||
// 删除设备
|
||||
// TODO: Backend endpoint /sysTenant/deleteAllot does not exist
|
||||
export function deviceDel(data) {
|
||||
return Promise.resolve({
|
||||
code: 200,
|
||||
msg: '设备删除成功'
|
||||
});
|
||||
// return request({
|
||||
// url: '/sysTenant/deleteAllot',
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// });
|
||||
}
|
||||
78
pc-cattle-transportation/src/api/userManage.js
Normal file
@@ -0,0 +1,78 @@
|
||||
import request from '@/utils/axios.ts';
|
||||
// --------- 用户管理 -----------
|
||||
// 用户 - 列表
|
||||
export function userList(data) {
|
||||
return request({
|
||||
url: '/member/userList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 用户 - 新增
|
||||
export function userAdd(data) {
|
||||
return request({
|
||||
url: '/member/addUser',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 用户 - 编辑
|
||||
export function userEdit(data) {
|
||||
return request({
|
||||
url: '/member/updateUser',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 用户 - 设置状态
|
||||
export function userStatus(data) {
|
||||
return request({
|
||||
url: '/member/setUserStatus',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// --------- 司机管理 -----------
|
||||
// 司机 - 列表
|
||||
export function driverList(data) {
|
||||
return request({
|
||||
url: '/member/driverList',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 司机 - 新增
|
||||
export function driverAdd(data) {
|
||||
return request({
|
||||
url: '/member/addDriver',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
// 司机 - 编辑
|
||||
export function driverEdit(data) {
|
||||
return request({
|
||||
url: '/member/updateDriver',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 司机 - 根据ID获取详情
|
||||
export function driverDetail(id) {
|
||||
return request({
|
||||
url: `/member/driverDetail/${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
// --------- 会员管理 -----------
|
||||
// 根据类型获取会员列表(用于装车订单下拉框)
|
||||
export function memberListByType(data) {
|
||||
return request({
|
||||
url: '/member/memberListByType',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
BIN
pc-cattle-transportation/src/assets/favicon.ico
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/404.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/bug.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M127.88 73.143c0 1.412-.506 2.635-1.518 3.669-1.011 1.033-2.209 1.55-3.592 1.55h-17.887c0 9.296-1.783 17.178-5.35 23.645l16.609 17.044c1.011 1.034 1.517 2.257 1.517 3.67 0 1.412-.506 2.635-1.517 3.668-.958 1.033-2.155 1.55-3.593 1.55-1.438 0-2.635-.517-3.593-1.55l-15.811-16.063a15.49 15.49 0 0 1-1.196 1.06c-.532.434-1.65 1.208-3.353 2.322a50.104 50.104 0 0 1-5.192 2.974c-1.758.87-3.94 1.658-6.546 2.364-2.607.706-5.189 1.06-7.748 1.06V47.044H58.89v73.062c-2.716 0-5.417-.367-8.106-1.102-2.688-.734-5.003-1.631-6.945-2.692a66.769 66.769 0 0 1-5.268-3.179c-1.571-1.057-2.73-1.94-3.476-2.65L33.9 109.34l-14.611 16.877c-1.066 1.14-2.344 1.711-3.833 1.711-1.277 0-2.422-.434-3.434-1.304-1.012-.978-1.557-2.187-1.635-3.627-.079-1.44.333-2.705 1.236-3.794l16.129-18.51c-3.087-6.197-4.63-13.644-4.63-22.342H5.235c-1.383 0-2.58-.517-3.592-1.55S.125 74.545.125 73.132c0-1.412.506-2.635 1.518-3.668 1.012-1.034 2.21-1.55 3.592-1.55h17.887V43.939L9.308 29.833c-1.012-1.033-1.517-2.256-1.517-3.669 0-1.412.505-2.635 1.517-3.668 1.012-1.034 2.21-1.55 3.593-1.55s2.58.516 3.593 1.55l13.813 14.106h67.396l13.814-14.106c1.012-1.034 2.21-1.55 3.592-1.55 1.384 0 2.581.516 3.593 1.55 1.012 1.033 1.518 2.256 1.518 3.668 0 1.413-.506 2.636-1.518 3.67l-13.814 14.105v23.975h17.887c1.383 0 2.58.516 3.593 1.55 1.011 1.033 1.517 2.256 1.517 3.668l-.005.01zM89.552 26.175H38.448c0-7.23 2.489-13.386 7.466-18.469C50.892 2.623 56.92.082 64 .082c7.08 0 13.108 2.541 18.086 7.624 4.977 5.083 7.466 11.24 7.466 18.469z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/build.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568899741379" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2054" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 591.424V368.96c0-0.288 0.16-0.512 0.16-0.768S960 367.68 960 367.424V192a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v175.424c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768v222.464c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768V864a32 32 0 0 0 32 32h832a32 32 0 0 0 32-32v-271.04c0-0.288 0.16-0.512 0.16-0.768S960 591.68 960 591.424z m-560-31.232v-160H608v160h-208z m208 64V832h-208v-207.808H608z m-480-224h208v160H128v-160z m544 0h224v160h-224v-160zM896 224v112.192H128V224h768zM128 624.192h208V832H128v-207.808zM672 832v-207.808h224V832h-224z" p-id="2055"></path></svg>
|
||||
|
After Width: | Height: | Size: 954 B |
1
pc-cattle-transportation/src/assets/icons/svg/button.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1588670460195" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1314" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M230.4 307.712c13.824 0 25.088-11.264 25.088-25.088 0-100.352 81.92-182.272 182.272-182.272s182.272 81.408 182.272 182.272c0 13.824 11.264 25.088 25.088 25.088s25.088-11.264 24.576-25.088c0-127.488-103.936-231.936-231.936-231.936S205.824 154.624 205.824 282.624c-0.512 14.336 10.752 25.088 24.576 25.088z m564.736 234.496c-11.264 0-21.504 2.048-31.232 6.144 0-44.544-40.448-81.92-88.064-81.92-14.848 0-28.16 3.584-39.936 10.24-13.824-28.16-44.544-48.128-78.848-48.128-12.288 0-24.576 2.56-35.328 7.68V284.16c0-45.568-37.888-81.92-84.48-81.92s-84.48 36.864-84.48 81.92v348.672l-69.12-112.64c-18.432-28.16-58.368-36.864-91.136-19.968-26.624 14.336-46.592 47.104-30.208 88.064 3.072 8.192 76.8 205.312 171.52 311.296 0 0 28.16 24.576 43.008 58.88 4.096 9.728 13.312 15.36 22.528 15.36 3.072 0 6.656-0.512 9.728-2.048 12.288-5.12 18.432-19.968 12.8-32.256-19.456-44.544-53.76-74.752-53.76-74.752C281.6 768 209.408 573.44 208.384 570.88c-5.12-12.8-2.56-20.992 7.168-26.112 9.216-4.608 21.504-4.608 26.112 2.56l113.152 184.32c4.096 8.704 12.8 14.336 22.528 14.336 13.824 0 25.088-10.752 25.088-25.088V284.16c0-17.92 15.36-32.256 34.816-32.256s34.816 14.336 34.816 32.256v284.16c0 13.824 10.24 25.088 24.576 25.088 13.824 0 25.088-11.264 25.088-25.088v-57.344c0-17.92 15.36-32.768 34.816-32.768 19.968 0 37.376 15.36 37.376 32.768v95.232c0 7.168 3.072 13.312 7.68 17.92 4.608 4.608 10.752 7.168 17.92 7.168 13.824 0 24.576-11.264 24.576-25.088V547.84c0-18.432 13.824-32.256 32.256-32.256 20.48 0 38.912 15.36 38.912 32.256v95.232c0 13.824 11.264 25.088 25.088 25.088s24.576-11.264 25.088-25.088v-18.944c0-18.944 12.8-32.256 30.72-32.256 18.432 0 22.528 18.944 22.528 31.744 0 1.024-11.776 99.84-50.688 173.056-30.72 58.368-45.056 112.128-51.2 146.944-2.56 13.312 6.656 26.112 19.968 28.672 1.536 0 3.072 0.512 4.608 0.512 11.776 0 22.016-8.192 24.064-20.48 5.632-31.232 18.432-79.36 46.08-132.608 43.52-81.92 55.808-186.88 56.32-193.536-0.512-50.688-29.696-83.968-72.704-83.968z"></path></path></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1576153230908" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="971" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M772.87036133 734.06115723c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714843H475.90991211c-56.60705567 0-102.66723633-46.06018067-102.66723633-102.66723633V600.82446289h305.859375c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012S827.9942627 467.50537109 772.87036133 467.50537109c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714844H373.24267578V401.01062011h321.92687989c55.12390137 0 99.94812012-44.82421875 99.94812011-99.94812011V190.07312011C795.11767578 134.94921875 750.29345703 90.125 695.16955567 90.125H251.12963867C196.0057373 90.125 151.18151855 134.94921875 151.18151855 190.07312011V301.0625c0 55.12390137 44.82421875 99.94812012 99.94812012 99.94812012h55.53588867v296.96044921c0 93.35632325 75.97045898 169.32678223 169.32678224 169.32678223h203.19213866c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012s-44.90661622-99.86572266-100.03051758-99.86572265z m0-199.89624024c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857423s-14.91394043 33.28857422-33.28857422 33.28857421-33.28857422-14.91394043-33.28857422-33.28857421 14.91394043-33.28857422 33.28857422-33.28857422zM217.75866699 301.0625V190.07312011c0-18.37463379 14.91394043-33.28857422 33.28857423-33.28857421h444.03991698c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857422V301.0625c0 18.37463379-14.91394043 33.28857422-33.28857422 33.28857422H251.12963867c-18.37463379 0-33.37097168-14.91394043-33.37097168-33.28857422z m555.11169434 566.23535156c-18.37463379 0-33.28857422-14.91394043-33.28857422-33.28857422 0-18.37463379 14.91394043-33.28857422 33.28857422-33.28857422s33.28857422 14.91394043 33.28857422 33.28857422c0.08239747 18.29223633-14.91394043 33.28857422-33.28857422 33.28857422z" p-id="972"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/chart.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>
|
||||
|
After Width: | Height: | Size: 179 B |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575982282951" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="902" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M828.40625 90.125H195.59375C137.375 90.125 90.125 137.375 90.125 195.59375v632.8125c0 58.21875 47.25 105.46875 105.46875 105.46875h632.8125c58.21875 0 105.46875-47.25 105.46875-105.46875V195.59375c0-58.21875-47.25-105.46875-105.46875-105.46875z m52.734375 738.28125c0 29.16-23.57015625 52.734375-52.734375 52.734375H195.59375c-29.109375 0-52.734375-23.574375-52.734375-52.734375V195.59375c0-29.109375 23.625-52.734375 52.734375-52.734375h632.8125c29.16 0 52.734375 23.625 52.734375 52.734375v632.8125z" p-id="903"></path><path d="M421.52890625 709.55984375a36.28125 36.28125 0 0 1-27.55265625-12.66890625L205.17453125 476.613125a36.28546875 36.28546875 0 0 1 55.10109375-47.22890625l164.986875 192.4846875 342.16171875-298.48078125a36.2896875 36.2896875 0 0 1 47.70984375 54.68765625L445.3859375 700.6203125a36.3234375 36.3234375 0 0 1-23.85703125 8.93953125z" p-id="904"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.857 118.857h64V73.143H89.143c-1.902 0-3.52-.668-4.855-2.002-1.335-1.335-2.002-2.954-2.002-4.855V36.57H54.857v82.286zM73.143 16v-4.571a2.2 2.2 0 0 0-.677-1.61 2.198 2.198 0 0 0-1.609-.676H20.571c-.621 0-1.158.225-1.609.676a2.198 2.198 0 0 0-.676 1.61V16a2.2 2.2 0 0 0 .676 1.61c.451.45.988.676 1.61.676h50.285c.622 0 1.158-.226 1.61-.677.45-.45.676-.987.676-1.609zm18.286 48h21.357L91.43 42.642V64zM128 73.143v48c0 1.902-.667 3.52-2.002 4.855-1.335 1.335-2.953 2.002-4.855 2.002H52.57c-1.901 0-3.52-.667-4.854-2.002-1.335-1.335-2.003-2.953-2.003-4.855v-11.429H6.857c-1.902 0-3.52-.667-4.855-2.002C.667 106.377 0 104.759 0 102.857v-96c0-1.902.667-3.52 2.002-4.855C3.337.667 4.955 0 6.857 0h77.714c1.902 0 3.52.667 4.855 2.002 1.335 1.335 2.003 2.953 2.003 4.855V30.29c1 .622 1.856 1.29 2.569 2.003l29.147 29.147c1.335 1.335 2.478 3.145 3.429 5.43.95 2.287 1.426 4.383 1.426 6.291v-.018z"/></svg>
|
||||
|
After Width: | Height: | Size: 971 B |
1
pc-cattle-transportation/src/assets/icons/svg/code.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1546567861908" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2422" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M318.577778 819.2L17.066667 512l301.511111-307.2 45.511111 45.511111L96.711111 512l267.377778 261.688889zM705.422222 819.2l-45.511111-45.511111L927.288889 512l-267.377778-261.688889 45.511111-45.511111L1006.933333 512zM540.785778 221.866667l55.751111 11.150222L483.157333 802.133333l-55.751111-11.093333z" p-id="2423"></path></svg>
|
||||
|
After Width: | Height: | Size: 717 B |
1
pc-cattle-transportation/src/assets/icons/svg/color.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577252187056" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2508" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M747.59340925 691.12859384c11.51396329 0.25305413 22.43746719-0.21087818 40.74171707-1.51832482 29.35428085-2.10878421 35.84933734-2.36183835 46.47761114-0.8856895 24.71495444 3.37405491 41.12129828 21.76265671 32.47528161 47.95376084-85.57447632 258.19957947-442.00123984 249.76444099-628.67084683 50.73735554-153.47733892-159.33976008-153.09775772-414.41833795 0.92786545-573.42069196 159.71934128-162.67163983 424.03439521-166.59397897 565.78689185 0.63263534 80.38686649 94.81095318 108.34934958 169.16669549 89.11723508 230.57450162-15.01454608 47.99593598-50.61082928 77.68762207-119.77896259 114.63352789-4.89237973 2.65706845-29.35428085 15.52065436-35.84933652 19.02123633-46.94154346 25.30541465-63.51659033 41.20565021-62.20914449 58.45550757 2.95229856 39.13904114 24.16667102 52.7196135 70.98168823 53.81618115z m44.41100207 50.10472101c-19.82257471 1.43397372-32.05352527 1.940082-45.63409763 1.6448519-70.34905207-1.60267593-115.98314969-30.91478165-121.38163769-101.64341492-3.45840683-46.05585397 24.7571304-73.13264758 89.24376132-107.96976837 6.7902866-3.66928501 31.37871396-16.57504688 36.06021551-19.06341229 57.69634516-30.83042972 85.15271997-53.73183005 94.76877722-84.47790866 12.77923398-40.78389304-9.10994898-98.94417051-79.24812286-181.6507002-121.17075953-142.97559219-350.14258521-139.60153647-489.2380134 2.06660824-134.49827774 138.84237405-134.79350784 362.12048163-0.42175717 501.637667 158.53842169 168.99799328 451.9968783 181.18676788 534.57688175-11.80919339-4.68150156 0.2952301-10.71262573 0.67481131-18.72600705 1.26527069z" p-id="2509"></path><path d="M346.03865637 637.18588562a78.82636652 78.82636652 0 0 0 78.32025825-79.29029883c0-43.69401562-35.005823-79.29029883-78.32025825-79.29029882a78.82636652 78.82636652 0 0 0-78.36243338 79.29029882c0 43.69401562 35.005823 79.29029883 78.36243338 79.29029883z m0-51.7495729a27.07679361 27.07679361 0 0 1-26.5706845-27.54072593c0-15.30977536 11.97789643-27.54072593 26.5706845-27.54072592 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072592a27.07679361 27.07679361 0 0 1-26.57068533 27.54072593zM475.7289063 807.11174353a78.82636652 78.82636652 0 0 0 78.3624334-79.29029882c0-43.69401562-34.96364785-79.29029883-78.32025825-79.29029883a78.82636652 78.82636652 0 0 0-78.32025742 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029882z m0-51.74957208a27.07679361 27.07679361 0 0 1-26.57068532-27.54072674c0-15.30977536 12.06224753-27.54072593 26.57068532-27.54072593 14.59278892 0 26.57068533 12.23095057 26.57068453 27.54072593a27.07679361 27.07679361 0 0 1-26.57068453 27.54072674zM601.24376214 377.21492718a78.82636652 78.82636652 0 0 0 78.32025742-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025742-79.29029882a78.82636652 78.82636652 0 0 0-78.32025823 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025824 79.29029883z m1e-8-51.74957208a27.07679361 27.07679361 0 0 1-26.57068534-27.54072675c0-15.30977536 11.97789643-27.54072593 26.57068534-27.54072591 14.55061295 0 26.57068533 12.23095057 26.57068451 27.54072592a27.07679361 27.07679361 0 0 1-26.57068451 27.54072674zM378.80916809 433.85687983a78.82636652 78.82636652 0 0 0 78.32025824-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025824-79.29029802a78.82636652 78.82636652 0 0 0-78.32025742 79.29029802c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029883z m0-51.74957209a27.07679361 27.07679361 0 0 1-26.57068451-27.54072674c0-15.30977536 11.97789643-27.54072593 26.57068451-27.54072593 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072593a27.07679361 27.07679361 0 0 1-26.57068533 27.54072674z" p-id="2510"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575804206892" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3145" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M826.56 470.016c-32.896 0-64.384 12.288-89.984 35.52l0-104.96c0-62.208-50.496-112.832-112.64-113.088L623.936 287.04 519.552 287.104C541.824 262.72 554.56 230.72 554.56 197.12c0-73.536-59.904-133.44-133.504-133.44-73.472 0-133.376 59.904-133.376 133.44 0 32.896 12.224 64.256 35.52 89.984L175.232 287.104l0 0.576C113.728 288.704 64 338.88 64 400.576l0.32 0 0.32 116.48C60.864 544.896 70.592 577.728 100.8 588.48c12.736 4.608 37.632 7.488 60.864-25.28 12.992-18.368 34.24-29.248 56.64-29.248 38.336 0 69.504 31.104 69.504 69.312 0 38.4-31.168 69.504-69.504 69.504-22.656 0-44.032-11.264-57.344-30.4C138.688 610.112 112.576 615.36 102.464 619.136c-29.824 10.752-39.104 43.776-38.144 67.392l0 160.384L64 846.912C64 909.248 114.752 960 177.216 960l446.272 0c62.4 0 113.152-50.752 113.152-113.152l0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.536 0 133.44-59.904 133.44-133.504C960 529.92 900.096 470.016 826.56 470.016zM826.56 672.896c-22.72 0-44.032-11.264-57.344-30.4-22.272-32.384-48.448-27.136-58.56-23.36-29.824 10.752-39.04 43.776-38.08 67.392l0 160.384c0 27.136-22.016 49.152-49.152 49.152L177.216 896.064C150.08 896 128 873.984 128 846.848l0.32 0 0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.6 0 133.504-59.904 133.504-133.504 0-73.472-59.904-133.376-133.504-133.376-32.896 0-64.32 12.288-89.984 35.52l0-104.96L128 400.512c0-27.072 22.08-49.152 49.216-49.152L177.216 351.04 334.656 350.72c3.776 0.512 7.616 0.832 11.52 0.832 24.896 0 50.752-10.816 60.032-37.056 4.544-12.736 7.424-37.568-25.344-60.736C362.624 240.768 351.68 219.52 351.68 197.12c0-38.272 31.104-69.44 69.376-69.44 38.336 0 69.504 31.168 69.504 69.44 0 22.72-11.264 44.032-30.528 57.472C427.968 276.736 433.088 302.784 436.8 313.024c10.752 29.888 43.072 39.232 67.392 38.08l119.232 0 0 0.384c27.136 0 49.152 22.08 49.152 49.152l0.256 116.48c-3.776 27.84 6.016 60.736 36.224 71.488 12.736 4.608 37.632 7.488 60.8-25.28 13.056-18.368 34.24-29.248 56.704-29.248C864.832 534.016 896 565.12 896 603.392 896 641.728 864.832 672.896 826.56 672.896z" p-id="3146"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1579774833889" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1376" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M887.466667 192.853333h-100.693334V119.466667c0-10.24-6.826667-17.066667-17.066666-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H303.786667V119.466667c0-10.24-6.826667-17.066667-17.066667-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H168.96c-46.08 0-85.333333 37.546667-85.333333 85.333334V836.266667c0 46.08 37.546667 85.333333 85.333333 85.333333H887.466667c46.08 0 85.333333-37.546667 85.333333-85.333333V278.186667c0-47.786667-37.546667-85.333333-85.333333-85.333334z m-718.506667 34.133334h100.693333v66.56c0 10.24 6.826667 17.066667 17.066667 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56h450.56v66.56c0 10.24 6.826667 17.066667 17.066666 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56H887.466667c27.306667 0 51.2 22.186667 51.2 51.2v88.746666H117.76v-88.746666c0-29.013333 22.186667-51.2 51.2-51.2zM887.466667 887.466667H168.96c-27.306667 0-51.2-22.186667-51.2-51.2V401.066667H938.666667V836.266667c0 27.306667-22.186667 51.2-51.2 51.2z" p-id="1377"></path><path d="M858.453333 493.226667H327.68c-10.24 0-17.066667 6.826667-17.066667 17.066666v114.346667h-116.053333c-10.24 0-17.066667 6.826667-17.066667 17.066667v133.12c0 10.24 6.826667 17.066667 17.066667 17.066666H460.8c10.24 0 17.066667-6.826667 17.066667-17.066666v-114.346667h380.586666c10.24 0 17.066667-6.826667 17.066667-17.066667v-133.12c0-10.24-6.826667-17.066667-17.066667-17.066666z m-413.013333 34.133333v97.28h-98.986667v-97.28h98.986667z m-230.4 131.413333h98.986667v98.986667h-98.986667v-98.986667z m131.413333 97.28v-97.28h98.986667v97.28h-98.986667z m133.12-228.693333h97.28v98.986667h-97.28v-98.986667z m131.413334 0h98.986666v98.986667h-98.986666v-98.986667z m230.4 97.28h-98.986667v-98.986667h98.986667v98.986667z" p-id="1378"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/date.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577186573535" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1068" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M479.85714249 608.42857168h64.28571502c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285751s-12.85714249-32.14285751-32.14285664-32.14285664h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285662s12.85714249 32.14285751 32.14285664 32.14285753z m-2e-8 122.14285665h64.28571504c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285665s-12.85714249-32.14285751-32.14285664-32.14285751h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285751s12.85714249 32.14285751 32.14285664 32.14285664z m353.57142921-559.28571416h-128.57142921v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285664-32.14285753s-32.14285751 12.85714249-32.14285751 32.14285753v32.14285664h-257.14285665v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285752-32.14285753s-32.14285751 12.85714249-32.14285664 32.14285753v32.14285664h-128.57142919c-70.71428585 0-128.57142832 57.85714249-128.57142832 122.14285751v501.42857081c0 70.71428585 57.85714249 128.57142832 128.57142832 122.14285751h642.85714335c70.71428585 0 128.57142832-57.85714249 128.57142833-122.14285751v-501.42857081c0-70.71428585-57.85714249-122.14285753-128.57142833-122.14285751z m64.28571415 623.57142832c0 32.14285751-32.14285751 64.28571415-64.28571416 64.28571504h-642.85714335c-32.14285751 0-64.28571415-25.71428583-64.28571417-64.28571504v-372.85714249h771.42857168v372.85714249z m0-437.14285664h-771.42857168v-64.28571417c0-32.14285751 32.14285751-64.28571415 64.28571417-64.28571415h128.57142919v32.14285664c0 19.28571417 12.85714249 32.14285751 32.14285664 32.14285751s32.14285751-12.85714249 32.14285753-32.14285751v-32.14285664h257.14285665v32.14285664c0 19.28571417 12.85714249 32.14285751 32.1428575 32.14285751s32.14285751-12.85714249 32.14285664-32.14285751v-32.14285664h128.57142921c32.14285751 0 64.28571415 25.71428583 64.28571415 64.28571415v64.28571417z m-610.71428583 372.85714247h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285664s-12.85714249-32.14285751-32.14285753-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285751s12.85714249 32.14285751 32.14285751 32.14285665z m385.71428583-122.14285664h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285751s-12.85714249-32.14285751-32.14285751-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285664s12.85714249 32.14285751 32.14285753 32.14285751z m-385.71428583 0h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285751s-12.85714249-32.14285751-32.14285753-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285664s12.85714249 32.14285751 32.14285751 32.14285751z m385.71428583 122.14285665h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285665s-12.85714249-32.14285751-32.14285751-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285751s12.85714249 32.14285751 32.14285753 32.14285665z" p-id="1069"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1714870586752" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10084" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M133.565217 845.913043h89.043479c7.41287 0 11.130435 3.717565 11.130434 11.130435v33.391305c0 7.41287-3.717565 11.130435-11.130434 11.130434h-89.043479c-7.41287 0-11.130435-3.717565-11.130434-11.130434V857.043478c0-7.41287 3.717565-11.130435 11.130434-11.130435z m166.956522 0h89.043478c7.41287 0 11.130435 3.717565 11.130435 11.130435v33.391305c0 7.41287-3.717565 11.130435-11.130435 11.130434h-89.043478c-7.41287 0-11.130435-3.717565-11.130435-11.130434V857.043478c0-7.41287 3.717565-11.130435 11.130435-11.130435z m166.956522 0h89.043478c7.41287 0 11.130435 3.717565 11.130435 11.130435v33.391305c0 7.41287-3.717565 11.130435-11.130435 11.130434h-89.043478c-7.41287 0-11.130435-3.717565-11.130435-11.130434V857.043478c0-7.41287 3.717565-11.130435 11.130435-11.130435z m44.521739-166.956521C665.689043 678.956522 790.26087 554.384696 790.26087 400.695652S665.689043 122.434783 512 122.434783 233.73913 247.006609 233.73913 400.695652 358.310957 678.956522 512 678.956522z m0-500.869565c122.946783 0 222.608696 99.661913 222.608696 222.608695s-99.661913 222.608696-222.608696 222.608696-222.608696-99.661913-222.608696-222.608696 99.661913-222.608696 222.608696-222.608695z m0 389.565217a166.956522 166.956522 0 1 0 0-333.913044 166.956522 166.956522 0 0 0 0 333.913044z m0-278.26087a111.304348 111.304348 0 1 1 0 222.608696 111.304348 111.304348 0 0 1 0-222.608696z" fill="#000000" p-id="10085"></path><path d="M52.869565 731.136h939.141565v66.782609H52.869565z" fill="#111111" p-id="10086"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/dict.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035680909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3601" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1002.0848 744.672l-33.568 10.368c0.96 7.264 2.144 14.304 2.144 21.76 0 7.328-1.184 14.432-2.368 21.568l33.792 10.56c7.936 2.24 14.496 7.616 18.336 14.752 3.84 7.328 4.672 15.808 1.952 23.552-5.376 16-23.168 24.672-39.936 19.68l-34.176-10.624c-7.136 12.8-15.776 24.672-26.208 35.2l20.8 27.488a28.96 28.96 0 0 1 5.824 22.816 29.696 29.696 0 0 1-12.704 19.616 32.544 32.544 0 0 1-44.416-6.752l-20.8-27.552c-13.696 6.56-28.192 11.2-43.008 13.888v33.632c0 16.736-14.112 30.432-31.648 30.432-17.6 0-31.872-13.696-31.872-30.432v-33.632a167.616 167.616 0 0 1-42.88-13.888l-20.928 27.552c-10.72 13.76-30.08 16.64-44.288 6.752a29.632 29.632 0 0 1-12.704-19.616 29.28 29.28 0 0 1 5.696-22.816l20.896-27.808a166.72 166.72 0 0 1-27.008-34.688l-33.376 10.432c-16.8 5.184-34.56-3.552-39.936-19.616a29.824 29.824 0 0 1 20.224-38.24l33.472-10.432c-0.8-7.264-2.016-14.304-2.016-21.824 0-7.36 1.184-14.496 2.304-21.632l-33.792-10.368c-16.672-5.376-25.632-22.496-20.224-38.432 5.376-16 23.136-24.672 39.936-19.68l34.016 10.752c7.328-12.672 15.84-24.8 26.336-35.328l-20.8-27.552a29.44 29.44 0 0 1 6.944-42.432 32.704 32.704 0 0 1 44.384 6.752l20.832 27.616c13.696-6.432 28.224-11.2 43.104-13.952v-33.568c0-16.736 14.048-30.432 31.648-30.432 17.536 0 31.808 13.568 31.808 30.432v33.504c15.072 2.688 29.344 7.808 42.848 14.016l20.992-27.616a32.48 32.48 0 0 1 44.224-6.752 29.568 29.568 0 0 1 7.136 42.432l-21.024 27.808c10.432 10.432 19.872 21.888 27.04 34.752l33.376-10.432c16.768-5.12 34.56 3.68 39.936 19.68 5.536 15.936-3.712 33.056-20.32 38.304z m-206.016-74.432c-61.344 0-111.136 47.808-111.136 106.56 0 58.88 49.792 106.496 111.136 106.496 61.312 0 111.104-47.616 111.104-106.496 0-58.752-49.792-106.56-111.104-106.56z" p-id="3602"></path><path d="M802.7888 57.152h-76.448c0-22.08-21.024-38.24-42.848-38.24H39.3968a39.68 39.68 0 0 0-39.36 40.032v795.616s41.888 120.192 110.752 120.192H673.2848a227.488 227.488 0 0 1-107.04-97.44H117.6368s-40.608-13.696-40.608-41.248l470.304-0.256 1.664 3.36a227.68 227.68 0 0 1-12.64-73.632c0-60.576 24-118.624 66.88-161.44a228.352 228.352 0 0 1 123.552-63.392l-3.2 0.288 2.144-424.672h38.208l0.576 421.024c27.04 0 52.672 4.8 76.64 13.344V101.536c0.032 0-6.304-44.384-38.368-44.384zM149.7648 514.336H72.3888v-77.408H149.7648v77.408z m0-144.32H72.3888v-77.44H149.7648v77.44z m0-137.248H72.3888v-77.44H149.7648v77.44z m501.856 281.568H206.0848v-77.408h445.536v77.408z m0-144.32H206.0848v-77.44h445.536v77.44z m0-137.248H206.0848v-77.44h445.536v77.44z" p-id="3603"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg>
|
||||
|
After Width: | Height: | Size: 418 B |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1569915748289" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3062" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768.35456 416a256 256 0 1 0-512 0 192 192 0 1 0 0 384v64a256 256 0 0 1-58.88-505.216 320.128 320.128 0 0 1 629.76 0A256.128 256.128 0 0 1 768.35456 864v-64a192 192 0 0 0 0-384z m-512 384h64v64H256.35456v-64z m448 0h64v64h-64v-64z" fill="#333333" p-id="3063"></path><path d="M539.04256 845.248V512.192a32.448 32.448 0 0 0-32-32.192c-17.664 0-32 14.912-32 32.192v333.056l-36.096-36.096a32.192 32.192 0 0 0-45.056 0.192 31.616 31.616 0 0 0-0.192 45.056l90.88 90.944a31.36 31.36 0 0 0 22.528 9.088 30.08 30.08 0 0 0 22.4-9.088l90.88-90.88a32.192 32.192 0 0 0-0.192-45.12 31.616 31.616 0 0 0-45.056-0.192l-36.096 36.096z" fill="#333333" p-id="3064"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/drag.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg>
|
||||
|
After Width: | Height: | Size: 356 B |
1
pc-cattle-transportation/src/assets/icons/svg/druid.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036347051" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5853" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 128H192a64.19 64.19 0 0 0-64 64v640a64.19 64.19 0 0 0 64 64h640a64.19 64.19 0 0 0 64-64V192a64.19 64.19 0 0 0-64-64z m0 703.89l-0.11 0.11H192.11l-0.11-0.11V768h640zM832 544H720L605.6 696.54 442.18 435.07 333.25 544H192v-64h114.75l147.07-147.07L610.4 583.46 688 480h144z m0-288H192v-63.89l0.11-0.11h639.78l0.11 0.11z" p-id="5854"></path></svg>
|
||||
|
After Width: | Height: | Size: 724 B |
1
pc-cattle-transportation/src/assets/icons/svg/edit.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>
|
||||
|
After Width: | Height: | Size: 818 B |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>
|
||||
|
After Width: | Height: | Size: 627 B |
1
pc-cattle-transportation/src/assets/icons/svg/email.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg>
|
||||
|
After Width: | Height: | Size: 347 B |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg>
|
||||
|
After Width: | Height: | Size: 497 B |
1
pc-cattle-transportation/src/assets/icons/svg/excel.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M78.208 16.576v8.384h38.72v5.376h-38.72v8.704h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.576h38.72v5.376h-38.72v8.512h38.72v5.376h-38.72v11.136H128v-94.72H78.208zM0 114.368L72.128 128V0L0 13.632v100.736z"/><path d="M28.672 82.56h-11.2l14.784-23.488-14.08-22.592h11.52l8.192 14.976 8.448-14.976h11.136l-14.08 22.208L58.368 82.56H46.656l-8.768-15.68z"/></svg>
|
||||
|
After Width: | Height: | Size: 459 B |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M49.217 41.329l-.136-35.24c-.06-2.715-2.302-4.345-5.022-4.405h-3.65c-2.712-.06-4.866 2.303-4.806 5.016l.152 19.164-24.151-23.79a6.698 6.698 0 0 0-9.499 0 6.76 6.76 0 0 0 0 9.526l23.93 23.713-18.345.074c-2.712-.069-5.228 1.813-5.64 5.02v3.462c.069 2.721 2.31 4.97 5.022 5.03l35.028-.207c.052.005.087.025.133.025l2.457.054a4.626 4.626 0 0 0 3.436-1.38c.88-.874 1.205-2.096 1.169-3.462l-.262-2.465c0-.048.182-.081.182-.136h.002zm52.523 51.212l18.32-.073c2.713.06 5.224-1.609 5.64-4.815v-3.462c-.068-2.722-2.317-4.97-5.021-5.04l-34.58.21c-.053 0-.086-.021-.138-.021l-2.451-.06a4.64 4.64 0 0 0-3.445 1.381c-.885.868-1.201 2.094-1.174 3.46l.27 2.46c.005.06-.177.095-.177.141l.141 34.697c.069 2.713 2.31 4.338 5.022 4.397l3.45.006c2.705.062 4.867-2.31 4.8-5.026l-.153-18.752 24.151 23.946a6.69 6.69 0 0 0 9.494 0 6.747 6.747 0 0 0 0-9.523L101.74 92.54v.001zM48.125 80.662a4.636 4.636 0 0 0-3.437-1.382l-2.457.06c-.05 0-.082.022-.137.022l-35.025-.21c-2.712.07-4.957 2.318-5.022 5.04v3.462c.409 3.206 2.925 4.874 5.633 4.814l18.554.06-24.132 23.928c-2.62 2.626-2.62 6.89 0 9.524a6.694 6.694 0 0 0 9.496 0l24.155-23.79-.155 18.866c-.06 2.722 2.094 5.093 4.801 5.025h3.65c2.72-.069 4.962-1.685 5.022-4.406l.141-34.956c0-.05-.182-.082-.182-.136l.262-2.46c.03-1.366-.286-2.592-1.166-3.46h-.001zM80.08 47.397a4.62 4.62 0 0 0 3.443 1.374l2.45-.054c.055 0 .088-.02.143-.028l35.08.21c2.712-.062 4.953-2.312 5.021-5.033l.009-3.463c-.417-3.211-2.937-5.084-5.64-5.025l-18.615-.073 23.917-23.715c2.63-2.623 2.63-6.879.008-9.513a6.691 6.691 0 0 0-9.494 0L92.251 26.016l.155-19.312c.065-2.713-2.097-5.085-4.802-5.025h-3.45c-2.713.069-4.954 1.693-5.022 4.406l-.139 35.247c0 .054.18.088.18.136l-.267 2.465c-.028 1.366.288 2.588 1.174 3.463v.001z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><style/></defs><path d="M512 128q69.675 0 135.51 21.163t115.498 54.997 93.483 74.837 73.685 82.006 51.67 74.837 32.17 54.827L1024 512q-2.347 4.992-6.315 13.483T998.87 560.17t-31.658 51.669-44.331 59.99-56.832 64.34-69.504 60.16-82.347 51.5-94.848 34.687T512 896q-69.675 0-135.51-21.163t-115.498-54.826-93.483-74.326-73.685-81.493-51.67-74.496-32.17-54.997L0 513.707q2.347-4.992 6.315-13.483t18.816-34.816 31.658-51.84 44.331-60.33 56.832-64.683 69.504-60.331 82.347-51.84 94.848-34.816T512 128.085zm0 85.333q-46.677 0-91.648 12.331t-81.152 31.83-70.656 47.146-59.648 54.485-48.853 57.686-37.675 52.821-26.325 43.99q12.33 21.674 26.325 43.52t37.675 52.351 48.853 57.003 59.648 53.845T339.2 767.02t81.152 31.488T512 810.667t91.648-12.331 81.152-31.659 70.656-46.848 59.648-54.186 48.853-57.344 37.675-52.651T927.957 512q-12.33-21.675-26.325-43.648t-37.675-52.65-48.853-57.345-59.648-54.186-70.656-46.848-81.152-31.659T512 213.334zm0 128q70.656 0 120.661 50.006T682.667 512 632.66 632.661 512 682.667 391.339 632.66 341.333 512t50.006-120.661T512 341.333zm0 85.334q-35.328 0-60.33 25.002T426.666 512t25.002 60.33T512 597.334t60.33-25.002T597.334 512t-25.002-60.33T512 426.666z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/eye.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M127.072 7.994c1.37-2.208.914-5.152-.914-6.87-2.056-1.717-4.797-1.226-6.396.982-.229.245-25.586 32.382-55.74 32.382-29.24 0-55.74-32.382-55.968-32.627-1.6-1.963-4.57-2.208-6.397-.49C-.17 3.086-.399 6.275 1.2 8.238c.457.736 5.94 7.36 14.62 14.72L4.17 35.96c-1.828 1.963-1.6 5.152.228 6.87.457.98 1.6 1.471 2.742 1.471s2.284-.49 3.198-1.472l12.564-13.983c5.94 4.416 13.021 8.587 20.788 11.53l-4.797 17.418c-.685 2.699.686 5.397 3.198 6.133h1.37c2.057 0 3.884-1.472 4.341-3.68L52.6 42.83c3.655.736 7.538 1.227 11.422 1.227 3.883 0 7.767-.49 11.422-1.227l4.797 17.173c.457 2.208 2.513 3.68 4.34 3.68.457 0 .914 0 1.143-.246 2.513-.736 3.883-3.434 3.198-6.133l-4.797-17.172c7.767-2.944 14.848-7.114 20.788-11.53l12.336 13.738c.913.981 2.056 1.472 3.198 1.472s2.284-.49 3.198-1.472c1.828-1.963 1.828-4.906.228-6.87l-11.65-13.001c9.366-7.36 14.849-14.474 14.849-14.474z"/></svg>
|
||||
|
After Width: | Height: | Size: 944 B |
1
pc-cattle-transportation/src/assets/icons/svg/form.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.068 23.784c-1.02 0-1.877-.32-2.572-.96a8.588 8.588 0 0 1-1.738-2.237 11.524 11.524 0 0 1-1.042-2.621c-.232-.895-.348-1.641-.348-2.238V0h.278c.834 0 1.622.085 2.363.256.742.17 1.645.575 2.711 1.214 1.066.64 2.363 1.535 3.892 2.686 1.53 1.15 3.453 2.664 5.77 4.54 2.502 2.045 4.494 3.771 5.977 5.178 1.483 1.406 2.618 2.6 3.406 3.58.787.98 1.274 1.812 1.46 2.494.185.682.277 1.278.277 1.79v2.046H84.068zM127.3 84.01c.278.682.464 1.535.556 2.558.093 1.023-.37 2.003-1.39 2.94-.463.427-.88.832-1.25 1.215-.372.384-.696.704-.974.96a6.69 6.69 0 0 1-.973.767l-11.816-10.741a44.331 44.331 0 0 0 1.877-1.535 31.028 31.028 0 0 1 1.737-1.406c1.112-.938 2.317-1.343 3.615-1.215 1.297.128 2.363.405 3.197.83.927.427 1.923 1.173 2.989 2.239 1.065 1.065 1.876 2.195 2.432 3.388zM78.23 95.902c2.038 0 3.752-.511 5.143-1.534l-26.969 25.83H18.037c-1.761 0-3.684-.47-5.77-1.407a24.549 24.549 0 0 1-5.838-3.709 21.373 21.373 0 0 1-4.518-5.306c-1.204-2.003-1.807-4.07-1.807-6.202V16.495c0-1.79.44-3.665 1.32-5.626A18.41 18.41 0 0 1 5.04 5.562a21.798 21.798 0 0 1 5.213-3.964C12.198.533 14.237 0 16.37 0h53.24v15.984c0 1.62.278 3.367.834 5.242a16.704 16.704 0 0 0 2.572 5.179c1.159 1.577 2.665 2.898 4.518 3.964 1.853 1.066 4.078 1.598 6.673 1.598h20.295v42.325L85.458 92.45c1.02-1.364 1.529-2.856 1.529-4.476 0-2.216-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1c-2.409 0-4.448.789-6.116 2.366-1.668 1.577-2.502 3.474-2.502 5.69 0 2.217.834 4.092 2.502 5.626 1.668 1.535 3.707 2.302 6.117 2.302h52.13zM26.1 47.951c-2.41 0-4.449.789-6.117 2.366-1.668 1.577-2.502 3.473-2.502 5.69 0 2.216.834 4.092 2.502 5.626 1.668 1.534 3.707 2.302 6.117 2.302h52.13c2.409 0 4.47-.768 6.185-2.302 1.715-1.534 2.572-3.41 2.572-5.626 0-2.217-.857-4.113-2.572-5.69-1.714-1.577-3.776-2.366-6.186-2.366H26.1zm52.407 64.063l1.807-1.663 3.476-3.196a479.75 479.75 0 0 0 4.587-4.284 500.757 500.757 0 0 1 5.004-4.667c3.985-3.666 8.48-7.758 13.485-12.276l11.677 10.741-13.485 12.404-5.004 4.603-4.587 4.22a179.46 179.46 0 0 0-3.267 3.068c-.88.853-1.367 1.322-1.46 1.407-.463.341-.973.703-1.529 1.087-.556.383-1.112.703-1.668.959-.556.256-1.413.575-2.572.959a83.5 83.5 0 0 1-3.545 1.087 72.2 72.2 0 0 1-3.475.895c-1.112.256-1.946.426-2.502.511-1.112.17-1.854.043-2.224-.383-.371-.426-.464-1.151-.278-2.174.092-.511.278-1.279.556-2.302.278-1.023.602-2.067.973-3.132l1.042-3.005c.325-.938.58-1.577.765-1.918a10.157 10.157 0 0 1 2.224-2.941z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M38.47 52L52 38.462l-23.648-23.67L43.209 0H.035L0 43.137l14.757-14.865L38.47 52zm74.773 47.726L89.526 76 76 89.536l23.648 23.672L84.795 128h43.174L128 84.863l-14.757 14.863zM89.538 52l23.668-23.648L128 43.207V.038L84.866 0 99.73 14.76 76 38.472 89.538 52zM38.46 76L14.792 99.651 0 84.794v43.173l43.137.033-14.865-14.757L52 89.53 38.46 76z"/></svg>
|
||||
|
After Width: | Height: | Size: 421 B |
1
pc-cattle-transportation/src/assets/icons/svg/github.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1581238998885" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4187" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M511.542857 14.057143C228.914286 13.942857 0 242.742857 0 525.142857 0 748.457143 143.2 938.285714 342.628571 1008c26.857143 6.742857 22.742857-12.342857 22.742858-25.371429v-88.571428c-155.085714 18.171429-161.371429-84.457143-171.771429-101.6C172.571429 756.571429 122.857143 747.428571 137.714286 730.285714c35.314286-18.171429 71.314286 4.571429 113.028571 66.171429 30.171429 44.685714 89.028571 37.142857 118.857143 29.714286 6.514286-26.857143 20.457143-50.857143 39.657143-69.485715-160.685714-28.8-227.657143-126.857143-227.657143-243.428571 0-56.571429 18.628571-108.571429 55.2-150.514286-23.314286-69.142857 2.171429-128.342857 5.6-137.142857 66.4-5.942857 135.428571 47.542857 140.8 51.771429 37.714286-10.171429 80.8-15.542857 129.028571-15.542858 48.457143 0 91.657143 5.6 129.714286 15.885715 12.914286-9.828571 76.914286-55.771429 138.628572-50.171429 3.314286 8.8 28.228571 66.628571 6.285714 134.857143 37.028571 42.057143 55.885714 94.514286 55.885714 151.2 0 116.8-67.428571 214.971429-228.571428 243.314286a145.714286 145.714286 0 0 1 43.542857 104v128.571428c0.914286 10.285714 0 20.457143 17.142857 20.457143 202.4-68.228571 348.114286-259.428571 348.114286-484.685714 0-282.514286-229.028571-511.2-511.428572-511.2z" p-id="4188"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/guide.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.482 70.131l36.204 16.18 69.932-65.485-61.38 70.594 46.435 18.735c1.119.425 2.397-.17 2.797-1.363v-.085L127.998.047 1.322 65.874c-1.12.597-1.519 1.959-1.04 3.151.32.511.72.937 1.2 1.107zm44.676 57.821L64.22 107.26l-18.062-7.834v28.527z"/></svg>
|
||||
|
After Width: | Height: | Size: 320 B |
1
pc-cattle-transportation/src/assets/icons/svg/icon.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.147.062a13 13 0 0 1 4.94.945c1.55.63 2.907 1.526 4.069 2.688a13.148 13.148 0 0 1 2.761 4.069c.678 1.55 1.017 3.245 1.017 5.086v102.3c0 3.681-1.187 6.733-3.56 9.155-2.373 2.422-5.352 3.633-8.937 3.633H12.992c-3.875 0-7-1.26-9.373-3.779-2.373-2.518-3.56-5.667-3.56-9.445V12.704c0-3.39 1.163-6.345 3.488-8.863C5.872 1.32 8.972.062 12.847.062h102.3zM81.434 109.047c1.744 0 3.003-.412 3.778-1.235.775-.824 1.163-1.914 1.163-3.27 0-1.26-.388-2.325-1.163-3.197-.775-.872-2.034-1.307-3.778-1.307H72.57c.097-.194.145-.485.145-.872V27.09h9.01c1.743 0 2.954-.436 3.633-1.308.678-.872 1.017-1.938 1.017-3.197 0-1.26-.34-2.325-1.017-3.197-.679-.872-1.89-1.308-3.633-1.308H46.268c-1.743 0-2.954.436-3.632 1.308-.678.872-1.018 1.938-1.018 3.197 0 1.26.34 2.325 1.018 3.197.678.872 1.889 1.308 3.632 1.308h8.138v72.075c0 .193.024.339.073.436.048.096.072.242.072.436H46.56c-1.744 0-3.003.435-3.778 1.307-.775.872-1.163 1.938-1.163 3.197 0 1.356.388 2.446 1.163 3.27.775.823 2.034 1.235 3.778 1.235h34.875z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/input.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802859706" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3102" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 224H128c-35.2 0-64 28.8-64 64v448c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64V288c0-35.2-28.8-64-64-64z m0 480c0 19.2-12.8 32-32 32H160c-19.2 0-32-12.8-32-32V320c0-19.2 12.8-32 32-32h704c19.2 0 32 12.8 32 32v384z" p-id="3103"></path><path d="M224 352c-19.2 0-32 12.8-32 32v256c0 16 12.8 32 32 32s32-12.8 32-32V384c0-16-12.8-32-32-32z" p-id="3104"></path></svg>
|
||||
|
After Width: | Height: | Size: 744 B |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M83.287 103.01c-1.57-3.84-6.778-10.414-15.447-19.548-2.327-2.444-2.182-4.306-1.338-9.862v-.64c.553-3.81 1.513-6.05 14.313-8.087 6.516-1.018 8.203 1.57 10.589 5.178l.785 1.193a12.625 12.625 0 0 0 6.43 5.207c1.134.524 2.53 1.164 4.421 2.24 4.596 2.53 4.596 5.41 4.596 11.753v.727a26.91 26.91 0 0 1-5.178 17.454 59.055 59.055 0 0 1-19.025 11.026c3.49-6.546.814-14.313 0-16.553l-.146-.087zM64 5.12a58.502 58.502 0 0 1 25.484 5.818 54.313 54.313 0 0 0-12.859 10.327c-.93 1.28-1.716 2.473-2.472 3.579-2.444 3.694-3.637 5.352-5.818 5.614a25.105 25.105 0 0 1-4.219 0c-4.276-.29-10.094-.64-11.956 4.422-1.193 3.23-1.396 11.956 2.444 16.495.66 1.077.778 2.4.32 3.578a7.01 7.01 0 0 1-2.066 3.229 18.938 18.938 0 0 1-2.909-2.91 18.91 18.91 0 0 0-8.32-6.603c-1.25-.349-2.647-.64-3.985-.93-3.782-.786-8.03-1.688-9.019-3.812a14.895 14.895 0 0 1-.727-5.818 21.935 21.935 0 0 0-1.396-9.25 8.873 8.873 0 0 0-5.557-4.946A58.705 58.705 0 0 1 64 5.12zM0 64c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/job.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036191400" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5472" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M934.912 1016.832H192c-14.336 0-25.6-11.264-25.6-25.6v-189.44c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v163.84h691.712V64H217.6v148.48c0 14.336-11.264 25.6-25.6 25.6s-25.6-11.264-25.6-25.6v-174.08c0-14.336 11.264-25.6 25.6-25.6h742.912c14.336 0 25.6 11.264 25.6 25.6v952.832c0 14.336-11.264 25.6-25.6 25.6z" p-id="5473"></path><path d="M232.96 371.2h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM232.96 540.16h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM232.96 698.88h-117.76c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h117.76c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6zM574.464 762.88c-134.144 0-243.2-109.056-243.2-243.2S440.32 276.48 574.464 276.48s243.2 109.056 243.2 243.2-109.056 243.2-243.2 243.2z m0-435.2c-105.984 0-192 86.016-192 192S468.48 711.68 574.464 711.68s192-86.016 192-192S680.448 327.68 574.464 327.68z" p-id="5474"></path><path d="M663.04 545.28h-87.04c-14.336 0-25.6-11.264-25.6-25.6s11.264-25.6 25.6-25.6h87.04c14.336 0 25.6 11.264 25.6 25.6s-11.264 25.6-25.6 25.6z" p-id="5475"></path><path d="M576 545.28c-14.336 0-25.6-11.264-25.6-25.6v-87.04c0-14.336 11.264-25.6 25.6-25.6s25.6 11.264 25.6 25.6v87.04c0 14.336-11.264 25.6-25.6 25.6z" p-id="5476"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1714870454803" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3031" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M900.48 85.333333C921.6 85.333333 938.666667 102.421333 938.666667 123.52v509.738667C938.666667 801.941333 801.92 938.666667 633.258667 938.666667H123.52A38.186667 38.186667 0 0 1 85.333333 900.48V390.762667C85.333333 222.058667 222.08 85.333333 390.741333 85.333333H900.48zM874.666667 149.333333H390.741333C259.498667 149.333333 152.725333 254.08 149.418667 384.512L149.333333 390.741333V874.666667h483.925334c131.242667 0 238.016-104.746667 241.322666-235.178667l0.085334-6.229333V149.333333z m-362.666667 152.896c115.84 0 209.770667 93.909333 209.770667 209.770667 0 115.84-93.909333 209.770667-209.770667 209.770667-115.84 0-209.770667-93.909333-209.770667-209.770667 0-115.84 93.909333-209.770667 209.770667-209.770667z m0 64a145.770667 145.770667 0 1 0 0 291.541334 145.770667 145.770667 0 0 0 0-291.541334z" fill="#8a8a8a" p-id="3032"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.742 36.8c2.398 7.2 5.595 12.8 11.19 18.4 4.795-4.8 7.992-11.2 10.39-18.4h-21.58zm-52.748 40h20.78l-10.39-28-10.39 28z"/><path d="M111.916 0H16.009C7.218 0 .025 7.2.025 16v96c0 8.8 7.193 16 15.984 16h95.907c8.791 0 15.984-7.2 15.984-16V16c0-8.8-6.394-16-15.984-16zM72.754 103.2c-1.598 1.6-3.197 1.6-4.795 1.6-.8 0-2.398 0-3.197-.8-.8-.8-1.599 0-1.599-.8s-.799-1.6-1.598-3.2c-.8-1.6-.8-2.4-1.599-4l-3.196-8.8H28.797L25.6 96c-1.598 3.2-2.398 5.6-3.197 7.2-.8 1.6-2.398 1.6-4.795 1.6-1.599 0-3.197-.8-4.796-1.6-1.598-1.6-2.397-2.4-2.397-4 0-.8 0-1.6.799-3.2.8-1.6.8-2.4 1.598-4l17.583-44.8c.8-1.6.8-3.2 1.599-4.8.799-1.6 1.598-3.2 2.397-4 .8-.8 1.599-2.4 3.197-3.2 1.599-.8 3.197-.8 4.796-.8 1.598 0 3.196 0 4.795.8 1.598.8 2.398 1.6 3.197 3.2.799.8 1.598 2.4 2.397 4 .8 1.6 1.599 3.2 2.398 5.6l17.583 44c1.598 3.2 2.398 5.6 2.398 7.2-.8.8-1.599 2.4-2.398 4zM116.711 72c-8.791-3.2-15.185-7.2-20.78-12-5.594 5.6-12.787 9.6-21.579 12l-2.397-4c8.791-2.4 15.984-5.6 21.579-11.2C87.939 51.2 83.144 44 81.545 36h-7.992v-3.2h21.58c-1.6-2.4-3.198-5.6-4.796-8l2.397-.8c1.599 2.4 3.997 5.6 5.595 8.8h19.98v4h-7.992c-2.397 8-6.393 15.2-11.189 20 5.595 4.8 11.988 8.8 20.78 11.2l-3.197 4z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/link.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M115.625 127.937H.063V12.375h57.781v12.374H12.438v90.813h90.813V70.156h12.374z"/><path d="M116.426 2.821l8.753 8.753-56.734 56.734-8.753-8.745z"/><path d="M127.893 37.982h-12.375V12.375H88.706V0h39.187z"/></svg>
|
||||
|
After Width: | Height: | Size: 285 B |
1
pc-cattle-transportation/src/assets/icons/svg/list.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M1.585 12.087c0 6.616 3.974 11.98 8.877 11.98 4.902 0 8.877-5.364 8.877-11.98 0-6.616-3.975-11.98-8.877-11.98-4.903 0-8.877 5.364-8.877 11.98zM125.86.107H35.613c-1.268 0-2.114 1.426-2.114 2.852v18.255c0 1.712 1.057 2.853 2.114 2.853h90.247c1.268 0 2.114-1.426 2.114-2.853V2.96c0-1.711-1.057-2.852-2.114-2.852zM.106 62.86c0 6.615 3.974 11.979 8.876 11.979 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zM124.17 50.88H33.921c-1.268 0-2.114 1.425-2.114 2.851v18.256c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852V53.73c0-1.426-.846-2.852-2.114-2.852zM.106 115.913c0 6.616 3.974 11.98 8.876 11.98 4.903 0 8.877-5.364 8.877-11.98 0-6.616-3.974-11.98-8.877-11.98-4.902 0-8.876 5.364-8.876 11.98zm124.064-11.98H33.921c-1.268 0-2.114 1.426-2.114 2.853v18.255c0 1.711 1.057 2.852 2.114 2.852h90.247c1.268 0 2.114-1.426 2.114-2.852v-18.255c0-1.427-.846-2.853-2.114-2.853z"/></svg>
|
||||
|
After Width: | Height: | Size: 1017 B |
1
pc-cattle-transportation/src/assets/icons/svg/lock.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M119.88 49.674h-7.987V39.52C111.893 17.738 90.45.08 63.996.08 37.543.08 16.1 17.738 16.1 39.52v10.154H8.113c-4.408 0-7.987 2.94-7.987 6.577v65.13c0 3.637 3.57 6.577 7.987 6.577H119.88c4.407 0 7.987-2.94 7.987-6.577v-65.13c-.008-3.636-3.58-6.577-7.987-6.577zm-23.953 0H32.065V39.52c0-14.524 14.301-26.295 31.931-26.295 17.63 0 31.932 11.777 31.932 26.295v10.153z"/></svg>
|
||||
|
After Width: | Height: | Size: 444 B |
1
pc-cattle-transportation/src/assets/icons/svg/log.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035943711" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4805" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M208.736 566.336H64.384v59.328h144.352v-59.328z m0-336.096H165.44V74.592c0-7.968 4.896-14.848 10.464-14.848h502.016V0.448H175.936c-38.72 1.248-69.248 34.368-68.192 74.144v155.648H64.384V289.6h144.352V230.24z m0 168.096H64.384v59.328h144.352v-59.328z m714.656 76.576h-57.76v474.496c0 7.936-4.896 14.848-10.464 14.848H175.936c-5.568 0-10.464-6.912-10.464-14.848v-155.68h43.296v-59.296H64.384v59.296h43.328v155.68c-1.024 39.776 29.472 72.896 68.192 74.144h679.232c38.72-1.184 69.248-34.368 68.256-74.144V474.912z m14.944-290.336l-83.072-85.312a71.264 71.264 0 0 0-52.544-21.728 71.52 71.52 0 0 0-51.616 23.872L386.528 507.264a30.496 30.496 0 0 0-6.176 10.72L308.16 740.512a30.016 30.016 0 0 0 6.976 30.24c7.712 7.968 19.2 10.752 29.568 7.2l216.544-74.112a28.736 28.736 0 0 0 12.128-7.936L940.448 287.456a75.552 75.552 0 0 0-2.112-102.88z m-557.12 518.272l39.104-120.64 78.336 80.416-117.44 40.224z m170.048-70.016l-103.552-106.016 200.16-222.4 103.52 106.304-200.128 222.112zM897.952 247.072l-0.256 0.224-107.136 119.168-103.52-106.528 106.432-118.624a14.144 14.144 0 0 1 10.304-4.736 13.44 13.44 0 0 1 10.464 4.288l83.264 85.696c5.472 5.6 5.664 14.72 0.448 20.512z" p-id="4806"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566036016814" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5261" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 128h-85.333333a42.666667 42.666667 0 0 0 0 85.333333h42.666666v640H170.666667V213.333333h42.666666a42.666667 42.666667 0 0 0 0-85.333333H128a42.666667 42.666667 0 0 0-42.666667 42.666667v725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667h768a42.666667 42.666667 0 0 0 42.666667-42.666667V170.666667a42.666667 42.666667 0 0 0-42.666667-42.666667z" p-id="5262"></path><path d="M341.333333 298.666667a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-85.333333 0v128a42.666667 42.666667 0 0 0 42.666666 42.666667zM512 298.666667a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-85.333334 0v128a42.666667 42.666667 0 0 0 42.666667 42.666667zM682.666667 298.666667a42.666667 42.666667 0 0 0 42.666666-42.666667V128a42.666667 42.666667 0 0 0-85.333333 0v128a42.666667 42.666667 0 0 0 42.666667 42.666667zM341.333333 768a42.666667 42.666667 0 0 0 42.666667-42.666667 128 128 0 0 1 256 0 42.666667 42.666667 0 0 0 85.333333 0 213.333333 213.333333 0 0 0-107.52-184.32A128 128 0 0 0 640 469.333333a128 128 0 0 0-256 0 128 128 0 0 0 22.186667 71.68A213.333333 213.333333 0 0 0 298.666667 725.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z m128-298.666667a42.666667 42.666667 0 1 1 42.666667 42.666667 42.666667 42.666667 0 0 1-42.666667-42.666667z" p-id="5263"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 20.967v59.59c0 11.59 8.537 20.966 19.075 20.966h28.613l1 26.477L76.8 101.523h32.125c10.538 0 19.075-9.377 19.075-20.966v-59.59C128 9.377 119.463 0 108.925 0h-89.85C8.538 0 0 9.377 0 20.967zm82.325 33.1c0-5.524 4.013-9.935 9.037-9.935 5.026 0 9.038 4.41 9.038 9.934 0 5.524-4.025 9.934-9.038 9.934-5.024 0-9.037-4.41-9.037-9.934zm-27.613 0c0-5.524 4.013-9.935 9.038-9.935s9.037 4.41 9.037 9.934c0 5.524-4.025 9.934-9.037 9.934-5.025 0-9.038-4.41-9.038-9.934zm-27.1 0c0-5.524 4.013-9.935 9.038-9.935s9.038 4.41 9.038 9.934c0 5.524-4.026 9.934-9.05 9.934-5.013 0-9.025-4.41-9.025-9.934z"/></svg>
|
||||
|
After Width: | Height: | Size: 669 B |
1
pc-cattle-transportation/src/assets/icons/svg/money.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.122 127.892v-28.68H7.513V87.274h46.609v-12.4H7.513v-12.86h38.003L.099 0h22.6l32.556 45.07c3.617 5.144 6.44 9.611 8.487 13.385 1.788-3.05 4.89-7.779 9.301-14.186L103.93 0h24.01L82.385 62.013h38.34v12.862h-46.41v12.4h46.41v11.937h-46.41v28.68H54.123z"/></svg>
|
||||
|
After Width: | Height: | Size: 335 B |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1543827393750" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4695" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: rbicon; src: url("chrome-extension://dipiagiiohfljcicegpgffpbnjmgjcnf/fonts/rbicon.woff2") format("woff2"); font-weight: normal; font-style: normal; }
|
||||
</style></defs><path d="M64 64V640H896V64H64zM0 0h960v704H0V0z" p-id="4696"></path><path d="M192 896H768v64H192zM448 640H512v256h-64z" p-id="4697"></path><path d="M479.232 561.604267l309.9904-348.330667-47.803733-42.5472-259.566934 291.669333L303.957333 240.008533 163.208533 438.6048l52.224 37.009067 91.6224-129.28z" p-id="4698"></path></svg>
|
||||
|
After Width: | Height: | Size: 883 B |
1
pc-cattle-transportation/src/assets/icons/svg/nested.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M.002 9.2c0 5.044 3.58 9.133 7.998 9.133 4.417 0 7.997-4.089 7.997-9.133 0-5.043-3.58-9.132-7.997-9.132S.002 4.157.002 9.2zM31.997.066h95.981V18.33H31.997V.066zm0 45.669c0 5.044 3.58 9.132 7.998 9.132 4.417 0 7.997-4.088 7.997-9.132 0-3.263-1.524-6.278-3.998-7.91-2.475-1.63-5.524-1.63-7.998 0-2.475 1.632-4 4.647-4 7.91zM63.992 36.6h63.986v18.265H63.992V36.6zm-31.995 82.2c0 5.043 3.58 9.132 7.998 9.132 4.417 0 7.997-4.089 7.997-9.132 0-5.044-3.58-9.133-7.997-9.133s-7.998 4.089-7.998 9.133zm31.995-9.131h63.986v18.265H63.992V109.67zm0-27.404c0 5.044 3.58 9.133 7.998 9.133 4.417 0 7.997-4.089 7.997-9.133 0-3.263-1.524-6.277-3.998-7.909-2.475-1.631-5.524-1.631-7.998 0-2.475 1.632-4 4.646-4 7.91zm31.995-9.13h31.991V91.4H95.987V73.135z"/></svg>
|
||||
|
After Width: | Height: | Size: 821 B |
1
pc-cattle-transportation/src/assets/icons/svg/number.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802851180" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2867" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M279.272727 791.272727h512a46.545455 46.545455 0 0 1 0 93.090909H279.272727a46.545455 46.545455 0 0 1 0-93.090909z m33.838546-617.984V651.636364H193.722182V395.170909c0-37.003636-0.884364-59.298909-2.653091-66.746182a24.948364 24.948364 0 0 0-14.615273-16.989091c-8.005818-3.863273-25.786182-5.771636-53.341091-5.771636h-11.822545v-55.854545c57.716364-12.381091 101.562182-37.888 131.490909-76.520728h70.283636z m303.709091 396.8V651.636364H354.164364v-68.235637c77.777455-127.255273 124.043636-206.010182 138.705454-236.218182 14.661818-30.254545 22.016-53.853091 22.016-70.74909 0-13.032727-2.234182-22.714182-6.656-29.137455-4.421818-6.376727-11.170909-9.588364-20.247273-9.588364a22.248727 22.248727 0 0 0-20.200727 10.612364c-4.468364 7.121455-6.656 21.178182-6.656 42.263273v45.521454H354.164364v-17.454545c0-26.763636 1.396364-47.941818 4.142545-63.348364 2.746182-15.499636 9.541818-30.72 20.386909-45.661091 10.798545-14.987636 24.901818-26.298182 42.216727-33.978182 17.361455-7.68 38.167273-11.543273 62.37091-11.543272 47.476364 0 83.316364 11.776 107.706181 35.328 24.296727 23.552 36.445091 53.341091 36.445091 89.367272 0 27.368727-6.842182 56.32-20.48 86.853819-13.730909 30.533818-54.039273 95.325091-121.018182 194.420363h130.885819z m270.615272-189.393454c18.152727 6.097455 31.650909 16.104727 40.494546 29.975272 8.843636 13.917091 13.312 46.452364 13.312 97.652364 0 38.027636-4.328727 67.490909-13.032727 88.529455-8.657455 20.945455-23.598545 36.910545-44.869819 47.848727-21.271273 10.938182-48.593455 16.384-81.873454 16.384-37.794909 0-67.490909-6.330182-89.088-19.083636-21.550545-12.660364-35.746909-28.253091-42.542546-46.638546-6.795636-18.432-10.193455-50.362182-10.193454-95.883636v-37.841455h119.389091v77.730909c0 20.666182 1.210182 33.838545 3.723636 39.424 2.420364 5.585455 7.912727 8.424727 16.337455 8.424728 9.309091 0 15.36-3.537455 18.338909-10.612364 2.932364-7.121455 4.421818-25.6 4.421818-55.575273v-33.047273c0-18.338909-2.048-31.744-6.190546-40.215272a30.72 30.72 0 0 0-18.338909-16.709818c-8.052364-2.653091-23.738182-4.189091-46.964363-4.561455V357.050182c28.392727 0 45.893818-1.070545 52.596363-3.258182a22.946909 22.946909 0 0 0 14.475637-14.149818c2.932364-7.307636 4.421818-18.711273 4.421818-34.257455v-26.624c0-16.756364-1.722182-27.741091-5.12-33.047272-3.490909-5.352727-8.843636-8.005818-16.151273-8.005819-8.285091 0-13.963636 2.792727-16.989091 8.378182-3.025455 5.632-4.561455 17.640727-4.561454 35.933091v39.284364h-119.389091v-40.773818c0-45.661091 10.472727-76.567273 31.325091-92.625455 20.898909-16.058182 54.085818-24.064 99.607272-24.064 56.878545 0 95.511273 11.170909 115.805091 33.373091 20.293818 22.248727 30.394182 53.201455 30.394182 92.765091 0 26.810182-3.630545 46.173091-10.891636 58.088727-7.307636 11.915636-20.107636 22.807273-38.446546 32.628364z" p-id="2868"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/online.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568899557259" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="535" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M356.246145 681.56286c-68.156286-41.949414-107.246583-103.84102-107.246583-169.805384 0-65.966411 39.090297-127.860063 107.246583-169.809477 12.046361-7.414877 15.800871-23.190165 8.385994-35.236526-7.413853-12.046361-23.191188-15.801894-35.236526-8.387018-39.640836 24.399713-72.539106 56.044434-95.137801 91.515297-23.86657 37.461193-36.481889 79.620385-36.481889 121.917724 0 42.297338 12.615319 84.454484 36.481889 121.914654 22.598694 35.469839 55.496965 67.11456 95.137801 91.51325 4.185322 2.576685 8.821923 3.804652 13.400195 3.804652 8.598842 0 16.998139-4.329609 21.836331-12.190647C372.047016 704.752002 368.291482 688.976714 356.246145 681.56286zM263.943926 754.580874c-92.603071-61.111846-145.713686-149.623739-145.713686-242.840794 0-93.195565 53.094242-181.682899 145.667637-242.774279 11.805884-7.79043 15.061021-23.677259 7.269567-35.483142-7.79043-11.805884-23.677259-15.062044-35.483142-7.269567C128.487861 296.954249 67.006602 401.024489 67.006602 511.74008c0 110.73708 61.496609 214.830857 168.721703 285.593504 4.343935 2.867304 9.240455 4.238534 14.08274 4.238534 8.317433 0 16.476253-4.046153 21.400403-11.507078C279.003923 778.258133 275.748786 762.372328 263.943926 754.580874zM788.660552 226.213092c-11.80486-7.791453-27.692712-4.536316-35.483142 7.269567-7.79043 11.805884-4.536316 27.692712 7.269567 35.483142 92.575442 61.092403 145.670707 149.579737 145.670707 242.774279 0 93.216032-53.111638 181.727924-145.715733 242.840794-11.805884 7.79043-15.059997 23.678282-7.269567 35.484166 4.925173 7.461949 13.081946 11.507078 21.400403 11.507078 4.841262 0 9.739828-1.37123 14.083763-4.238534 107.22714-70.761624 168.724773-174.857447 168.724773-285.593504C957.341323 401.025513 895.860063 296.955272 788.660552 226.213092zM790.090111 633.67213c23.865547-37.459147 36.480866-79.617315 36.480866-121.914654 0-42.298362-12.615319-84.45653-36.480866-121.917724-22.598694-35.470863-55.496965-67.115584-95.139847-91.515297-12.047384-7.413853-27.821649-3.659343-35.236526 8.387018-7.414877 12.045337-3.659343 27.821649 8.385994 35.236526 68.156286 41.949414 107.247606 103.842043 107.247606 169.809477 0 65.964364-39.090297 127.85597-107.247606 169.804361-12.045337 7.414877-15.800871 23.190165-8.385994 35.237549 4.838192 7.861038 13.236466 12.190647 21.835308 12.190647 4.579295 0 9.215896-1.227967 13.400195-3.804652C734.591099 700.786691 767.490394 669.142993 790.090111 633.67213zM567.129086 518.274914c24.12342-17.150612 39.887452-45.305859 39.887452-77.07133 0-52.128241-42.452881-94.538143-94.634334-94.538143-52.18043 0-94.633311 42.408879-94.633311 94.538143 0 31.695886 15.696494 59.797921 39.730886 76.958766-49.875944 21.128203-84.917018 70.234621-84.917018 127.301338 0 2.366907 0.061398 4.762467 0.182149 7.119141l1.249457 24.296359 276.373515 0 1.238201-24.308639c0.119727-2.358721 0.181125-4.750187 0.181125-7.106862C651.786185 588.497255 616.865861 539.465538 567.129086 518.274914zM512.381182 397.889079c23.937179 0 43.411719 19.430538 43.411719 43.314505 0 23.882943-19.47454 43.313481-43.411719 43.313481-23.936155 0-43.409672-19.430538-43.409672-43.313481C468.971509 417.320641 488.445026 397.889079 512.381182 397.889079zM426.08884 625.656573c9.119705-38.542828 44.254923-67.337641 86.085634-67.337641s76.966952 28.794813 86.085634 67.337641L426.08884 625.656573z" p-id="536"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575802846045" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2750" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M868.593046 403.832442c-30.081109-28.844955-70.037123-44.753273-112.624057-44.753273L265.949606 359.079168c-42.554188 0-82.510202 15.908318-112.469538 44.690852-30.236652 28.782533-46.857191 67.222007-46.857191 108.198258l0 294.079782c0 40.977273 16.619516 79.414701 46.702672 108.136859 29.959336 28.844955 70.069869 44.814672 112.624057 44.814672l490.019383 0c42.585911 0 82.696444-15.969717 112.624057-44.814672 30.082132-28.844955 46.579875-67.222007 46.579875-108.136859L915.172921 511.968278C915.171897 471.053426 898.675178 432.677397 868.593046 403.832442zM841.821309 806.049083c0 22.098297-8.882298 42.772152-25.099654 58.306964-16.154935 15.661701-37.81935 24.203238-60.752666 24.203238L265.949606 888.559285c-22.934339 0-44.567032-8.54256-60.877509-24.264637-16.186657-15.474436-25.067932-36.148291-25.067932-58.246589L180.004165 511.968278c0-22.035876 8.881274-42.772152 25.192775-58.307987 16.186657-15.536858 37.81935-24.139793 60.753689-24.139793l490.019383 0c22.933315 0 44.597731 8.602935 60.752666 24.139793 16.21838 15.535835 25.099654 36.272112 25.099654 58.307987L841.822332 806.049083zM510.974136 135.440715c114.914216 0 208.318536 89.75214 208.318536 200.055338l73.350588 0c0-149.113109-126.366036-270.496667-281.669124-270.496667-155.333788 0-281.699824 121.383558-281.699824 270.496667l73.350588 0C302.623877 225.193879 396.059919 135.440715 510.974136 135.440715zM474.299865 747.244792l73.350588 0L547.650453 629.576859l-73.350588 0L474.299865 747.244792z" p-id="2751"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/pdf.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><path d="M869.073 277.307H657.111V65.344l211.962 211.963zm-238.232 26.27V65.344l-476.498-.054v416.957h714.73v-178.67H630.841zm-335.836 360.57c-5.07-3.064-10.944-5.133-17.61-6.201-6.67-1.064-13.603-1.6-20.81-1.6h-48.821v85.641h48.822c7.206 0 14.14-.532 20.81-1.6 6.665-1.065 12.54-3.133 17.609-6.202 5.064-3.063 9.134-7.406 12.208-13.007 3.065-5.602 4.6-12.937 4.6-22.011 0-9.07-1.535-16.408-4.6-22.01-3.074-5.603-7.144-9.94-12.208-13.01zM35.82 541.805v416.904h952.358V541.805H35.821zm331.421 191.179c-3.6 11.071-9.343 20.879-17.209 29.413-7.874 8.542-18.078 15.408-30.617 20.61-12.544 5.206-27.747 7.807-45.621 7.807h-66.036v102.45h-62.831V607.517h128.867c17.874 0 33.077 2.6 45.62 7.802 12.541 5.207 22.745 12.076 30.618 20.615 7.866 8.538 13.604 18.277 17.21 29.212 3.6 10.943 5.401 22.278 5.401 34.018 0 11.477-1.8 22.752-5.402 33.819zM644.9 806.417c-5.343 17.61-13.408 32.818-24.212 45.627-10.807 12.803-24.283 22.879-40.423 30.213-16.146 7.343-35.155 11.007-57.03 11.007h-123.26V607.518h123.26c18.41 0 35.552 2.941 51.428 8.808 15.873 5.869 29.618 14.671 41.22 26.412 11.608 11.744 20.674 26.411 27.217 44.02 6.535 17.61 9.803 38.288 9.803 62.035 0 20.81-2.67 40.02-8.003 57.624zm245.362-146.07h-138.07v66.03h119.66v48.829h-119.66v118.058h-62.83V607.518h200.9v52.829h-.001zm-318.2 25.611c-6.402-8.266-14.877-14.604-25.412-19.01-10.544-4.402-23.551-6.602-39.019-6.602h-44.825v180.088h56.029c9.07 0 17.872-1.463 26.415-4.401 8.535-2.932 16.14-7.802 22.812-14.609 6.665-6.8 12.007-15.667 16.007-26.61 4.003-10.94 6.003-24.275 6.003-40.021 0-14.408-1.4-27.416-4.202-39.019-2.8-11.607-7.406-21.542-13.808-29.816zm0 0"/></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/people.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M104.185 95.254c8.161 7.574 13.145 17.441 13.145 28.28 0 1.508-.098 2.998-.285 4.466h-10.784c.238-1.465.403-2.948.403-4.465 0-8.983-4.36-17.115-11.419-23.216C86 104.66 75.355 107.162 64 107.162c-11.344 0-21.98-2.495-31.22-6.83-7.064 6.099-11.444 14.218-11.444 23.203 0 1.517.165 3 .403 4.465H10.955a35.444 35.444 0 0 1-.285-4.465c0-10.838 4.974-20.713 13.127-28.291C9.294 85.42.003 70.417.003 53.58.003 23.99 28.656.001 64 .001s63.997 23.988 63.997 53.58c0 16.842-9.299 31.85-23.812 41.673zM64 36.867c-29.454 0-53.33-10.077-53.33 15.342 0 25.418 23.876 46.023 53.33 46.023 29.454 0 53.33-20.605 53.33-46.023 0-25.419-23.876-15.342-53.33-15.342zm24.888 25.644c-3.927 0-7.111-2.665-7.111-5.953 0-3.288 3.184-5.954 7.11-5.954 3.928 0 7.111 2.666 7.111 5.954s-3.183 5.953-7.11 5.953zm-3.556 16.372c0 4.11-9.55 7.442-21.332 7.442-11.781 0-21.332-3.332-21.332-7.442 0-1.06.656-2.064 1.8-2.976 3.295 2.626 10.79 4.465 19.532 4.465 8.743 0 16.237-1.84 19.531-4.465 1.145.912 1.801 1.916 1.801 2.976zm-46.22-16.372c-3.927 0-7.11-2.665-7.11-5.953 0-3.288 3.183-5.954 7.11-5.954 3.927 0 7.111 2.666 7.111 5.954s-3.184 5.953-7.11 5.953z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M95.648 118.762c0 5.035-3.563 9.121-7.979 9.121H7.98c-4.416 0-7.979-4.086-7.979-9.121C0 100.519 15.408 83.47 31.152 76.75c-9.099-6.43-15.216-17.863-15.216-30.987v-9.128c0-20.16 14.293-36.518 31.893-36.518s31.894 16.358 31.894 36.518v9.122c0 13.137-6.123 24.556-15.216 30.993 15.738 6.726 31.141 23.769 31.141 42.012z"/><path d="M106.032 118.252h15.867c3.376 0 6.101-3.125 6.101-6.972 0-13.957-11.787-26.984-23.819-32.123 6.955-4.919 11.638-13.66 11.638-23.704v-6.985c0-15.416-10.928-27.926-24.39-27.926-1.674 0-3.306.193-4.89.561 1.936 4.713 3.018 9.974 3.018 15.526v9.121c0 13.137-3.056 23.111-11.066 30.993 14.842 4.41 27.312 23.42 27.541 41.509z"/></svg>
|
||||
|
After Width: | Height: | Size: 731 B |
1
pc-cattle-transportation/src/assets/icons/svg/phone.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567417214476" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2266" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M761.503029 2.90619 242.121921 2.90619c-32.405037 0-58.932204 26.060539-58.932204 58.527998l0 902.302287c0 32.156374 26.217105 58.216913 58.932204 58.216913l519.381108 0c32.344662 0 58.591443-26.060539 58.591443-58.216913L820.094472 61.123103C820.094472 28.966729 793.847691 2.90619 761.503029 2.90619M452.878996 61.123103l98.147344 0c6.780427 0 12.31549 5.536087 12.31549 12.253068 0 6.748704-5.535063 12.253068-12.31549 12.253068l-98.147344 0c-6.779404 0-12.345166-5.504364-12.345166-12.253068C440.532807 66.659189 446.099592 61.123103 452.878996 61.123103M501.641583 980.593398c-29.636994 0-53.987588-23.946388-53.987588-53.677527 0-29.356608 24.039509-53.614082 53.987588-53.614082 29.91738 0 53.987588 23.883967 53.987588 53.614082C555.629171 956.647009 531.559986 980.593398 501.641583 980.593398M766.35657 803.142893c0 16.23373-13.186324 29.107945-29.233811 29.107945l-470.618521 0c-16.35755 0-29.325909-13.186324-29.325909-29.107945L237.178329 163.500794c0-16.232706 13.279445-29.138644 29.325909-29.138644l470.246037 0c16.420995 0 29.357632 13.1853 29.357632 29.138644l0 639.642099L766.35657 803.142893zM766.35657 803.142893" p-id="2267"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/post.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566035724641" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3998" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M136.4 434.3h77.7c21.5 0 38.9-17.4 38.9-38.9s-17.4-38.9-38.9-38.9h-77.7c-21.5 0-38.9 17.4-38.9 38.9s17.4 38.9 38.9 38.9zM252.9 628.6c0-21.5-17.4-38.9-38.9-38.9h-77.7c-21.5 0-38.9 17.4-38.9 38.9s17.4 38.9 38.9 38.9H214c21.5-0.1 38.9-17.5 38.9-38.9z" p-id="3999"></path><path d="M874.7 97.5H227c-28.6 0-51.8 23.2-51.8 51.8v194.3h38.9c28.6 0 51.8 23.2 51.8 51.8 0 28.6-23.2 51.8-51.8 51.8h-38.9v129.5h38.9c28.6 0 51.8 23.2 51.8 51.8 0 28.6-23.2 51.8-51.8 51.8h-38.9v194.3c0 28.6 23.2 51.8 51.8 51.8h647.7c28.6 0 51.8-23.2 51.8-51.8V149.3c0-28.6-23.2-51.8-51.8-51.8z m-311.3 723c-15.6 0-146.7-71.6-146.7-91 0-19.4 102-368.6 102-368.6l-83.6-104s-12.3-23.1 24.6-23.1h208.9c36.9 0 18.4 23.1 18.4 23.1l-79 104s102 351.3 102 368.6c0.1 17.3-131 91-146.6 91z m169.2-253.6l-27.9 40.2-74.5-240 103.4 171.7c4.6 7.9 4.2 20.6-1 28.1z" p-id="4000"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/qq.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M18.448 57.545l-.244-.744-.198-.968-.132-.53v-2.181l.236-.859.24-.908.317-.953.428-1.06.561-1.103.794-1.104v-.773l.077-.724.123-.984.34-1.106.313-1.194.25-.548.289-.511.371-.569.405-.423v-2.73l.234-1.407.236-1.633.42-1.955.577-2.035.43-1.118.426-1.217.468-1.135.559-1.216.57-1.332.655-1.247.737-1.331.929-1.33.43-.762.457-.624.995-1.406 1.025-1.403 1.163-1.444 1.246-1.405 1.352-1.384 1.41-1.423 1.708-1.536 1.083-.934 1.322-1.008 1.34-.89 1.448-.855 1.392-.76 1.57-.63 1.667-.775 1.657-.532 1.653-.552 1.787-.548 1.785-.417 1.876-.347L59.128.68l1.879-.245 1.876-.252 2.002-.106h5.912l1.97.243 1.981.231 2.019.207 1.874.441 1.979.413 1.857.475 2.035.53 1.862.646 1.782.738 1.904.78 1.736.853 1.689.95 1.655 1.044 1.425.971.662.548.693.401 1.323 1.1 1.115 1.064 1.112 1.1 1.083 1.214.894 1.178 1.064 1.217.74 1.306.752 1.162.798 1.352.661 1.175 1.113 2.489.546 1.286.428 1.192.428 1.294.384 1.217.267 1.047.347 1.231.607 2.198.388 1.924.253 1.861.217 1.497.342 2.28.077.362.274.41.737 1.18.473.8.42.832.534.892.472 1.07.307 1.093.334 1.2.252 1.232.115.605.106.746v.648l-.106.643v.8l-.192.774-.35 1.5-.403.76-.299.852v.213l.142.264.4.623 1.746 2.53 1.377 1.9.66 1.267.889 1.389.774 1.52.893 1.627.894 1.828 1.006 2.069.567 1.268.518 1.239.447 1.307.44 1.175.336 1.235.342 1.16.432 2.261.343 2.31.235 2.05v2.891l-.158 1.025-.226 1.768-.308 1.59-.48 1.44-.18.588-.336.707-.28.493-.375.607-.33.383-.42.494-.375.4-.401.34-.48.207-.432.207-.355.114h-.543l-.346-.114-.66-.32-.302-.212-.317-.223-.347-.304-.35-.342-.579-.63-.684-.89-.539-.917-.538-.734-.526-.855-.741-1.517-.833-1.579-.098-.055h-.138l-.338.247-.196.415-.326.516-.567 1.533-.856 2.182-1.096 2.626-.824 1.308-.864 1.366-1.027 1.536-1.09 1.503-.557.68-.676.743-1.555 1.497.136.135.21.214.777.446 3.235 1.524 1.41.779 1.347.756 1.332.953 1.187.982.574.443.432.511.445.593.367.643.198.533.242.64.105.554.115.647-.115.433v.44l-.105.454-.242.415-.092.325-.22.394-.587.784-.543.627-.42.47-.35.348-.893.638-1.01.556-1.077.532-1.155.511-1.287.495-.693.207-.608.167-1.496.342-1.545.325-1.552.323-1.689.27-1.74.072-1.785.21h-5.539l-1.998-.114-1.86-.168-2.005-.27-1.99-.209-2.095-.286-2.03-.495-1.981-.374-1.968-.552-2.019-.707-1.98-.585-1.044-.342-.927-.323-.586-.223-.582-.12h-1.647l-1.904-.131-.962-.096-1.24-.135-.795.705-1.085.665-1.471.701-1.628.875-.99.475-1.033.376-2.281.914-1.24.305-1.3.343-1.803.344-1.13.086-1.193.1-1.246.135-1.45.053h-5.926l-3.346-.053-3.25-.321-1.644-.23-1.589-.23-1.546-.227-1.547-.305-1.442-.456-1.434-.325-1.294-.51-1.223-.474-1.142-.533-.99-.583-.984-.71-.336-.343-.44-.415-.334-.362-.3-.417-.278-.415-.215-.42-.311-.89-.109-.46-.138-.51v-.473l.138-.533v-.53l.109-.53v-1.069l.052-.564.259-.647.215-.646.39-.779.286-.3.236-.348.615-.738.49-.38.464-.266.428-.338.676-.21.543-.324.676-.341.77-.227.775-.231.897-.192.85-.11 1.008-.13 1.093-.081.284-.092h.063l.137-.115v-.13l-.2-.266-.58-.27-1.45-1.231-.975-.761-1.127-.967-1.136-1.082-1.181-1.382-1.36-1.558-.508-.843-.672-.87-.58-1.007-.522-1.1-.704-1.047-.459-1.194-.547-1.192-.546-1.33-.397-1.273-.378-1.575-.112-.057h-.115l-.059-.113h-.14l-.23.113-.114.057-.158.264-.057.321-.119.286-.206.477-.664 1.157-.345.701-.546.612-.58.736-.641.816-.677.724-.795.701-.734.658-.814.524-.89.546-.855.325-1.008.247-.99.095h-.233l-.228-.095-.18-.384-.29-.188-.38-.912-.237-.493-.255-.707-.21-.734-.113-.724-.313-1.648-.12-.972v-3.185l.12-2.379.196-1.214.23-1.252.21-1.347.374-1.254.42-1.443.431-1.407.578-1.448.545-1.38.754-1.4.699-1.52.855-1.425 1.006-1.538 1.023-1.382 1.069-1.538.891-1.071 1.142-1.227 1.202-1.237.56-.59.678-.662.985-.836 1.012-.853 1.647-1.446 1.242-.889z"/></svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1581238842264" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1409" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 0C229.233778 0 0 229.233778 0 512s229.233778 512 512 512 512-229.233778 512-512A512 512 0 0 0 512 0z m0 938.666667C276.366222 938.666667 85.333333 747.633778 85.333333 512 85.333333 276.366222 276.366222 85.333333 512 85.333333c235.633778 0 426.666667 191.032889 426.666667 426.666667a426.666667 426.666667 0 0 1-426.666667 426.666667z m0-717.653334a170.666667 170.666667 0 0 0-170.666667 170.666667 42.666667 42.666667 0 0 0 85.333334 0 85.333333 85.333333 0 1 1 85.333333 85.333333 42.666667 42.666667 0 0 0-42.666667 42.666667v111.36a42.666667 42.666667 0 0 0 85.333334 0v-74.24A170.666667 170.666667 0 0 0 512 221.013333z m-42.666667 542.293334a42.666667 42.666667 0 1 0 85.333334 0 42.666667 42.666667 0 0 0-85.333334 0z" p-id="1410"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/radio.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1575966775973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="879" xmlns:xlink="http://www.w3.org/1999/xlink" width="81" height="81"><defs><style type="text/css"></style></defs><path d="M507.39346659 71.84873358c241.53533667 0 437.39770766 195.85422109 437.39770767 437.37442191 0 241.53766571-195.86237099 437.38955776-437.39770767 437.38955776-241.50040803 0-437.34997219-195.85189205-437.34997219-437.38955776C70.0434944 267.70295467 265.89189347 71.84873358 507.39346659 71.84873358L507.39346659 71.84873358zM507.39346659 282.81899805c-125.00686734 0-226.37039389 101.38914133-226.37039388 226.41813048 0 125.01268821 101.36352768 226.39717262 226.37039388 226.39717262 125.04295993 0 226.42395136-101.38448441 226.42395136-226.39717262C733.81625401 384.20813938 632.43642653 282.81899805 507.39346659 282.81899805L507.39346659 282.81899805zM507.39346659 120.78172615c-214.46664192 0-388.42047261 173.95150279-388.4204726 388.44026539 0 214.51204949 173.95499463 388.46122325 388.4204726 388.46122325 214.52369237 0 388.46005817-173.94800981 388.46005818-388.46122325C895.85236082 294.73322894 721.91715897 120.78172615 507.39346659 120.78172615z" p-id="880"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/rate.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1577246781606" class="icon" viewBox="0 0 1069 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1098" xmlns:xlink="http://www.w3.org/1999/xlink" width="84.5595703125" height="81"><defs><style type="text/css"></style></defs><path d="M633.72929961 378.02038203l9.49872568 18.68789795 20.78025469 2.79745225 206.61592412 27.33248408a11.46496817 11.46496817 0 0 1 6.6095543 19.47324902l-147.2675168 147.35350284-14.89299345 14.89299345 3.8006376 20.68280244 37.84585956 204.89044571a11.46496817 11.46496817 0 0 1-16.4808914 12.2961788L554.68980898 751.84713388l-18.68789794-9.49299345-18.48726123 9.99171915-183.23885392 99.34968163a11.46496817 11.46496817 0 0 1-16.78471347-11.8662416l32.5433127-205.79617881 3.29617793-20.78598692-15.19108243-14.49172002-151.03375839-143.48407587a11.46496817 11.46496817 0 0 1 6.09936328-19.63949062l205.79617881-32.63503185 20.78598691-3.2961788L428.87898125 380.72038203 518.59235674 192.64331182a11.46496817 11.46496817 0 0 1 20.56815264-0.26369385l94.56879023 185.63503183zM496.64840732 85.52038203l-121.75796162 254.98089229L95.76433145 384.76178369A34.3949045 34.3949045 0 0 0 77.46050938 443.66879023l204.87324901 194.66369385-44.16879023 279.1146498a34.3949045 34.3949045 0 0 0 50.36560489 35.61592325l248.4-134.67898038 251.84522285 128.27579591a34.3949045 34.3949045 0 0 0 49.43694287-36.89426777l-51.30573223-277.85350284 199.73120977-199.90891758a34.3949045 34.3949045 0 0 0-19.82866201-58.40827998l-280.11783428-37.03184736L558.32993633 84.71210205a34.3949045 34.3949045 0 0 0-61.68152901 0.80254775z" p-id="1099"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1656035183065" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3395" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
|
||||
</style></defs><path d="M958.88 730.06H65.12c-18.28 0-33.12-14.82-33.12-33.12V68.91c0-18.29 14.83-33.12 33.12-33.12h893.77c18.28 0 33.12 14.82 33.12 33.12v628.03c-0.01 18.3-14.84 33.12-33.13 33.12zM98.23 663.83h827.53v-561.8H98.23v561.8z" p-id="3396"></path><path d="M512 954.55c-18.28 0-33.12-14.82-33.12-33.12V733.92c0-18.29 14.83-33.12 33.12-33.12s33.12 14.82 33.12 33.12v187.51c0 18.3-14.84 33.12-33.12 33.12z" p-id="3397"></path><path d="M762.01 988.21H261.99c-18.28 0-33.12-14.82-33.12-33.12 0-18.29 14.83-33.12 33.12-33.12h500.03c18.28 0 33.12 14.82 33.12 33.12-0.01 18.29-14.84 33.12-33.13 33.12zM514.74 578.55c-21.63 0-43.31-3.87-64.21-11.65-45.95-17.13-82.49-51.13-102.86-95.74-5.07-11.08-0.19-24.19 10.89-29.26 11.08-5.09 24.19-0.18 29.26 10.91 15.5 33.88 43.25 59.7 78.14 72.71 34.93 12.99 72.79 11.64 106.66-3.85 33.22-15.17 58.8-42.26 72.03-76.3 4.42-11.37 17.21-17.01 28.57-12.58 11.36 4.42 16.99 17.22 12.57 28.58-17.42 44.82-51.1 80.5-94.82 100.47-24.34 11.12-50.25 16.71-76.23 16.71z" p-id="3398"></path><path d="M325.27 528.78c-1.66 0-3.34-0.18-5.02-0.57-11.88-2.77-19.28-14.63-16.49-26.51l18.84-81c1.34-5.82 5-10.84 10.13-13.92 5.09-3.09 11.3-3.96 17.03-2.41l80.51 21.43c11.79 3.14 18.8 15.23 15.67 27.02-3.15 11.79-15.42 18.75-27.02 15.65l-58.49-15.57-13.69 58.81c-2.37 10.2-11.45 17.07-21.47 17.07zM360.8 351.01c-2.65 0-5.37-0.49-8-1.51-11.36-4.41-16.99-17.21-12.59-28.57 17.4-44.79 51.06-80.47 94.8-100.48 92.15-42.06 201.25-1.39 243.31 90.68 5.07 11.08 0.19 24.19-10.89 29.26-11.13 5.07-24.19 0.17-29.26-10.91-31.97-69.91-114.9-100.82-184.79-68.86-33.22 15.19-58.8 42.28-71.99 76.29-3.41 8.74-11.75 14.1-20.59 14.1z" p-id="3399"></path><path d="M684.68 376.74c-1.47 0-2.95-0.15-4.42-0.44l-81.61-16.68c-11.94-2.45-19.64-14.11-17.21-26.06 2.44-11.96 14.1-19.64 26.04-17.22l59.29 12.12 10.23-59.5c2.05-12 13.52-20.19 25.48-18.01 12.03 2.06 20.09 13.48 18.02 25.5l-14.08 81.96a22.089 22.089 0 0 1-9.29 14.49c-3.7 2.51-8.03 3.84-12.45 3.84z" p-id="3400"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/redis.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1605865043777" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="856" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1023.786667 611.84c-0.426667 9.770667-13.354667 20.693333-39.893334 34.56-54.613333 28.458667-337.749333 144.896-397.994666 176.298667-60.288 31.402667-93.738667 31.104-141.354667 8.32-47.616-22.741333-348.842667-144.469333-403.114667-170.368-27.093333-12.970667-40.917333-23.893333-41.386666-34.218667v103.509333c0 10.325333 14.250667 21.290667 41.386666 34.261334 54.272 25.941333 355.541333 147.626667 403.114667 170.368 47.616 22.784 81.066667 23.082667 141.354667-8.362667 60.245333-31.402667 343.338667-147.797333 397.994666-176.298667 27.776-14.464 40.106667-25.728 40.106667-35.925333v-102.058667l-0.213333-0.085333z m0-168.746667c-0.512 9.770667-13.397333 20.650667-39.893334 34.517334-54.613333 28.458667-337.749333 144.896-397.994666 176.298666-60.288 31.402667-93.738667 31.104-141.354667 8.362667-47.616-22.741333-348.842667-144.469333-403.114667-170.410667-27.093333-12.928-40.917333-23.893333-41.386666-34.176v103.509334c0 10.325333 14.250667 21.248 41.386666 34.218666 54.272 25.941333 355.498667 147.626667 403.114667 170.368 47.616 22.784 81.066667 23.082667 141.354667-8.32 60.245333-31.402667 343.338667-147.84 397.994666-176.298666 27.776-14.506667 40.106667-25.770667 40.106667-35.968v-102.058667l-0.256-0.042667z m0-175.018666c0.469333-10.410667-13.141333-19.541333-40.533334-29.610667-53.248-19.498667-334.634667-131.498667-388.522666-151.253333-53.888-19.712-75.818667-18.901333-139.093334 3.84C392.234667 113.706667 92.629333 231.253333 39.338667 252.074667c-26.666667 10.496-39.68 20.181333-39.253334 30.506666V386.133333c0 10.325333 14.250667 21.248 41.386667 34.218667 54.272 25.941333 355.498667 147.669333 403.114667 170.410667 47.616 22.741333 81.066667 23.04 141.354666-8.362667 60.245333-31.402667 343.338667-147.84 397.994667-176.298667 27.776-14.506667 40.106667-25.770667 40.106667-35.968V268.074667h-0.341334zM366.677333 366.08l237.269334-36.437333-71.68 105.088-165.546667-68.650667z m524.8-94.634667l-140.330666 55.466667-15.232 5.973333-140.245334-55.466666 155.392-61.44 140.373334 55.466666z m-411.989333-101.674666l-22.954667-42.325334 71.594667 27.989334 67.498667-22.101334-18.261334 43.733334 68.778667 25.770666-88.704 9.216-19.882667 47.786667-32.085333-53.290667-102.4-9.216 76.416-27.562666z m-176.768 59.733333c70.058667 0 126.805333 21.973333 126.805333 49.109333s-56.746667 49.152-126.805333 49.152-126.848-22.058667-126.848-49.152c0-27.136 56.789333-49.152 126.848-49.152z" p-id="857"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
1
pc-cattle-transportation/src/assets/icons/svg/row.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1579339929870" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1182" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M152 854.856875h325.7146875V237.715625H134.856875v600q0 6.99375 5.0746875 12.0684375T152 854.856875z m737.143125-17.1421875v-600H546.284375v617.1421875H872q6.99375 0 12.0684375-5.07375t5.0746875-12.0684375z m68.5715625-651.429375V837.715625q0 35.3821875-25.16625 60.5484375T872 923.4284375H152q-35.383125 0-60.5484375-25.1653125T66.284375 837.7146875V186.284375q0-35.3821875 25.16625-60.5484375T152 100.5715625h720q35.383125 0 60.5484375 25.1653125t25.16625 60.5484375z" p-id="1183"></path></svg>
|
||||
|
After Width: | Height: | Size: 873 B |