Browse Source

手持表前端初始化

master
whyzxhnd 1 week ago
parent
commit
9b0dfa9c3d
  1. 8
      .idea/.gitignore
  2. 9
      .idea/hand_device.iml
  3. 6
      .idea/misc.xml
  4. 8
      .idea/modules.xml
  5. 6
      .idea/vcs.xml
  6. 9
      readme.md
  7. 101
      web/.cursorignore
  8. 2
      web/.env
  9. 2
      web/.env.dev
  10. 30
      web/.env.dev.tauri
  11. 4
      web/.env.prod
  12. 7
      web/.env.prod.tauri
  13. 6
      web/.eslintrc.js
  14. 3
      web/.gitignore
  15. 18
      web/.vscode/extensions.json
  16. 16
      web/.vscode/launch.json
  17. 146
      web/.vscode/settings.json
  18. BIN
      web/app-icon.png
  19. 36
      web/package.json
  20. 5091
      web/pnpm-lock.yaml
  21. BIN
      web/public/favicon.ico
  22. BIN
      web/public/logo.png
  23. 4
      web/src-tauri/.gitignore
  24. 4995
      web/src-tauri/Cargo.lock
  25. 25
      web/src-tauri/Cargo.toml
  26. 3
      web/src-tauri/build.rs
  27. 11
      web/src-tauri/capabilities/default.json
  28. BIN
      web/src-tauri/icons/128x128.png
  29. BIN
      web/src-tauri/icons/128x128@2x.png
  30. BIN
      web/src-tauri/icons/32x32.png
  31. BIN
      web/src-tauri/icons/64x64.png
  32. BIN
      web/src-tauri/icons/Square107x107Logo.png
  33. BIN
      web/src-tauri/icons/Square142x142Logo.png
  34. BIN
      web/src-tauri/icons/Square150x150Logo.png
  35. BIN
      web/src-tauri/icons/Square284x284Logo.png
  36. BIN
      web/src-tauri/icons/Square30x30Logo.png
  37. BIN
      web/src-tauri/icons/Square310x310Logo.png
  38. BIN
      web/src-tauri/icons/Square44x44Logo.png
  39. BIN
      web/src-tauri/icons/Square71x71Logo.png
  40. BIN
      web/src-tauri/icons/Square89x89Logo.png
  41. BIN
      web/src-tauri/icons/StoreLogo.png
  42. BIN
      web/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png
  43. BIN
      web/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png
  44. BIN
      web/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png
  45. BIN
      web/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png
  46. BIN
      web/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png
  47. BIN
      web/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png
  48. BIN
      web/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png
  49. BIN
      web/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png
  50. BIN
      web/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png
  51. BIN
      web/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png
  52. BIN
      web/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png
  53. BIN
      web/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png
  54. BIN
      web/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png
  55. BIN
      web/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png
  56. BIN
      web/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png
  57. BIN
      web/src-tauri/icons/icon.icns
  58. BIN
      web/src-tauri/icons/icon.ico
  59. BIN
      web/src-tauri/icons/icon.png
  60. BIN
      web/src-tauri/icons/ios/AppIcon-20x20@1x.png
  61. BIN
      web/src-tauri/icons/ios/AppIcon-20x20@2x-1.png
  62. BIN
      web/src-tauri/icons/ios/AppIcon-20x20@2x.png
  63. BIN
      web/src-tauri/icons/ios/AppIcon-20x20@3x.png
  64. BIN
      web/src-tauri/icons/ios/AppIcon-29x29@1x.png
  65. BIN
      web/src-tauri/icons/ios/AppIcon-29x29@2x-1.png
  66. BIN
      web/src-tauri/icons/ios/AppIcon-29x29@2x.png
  67. BIN
      web/src-tauri/icons/ios/AppIcon-29x29@3x.png
  68. BIN
      web/src-tauri/icons/ios/AppIcon-40x40@1x.png
  69. BIN
      web/src-tauri/icons/ios/AppIcon-40x40@2x-1.png
  70. BIN
      web/src-tauri/icons/ios/AppIcon-40x40@2x.png
  71. BIN
      web/src-tauri/icons/ios/AppIcon-40x40@3x.png
  72. BIN
      web/src-tauri/icons/ios/AppIcon-512@2x.png
  73. BIN
      web/src-tauri/icons/ios/AppIcon-60x60@2x.png
  74. BIN
      web/src-tauri/icons/ios/AppIcon-60x60@3x.png
  75. BIN
      web/src-tauri/icons/ios/AppIcon-76x76@1x.png
  76. BIN
      web/src-tauri/icons/ios/AppIcon-76x76@2x.png
  77. BIN
      web/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png
  78. BIN
      web/src-tauri/icons/logo.png
  79. 16
      web/src-tauri/src/lib.rs
  80. 6
      web/src-tauri/src/main.rs
  81. 37
      web/src-tauri/tauri.conf.json
  82. 2
      web/src/App.vue
  83. 2
      web/src/api/bpm/processExpression/index.ts
  84. 1
      web/src/api/bpm/simple/index.ts
  85. 52
      web/src/api/electron/lock/index.ts
  86. 53
      web/src/api/electron/lockworkcord/index.ts
  87. 47
      web/src/api/guide/isolationpoint/index.ts
  88. 54
      web/src/api/guide/lockguide/index.ts
  89. 5
      web/src/api/infra/dataSourceConfig/index.ts
  90. 46
      web/src/api/infra/demo/demo03/erp/index.ts
  91. 46
      web/src/api/infra/demo/demo03/inner/index.ts
  92. 46
      web/src/api/infra/demo/demo03/normal/index.ts
  93. 47
      web/src/api/isolation/plan/index.ts
  94. 52
      web/src/api/isolation/planitem/index.ts
  95. 49
      web/src/api/isolation/planitemdetail/index.ts
  96. 51
      web/src/api/isolation/planlifelock/index.ts
  97. 51
      web/src/api/isolation/point/index.ts
  98. 66
      web/src/api/lock/index.ts
  99. 5
      web/src/api/system/mail/account/index.ts
  100. 5
      web/src/api/system/mail/template/index.ts

