@ -1,8 +0,0 @@ |
|||||
# Default ignored files |
|
||||
/shelf/ |
|
||||
/workspace.xml |
|
||||
# Editor-based HTTP Client requests |
|
||||
/httpRequests/ |
|
||||
# Datasource local storage ignored files |
|
||||
/dataSources/ |
|
||||
/dataSources.local.xml |
|
@ -1,9 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<module type="JAVA_MODULE" version="4"> |
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
|
||||
<exclude-output /> |
|
||||
<content url="file://$MODULE_DIR$" /> |
|
||||
<orderEntry type="inheritedJdk" /> |
|
||||
<orderEntry type="sourceFolder" forTests="false" /> |
|
||||
</component> |
|
||||
</module> |
|
@ -1,6 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<project version="4"> |
|
||||
<component name="ProjectRootManager"> |
|
||||
<output url="file://$PROJECT_DIR$/out" /> |
|
||||
</component> |
|
||||
</project> |
|
@ -1,8 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<project version="4"> |
|
||||
<component name="ProjectModuleManager"> |
|
||||
<modules> |
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/hand_device.iml" filepath="$PROJECT_DIR$/.idea/hand_device.iml" /> |
|
||||
</modules> |
|
||||
</component> |
|
||||
</project> |
|
@ -1,6 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<project version="4"> |
|
||||
<component name="VcsDirectoryMappings"> |
|
||||
<mapping directory="" vcs="Git" /> |
|
||||
</component> |
|
||||
</project> |
|
@ -0,0 +1,9 @@ |
|||||
|
# 电子锁 |
||||
|
|
||||
|
## tracup |
||||
|
|
||||
|
[手持表 Tracup 地址](https://www.tracup.com/projects/16e1f1fea4b1aadc5373f3bd908de636/list) |
||||
|
|
||||
|
## 原型图 |
||||
|
|
||||
|
[手持表后台管理系统产品原型](https://tubzzb.axshare.com/) |
@ -0,0 +1,101 @@ |
|||||
|
# 依赖目录 |
||||
|
node_modules/ |
||||
|
.pnpm-store/ |
||||
|
|
||||
|
# 构建输出 |
||||
|
dist/ |
||||
|
dist-ssr/ |
||||
|
build/ |
||||
|
*.local |
||||
|
|
||||
|
# 缓存文件 |
||||
|
.cache/ |
||||
|
.parcel-cache/ |
||||
|
.vite/ |
||||
|
.eslintcache |
||||
|
.stylelintcache |
||||
|
|
||||
|
# 日志文件 |
||||
|
*.log |
||||
|
npm-debug.log* |
||||
|
yarn-debug.log* |
||||
|
yarn-error.log* |
||||
|
pnpm-debug.log* |
||||
|
lerna-debug.log* |
||||
|
|
||||
|
# 运行时数据 |
||||
|
pids |
||||
|
*.pid |
||||
|
*.seed |
||||
|
*.pid.lock |
||||
|
|
||||
|
# 覆盖率目录 |
||||
|
coverage/ |
||||
|
*.lcov |
||||
|
.nyc_output |
||||
|
|
||||
|
# 依赖锁定文件 |
||||
|
package-lock.json |
||||
|
yarn.lock |
||||
|
pnpm-lock.yaml |
||||
|
|
||||
|
# 环境变量文件 |
||||
|
.env |
||||
|
.env.local |
||||
|
.env.development.local |
||||
|
.env.test.local |
||||
|
.env.production.local |
||||
|
|
||||
|
# IDE和编辑器 |
||||
|
.vscode/ |
||||
|
.idea/ |
||||
|
*.swp |
||||
|
*.swo |
||||
|
*~ |
||||
|
|
||||
|
# 操作系统生成的文件 |
||||
|
.DS_Store |
||||
|
.DS_Store? |
||||
|
._* |
||||
|
.Spotlight-V100 |
||||
|
.Trashes |
||||
|
ehthumbs.db |
||||
|
Thumbs.db |
||||
|
|
||||
|
# 临时文件 |
||||
|
*.tmp |
||||
|
*.temp |
||||
|
.tmp/ |
||||
|
.temp/ |
||||
|
|
||||
|
# 测试相关 |
||||
|
.nyc_output/ |
||||
|
coverage/ |
||||
|
*.test.js |
||||
|
*.spec.js |
||||
|
|
||||
|
# 自动生成的文件 |
||||
|
auto-*.d.ts |
||||
|
components.d.ts |
||||
|
auto-imports.d.ts |
||||
|
|
||||
|
# 历史记录 |
||||
|
.history/ |
||||
|
|
||||
|
# 调试文件 |
||||
|
.vscode/ |
||||
|
*.code-workspace |
||||
|
|
||||
|
# 本地配置文件 |
||||
|
.vscode/settings.json |
||||
|
.vscode/launch.json |
||||
|
.vscode/extensions.json |
||||
|
|
||||
|
# 包管理器文件 |
||||
|
.npmrc |
||||
|
.yarnrc |
||||
|
.yarnrc.yml |
||||
|
|
||||
|
# 其他 |
||||
|
*.tgz |
||||
|
*.tar.gz |
@ -0,0 +1,30 @@ |
|||||
|
NODE_ENV=production |
||||
|
|
||||
|
VITE_DEV=true |
||||
|
|
||||
|
# 请求路径 |
||||
|
VITE_BASE_URL='https://mobile.zdhlcn.com' |
||||
|
|
||||
|
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 |
||||
|
VITE_UPLOAD_TYPE=server |
||||
|
|
||||
|
# 接口地址 |
||||
|
VITE_API_URL=/admin-api |
||||
|
|
||||
|
# 是否删除debugger |
||||
|
VITE_DROP_DEBUGGER=false |
||||
|
|
||||
|
# 是否删除console.log |
||||
|
VITE_DROP_CONSOLE=false |
||||
|
|
||||
|
# 是否sourcemap |
||||
|
VITE_SOURCEMAP=true |
||||
|
|
||||
|
# 打包路径 |
||||
|
VITE_BASE_PATH=/ |
||||
|
|
||||
|
# 输出路径 |
||||
|
VITE_OUT_DIR=dist |
||||
|
|
||||
|
# TAURI启动标记 |
||||
|
VITE_IS_TAURI=true |
@ -1,18 +0,0 @@ |
|||||
{ |
|
||||
"recommendations": [ |
|
||||
"christian-kohler.path-intellisense", |
|
||||
"vscode-icons-team.vscode-icons", |
|
||||
"davidanson.vscode-markdownlint", |
|
||||
"dbaeumer.vscode-eslint", |
|
||||
"esbenp.prettier-vscode", |
|
||||
"mrmlnc.vscode-less", |
|
||||
"lokalise.i18n-ally", |
|
||||
"redhat.vscode-yaml", |
|
||||
"csstools.postcss", |
|
||||
"mikestead.dotenv", |
|
||||
"eamodio.gitlens", |
|
||||
"antfu.iconify", |
|
||||
"antfu.unocss", |
|
||||
"Vue.volar" |
|
||||
] |
|
||||
} |
|
@ -1,16 +0,0 @@ |
|||||
{ |
|
||||
// Use IntelliSense to learn about possible attributes. |
|
||||
// Hover to view descriptions of existing attributes. |
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 |
|
||||
"version": "0.2.0", |
|
||||
"configurations": [ |
|
||||
{ |
|
||||
"type": "msedge", |
|
||||
"request": "launch", |
|
||||
"name": "Launch Edge against localhost", |
|
||||
"url": "http://localhost", |
|
||||
"webRoot": "${workspaceFolder}/src", |
|
||||
"sourceMaps": true |
|
||||
} |
|
||||
] |
|
||||
} |
|
@ -1,146 +0,0 @@ |
|||||
{ |
|
||||
"typescript.tsdk": "node_modules/typescript/lib", |
|
||||
"npm.packageManager": "pnpm", |
|
||||
"editor.tabSize": 2, |
|
||||
"prettier.printWidth": 100, // 超过最大值换行 |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode", |
|
||||
"files.eol": "\n", |
|
||||
"search.exclude": { |
|
||||
"**/node_modules": true, |
|
||||
"**/*.log": true, |
|
||||
"**/*.log*": true, |
|
||||
"**/bower_components": true, |
|
||||
"**/dist": true, |
|
||||
"**/elehukouben": true, |
|
||||
"**/.git": true, |
|
||||
"**/.gitignore": true, |
|
||||
"**/.svn": true, |
|
||||
"**/.DS_Store": true, |
|
||||
"**/.idea": true, |
|
||||
"**/.vscode": false, |
|
||||
"**/yarn.lock": true, |
|
||||
"**/tmp": true, |
|
||||
"out": true, |
|
||||
"dist": true, |
|
||||
"node_modules": true, |
|
||||
"CHANGELOG.md": true, |
|
||||
"examples": true, |
|
||||
"res": true, |
|
||||
"screenshots": true, |
|
||||
"yarn-error.log": true, |
|
||||
"**/.yarn": true |
|
||||
}, |
|
||||
"files.exclude": { |
|
||||
"**/.cache": true, |
|
||||
"**/.editorconfig": true, |
|
||||
"**/.eslintcache": true, |
|
||||
"**/bower_components": true, |
|
||||
"**/.idea": true, |
|
||||
"**/tmp": true, |
|
||||
"**/.git": true, |
|
||||
"**/.svn": true, |
|
||||
"**/.hg": true, |
|
||||
"**/CVS": true, |
|
||||
"**/.DS_Store": true |
|
||||
}, |
|
||||
"files.watcherExclude": { |
|
||||
"**/.git/objects/**": true, |
|
||||
"**/.git/subtree-cache/**": true, |
|
||||
"**/.vscode/**": true, |
|
||||
"**/node_modules/**": true, |
|
||||
"**/tmp/**": true, |
|
||||
"**/bower_components/**": true, |
|
||||
"**/dist/**": true, |
|
||||
"**/yarn.lock": true |
|
||||
}, |
|
||||
"stylelint.enable": true, |
|
||||
"stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"], |
|
||||
"path-intellisense.mappings": { |
|
||||
"@/": "${workspaceRoot}/src" |
|
||||
}, |
|
||||
"[javascriptreact]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[typescript]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[typescriptreact]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[html]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[css]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[less]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[scss]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"[markdown]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"editor.codeActionsOnSave": { |
|
||||
"source.fixAll.eslint": "explicit", |
|
||||
"source.fixAll.stylelint": "explicit" |
|
||||
}, |
|
||||
"editor.formatOnSave": true, |
|
||||
"[vue]": { |
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode" |
|
||||
}, |
|
||||
"i18n-ally.localesPaths": ["src/locales"], |
|
||||
"i18n-ally.keystyle": "nested", |
|
||||
"i18n-ally.sortKeys": true, |
|
||||
"i18n-ally.namespace": false, |
|
||||
"i18n-ally.enabledParsers": ["ts"], |
|
||||
"i18n-ally.sourceLanguage": "en", |
|
||||
"i18n-ally.displayLanguage": "zh-CN", |
|
||||
"i18n-ally.enabledFrameworks": ["vue", "react"], |
|
||||
"cSpell.words": [ |
|
||||
"brotli", |
|
||||
"browserslist", |
|
||||
"codemirror", |
|
||||
"commitlint", |
|
||||
"cropperjs", |
|
||||
"echart", |
|
||||
"echarts", |
|
||||
"esnext", |
|
||||
"esno", |
|
||||
"iconify", |
|
||||
"INTLIFY", |
|
||||
"lintstagedrc", |
|
||||
"logicflow", |
|
||||
"nprogress", |
|
||||
"pinia", |
|
||||
"pnpm", |
|
||||
"qrcode", |
|
||||
"sider", |
|
||||
"sortablejs", |
|
||||
"stylelint", |
|
||||
"svgs", |
|
||||
"unocss", |
|
||||
"unplugin", |
|
||||
"unref", |
|
||||
"videojs", |
|
||||
"VITE", |
|
||||
"vitejs", |
|
||||
"vueuse", |
|
||||
"wangeditor", |
|
||||
"xingyu", |
|
||||
"yudao", |
|
||||
"zxcvbn" |
|
||||
], |
|
||||
// 控制相关文件嵌套展示 |
|
||||
"explorer.fileNesting.enabled": true, |
|
||||
"explorer.fileNesting.expand": false, |
|
||||
"explorer.fileNesting.patterns": { |
|
||||
"*.ts": "$(capture).test.ts, $(capture).test.tsx", |
|
||||
"*.tsx": "$(capture).test.ts, $(capture).test.tsx", |
|
||||
"*.env": "$(capture).env.*", |
|
||||
"package.json": "pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.eslintrc-auto-import.json,.gitignore,prettier.config.js,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore" |
|
||||
}, |
|
||||
"terminal.integrated.scrollback": 10000, |
|
||||
"nuxt.isNuxtApp": false |
|
||||
} |
|
After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 60 KiB |
@ -0,0 +1,4 @@ |
|||||
|
# Generated by Cargo |
||||
|
# will have compiled files and executables |
||||
|
/target/ |
||||
|
/gen/schemas |
@ -0,0 +1,25 @@ |
|||||
|
[package] |
||||
|
name = "挂牌上锁平台" |
||||
|
version = "0.1.0" |
||||
|
description = "挂牌上锁平台" |
||||
|
authors = ["you"] |
||||
|
license = "" |
||||
|
repository = "" |
||||
|
edition = "2021" |
||||
|
rust-version = "1.77.2" |
||||
|
|
||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||
|
|
||||
|
[lib] |
||||
|
name = "app_lib" |
||||
|
crate-type = ["staticlib", "cdylib", "rlib"] |
||||
|
|
||||
|
[build-dependencies] |
||||
|
tauri-build = { version = "2.4.0", features = [] } |
||||
|
|
||||
|
[dependencies] |
||||
|
serde_json = "1.0" |
||||
|
serde = { version = "1.0", features = ["derive"] } |
||||
|
log = "0.4" |
||||
|
tauri = { version = "2.8.2", features = [] } |
||||
|
tauri-plugin-log = "2" |
@ -0,0 +1,3 @@ |
|||||
|
fn main() { |
||||
|
tauri_build::build() |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
{ |
||||
|
"$schema": "../gen/schemas/desktop-schema.json", |
||||
|
"identifier": "default", |
||||
|
"description": "enables the default permissions", |
||||
|
"windows": [ |
||||
|
"main" |
||||
|
], |
||||
|
"permissions": [ |
||||
|
"core:default" |
||||
|
] |
||||
|
} |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 225 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 584 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 60 KiB |
@ -0,0 +1,16 @@ |
|||||
|
#[cfg_attr(mobile, tauri::mobile_entry_point)] |
||||
|
pub fn run() { |
||||
|
tauri::Builder::default() |
||||
|
.setup(|app| { |
||||
|
if cfg!(debug_assertions) { |
||||
|
app.handle().plugin( |
||||
|
tauri_plugin_log::Builder::default() |
||||
|
.level(log::LevelFilter::Info) |
||||
|
.build(), |
||||
|
)?; |
||||
|
} |
||||
|
Ok(()) |
||||
|
}) |
||||
|
.run(tauri::generate_context!()) |
||||
|
.expect("error while running tauri application"); |
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
|
||||
|
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] |
||||
|
|
||||
|
fn main() { |
||||
|
app_lib::run(); |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
{ |
||||
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json", |
||||
|
"productName": "ElectronicLock", |
||||
|
"version": "0.1.0", |
||||
|
"identifier": "lock.zdhlcn.com", |
||||
|
"build": { |
||||
|
"frontendDist": "../dist-prod", |
||||
|
"devUrl": "http://localhost", |
||||
|
"beforeDevCommand": "pnpm dev:tauri", |
||||
|
"beforeBuildCommand": "pnpm build:tauri" |
||||
|
}, |
||||
|
"app": { |
||||
|
"windows": [ |
||||
|
{ |
||||
|
"title": "挂牌上锁平台", |
||||
|
"width": 800, |
||||
|
"height": 600, |
||||
|
"resizable": true, |
||||
|
"fullscreen": false |
||||
|
} |
||||
|
], |
||||
|
"security": { |
||||
|
"csp": null |
||||
|
} |
||||
|
}, |
||||
|
"bundle": { |
||||
|
"active": true, |
||||
|
"targets": "all", |
||||
|
"icon": [ |
||||
|
"icons/32x32.png", |
||||
|
"icons/128x128.png", |
||||
|
"icons/128x128@2x.png", |
||||
|
"icons/icon.icns", |
||||
|
"icons/icon.ico" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -1,52 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 电子锁信息 */ |
|
||||
export interface Lock { |
|
||||
id?: number; // 主键ID
|
|
||||
lockNumber?: number; // 编号
|
|
||||
lockName?: string; // 名称
|
|
||||
lockStatus?: number; // 状态
|
|
||||
lockType?: number; // 锁具类型
|
|
||||
lockEnableStatus?: number; // 启用状态: 0=未启用, 1=已启用
|
|
||||
lockLastChargeTime?: string | Dayjs; // 上次充电时间
|
|
||||
lockBluetoothId?: string; // 蓝牙ID
|
|
||||
} |
|
||||
|
|
||||
// 电子锁 API
|
|
||||
export const LockApi = { |
|
||||
// 查询电子锁分页
|
|
||||
getLockPage: async (params: any) => { |
|
||||
return await request.get({ url: `/electron/lock/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询电子锁详情
|
|
||||
getLock: async (id: number) => { |
|
||||
return await request.get({ url: `/electron/lock/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增电子锁
|
|
||||
createLock: async (data: Lock) => { |
|
||||
return await request.post({ url: `/electron/lock/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改电子锁
|
|
||||
updateLock: async (data: Lock) => { |
|
||||
return await request.put({ url: `/electron/lock/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除电子锁
|
|
||||
deleteLock: async (id: number) => { |
|
||||
return await request.delete({ url: `/electron/lock/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除电子锁 */ |
|
||||
deleteLockList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/electron/lock/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出电子锁 Excel
|
|
||||
exportLock: async (params) => { |
|
||||
return await request.download({ url: `/electron/lock/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,53 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 电子锁操作记录信息 */ |
|
||||
export interface LockWorkRecord { |
|
||||
id?: number; // 主键ID
|
|
||||
operatorId?: number; // 操作人ID
|
|
||||
lockId?: number; // 电子锁ID
|
|
||||
isolationPlanItemDetailId?: number; // 关联的子项详情ID (某些操作可能不关联)
|
|
||||
recordType?: number; // 记录类型
|
|
||||
signaturePath?: string; // 操作签名 (图片路径)
|
|
||||
beforePhotoPath?: string; // 操作前照片 (图片路径)
|
|
||||
afterPhotoPath?: string; // 操作后照片 (图片路径)
|
|
||||
gpsCoordinates?: string; // 操作GPS坐标
|
|
||||
} |
|
||||
|
|
||||
// 电子锁操作记录 API
|
|
||||
export const LockWorkRecordApi = { |
|
||||
// 查询电子锁操作记录分页
|
|
||||
getLockWorkRecordPage: async (params: any) => { |
|
||||
return await request.get({ url: `/electron/lock-word-record/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询电子锁操作记录详情
|
|
||||
getLockWorkRecord: async (id: number) => { |
|
||||
return await request.get({ url: `/electron/lock-word-record/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增电子锁操作记录
|
|
||||
createLockWorkRecord: async (data: LockWorkRecord) => { |
|
||||
return await request.post({ url: `/electron/lock-word-record/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改电子锁操作记录
|
|
||||
updateLockWorkRecord: async (data: LockWorkRecord) => { |
|
||||
return await request.put({ url: `/electron/lock-word-record/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除电子锁操作记录
|
|
||||
deleteLockWorkRecord: async (id: number) => { |
|
||||
return await request.delete({ url: `/electron/lock-word-record/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除电子锁操作记录 */ |
|
||||
deleteLockWorkRecordList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/electron/lock-word-record/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出电子锁操作记录 Excel
|
|
||||
exportLockWorkRecord: async (params) => { |
|
||||
return await request.download({ url: `/electron/lock-word-record/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,47 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 指导书与隔离点关联信息 */ |
|
||||
export interface IsolationPoint { |
|
||||
id?: number; // id
|
|
||||
guideId?: number; // 隔离指导书ID
|
|
||||
isolationPointId?: number; // 隔离点ID
|
|
||||
} |
|
||||
|
|
||||
// 指导书与隔离点关联 API
|
|
||||
export const IsolationPointApi = { |
|
||||
// 查询指导书与隔离点关联分页
|
|
||||
getIsolationPointPage: async (params: any) => { |
|
||||
return await request.get({ url: `/guide/isolation-point/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询指导书与隔离点关联详情
|
|
||||
getIsolationPoint: async (id: number) => { |
|
||||
return await request.get({ url: `/guide/isolation-point/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增指导书与隔离点关联
|
|
||||
createIsolationPoint: async (data: IsolationPoint) => { |
|
||||
return await request.post({ url: `/guide/isolation-point/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改指导书与隔离点关联
|
|
||||
updateIsolationPoint: async (data: IsolationPoint) => { |
|
||||
return await request.put({ url: `/guide/isolation-point/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除指导书与隔离点关联
|
|
||||
deleteIsolationPoint: async (id: number) => { |
|
||||
return await request.delete({ url: `/guide/isolation-point/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除指导书与隔离点关联 */ |
|
||||
deleteIsolationPointList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/guide/isolation-point/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出指导书与隔离点关联 Excel
|
|
||||
exportIsolationPoint: async (params) => { |
|
||||
return await request.download({ url: `/guide/isolation-point/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,54 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 隔离指导书信息 */ |
|
||||
export interface LockGuide { |
|
||||
id?: number; // 主键ID
|
|
||||
name?: string; // 指导书名称
|
|
||||
code?: string; // 指导书编码
|
|
||||
operatorId?: number; // 操作人ID
|
|
||||
operatorHelperId?: number; // 操作协助人ID
|
|
||||
verifierId?: number; // 验证人ID
|
|
||||
verifierHelperId?: number; // 验证协助人ID
|
|
||||
guideContent?: string; // 工作内容和范围
|
|
||||
guideLockNums?: number; // 所需设备锁数量
|
|
||||
isolationPointIds?: number[]; // 关联隔离点ID
|
|
||||
} |
|
||||
|
|
||||
// 隔离指导书 API
|
|
||||
export const LockGuideApi = { |
|
||||
// 查询隔离指导书分页
|
|
||||
getLockGuidePage: async (params: any) => { |
|
||||
return await request.get({ url: `/guide/lock-guide/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询隔离指导书详情
|
|
||||
getLockGuide: async (id: number) => { |
|
||||
return await request.get({ url: `/guide/lock-guide/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增隔离指导书
|
|
||||
createLockGuide: async (data: LockGuide) => { |
|
||||
return await request.post({ url: `/guide/lock-guide/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改隔离指导书
|
|
||||
updateLockGuide: async (data: LockGuide) => { |
|
||||
return await request.put({ url: `/guide/lock-guide/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除隔离指导书
|
|
||||
deleteLockGuide: async (id: number) => { |
|
||||
return await request.delete({ url: `/guide/lock-guide/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除隔离指导书 */ |
|
||||
deleteLockGuideList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/guide/lock-guide/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出隔离指导书 Excel
|
|
||||
exportLockGuide: async (params) => { |
|
||||
return await request.download({ url: `/guide/lock-guide/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,47 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 检修任务信息 */ |
|
||||
export interface Plan { |
|
||||
id: number; // 主键ID
|
|
||||
ipName?: string; // 任务名称
|
|
||||
status?: number; // 状态
|
|
||||
} |
|
||||
|
|
||||
// 检修任务 API
|
|
||||
export const PlanApi = { |
|
||||
// 查询检修任务分页
|
|
||||
getPlanPage: async (params: any) => { |
|
||||
return await request.get({ url: `/isolation/plan/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询检修任务详情
|
|
||||
getPlan: async (id: number) => { |
|
||||
return await request.get({ url: `/isolation/plan/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增检修任务
|
|
||||
createPlan: async (data: Plan) => { |
|
||||
return await request.post({ url: `/isolation/plan/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改检修任务
|
|
||||
updatePlan: async (data: Plan) => { |
|
||||
return await request.put({ url: `/isolation/plan/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除检修任务
|
|
||||
deletePlan: async (id: number) => { |
|
||||
return await request.delete({ url: `/isolation/plan/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除检修任务 */ |
|
||||
deletePlanList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/isolation/plan/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出检修任务 Excel
|
|
||||
exportPlan: async (params) => { |
|
||||
return await request.download({ url: `/isolation/plan/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,52 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 检修任务子项信息 */ |
|
||||
export interface PlanItem { |
|
||||
id?: number; // 主键ID
|
|
||||
isolationPlanId?: number; // 检修任务ID
|
|
||||
guideId?: number; // 隔离指导书ID
|
|
||||
operatorId?: number; // 集中挂牌人ID
|
|
||||
operatorHelperId?: number; // 集中挂牌协助人ID
|
|
||||
verifierId?: number; // 验证人ID
|
|
||||
verifierHelperId?: number; // 验证协助人ID
|
|
||||
status?: number; // 子项状态: 0=未完成, 1=已完成
|
|
||||
} |
|
||||
|
|
||||
// 检修任务子项 API
|
|
||||
export const PlanItemApi = { |
|
||||
// 查询检修任务子项分页
|
|
||||
getPlanItemPage: async (params: any) => { |
|
||||
return await request.get({ url: `/isolation/plan-item/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询检修任务子项详情
|
|
||||
getPlanItem: async (id: number) => { |
|
||||
return await request.get({ url: `/isolation/plan-item/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增检修任务子项
|
|
||||
createPlanItem: async (data: PlanItem) => { |
|
||||
return await request.post({ url: `/isolation/plan-item/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改检修任务子项
|
|
||||
updatePlanItem: async (data: PlanItem) => { |
|
||||
return await request.put({ url: `/isolation/plan-item/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除检修任务子项
|
|
||||
deletePlanItem: async (id: number) => { |
|
||||
return await request.delete({ url: `/isolation/plan-item/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除检修任务子项 */ |
|
||||
deletePlanItemList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/isolation/plan-item/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出检修任务子项 Excel
|
|
||||
exportPlanItem: async (params) => { |
|
||||
return await request.download({ url: `/isolation/plan-item/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,49 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 检修任务子项详情信息 */ |
|
||||
export interface PlanItemDetail { |
|
||||
id?: number; // 主键ID
|
|
||||
isolationPlanItemId?: number; // 检修任务子项ID
|
|
||||
isolationPointId?: number; // 隔离点ID
|
|
||||
lockId?: number; // 电子锁ID
|
|
||||
lockStatus?: number; // 锁状态: 0=未上锁, 1=已上锁, 2=已解锁
|
|
||||
} |
|
||||
|
|
||||
// 检修任务子项详情 API
|
|
||||
export const PlanItemDetailApi = { |
|
||||
// 查询检修任务子项详情分页
|
|
||||
getPlanItemDetailPage: async (params: any) => { |
|
||||
return await request.get({ url: `/isolation/plan-item-detail/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询检修任务子项详情详情
|
|
||||
getPlanItemDetail: async (id: number) => { |
|
||||
return await request.get({ url: `/isolation/plan-item-detail/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增检修任务子项详情
|
|
||||
createPlanItemDetail: async (data: PlanItemDetail) => { |
|
||||
return await request.post({ url: `/isolation/plan-item-detail/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改检修任务子项详情
|
|
||||
updatePlanItemDetail: async (data: PlanItemDetail) => { |
|
||||
return await request.put({ url: `/isolation/plan-item-detail/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除检修任务子项详情
|
|
||||
deletePlanItemDetail: async (id: number) => { |
|
||||
return await request.delete({ url: `/isolation/plan-item-detail/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除检修任务子项详情 */ |
|
||||
deletePlanItemDetailList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/isolation/plan-item-detail/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出检修任务子项详情 Excel
|
|
||||
exportPlanItemDetail: async (params) => { |
|
||||
return await request.download({ url: `/isolation/plan-item-detail/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,51 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 个人生命锁信息 */ |
|
||||
export interface PlanLifeLock { |
|
||||
id: number; // 主键ID
|
|
||||
isolationPlanItemDetailId?: number; // 子项详情ID
|
|
||||
userId?: number; // 上锁人ID
|
|
||||
lockType?: number; // 生命锁类型
|
|
||||
lockStatus?: number; // 锁定状态: 0=未上锁, 1=已上锁
|
|
||||
lockTime?: number; // 上锁时间
|
|
||||
unlockTime?: number; // 解锁时间
|
|
||||
} |
|
||||
|
|
||||
// 个人生命锁 API
|
|
||||
export const PlanLifeLockApi = { |
|
||||
// 查询个人生命锁分页
|
|
||||
getPlanLifeLockPage: async (params: any) => { |
|
||||
return await request.get({ url: `/isolation/plan-life-lock/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询个人生命锁详情
|
|
||||
getPlanLifeLock: async (id: number) => { |
|
||||
return await request.get({ url: `/isolation/plan-life-lock/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增个人生命锁
|
|
||||
createPlanLifeLock: async (data: PlanLifeLock) => { |
|
||||
return await request.post({ url: `/isolation/plan-life-lock/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改个人生命锁
|
|
||||
updatePlanLifeLock: async (data: PlanLifeLock) => { |
|
||||
return await request.put({ url: `/isolation/plan-life-lock/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除个人生命锁
|
|
||||
deletePlanLifeLock: async (id: number) => { |
|
||||
return await request.delete({ url: `/isolation/plan-life-lock/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除个人生命锁 */ |
|
||||
deletePlanLifeLockList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/isolation/plan-life-lock/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出个人生命锁 Excel
|
|
||||
exportPlanLifeLock: async (params) => { |
|
||||
return await request.download({ url: `/isolation/plan-life-lock/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,51 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
import type { Dayjs } from 'dayjs'; |
|
||||
|
|
||||
/** 隔离点信息 */ |
|
||||
export interface Point { |
|
||||
id?: number; // 主键ID
|
|
||||
ipType?: string; // 隔离点类型
|
|
||||
ipName?: string; // 隔离点名称
|
|
||||
ipLocation?: string; // 隔离点位置
|
|
||||
ipNumber?: number; // 隔离点编号
|
|
||||
status?: number; // 隔离点状态
|
|
||||
guideLockNums?: number; // 电子锁数量
|
|
||||
} |
|
||||
|
|
||||
// 隔离点 API
|
|
||||
export const PointApi = { |
|
||||
// 查询隔离点分页
|
|
||||
getPointPage: async (params: any) => { |
|
||||
return await request.get({ url: `/isolation/point/page`, params }) |
|
||||
}, |
|
||||
|
|
||||
// 查询隔离点详情
|
|
||||
getPoint: async (id: number) => { |
|
||||
return await request.get({ url: `/isolation/point/get?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
// 新增隔离点
|
|
||||
createPoint: async (data: Point) => { |
|
||||
return await request.post({ url: `/isolation/point/create`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 修改隔离点
|
|
||||
updatePoint: async (data: Point) => { |
|
||||
return await request.put({ url: `/isolation/point/update`, data }) |
|
||||
}, |
|
||||
|
|
||||
// 删除隔离点
|
|
||||
deletePoint: async (id: number) => { |
|
||||
return await request.delete({ url: `/isolation/point/delete?id=` + id }) |
|
||||
}, |
|
||||
|
|
||||
/** 批量删除隔离点 */ |
|
||||
deletePointList: async (ids: number[]) => { |
|
||||
return await request.delete({ url: `/isolation/point/delete-list?ids=${ids.join(',')}` }) |
|
||||
}, |
|
||||
|
|
||||
// 导出隔离点 Excel
|
|
||||
exportPoint: async (params) => { |
|
||||
return await request.download({ url: `/isolation/point/export-excel`, params }) |
|
||||
} |
|
||||
} |
|
@ -1,66 +0,0 @@ |
|||||
import request from '@/config/axios' |
|
||||
|
|
||||
|
|
||||
|
|
||||
export const getAllLock = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/electron/lock/page`, params }) |
|
||||
} |
|
||||
|
|
||||
export const getAllIsolationPoint = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/isolation/point/page`, params }) |
|
||||
} |
|
||||
export const getAllIsolationPlan = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/isolation/plan/page`, params }) |
|
||||
} |
|
||||
export const getAllGuidance = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/guide/lock-guide/page`, params }) |
|
||||
} |
|
||||
export const getAllGuidanceIsolationPoint = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/guide/isolation-point/page`, params }) |
|
||||
} |
|
||||
export const getAllPlanItem = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/isolation/plan-item/page`, params }) |
|
||||
} |
|
||||
export const getAllPlanItemDetail = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/isolation/plan-item-detail/page`, params }) |
|
||||
} |
|
||||
export const getAllPlanLifeLock = (params: PageParam = { pageSize: 9999, pageNo: 1 }) => { |
|
||||
return request.get({ url: `/isolation/plan-life-lock/page`, params }) |
|
||||
} |
|
||||
const baseUrl = import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL |
|
||||
export const getAgentConfigSignature = (url: string) => { |
|
||||
return fetch(`${baseUrl}/js/weixin/getAgentConfigSignature?url=${url}`).then(async res => { |
|
||||
return await res.json() |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export const getConfigSignature = (url: string) => { |
|
||||
return fetch(`${baseUrl}/js/weixin/getConfigSignature?url=${url}`).then(async res => { |
|
||||
return await res.json() |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
export const getAllFormattedIsolationPlan = () => { |
|
||||
return request.get({ url: `/isolation/plan/planListAll` }) |
|
||||
} |
|
||||
|
|
||||
|
|
||||
// 获取所有基础数据
|
|
||||
export const getAllBaseData = () => request.get({ url: `isolation/point/getListAll` }) |
|
||||
|
|
||||
|
|
||||
// 查询用户管理列表
|
|
||||
export const getAllUser = () => request.get({ url: 'system/user/list-all-simple' }) |
|
||||
|
|
||||
// 根据隔离点获取相关记录
|
|
||||
export const getIsolationPointDetail = (id: number) => request.get({ url: `isolation/point/getPointListAll`, params: { id } }) |
|
||||
|
|
||||
export const bindLock = (data: { planItemDetailId: number; lockId: number }) => request.put({ url: `isolation/point/bindlock`, data }) |
|
||||
|
|
||||
export const lockAction = (data: { planItemDetailId: number, operateRecordId: number }) => request.put({ url: `isolation/point/createLock`, data }) |
|
||||
|
|
||||
export const verifyLockAction = (data: { planItemDetailId: number, verifyRecordId: number }) => request.put({ url: `isolation/point/verifyLock`, data }) |
|
||||
|
|
||||
export const verifyUnlockAction = (data: { planItemDetailId: number, lifelockId: number }) => request.put({ url: `isolation/point/verifyUnLock`, data }) |
|
||||
|
|
||||
export const unLockAction = (data: { planItemDetailId: number, planId: number, lifelockId: number }) => request.put({ url: `isolation/point/unLock`, data }) |
|