8
.idea/.gitignore

@ -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

9
.idea/hand_device.iml

@ -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>

6
.idea/misc.xml

@ -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>

8
.idea/modules.xml

@ -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>

6
.idea/vcs.xml

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

9
readme.md

@ -0,0 +1,9 @@
# 电子锁
## tracup
[手持表 Tracup 地址](https://www.tracup.com/projects/16e1f1fea4b1aadc5373f3bd908de636/list)
## 原型图
[手持表后台管理系统产品原型](https://tubzzb.axshare.com/)

101
web/.cursorignore

@ -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

2
web/.env

@ -1,5 +1,5 @@
# 标题
VITE_APP_TITLE=挂牌上锁平台
VITE_APP_TITLE=手持表管理系统
# 项目本地运行端口号
VITE_PORT=80

2
web/.env.dev

@ -3,8 +3,8 @@ NODE_ENV=production
VITE_DEV=true
# 请求路径
VITE_BASE_URL='https://mobile.zdhlcn.com'
VITE_BASE_URL='https://lock.zdhlcn.com:9807'
# VITE_BASE_URL='http://192.168.0.129:48080'
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server

30
web/.env.dev.tauri

@ -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

4
web/.env.prod

@ -3,7 +3,7 @@ NODE_ENV=production
VITE_DEV=false
# 请求路径
VITE_BASE_URL='https://lock.zdhlcn.com:9807'
VITE_BASE_URL='https://mobile.zdhlcn.com'
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server
@ -15,7 +15,7 @@ VITE_API_URL=/admin-api
VITE_DROP_DEBUGGER=true
# 是否删除console.log
VITE_DROP_CONSOLE=false
VITE_DROP_CONSOLE=true
# 是否sourcemap
VITE_SOURCEMAP=false

7
web/.env.test → web/.env.prod.tauri

@ -3,7 +3,7 @@ NODE_ENV=production
VITE_DEV=false
# 请求路径
VITE_BASE_URL=''
VITE_BASE_URL='https://mobile.zdhlcn.com'
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server
@ -24,4 +24,7 @@ VITE_SOURCEMAP=false
VITE_BASE_PATH=/
# 输出路径
VITE_OUT_DIR=dist-test
VITE_OUT_DIR=dist-prod
# TAURI启动标记
VITE_IS_TAURI=true

6
web/.eslintrc.js

@ -17,6 +17,12 @@ module.exports = defineConfig({
jsx: true
}
},
ignorePatterns: [
'src/components/Tinyflow/**/*.js',
'src/components/Tinyflow/**/*.umd.js',
'src/types/auto-imports.d.ts',
'src/types/auto-components.d.ts'
],
extends: [
'plugin:vue/vue3-recommended',
'plugin:@typescript-eslint/recommended',

3
web/.gitignore

@ -7,3 +7,6 @@ pnpm-debug
auto-*.d.ts
.idea
.history
pnpm-lock.yaml
.vite
.vscode

18
web/.vscode/extensions.json

@ -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"
]
}

16
web/.vscode/launch.json

@ -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
}
]
}

146
web/.vscode/settings.json

@ -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
}

BIN
web/app-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

36
web/package.json

@ -1,28 +1,26 @@
{
"name": "yudao-ui-admin-vue3",
"version": "2.6.1-snapshot",
"description": "基于vue3、vite4、element-plus、typesScript",
"author": "xingyu",
"private": false,
"name": "HandDevice",
"version": "0.0.41",
"private": true,
"scripts": {
"i": "pnpm install",
"dev": "vite --mode dev",
"ts:check": "vue-tsc --noEmit",
"build:local": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build",
"build:dev": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode dev",
"build:test": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode test",
"build:stage": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode stage",
"build:prod": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode prod",
"build:dev": "vite build --mode dev",
"build:prod": "vite build --mode prod",
"serve:dev": "vite preview --mode dev",
"serve:prod": "vite preview --mode prod",
"preview": "pnpm build:local && vite preview",
"preview": "pnpm build:dev && vite preview",
"clean": "npx rimraf node_modules",
"clean:cache": "npx rimraf node_modules/.cache",
"lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src",
"lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,scss,vue,html,md}\"",
"lint:style": "stylelint --fix \"./src/**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
"lint:lint-staged": "lint-staged -c ",
"gen:ww": "npx wwutil ticket ww6e1eee0a8ae45397 ITbfuoZkmUifGoDL5ZB8SyuMzVM8VXZNkfZJzYn5sGo"
"dev:tauri": "vite --mode dev.tauri",
"build:tauri": "vite build --mode prod.tauri",
"tauri:dev": "tauri dev",
"tauri:build": "tauri build",
"tauri:icon": "tauri icon public/logo.png"
},
"dependencies": {
"@element-plus/icons-vue": "^2.1.0",
@ -88,6 +86,7 @@
"@iconify/json": "^2.2.187",
"@intlify/unplugin-vue-i18n": "^2.0.0",
"@purge-icons/generated": "^0.9.0",
"@tauri-apps/cli": "^2.8.1",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.11.21",
"@types/nprogress": "^0.2.3",
@ -141,18 +140,9 @@
"vue-eslint-parser": "^9.3.2",
"vue-tsc": "^1.8.27"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://gitee.com/yudaocode/yudao-ui-admin-vue3"
},
"bugs": {
"url": "https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues"
},
"homepage": "https://gitee.com/yudaocode/yudao-ui-admin-vue3",
"web-types": "./web-types.json",
"engines": {
"node": ">= 16.0.0",
"pnpm": ">=8.6.0"
}
}
}

5091
web/pnpm-lock.yaml

File diff suppressed because it is too large

BIN
web/public/favicon.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 98 KiB

BIN
web/public/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 60 KiB

4
web/src-tauri/.gitignore

@ -0,0 +1,4 @@
# Generated by Cargo
# will have compiled files and executables
/target/
/gen/schemas

4995
web/src-tauri/Cargo.lock

File diff suppressed because it is too large

25
web/src-tauri/Cargo.toml

@ -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"

3
web/src-tauri/build.rs

@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}

11
web/src-tauri/capabilities/default.json

@ -0,0 +1,11 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "enables the default permissions",
"windows": [
"main"
],
"permissions": [
"core:default"
]
}

BIN
web/src-tauri/icons/128x128.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
web/src-tauri/icons/128x128@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
web/src-tauri/icons/32x32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
web/src-tauri/icons/64x64.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
web/src-tauri/icons/Square107x107Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
web/src-tauri/icons/Square142x142Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
web/src-tauri/icons/Square150x150Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
web/src-tauri/icons/Square284x284Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
web/src-tauri/icons/Square30x30Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
web/src-tauri/icons/Square310x310Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
web/src-tauri/icons/Square44x44Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
web/src-tauri/icons/Square71x71Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
web/src-tauri/icons/Square89x89Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
web/src-tauri/icons/StoreLogo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
web/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
web/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
web/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
web/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
web/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
web/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
web/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
web/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
web/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
web/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
web/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
web/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
web/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
web/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

BIN
web/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
web/src-tauri/icons/icon.icns

Binary file not shown.

BIN
web/src-tauri/icons/icon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
web/src-tauri/icons/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

BIN
web/src-tauri/icons/ios/AppIcon-20x20@1x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
web/src-tauri/icons/ios/AppIcon-20x20@2x-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
web/src-tauri/icons/ios/AppIcon-20x20@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
web/src-tauri/icons/ios/AppIcon-20x20@3x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
web/src-tauri/icons/ios/AppIcon-29x29@1x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
web/src-tauri/icons/ios/AppIcon-29x29@2x-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
web/src-tauri/icons/ios/AppIcon-29x29@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
web/src-tauri/icons/ios/AppIcon-29x29@3x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
web/src-tauri/icons/ios/AppIcon-40x40@1x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
web/src-tauri/icons/ios/AppIcon-40x40@2x-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
web/src-tauri/icons/ios/AppIcon-40x40@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
web/src-tauri/icons/ios/AppIcon-40x40@3x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
web/src-tauri/icons/ios/AppIcon-512@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 KiB

BIN
web/src-tauri/icons/ios/AppIcon-60x60@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
web/src-tauri/icons/ios/AppIcon-60x60@3x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
web/src-tauri/icons/ios/AppIcon-76x76@1x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
web/src-tauri/icons/ios/AppIcon-76x76@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
web/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
web/src-tauri/icons/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

16
web/src-tauri/src/lib.rs

@ -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");
}

6
web/src-tauri/src/main.rs

@ -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();
}

37
web/src-tauri/tauri.conf.json

@ -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"
]
}
}

2
web/src/App.vue

@ -21,6 +21,8 @@ const setDefaultTheme = () => {
isDarkTheme = isDark()
}
appStore.setIsDark(isDarkTheme)
//
appStore.setCssVarTheme()
}
setDefaultTheme()
</script>

2
web/src/api/bpm/processExpression/index.ts

@ -39,4 +39,4 @@ export const ProcessExpressionApi = {
exportProcessExpression: async (params) => {
return await request.download({ url: `/bpm/process-expression/export-excel`, params })
}
}
}

1
web/src/api/bpm/simple/index.ts

@ -1,6 +1,5 @@
import request from '@/config/axios'
export const updateBpmSimpleModel = async (data) => {
return await request.post({
url: '/bpm/model/simple/update',

52
web/src/api/electron/lock/index.ts

@ -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 })
}
}

53
web/src/api/electron/lockworkcord/index.ts

@ -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 })
}
}

47
web/src/api/guide/isolationpoint/index.ts

@ -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 })
}
}

54
web/src/api/guide/lockguide/index.ts

@ -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 })
}
}

5
web/src/api/infra/dataSourceConfig/index.ts

@ -26,7 +26,10 @@ export const deleteDataSourceConfig = (id: number) => {
// 批量删除数据源配置
export const deleteDataSourceConfigList = (ids: number[]) => {
return request.delete({ url: '/infra/data-source-config/delete-list', params: { ids: ids.join(',') } })
return request.delete({
url: '/infra/data-source-config/delete-list',
params: { ids: ids.join(',') }
})
}
// 查询数据源配置详情

46
web/src/api/infra/demo/demo03/erp/index.ts

@ -1,29 +1,29 @@
import request from '@/config/axios'
import type { Dayjs } from 'dayjs';
import type { Dayjs } from 'dayjs'
/** 学生课程信息 */
export interface Demo03Course {
id: number; // 编号
studentId?: number; // 学生编号
name?: string; // 名字
score?: number; // 分数
id: number // 编号
studentId?: number // 学生编号
name?: string // 名字
score?: number // 分数
}
/** 学生班级信息 */
export interface Demo03Grade {
id: number; // 编号
studentId?: number; // 学生编号
name?: string; // 名字
teacher?: string; // 班主任
id: number // 编号
studentId?: number // 学生编号
name?: string // 名字
teacher?: string // 班主任
}
/** 学生信息 */
export interface Demo03Student {
id: number; // 编号
name?: string; // 名字
sex?: number; // 性别
birthday?: string | Dayjs; // 出生日期
description?: string; // 简介
id: number // 编号
name?: string // 名字
sex?: number // 性别
birthday?: string | Dayjs // 出生日期
description?: string // 简介
}
// 学生 API
@ -55,7 +55,9 @@ export const Demo03StudentApi = {
/** 批量删除学生 */
deleteDemo03StudentList: async (ids: number[]) => {
return await request.delete({ url: `/infra/demo03-student-erp/delete-list?ids=${ids.join(',')}` })
return await request.delete({
url: `/infra/demo03-student-erp/delete-list?ids=${ids.join(',')}`
})
},
// 导出学生 Excel
@ -63,7 +65,7 @@ export const Demo03StudentApi = {
return await request.download({ url: `/infra/demo03-student-erp/export-excel`, params })
},
// ==================== 子表(学生课程) ====================
// ==================== 子表(学生课程) ====================
// 获得学生课程分页
getDemo03CoursePage: async (params) => {
@ -86,7 +88,9 @@ export const Demo03StudentApi = {
/** 批量删除学生课程 */
deleteDemo03CourseList: async (ids: number[]) => {
return await request.delete({ url: `/infra/demo03-student-erp/demo03-course/delete-list?ids=${ids.join(',')}` })
return await request.delete({
url: `/infra/demo03-student-erp/demo03-course/delete-list?ids=${ids.join(',')}`
})
},
// 获得学生课程
@ -94,7 +98,7 @@ export const Demo03StudentApi = {
return await request.get({ url: `/infra/demo03-student-erp/demo03-course/get?id=` + id })
},
// ==================== 子表(学生班级) ====================
// ==================== 子表(学生班级) ====================
// 获得学生班级分页
getDemo03GradePage: async (params) => {
@ -117,11 +121,13 @@ export const Demo03StudentApi = {
/** 批量删除学生班级 */
deleteDemo03GradeList: async (ids: number[]) => {
return await request.delete({ url: `/infra/demo03-student-erp/demo03-grade/delete-list?ids=${ids.join(',')}` })
return await request.delete({
url: `/infra/demo03-student-erp/demo03-grade/delete-list?ids=${ids.join(',')}`
})
},
// 获得学生班级
getDemo03Grade: async (id: number) => {
return await request.get({ url: `/infra/demo03-student-erp/demo03-grade/get?id=` + id })
},
}
}

46
web/src/api/infra/demo/demo03/inner/index.ts

@ -1,29 +1,29 @@
import request from '@/config/axios'
import type { Dayjs } from 'dayjs';
import type { Dayjs } from 'dayjs'
/** 学生课程信息 */
export interface Demo03Course {
id: number; // 编号
studentId?: number; // 学生编号
name?: string; // 名字
score?: number; // 分数
id: number // 编号
studentId?: number // 学生编号
name?: string // 名字
score?: number // 分数
}
/** 学生班级信息 */
export interface Demo03Grade {
id: number; // 编号
studentId?: number; // 学生编号
name?: string; // 名字
teacher?: string; // 班主任
id: number // 编号
studentId?: number // 学生编号
name?: string // 名字
teacher?: string // 班主任
}
/** 学生信息 */
export interface Demo03Student {
id: number; // 编号
name?: string; // 名字
sex?: number; // 性别
birthday?: string | Dayjs; // 出生日期
description?: string; // 简介
id: number // 编号
name?: string // 名字
sex?: number // 性别
birthday?: string | Dayjs // 出生日期
description?: string // 简介
demo03courses?: Demo03Course[]
demo03grade?: Demo03Grade
}
@ -57,7 +57,9 @@ export const Demo03StudentApi = {
/** 批量删除学生 */
deleteDemo03StudentList: async (ids: number[]) => {
return await request.delete({ url: `/infra/demo03-student-inner/delete-list?ids=${ids.join(',')}` })
return await request.delete({
url: `/infra/demo03-student-inner/delete-list?ids=${ids.join(',')}`
})
},
// 导出学生 Excel
@ -65,17 +67,21 @@ export const Demo03StudentApi = {
return await request.download({ url: `/infra/demo03-student-inner/export-excel`, params })
},
// ==================== 子表(学生课程) ====================
// ==================== 子表(学生课程) ====================
// 获得学生课程列表
getDemo03CourseListByStudentId: async (studentId) => {
return await request.get({ url: `/infra/demo03-student-inner/demo03-course/list-by-student-id?studentId=` + studentId })
return await request.get({
url: `/infra/demo03-student-inner/demo03-course/list-by-student-id?studentId=` + studentId
})
},
// ==================== 子表(学生班级) ====================
// ==================== 子表(学生班级) ====================
// 获得学生班级
getDemo03GradeByStudentId: async (studentId) => {
return await request.get({ url: `/infra/demo03-student-inner/demo03-grade/get-by-student-id?studentId=` + studentId })
},
return await request.get({
url: `/infra/demo03-student-inner/demo03-grade/get-by-student-id?studentId=` + studentId
})
}
}

46
web/src/api/infra/demo/demo03/normal/index.ts

@ -1,29 +1,29 @@
import request from '@/config/axios'
import type { Dayjs } from 'dayjs';
import type { Dayjs } from 'dayjs'
/** 学生课程信息 */
export interface Demo03Course {
id: number; // 编号
studentId?: number; // 学生编号
name?: string; // 名字
score?: number; // 分数
id: number // 编号
studentId?: number // 学生编号
name?: string // 名字
score?: number // 分数
}
/** 学生班级信息 */
export interface Demo03Grade {
id: number; // 编号
studentId?: number; // 学生编号
name?: string; // 名字
teacher?: string; // 班主任
id: number // 编号
studentId?: number // 学生编号
name?: string // 名字
teacher?: string // 班主任
}
/** 学生信息 */
export interface Demo03Student {
id: number; // 编号
name?: string; // 名字
sex?: number; // 性别
birthday?: string | Dayjs; // 出生日期
description?: string; // 简介
id: number // 编号
name?: string // 名字
sex?: number // 性别
birthday?: string | Dayjs // 出生日期
description?: string // 简介
demo03courses?: Demo03Course[]
demo03grade?: Demo03Grade
}
@ -57,7 +57,9 @@ export const Demo03StudentApi = {
/** 批量删除学生 */
deleteDemo03StudentList: async (ids: number[]) => {
return await request.delete({ url: `/infra/demo03-student-normal/delete-list?ids=${ids.join(',')}` })
return await request.delete({
url: `/infra/demo03-student-normal/delete-list?ids=${ids.join(',')}`
})
},
// 导出学生 Excel
@ -65,17 +67,21 @@ export const Demo03StudentApi = {
return await request.download({ url: `/infra/demo03-student-normal/export-excel`, params })
},
// ==================== 子表(学生课程) ====================
// ==================== 子表(学生课程) ====================
// 获得学生课程列表
getDemo03CourseListByStudentId: async (studentId) => {
return await request.get({ url: `/infra/demo03-student-normal/demo03-course/list-by-student-id?studentId=` + studentId })
return await request.get({
url: `/infra/demo03-student-normal/demo03-course/list-by-student-id?studentId=` + studentId
})
},
// ==================== 子表(学生班级) ====================
// ==================== 子表(学生班级) ====================
// 获得学生班级
getDemo03GradeByStudentId: async (studentId) => {
return await request.get({ url: `/infra/demo03-student-normal/demo03-grade/get-by-student-id?studentId=` + studentId })
},
return await request.get({
url: `/infra/demo03-student-normal/demo03-grade/get-by-student-id?studentId=` + studentId
})
}
}

47
web/src/api/isolation/plan/index.ts

@ -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 })
}
}

52
web/src/api/isolation/planitem/index.ts

@ -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 })
}
}

49
web/src/api/isolation/planitemdetail/index.ts

@ -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 })
}
}

51
web/src/api/isolation/planlifelock/index.ts

@ -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 })
}
}

51
web/src/api/isolation/point/index.ts

@ -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 })
}
}

66
web/src/api/lock/index.ts

@ -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 })

5
web/src/api/system/mail/account/index.ts

@ -38,7 +38,10 @@ export const deleteMailAccount = async (id: number) => {
// 批量删除邮箱账号
export const deleteMailAccountList = async (ids: number[]) => {
return await request.delete({ url: '/system/mail-account/delete-list', params: { ids: ids.join(',') } })
return await request.delete({
url: '/system/mail-account/delete-list',
params: { ids: ids.join(',') }
})
}
// 获得邮箱账号精简列表

5
web/src/api/system/mail/template/index.ts

@ -46,7 +46,10 @@ export const deleteMailTemplate = async (id: number) => {
// 批量删除邮件模版
export const deleteMailTemplateList = async (ids: number[]) => {
return await request.delete({ url: '/system/mail-template/delete-list', params: { ids: ids.join(',') } })
return await request.delete({
url: '/system/mail-template/delete-list',
params: { ids: ids.join(',') }
})
}
// 发送邮件

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

Loading…
Cancel
Save