adspecs 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.adspecs/extensions/.registry +30 -0
- package/.adspecs/extensions/git/README.md +100 -0
- package/.adspecs/extensions/git/commands/adspecs.git.commit.md +48 -0
- package/.adspecs/extensions/git/commands/adspecs.git.feature.md +67 -0
- package/.adspecs/extensions/git/commands/adspecs.git.initialize.md +49 -0
- package/.adspecs/extensions/git/commands/adspecs.git.remote.md +45 -0
- package/.adspecs/extensions/git/commands/adspecs.git.validate.md +49 -0
- package/.adspecs/extensions/git/config-template.yml +62 -0
- package/.adspecs/extensions/git/extension.yml +140 -0
- package/.adspecs/extensions/git/git-config.yml +62 -0
- package/.adspecs/extensions/git/scripts/bash/auto-commit.sh +140 -0
- package/.adspecs/extensions/git/scripts/bash/create-new-feature.sh +453 -0
- package/.adspecs/extensions/git/scripts/bash/git-common.sh +54 -0
- package/.adspecs/extensions/git/scripts/bash/initialize-repo.sh +54 -0
- package/.adspecs/extensions/git/scripts/powershell/auto-commit.ps1 +169 -0
- package/.adspecs/extensions/git/scripts/powershell/create-new-feature.ps1 +403 -0
- package/.adspecs/extensions/git/scripts/powershell/git-common.ps1 +51 -0
- package/.adspecs/extensions/git/scripts/powershell/initialize-repo.ps1 +69 -0
- package/.adspecs/extensions.yml +165 -0
- package/.adspecs/feature.json +16 -0
- package/.adspecs/feature.yml +28 -0
- package/.adspecs/project.json +8 -0
- package/.adspecs/scripts/bash/check-prerequisites.sh +195 -0
- package/.adspecs/scripts/bash/common.sh +640 -0
- package/.adspecs/scripts/bash/create-new-feature.sh +301 -0
- package/.adspecs/scripts/bash/setup-plan.sh +84 -0
- package/.adspecs/scripts/bash/setup-tasks.sh +91 -0
- package/.adspecs/scripts/powershell/check-prerequisites.ps1 +149 -0
- package/.adspecs/scripts/powershell/common.ps1 +545 -0
- package/.adspecs/scripts/powershell/create-new-feature.ps1 +237 -0
- package/.adspecs/scripts/powershell/setup-plan.ps1 +64 -0
- package/.adspecs/scripts/powershell/setup-tasks.ps1 +70 -0
- package/.adspecs/scripts/python/check_prerequisites.py +207 -0
- package/.adspecs/scripts/python/common.py +210 -0
- package/.adspecs/templates/01-/344/270/232/345/212/241/351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/346/235/277.md +228 -0
- package/.adspecs/templates/02-/344/272/247/345/223/201/351/234/200/346/261/202/350/257/264/346/230/216/344/271/246/346/250/241/346/235/277.md +623 -0
- package/.adspecs/templates/03-/347/263/273/347/273/237/350/256/276/350/256/241/346/250/241/346/235/277.md +1878 -0
- package/.adspecs/templates/04-/345/211/215/347/253/257/345/212/237/350/203/275/350/256/276/350/256/241/346/250/241/346/235/277.md +176 -0
- package/.adspecs/templates/05-/345/220/216/347/253/257/344/273/273/345/212/241/346/270/205/345/215/225/346/250/241/346/235/277.md +724 -0
- package/.adspecs/templates/05b-/345/211/215/347/253/257/344/273/273/345/212/241/346/270/205/345/215/225/346/250/241/346/235/277.md +492 -0
- package/.adspecs/templates/06-/344/273/243/347/240/201/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +1012 -0
- package/.adspecs/templates/07-/345/215/225/345/205/203/346/265/213/350/257/225/346/212/245/345/221/212/346/250/241/346/235/277.md +694 -0
- package/.adspecs/templates/08-/347/263/273/347/273/237/351/233/206/346/210/220/346/265/213/350/257/225/346/212/245/345/221/212/346/250/241/346/235/277.md +1098 -0
- package/.adspecs/templates/09-/346/200/247/350/203/275/346/265/213/350/257/225/346/212/245/345/221/212/346/250/241/346/235/277.md +610 -0
- package/.adspecs/templates/10-/345/256/211/345/205/250/346/243/200/346/237/245/346/270/205/345/215/225.md +912 -0
- package/.adspecs/templates/11-/344/273/243/347/240/201/350/264/250/351/207/217/346/240/207/345/207/206.md +753 -0
- package/.adspecs/templates/13-/346/265/213/350/257/225/347/224/250/344/276/213/346/250/241/346/235/277.md +543 -0
- package/.adspecs/templates/14-/351/234/200/346/261/202/350/277/275/346/272/257/347/237/251/351/230/265/346/250/241/346/235/277.md +225 -0
- package/.adspecs/templates/15-/344/270/232/345/212/241/345/212/237/350/203/275/346/236/266/346/236/204/346/226/207/346/241/243/346/250/241/346/235/277.md +168 -0
- package/.adspecs/templates/16-/347/263/273/347/273/237/346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/346/235/277.md +608 -0
- package/.adspecs/templates/17-/345/255/220/346/250/241/345/235/227/344/276/235/350/265/226/345/205/263/347/263/273/346/250/241/346/235/277.md +308 -0
- package/.adspecs/templates/18-/347/273/237/344/270/200/346/225/260/346/215/256/346/250/241/345/236/213/346/250/241/346/235/277.md +297 -0
- package/.adspecs/templates/19-/351/241/271/347/233/256/347/233/256/345/275/225/347/273/223/346/236/204/346/250/241/346/235/277.md +468 -0
- package/.adspecs/templates/20-/345/267/245/344/275/234/350/257/264/346/230/216/344/271/246SOW/346/250/241/346/235/277.md +372 -0
- package/.adspecs/templates/21-/344/270/232/345/212/241/346/226/271/346/241/210/346/250/241/346/235/277.md +661 -0
- package/.adspecs/workflows/adspecs/workflow.yml +82 -0
- package/.adspecs/workflows/workflow-registry.json +13 -0
- package/.claude-plugin/marketplace.json +23 -0
- package/.claude-plugin/plugin.json +14 -0
- package/.qoder-plugin/plugin.json +21 -0
- package/CHANGELOG.md +1 -0
- package/CLAUDE.md +207 -0
- package/INSTALL.md +134 -0
- package/LICENSE +201 -0
- package/README.md +605 -0
- package/bin/adspecs.js +126 -0
- package/hooks/commit-queue.js +245 -0
- package/hooks/hooks.json +63 -0
- package/hooks/session-start.js +44 -0
- package/hooks/wiki-queue.js +127 -0
- package/package.json +61 -0
- package/references/ant6-front-standard/01-/345/237/272/347/241/200/350/247/204/350/214/203.md +181 -0
- package/references/ant6-front-standard/02-/347/273/204/344/273/266/350/247/204/350/214/203.md +189 -0
- package/references/ant6-front-standard/03-/345/210/227/350/241/250/350/247/204/350/214/203.md +147 -0
- package/references/ant6-front-standard/04-/350/241/250/345/215/225/350/247/204/350/214/203.md +312 -0
- package/references/ant6-front-standard/05-/345/211/215/347/253/257/347/274/226/347/240/201/350/247/204/350/214/203.md +1443 -0
- package/references/ant6-front-standard/05-/350/267/257/347/224/261/347/212/266/346/200/201/346/216/245/345/217/243/350/247/204/350/214/203.md +175 -0
- package/references/ant6-front-standard/06-/345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +126 -0
- package/references/ant6-front-standard/07-/345/255/227/345/205/270/346/235/203/351/231/220/350/247/204/350/214/203.md +71 -0
- package/references/ant6-front-standard/08-/346/200/247/350/203/275/350/264/250/351/207/217/350/247/204/350/214/203.md +91 -0
- package/references/ant6-front-standard/09-/345/270/270/350/247/201/351/227/256/351/242/230/350/247/204/350/214/203.md +87 -0
- package/references/ant6-front-standard/index.md +100 -0
- package/references/ant6-front-standard/vue/350/277/201/347/247/273/345/210/260react/350/247/204/350/214/203.md +37 -0
- package/references/antd-front-demo/.env +15 -0
- package/references/antd-front-demo/.env.production +7 -0
- package/references/antd-front-demo/eslint.config.js +23 -0
- package/references/antd-front-demo/index.html +16 -0
- package/references/antd-front-demo/package-lock.json +6603 -0
- package/references/antd-front-demo/package.json +53 -0
- package/references/antd-front-demo/public/favicon.svg +4 -0
- package/references/antd-front-demo/public/mockServiceWorker.js +361 -0
- package/references/antd-front-demo/src/App.tsx +68 -0
- package/references/antd-front-demo/src/api/aps/coil.ts +42 -0
- package/references/antd-front-demo/src/api/aps/order.ts +42 -0
- package/references/antd-front-demo/src/api/aps/param.ts +19 -0
- package/references/antd-front-demo/src/api/aps/plan.ts +30 -0
- package/references/antd-front-demo/src/api/aps/task.ts +31 -0
- package/references/antd-front-demo/src/api/auth.ts +41 -0
- package/references/antd-front-demo/src/api/mdm/codeRule.ts +23 -0
- package/references/antd-front-demo/src/api/mdm/coding-system.ts +130 -0
- package/references/antd-front-demo/src/api/system/dept.ts +38 -0
- package/references/antd-front-demo/src/api/system/dict-data.ts +42 -0
- package/references/antd-front-demo/src/api/system/dict-type.ts +35 -0
- package/references/antd-front-demo/src/api/system/menu.ts +38 -0
- package/references/antd-front-demo/src/api/system/post.ts +15 -0
- package/references/antd-front-demo/src/api/system/role.ts +42 -0
- package/references/antd-front-demo/src/api/system/user.ts +48 -0
- package/references/antd-front-demo/src/components/Access/index.tsx +14 -0
- package/references/antd-front-demo/src/components/DictTag/index.tsx +29 -0
- package/references/antd-front-demo/src/components/Footer/index.tsx +35 -0
- package/references/antd-front-demo/src/components/Icon/iconMap.ts +131 -0
- package/references/antd-front-demo/src/components/Icon/index.tsx +62 -0
- package/references/antd-front-demo/src/hooks/useAccess.ts +5 -0
- package/references/antd-front-demo/src/i18n/index.ts +22 -0
- package/references/antd-front-demo/src/layouts/AdminLayout/Header.tsx +137 -0
- package/references/antd-front-demo/src/layouts/AdminLayout/Sidebar.tsx +103 -0
- package/references/antd-front-demo/src/layouts/AdminLayout/StyleSettings.tsx +165 -0
- package/references/antd-front-demo/src/layouts/AdminLayout/index.tsx +25 -0
- package/references/antd-front-demo/src/locales/en-US/aps/coil.ts +18 -0
- package/references/antd-front-demo/src/locales/en-US/aps/order.ts +27 -0
- package/references/antd-front-demo/src/locales/en-US/aps/param.ts +32 -0
- package/references/antd-front-demo/src/locales/en-US/aps/plan.ts +33 -0
- package/references/antd-front-demo/src/locales/en-US/aps/task.ts +33 -0
- package/references/antd-front-demo/src/locales/en-US/common.ts +27 -0
- package/references/antd-front-demo/src/locales/en-US/components/upload.ts +12 -0
- package/references/antd-front-demo/src/locales/en-US/dashboard.ts +18 -0
- package/references/antd-front-demo/src/locales/en-US/header.ts +27 -0
- package/references/antd-front-demo/src/locales/en-US/login.ts +42 -0
- package/references/antd-front-demo/src/locales/en-US/mdm/codeRule.ts +20 -0
- package/references/antd-front-demo/src/locales/en-US/mdm/coding-system-state-flow.ts +28 -0
- package/references/antd-front-demo/src/locales/en-US/mdm/coding-system.ts +139 -0
- package/references/antd-front-demo/src/locales/en-US/menu.ts +18 -0
- package/references/antd-front-demo/src/locales/en-US/profile.ts +38 -0
- package/references/antd-front-demo/src/locales/en-US/system/dept.ts +20 -0
- package/references/antd-front-demo/src/locales/en-US/system/dict.ts +30 -0
- package/references/antd-front-demo/src/locales/en-US/system/menu.ts +28 -0
- package/references/antd-front-demo/src/locales/en-US/system/role.ts +18 -0
- package/references/antd-front-demo/src/locales/en-US/system/user.ts +29 -0
- package/references/antd-front-demo/src/locales/zh-CN/aps/coil.ts +18 -0
- package/references/antd-front-demo/src/locales/zh-CN/aps/order.ts +27 -0
- package/references/antd-front-demo/src/locales/zh-CN/aps/param.ts +32 -0
- package/references/antd-front-demo/src/locales/zh-CN/aps/plan.ts +33 -0
- package/references/antd-front-demo/src/locales/zh-CN/aps/task.ts +33 -0
- package/references/antd-front-demo/src/locales/zh-CN/common.ts +27 -0
- package/references/antd-front-demo/src/locales/zh-CN/components/upload.ts +12 -0
- package/references/antd-front-demo/src/locales/zh-CN/dashboard.ts +18 -0
- package/references/antd-front-demo/src/locales/zh-CN/header.ts +27 -0
- package/references/antd-front-demo/src/locales/zh-CN/login.ts +42 -0
- package/references/antd-front-demo/src/locales/zh-CN/mdm/codeRule.ts +20 -0
- package/references/antd-front-demo/src/locales/zh-CN/mdm/coding-system-state-flow.ts +28 -0
- package/references/antd-front-demo/src/locales/zh-CN/mdm/coding-system.ts +154 -0
- package/references/antd-front-demo/src/locales/zh-CN/menu.ts +18 -0
- package/references/antd-front-demo/src/locales/zh-CN/profile.ts +38 -0
- package/references/antd-front-demo/src/locales/zh-CN/system/dept.ts +20 -0
- package/references/antd-front-demo/src/locales/zh-CN/system/dict.ts +30 -0
- package/references/antd-front-demo/src/locales/zh-CN/system/menu.ts +28 -0
- package/references/antd-front-demo/src/locales/zh-CN/system/role.ts +18 -0
- package/references/antd-front-demo/src/locales/zh-CN/system/user.ts +29 -0
- package/references/antd-front-demo/src/main.tsx +18 -0
- package/references/antd-front-demo/src/mocks/browser.ts +10 -0
- package/references/antd-front-demo/src/mocks/data/aps.ts +255 -0
- package/references/antd-front-demo/src/mocks/data/index.ts +382 -0
- package/references/antd-front-demo/src/mocks/handlers/apsCoil.ts +151 -0
- package/references/antd-front-demo/src/mocks/handlers/apsOrder.ts +166 -0
- package/references/antd-front-demo/src/mocks/handlers/apsParam.ts +71 -0
- package/references/antd-front-demo/src/mocks/handlers/apsPlan.ts +98 -0
- package/references/antd-front-demo/src/mocks/handlers/apsTask.ts +249 -0
- package/references/antd-front-demo/src/mocks/handlers/auth.ts +244 -0
- package/references/antd-front-demo/src/mocks/handlers/codeRule.ts +141 -0
- package/references/antd-front-demo/src/mocks/handlers/coding-system.ts +256 -0
- package/references/antd-front-demo/src/mocks/handlers/dept.ts +154 -0
- package/references/antd-front-demo/src/mocks/handlers/dict.ts +297 -0
- package/references/antd-front-demo/src/mocks/handlers/image.ts +13 -0
- package/references/antd-front-demo/src/mocks/handlers/index.ts +33 -0
- package/references/antd-front-demo/src/mocks/handlers/menu.ts +132 -0
- package/references/antd-front-demo/src/mocks/handlers/post.ts +19 -0
- package/references/antd-front-demo/src/mocks/handlers/role.ts +184 -0
- package/references/antd-front-demo/src/mocks/handlers/user.ts +223 -0
- package/references/antd-front-demo/src/pages/aps/coil/components/CoilDrawer.tsx +141 -0
- package/references/antd-front-demo/src/pages/aps/coil/index.tsx +209 -0
- package/references/antd-front-demo/src/pages/aps/optimization/index.tsx +192 -0
- package/references/antd-front-demo/src/pages/aps/order/components/OrderDrawer.tsx +251 -0
- package/references/antd-front-demo/src/pages/aps/order/index.tsx +273 -0
- package/references/antd-front-demo/src/pages/aps/param/index.tsx +153 -0
- package/references/antd-front-demo/src/pages/aps/plan/components/CuttingPlanVisualization.tsx +821 -0
- package/references/antd-front-demo/src/pages/aps/plan/index.tsx +254 -0
- package/references/antd-front-demo/src/pages/aps/task/index.tsx +190 -0
- package/references/antd-front-demo/src/pages/dashboard/index.tsx +67 -0
- package/references/antd-front-demo/src/pages/error/404/index.tsx +25 -0
- package/references/antd-front-demo/src/pages/login/components/ForgetPasswordForm.tsx +101 -0
- package/references/antd-front-demo/src/pages/login/components/LoginForm.tsx +83 -0
- package/references/antd-front-demo/src/pages/login/components/RegisterForm.tsx +69 -0
- package/references/antd-front-demo/src/pages/login/components/index.ts +3 -0
- package/references/antd-front-demo/src/pages/login/index.module.css +62 -0
- package/references/antd-front-demo/src/pages/login/index.tsx +60 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/approval/index.tsx +227 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/code-log/index.tsx +103 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/code-mapping/components/CodeMappingDrawer.tsx +120 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/code-mapping/index.tsx +170 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/code-rule/components/CodeRuleDrawer.tsx +235 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/code-rule/index.tsx +204 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/state-flow/index.tsx +101 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/sync/index.tsx +151 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/variable-dict/components/VariableDictDrawer.tsx +108 -0
- package/references/antd-front-demo/src/pages/mdm/coding-system/variable-dict/index.tsx +163 -0
- package/references/antd-front-demo/src/pages/profile/index.tsx +136 -0
- package/references/antd-front-demo/src/pages/system/dept/components/DeptDrawer.tsx +157 -0
- package/references/antd-front-demo/src/pages/system/dept/index.tsx +224 -0
- package/references/antd-front-demo/src/pages/system/dict/components/DictDataDrawer.tsx +243 -0
- package/references/antd-front-demo/src/pages/system/dict/components/DictTypeModal.tsx +102 -0
- package/references/antd-front-demo/src/pages/system/dict/index.tsx +162 -0
- package/references/antd-front-demo/src/pages/system/menu/components/MenuDrawer.tsx +215 -0
- package/references/antd-front-demo/src/pages/system/menu/index.tsx +236 -0
- package/references/antd-front-demo/src/pages/system/role/components/RoleDrawer.tsx +118 -0
- package/references/antd-front-demo/src/pages/system/role/index.tsx +142 -0
- package/references/antd-front-demo/src/pages/system/user/components/DeptTree.tsx +71 -0
- package/references/antd-front-demo/src/pages/system/user/components/UserDrawer.tsx +197 -0
- package/references/antd-front-demo/src/pages/system/user/index.tsx +189 -0
- package/references/antd-front-demo/src/router/authGuard.tsx +67 -0
- package/references/antd-front-demo/src/router/dynamicRoutes.tsx +179 -0
- package/references/antd-front-demo/src/router/index.tsx +105 -0
- package/references/antd-front-demo/src/setupTests.ts +1 -0
- package/references/antd-front-demo/src/stores/useAppStore.ts +43 -0
- package/references/antd-front-demo/src/stores/useAuthStore.ts +78 -0
- package/references/antd-front-demo/src/stores/useDictStore.ts +41 -0
- package/references/antd-front-demo/src/types/api.ts +17 -0
- package/references/antd-front-demo/src/types/aps/coil.ts +42 -0
- package/references/antd-front-demo/src/types/aps/order.ts +63 -0
- package/references/antd-front-demo/src/types/aps/param.ts +48 -0
- package/references/antd-front-demo/src/types/aps/plan.ts +59 -0
- package/references/antd-front-demo/src/types/aps/task.ts +66 -0
- package/references/antd-front-demo/src/types/auth.ts +81 -0
- package/references/antd-front-demo/src/types/mdm/codeRule.ts +43 -0
- package/references/antd-front-demo/src/types/mdm/coding-system.ts +187 -0
- package/references/antd-front-demo/src/utils/formatTime.ts +68 -0
- package/references/antd-front-demo/src/utils/menuConverter.ts +113 -0
- package/references/antd-front-demo/src/utils/messageHolder.ts +14 -0
- package/references/antd-front-demo/src/utils/permission.ts +18 -0
- package/references/antd-front-demo/src/utils/request.ts +165 -0
- package/references/antd-front-demo/src/utils/token.ts +91 -0
- package/references/antd-front-demo/tsconfig.app.json +30 -0
- package/references/antd-front-demo/tsconfig.json +7 -0
- package/references/antd-front-demo/tsconfig.node.json +24 -0
- package/references/antd-front-demo/vite.config.ts +30 -0
- package/references/ecp-end-standard/ES/344/275/277/347/224/250/350/247/204/350/214/203.md +231 -0
- package/references/ecp-end-standard/IdToName/344/275/277/347/224/250/350/247/204/350/214/203.md +148 -0
- package/references/ecp-end-standard/Liquibase /346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/347/256/241/347/220/206/350/247/204/350/214/203.md" +197 -0
- package/references/ecp-end-standard/Redis/344/275/277/347/224/250/350/247/204/350/214/203.md +78 -0
- package/references/ecp-end-standard/index.md +63 -0
- package/references/ecp-end-standard//345/210/206/345/270/203/345/274/217/351/224/201/350/247/204/350/214/203.md +65 -0
- package/references/ecp-end-standard//345/220/216/347/253/257/345/210/206/345/261/202/345/274/200/345/217/221/344/270/216/346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/350/247/204/350/214/203.md +385 -0
- package/references/ecp-end-standard//345/244/232/350/257/255/350/250/200/345/217/212/345/205/250/345/261/200/345/274/202/345/270/270/345/244/204/347/220/206/350/247/204/350/214/203.md +442 -0
- package/references/ecp-end-standard//346/226/207/344/273/266/344/270/255/345/277/203/344/275/277/347/224/250/350/247/204/350/214/203.md +278 -0
- package/references/ecp-end-standard//346/265/201/347/250/213/344/270/255/345/277/203/346/216/245/345/205/245/350/247/204/350/214/203.md +464 -0
- package/references/ecp-end-standard//347/274/226/347/240/201/350/207/252/345/212/250/347/224/237/346/210/220/350/247/204/350/214/203.md +69 -0
- package/references/ecp-end-standard//351/200/232/347/224/250/345/267/245/345/205/267/347/261/273/344/275/277/347/224/250/350/247/204/350/214/203.md +189 -0
- package/references/front-demo/.claude/rules/INDEX.md +54 -0
- package/references/front-demo/.claude/rules/api-i18n-rules.md +65 -0
- package/references/front-demo/.claude/rules/gushen-components.md +174 -0
- package/references/front-demo/.claude/rules/page-development-rules.md +262 -0
- package/references/front-demo/.claude/rules/page-template-index.md +374 -0
- package/references/front-demo/.claude/rules/project-overview.md +48 -0
- package/references/front-demo/.claude/skills/generate-vue3-page/SKILL.md +145 -0
- package/references/front-demo/.editorconfig +9 -0
- package/references/front-demo/.gitattributes +1 -0
- package/references/front-demo/.playwright-mcp/page-2026-06-10T08-21-21-503Z.yml +7 -0
- package/references/front-demo/.playwright-mcp/page-2026-06-10T10-02-33-237Z.yml +4 -0
- package/references/front-demo/.prettierrc.json +6 -0
- package/references/front-demo/README.md +39 -0
- package/references/front-demo/app-startup.png +0 -0
- package/references/front-demo/auto-imports.d.ts +10 -0
- package/references/front-demo/build-log.txt +214 -0
- package/references/front-demo/claude.md +62 -0
- package/references/front-demo/components.d.ts +95 -0
- package/references/front-demo/env.d.ts +1 -0
- package/references/front-demo/eslint.config.ts +22 -0
- package/references/front-demo/index.html +22 -0
- package/references/front-demo/package.json +77 -0
- package/references/front-demo/public/apiurls.js +70 -0
- package/references/front-demo/public/config.js +93 -0
- package/references/front-demo/public/favicon.ico +0 -0
- package/references/front-demo/src/App.vue +117 -0
- package/references/front-demo/src/api/app.ts +316 -0
- package/references/front-demo/src/api/attachment.ts +30 -0
- package/references/front-demo/src/api/base-exception/index.ts +87 -0
- package/references/front-demo/src/api/collect/index.ts +37 -0
- package/references/front-demo/src/api/comment/index.ts +44 -0
- package/references/front-demo/src/api/dashboard/index.ts +83 -0
- package/references/front-demo/src/api/dataImport.ts +97 -0
- package/references/front-demo/src/api/dingding/index.ts +43 -0
- package/references/front-demo/src/api/export.ts +25 -0
- package/references/front-demo/src/api/forecast/forecast-order.ts +42 -0
- package/references/front-demo/src/api/forecast/forecastChangeOrder.ts +54 -0
- package/references/front-demo/src/api/forecast/forecastConfig.ts +30 -0
- package/references/front-demo/src/api/forecast/forecastOrder.ts +78 -0
- package/references/front-demo/src/api/home/index.ts +78 -0
- package/references/front-demo/src/api/letters/index.ts +93 -0
- package/references/front-demo/src/api/login.ts +140 -0
- package/references/front-demo/src/api/mdmCustomer/index.ts +77 -0
- package/references/front-demo/src/api/menu/index.ts +79 -0
- package/references/front-demo/src/api/multi-login/index.ts +36 -0
- package/references/front-demo/src/api/personalInformation/index.ts +9 -0
- package/references/front-demo/src/api/portal/index.ts +95 -0
- package/references/front-demo/src/api/practice/index.ts +32 -0
- package/references/front-demo/src/api/product-master-data/__tests__/product.spec.ts +114 -0
- package/references/front-demo/src/api/product-master-data/product.ts +158 -0
- package/references/front-demo/src/api/reset-password/index.ts +16 -0
- package/references/front-demo/src/api/system-manage/dataImport/index.ts +87 -0
- package/references/front-demo/src/api/system-manage/menu/index.ts +34 -0
- package/references/front-demo/src/api/system-manage/reverse-authorization/index.ts +18 -0
- package/references/front-demo/src/api/testMenu/demo1/index.ts +14 -0
- package/references/front-demo/src/api/testMenu/demo2/index.ts +0 -0
- package/references/front-demo/src/api/testMenu/leaveApplication/index.ts +53 -0
- package/references/front-demo/src/api/testMenu/testDemo/index.ts +66 -0
- package/references/front-demo/src/api/update/index.ts +43 -0
- package/references/front-demo/src/api/worktable/agenda.ts +19 -0
- package/references/front-demo/src/api/worktable/approved.ts +32 -0
- package/references/front-demo/src/api/worktable/entrusted.ts +92 -0
- package/references/front-demo/src/api/worktable/myProcess.ts +48 -0
- package/references/front-demo/src/api/worktable/startTask.ts +56 -0
- package/references/front-demo/src/api/worktable/tobeRead.ts +28 -0
- package/references/front-demo/src/api/wx-work/index.ts +43 -0
- package/references/front-demo/src/assets/images/404.png +0 -0
- package/references/front-demo/src/assets/images/404_cloud.png +0 -0
- package/references/front-demo/src/assets/images/compact_layout.png +0 -0
- package/references/front-demo/src/assets/images/dingding.png +0 -0
- package/references/front-demo/src/assets/images/feishu.png +0 -0
- package/references/front-demo/src/assets/images/hover.png +0 -0
- package/references/front-demo/src/assets/images/login_background.jpg +0 -0
- package/references/front-demo/src/assets/images/login_banner.jpg +0 -0
- package/references/front-demo/src/assets/images/logo.png +0 -0
- package/references/front-demo/src/assets/images/noData.png +0 -0
- package/references/front-demo/src/assets/images/no_data.png +0 -0
- package/references/front-demo/src/assets/images/normal_layout.png +0 -0
- package/references/front-demo/src/assets/images/qiyeweixin.png +0 -0
- package/references/front-demo/src/assets/images/sider-open.png +0 -0
- package/references/front-demo/src/assets/images/vertical.png +0 -0
- package/references/front-demo/src/assets/png/pass.png +0 -0
- package/references/front-demo/src/components/ActionButtons.vue +193 -0
- package/references/front-demo/src/components/GsIcon/index.ts +7 -0
- package/references/front-demo/src/components/GsIcon/index.vue +47 -0
- package/references/front-demo/src/components/GsIconDialog/icons.ts +2167 -0
- package/references/front-demo/src/components/GsIconDialog/index.ts +7 -0
- package/references/front-demo/src/components/GsIconDialog/index.vue +856 -0
- package/references/front-demo/src/components/GsUpload/GsOverloadText.vue +68 -0
- package/references/front-demo/src/components/GsUpload/attachmentList.vue +241 -0
- package/references/front-demo/src/components/GsUpload/copper.vue +117 -0
- package/references/front-demo/src/components/GsUpload/imgUpload.vue +382 -0
- package/references/front-demo/src/components/GsUpload/index.vue +468 -0
- package/references/front-demo/src/components/GsUpload/preview.vue +44 -0
- package/references/front-demo/src/components/GsUpload/utils.ts +151 -0
- package/references/front-demo/src/components/StatusTag.vue +110 -0
- package/references/front-demo/src/components/SvgIcon/index.ts +7 -0
- package/references/front-demo/src/components/SvgIcon/index.vue +39 -0
- package/references/front-demo/src/components/UploadImg/index.ts +7 -0
- package/references/front-demo/src/components/UploadImg/index.vue +292 -0
- package/references/front-demo/src/components/global-register.ts +25 -0
- package/references/front-demo/src/components/utils/index.ts +12 -0
- package/references/front-demo/src/config/index.js +64 -0
- package/references/front-demo/src/core/initMain.ts +97 -0
- package/references/front-demo/src/hooks/useApsSchedule.ts +79 -0
- package/references/front-demo/src/hooks/useForecastOrderForm.ts +139 -0
- package/references/front-demo/src/hooks/usePagination.ts +40 -0
- package/references/front-demo/src/hooks/useRoleBasedVisibility.ts +35 -0
- package/references/front-demo/src/icons/index.ts +6 -0
- package/references/front-demo/src/icons/svg/AssessmentInfo.svg +1 -0
- package/references/front-demo/src/icons/svg/BasicConfig.svg +1 -0
- package/references/front-demo/src/icons/svg/DataEase.svg +86 -0
- package/references/front-demo/src/icons/svg/PDF.svg +1 -0
- package/references/front-demo/src/icons/svg/account_box.svg +5 -0
- package/references/front-demo/src/icons/svg/add.svg +1 -0
- package/references/front-demo/src/icons/svg/alert.svg +8 -0
- package/references/front-demo/src/icons/svg/alertlist.svg +18 -0
- package/references/front-demo/src/icons/svg/all-msg.svg +1 -0
- package/references/front-demo/src/icons/svg/analysis.svg +1 -0
- package/references/front-demo/src/icons/svg/app.svg +1 -0
- package/references/front-demo/src/icons/svg/assPersonnel.svg +1 -0
- package/references/front-demo/src/icons/svg/assessment.svg +1 -0
- package/references/front-demo/src/icons/svg/bar-horizontal.svg +1 -0
- package/references/front-demo/src/icons/svg/bar-stack-horizontal.svg +1 -0
- package/references/front-demo/src/icons/svg/bar-stack.svg +1 -0
- package/references/front-demo/src/icons/svg/bar.svg +1 -0
- package/references/front-demo/src/icons/svg/basicalgorithm.svg +1 -0
- package/references/front-demo/src/icons/svg/battery.svg +1 -0
- package/references/front-demo/src/icons/svg/bbgl.svg +1 -0
- package/references/front-demo/src/icons/svg/bell.svg +5 -0
- package/references/front-demo/src/icons/svg/bfcx.svg +1 -0
- package/references/front-demo/src/icons/svg/bjqd.svg +1 -0
- package/references/front-demo/src/icons/svg/bjxhtj.svg +1 -0
- package/references/front-demo/src/icons/svg/bjxhxq.svg +1 -0
- package/references/front-demo/src/icons/svg/bmll.svg +1 -0
- package/references/front-demo/src/icons/svg/bmtl.svg +1 -0
- package/references/front-demo/src/icons/svg/bqcj.svg +1 -0
- package/references/front-demo/src/icons/svg/bqmbgl.svg +1 -0
- package/references/front-demo/src/icons/svg/buddle-map.svg +1 -0
- package/references/front-demo/src/icons/svg/bug.svg +1 -0
- package/references/front-demo/src/icons/svg/bygd.svg +1 -0
- package/references/front-demo/src/icons/svg/bz.svg +1 -0
- package/references/front-demo/src/icons/svg/bzgl.svg +1 -0
- package/references/front-demo/src/icons/svg/characteristics.svg +1 -0
- package/references/front-demo/src/icons/svg/chart-mix.svg +1 -0
- package/references/front-demo/src/icons/svg/checkbox-checked.svg +5 -0
- package/references/front-demo/src/icons/svg/checkimage.svg +1 -0
- package/references/front-demo/src/icons/svg/ck.svg +1 -0
- package/references/front-demo/src/icons/svg/classifymark.svg +1 -0
- package/references/front-demo/src/icons/svg/closeEyes.svg +15 -0
- package/references/front-demo/src/icons/svg/club.svg +1 -0
- package/references/front-demo/src/icons/svg/collector.svg +1 -0
- package/references/front-demo/src/icons/svg/collectormanage.svg +1 -0
- package/references/front-demo/src/icons/svg/crkdcx.svg +1 -0
- package/references/front-demo/src/icons/svg/dashboard-collector.svg +38 -0
- package/references/front-demo/src/icons/svg/dashboard-device.svg +40 -0
- package/references/front-demo/src/icons/svg/dashboard-gateway.svg +38 -0
- package/references/front-demo/src/icons/svg/dashboard-warning.svg +40 -0
- package/references/front-demo/src/icons/svg/dashboard.svg +1 -0
- package/references/front-demo/src/icons/svg/database.svg +1 -0
- package/references/front-demo/src/icons/svg/dataset-task.svg +1 -0
- package/references/front-demo/src/icons/svg/datasource.svg +1 -0
- package/references/front-demo/src/icons/svg/db.svg +1 -0
- package/references/front-demo/src/icons/svg/ddgl.svg +1 -0
- package/references/front-demo/src/icons/svg/ddycjk.svg +1 -0
- package/references/front-demo/src/icons/svg/default.svg +1 -0
- package/references/front-demo/src/icons/svg/definition.svg +1 -0
- package/references/front-demo/src/icons/svg/depassessment.svg +1 -0
- package/references/front-demo/src/icons/svg/dept.svg +1 -0
- package/references/front-demo/src/icons/svg/device.svg +1 -0
- package/references/front-demo/src/icons/svg/devicebig.svg +1 -0
- package/references/front-demo/src/icons/svg/devicegroup.svg +1 -0
- package/references/front-demo/src/icons/svg/devicelist.svg +1 -0
- package/references/front-demo/src/icons/svg/devicemanage.svg +1 -0
- package/references/front-demo/src/icons/svg/deviceparam.svg +1 -0
- package/references/front-demo/src/icons/svg/devicetype.svg +1 -0
- package/references/front-demo/src/icons/svg/diagnose.svg +1 -0
- package/references/front-demo/src/icons/svg/diagnoseresult.svg +1 -0
- package/references/front-demo/src/icons/svg/distribution.svg +1 -0
- package/references/front-demo/src/icons/svg/doc.svg +1 -0
- package/references/front-demo/src/icons/svg/docs.svg +1 -0
- package/references/front-demo/src/icons/svg/dqby.svg +1 -0
- package/references/front-demo/src/icons/svg/dqbydb.svg +1 -0
- package/references/front-demo/src/icons/svg/dqbygc.svg +1 -0
- package/references/front-demo/src/icons/svg/dqbygd.svg +1 -0
- package/references/front-demo/src/icons/svg/dqbyjh.svg +1 -0
- package/references/front-demo/src/icons/svg/ds-api.svg +1 -0
- package/references/front-demo/src/icons/svg/ds-custom.svg +1 -0
- package/references/front-demo/src/icons/svg/ds-db.svg +1 -0
- package/references/front-demo/src/icons/svg/ds-excel.svg +1 -0
- package/references/front-demo/src/icons/svg/ds-sql.svg +1 -0
- package/references/front-demo/src/icons/svg/ds-union.svg +1 -0
- package/references/front-demo/src/icons/svg/dxjdb.svg +1 -0
- package/references/front-demo/src/icons/svg/dxjgc.svg +1 -0
- package/references/front-demo/src/icons/svg/dxjgd.svg +1 -0
- package/references/front-demo/src/icons/svg/dxjjh.svg +1 -0
- package/references/front-demo/src/icons/svg/dy.svg +1 -0
- package/references/front-demo/src/icons/svg/earth.svg +5 -0
- package/references/front-demo/src/icons/svg/echart-fullscreen.svg +1 -0
- package/references/front-demo/src/icons/svg/echart-nomalscreen.svg +1 -0
- package/references/front-demo/src/icons/svg/edit.svg +1 -0
- package/references/front-demo/src/icons/svg/email-task.svg +1 -0
- package/references/front-demo/src/icons/svg/envelop.svg +5 -0
- package/references/front-demo/src/icons/svg/equalizer.svg +5 -0
- package/references/front-demo/src/icons/svg/example.svg +1 -0
- package/references/front-demo/src/icons/svg/exclamationmark.svg +1 -0
- package/references/front-demo/src/icons/svg/exclamationmark2.svg +1 -0
- package/references/front-demo/src/icons/svg/exit-fullscreen.svg +1 -0
- package/references/front-demo/src/icons/svg/eye-open.svg +1 -0
- package/references/front-demo/src/icons/svg/eye.svg +1 -0
- package/references/front-demo/src/icons/svg/fav.svg +1 -0
- package/references/front-demo/src/icons/svg/field_location.svg +1 -0
- package/references/front-demo/src/icons/svg/field_text.svg +1 -0
- package/references/front-demo/src/icons/svg/field_time.svg +1 -0
- package/references/front-demo/src/icons/svg/field_value.svg +1 -0
- package/references/front-demo/src/icons/svg/folder.svg +1 -0
- package/references/front-demo/src/icons/svg/form.svg +1 -0
- package/references/front-demo/src/icons/svg/fullscreen.svg +1 -0
- package/references/front-demo/src/icons/svg/funnel.svg +1 -0
- package/references/front-demo/src/icons/svg/gateway.svg +1 -0
- package/references/front-demo/src/icons/svg/gatewaymanage.svg +16 -0
- package/references/front-demo/src/icons/svg/gauge.svg +1 -0
- package/references/front-demo/src/icons/svg/gdgl.svg +1 -0
- package/references/front-demo/src/icons/svg/gdll.svg +1 -0
- package/references/front-demo/src/icons/svg/gdtl.svg +1 -0
- package/references/front-demo/src/icons/svg/gdwcqk.svg +1 -0
- package/references/front-demo/src/icons/svg/gdwcxq.svg +1 -0
- package/references/front-demo/src/icons/svg/gnwz.svg +1 -0
- package/references/front-demo/src/icons/svg/gs-add.svg +14 -0
- package/references/front-demo/src/icons/svg/gs-change.svg +18 -0
- package/references/front-demo/src/icons/svg/gs-choose-icon.svg +23 -0
- package/references/front-demo/src/icons/svg/gs-close.svg +15 -0
- package/references/front-demo/src/icons/svg/gs-delete.svg +19 -0
- package/references/front-demo/src/icons/svg/gs-down.svg +12 -0
- package/references/front-demo/src/icons/svg/gs-edit.svg +23 -0
- package/references/front-demo/src/icons/svg/gs-edit2.svg +18 -0
- package/references/front-demo/src/icons/svg/gs-page.svg +14 -0
- package/references/front-demo/src/icons/svg/gs-resize.svg +12 -0
- package/references/front-demo/src/icons/svg/gs-select.svg +15 -0
- package/references/front-demo/src/icons/svg/gzbx.svg +1 -0
- package/references/front-demo/src/icons/svg/gzgd.svg +1 -0
- package/references/front-demo/src/icons/svg/gzk.svg +1 -0
- package/references/front-demo/src/icons/svg/gzzd.svg +1 -0
- package/references/front-demo/src/icons/svg/head.svg +13 -0
- package/references/front-demo/src/icons/svg/iconfont.svg +71 -0
- package/references/front-demo/src/icons/svg/im_message.svg +1 -0
- package/references/front-demo/src/icons/svg/indexdefine.svg +1 -0
- package/references/front-demo/src/icons/svg/inner-join.svg +1 -0
- package/references/front-demo/src/icons/svg/international.svg +1 -0
- package/references/front-demo/src/icons/svg/jcsj.svg +1 -0
- package/references/front-demo/src/icons/svg/jhjxgd.svg +1 -0
- package/references/front-demo/src/icons/svg/jilu.svg +1 -0
- package/references/front-demo/src/icons/svg/jldw.svg +1 -0
- package/references/front-demo/src/icons/svg/jscsfp.svg +1 -0
- package/references/front-demo/src/icons/svg/jscswh.svg +1 -0
- package/references/front-demo/src/icons/svg/kccx.svg +1 -0
- package/references/front-demo/src/icons/svg/kcpd.svg +1 -0
- package/references/front-demo/src/icons/svg/konwledgelist.svg +1 -0
- package/references/front-demo/src/icons/svg/kucun.svg +1 -0
- package/references/front-demo/src/icons/svg/language.svg +1 -0
- package/references/front-demo/src/icons/svg/left-join.svg +1 -0
- package/references/front-demo/src/icons/svg/leftBack.svg +15 -0
- package/references/front-demo/src/icons/svg/line-stack.svg +1 -0
- package/references/front-demo/src/icons/svg/line.svg +1 -0
- package/references/front-demo/src/icons/svg/link.svg +1 -0
- package/references/front-demo/src/icons/svg/liquid.svg +1 -0
- package/references/front-demo/src/icons/svg/list.svg +5 -0
- package/references/front-demo/src/icons/svg/location2.svg +5 -0
- package/references/front-demo/src/icons/svg/lock_closed.svg +1 -0
- package/references/front-demo/src/icons/svg/lock_open.svg +1 -0
- package/references/front-demo/src/icons/svg/logo.svg +32 -0
- package/references/front-demo/src/icons/svg/map.svg +1 -0
- package/references/front-demo/src/icons/svg/map_old.svg +1 -0
- package/references/front-demo/src/icons/svg/menu.svg +1 -0
- package/references/front-demo/src/icons/svg/message.svg +1 -0
- package/references/front-demo/src/icons/svg/messaged.svg +1 -0
- package/references/front-demo/src/icons/svg/meter.svg +5 -0
- package/references/front-demo/src/icons/svg/mobile.svg +5 -0
- package/references/front-demo/src/icons/svg/model.svg +1 -0
- package/references/front-demo/src/icons/svg/money.svg +1 -0
- package/references/front-demo/src/icons/svg/more_v.svg +1 -0
- package/references/front-demo/src/icons/svg/msg-setting.svg +1 -0
- package/references/front-demo/src/icons/svg/mttr&mtbf.svg +1 -0
- package/references/front-demo/src/icons/svg/multiplemp.svg +1 -0
- package/references/front-demo/src/icons/svg/myassessment.svg +1 -0
- package/references/front-demo/src/icons/svg/nested.svg +1 -0
- package/references/front-demo/src/icons/svg/new-message.svg +5 -0
- package/references/front-demo/src/icons/svg/no-join.svg +1 -0
- package/references/front-demo/src/icons/svg/normal-fx.svg +1 -0
- package/references/front-demo/src/icons/svg/notification.svg +1 -0
- package/references/front-demo/src/icons/svg/openEyes.svg +12 -0
- package/references/front-demo/src/icons/svg/openai.svg +1 -0
- package/references/front-demo/src/icons/svg/panel.svg +1 -0
- package/references/front-demo/src/icons/svg/password.svg +1 -0
- package/references/front-demo/src/icons/svg/people.svg +1 -0
- package/references/front-demo/src/icons/svg/peoples.svg +1 -0
- package/references/front-demo/src/icons/svg/pie-rose.svg +1 -0
- package/references/front-demo/src/icons/svg/pie.svg +1 -0
- package/references/front-demo/src/icons/svg/plus.svg +5 -0
- package/references/front-demo/src/icons/svg/podcast.svg +5 -0
- package/references/front-demo/src/icons/svg/preview.svg +1 -0
- package/references/front-demo/src/icons/svg/qrcode.svg +5 -0
- package/references/front-demo/src/icons/svg/radar.svg +1 -0
- package/references/front-demo/src/icons/svg/readed-msg.svg +1 -0
- package/references/front-demo/src/icons/svg/remove.svg +1 -0
- package/references/front-demo/src/icons/svg/rhdb.svg +1 -0
- package/references/front-demo/src/icons/svg/rhgc.svg +1 -0
- package/references/front-demo/src/icons/svg/rhgd.svg +1 -0
- package/references/front-demo/src/icons/svg/right-join.svg +1 -0
- package/references/front-demo/src/icons/svg/role.svg +1 -0
- package/references/front-demo/src/icons/svg/rulelist.svg +1 -0
- package/references/front-demo/src/icons/svg/runconfig.svg +1 -0
- package/references/front-demo/src/icons/svg/sbgzlbb.svg +1 -0
- package/references/front-demo/src/icons/svg/sbqy.svg +1 -0
- package/references/front-demo/src/icons/svg/sbrhjh.svg +1 -0
- package/references/front-demo/src/icons/svg/sbwhl.svg +1 -0
- package/references/front-demo/src/icons/svg/scatter.svg +1 -0
- package/references/front-demo/src/icons/svg/scene.svg +1 -0
- package/references/front-demo/src/icons/svg/shoppingCard.svg +1 -0
- package/references/front-demo/src/icons/svg/shouqi.svg +13 -0
- package/references/front-demo/src/icons/svg/singlemp.svg +1 -0
- package/references/front-demo/src/icons/svg/size.svg +1 -0
- package/references/front-demo/src/icons/svg/slimHead.svg +12 -0
- package/references/front-demo/src/icons/svg/sort-asc.svg +1 -0
- package/references/front-demo/src/icons/svg/sort-desc.svg +1 -0
- package/references/front-demo/src/icons/svg/standard.svg +1 -0
- package/references/front-demo/src/icons/svg/star.svg +1 -0
- package/references/front-demo/src/icons/svg/stats-bars.svg +5 -0
- package/references/front-demo/src/icons/svg/suffix-obj.svg +1 -0
- package/references/front-demo/src/icons/svg/sys-tools.svg +1 -0
- package/references/front-demo/src/icons/svg/system.svg +1 -0
- package/references/front-demo/src/icons/svg/table-info.svg +1 -0
- package/references/front-demo/src/icons/svg/table-normal.svg +1 -0
- package/references/front-demo/src/icons/svg/table-pivot.svg +1 -0
- package/references/front-demo/src/icons/svg/table.svg +1 -0
- package/references/front-demo/src/icons/svg/taizhang.svg +1 -0
- package/references/front-demo/src/icons/svg/task.svg +1 -0
- package/references/front-demo/src/icons/svg/tenant.svg +1 -0
- package/references/front-demo/src/icons/svg/text.svg +1 -0
- package/references/front-demo/src/icons/svg/tjqq.svg +1 -0
- package/references/front-demo/src/icons/svg/tree-company.svg +1 -0
- package/references/front-demo/src/icons/svg/tree-department.svg +1 -0
- package/references/front-demo/src/icons/svg/tree-device.svg +1 -0
- package/references/front-demo/src/icons/svg/tree-organization.svg +1 -0
- package/references/front-demo/src/icons/svg/tree.svg +1 -0
- package/references/front-demo/src/icons/svg/treemap.svg +1 -0
- package/references/front-demo/src/icons/svg/undefinedata.svg +1 -0
- package/references/front-demo/src/icons/svg/unread-msg.svg +1 -0
- package/references/front-demo/src/icons/svg/user-check.svg +6 -0
- package/references/front-demo/src/icons/svg/user.svg +1 -0
- package/references/front-demo/src/icons/svg/users.svg +6 -0
- package/references/front-demo/src/icons/svg/warn-tre.svg +1 -0
- package/references/front-demo/src/icons/svg/waterfall.svg +1 -0
- package/references/front-demo/src/icons/svg/wdgzt.svg +1 -0
- package/references/front-demo/src/icons/svg/wdlc.svg +1 -0
- package/references/front-demo/src/icons/svg/web-msg.svg +1 -0
- package/references/front-demo/src/icons/svg/wlbm.svg +1 -0
- package/references/front-demo/src/icons/svg/wlfl.svg +1 -0
- package/references/front-demo/src/icons/svg/wlgl.svg +1 -0
- package/references/front-demo/src/icons/svg/word-cloud.svg +1 -0
- package/references/front-demo/src/icons/svg/wtsp.svg +1 -0
- package/references/front-demo/src/icons/svg/wxdb.svg +1 -0
- package/references/front-demo/src/icons/svg/wxgc.svg +1 -0
- package/references/front-demo/src/icons/svg/xiaoxi.svg +13 -0
- package/references/front-demo/src/icons/svg/xyldr.svg +1 -0
- package/references/front-demo/src/icons/svg/ysp.svg +1 -0
- package/references/front-demo/src/icons/svg/yxgl.svg +1 -0
- package/references/front-demo/src/icons/svg/zcfbjzttj.svg +1 -0
- package/references/front-demo/src/icons/svg/zcfl.svg +1 -0
- package/references/front-demo/src/icons/svg/zcgl.svg +1 -0
- package/references/front-demo/src/icons/svg/zclk.svg +1 -0
- package/references/front-demo/src/icons/svg/zcll.svg +1 -0
- package/references/front-demo/src/icons/svg/zclx.svg +1 -0
- package/references/front-demo/src/icons/svg/zcpd.svg +1 -0
- package/references/front-demo/src/icons/svg/zctjbb.svg +1 -0
- package/references/front-demo/src/icons/svg/zcz.svg +1 -0
- package/references/front-demo/src/icons/svg/zhankai.svg +13 -0
- package/references/front-demo/src/icons/svg/zichan.svg +1 -0
- package/references/front-demo/src/icons/svg/zxck.svg +1 -0
- package/references/front-demo/src/icons/svg/zxrk.svg +1 -0
- package/references/front-demo/src/lang/element-lang.ts +26 -0
- package/references/front-demo/src/lang/en-us.ts +146 -0
- package/references/front-demo/src/lang/hu-hu.ts +1141 -0
- package/references/front-demo/src/lang/index.ts +108 -0
- package/references/front-demo/src/lang/modules/button/en-us.ts +158 -0
- package/references/front-demo/src/lang/modules/button/zh-cn.ts +157 -0
- package/references/front-demo/src/lang/modules/button/zh-tw.ts +157 -0
- package/references/front-demo/src/lang/modules/customizeTable/en-us.ts +56 -0
- package/references/front-demo/src/lang/modules/customizeTable/zh-cn.ts +55 -0
- package/references/front-demo/src/lang/modules/customizeTable/zh-tw.ts +55 -0
- package/references/front-demo/src/lang/modules/exportData/en-us.ts +19 -0
- package/references/front-demo/src/lang/modules/exportData/zh-cn.ts +19 -0
- package/references/front-demo/src/lang/modules/exportData/zh-tw.ts +19 -0
- package/references/front-demo/src/lang/modules/exportHistroy/en-us.ts +10 -0
- package/references/front-demo/src/lang/modules/exportHistroy/zh-cn.ts +10 -0
- package/references/front-demo/src/lang/modules/exportHistroy/zh-tw.ts +10 -0
- package/references/front-demo/src/lang/modules/forecast-order/en-us.ts +412 -0
- package/references/front-demo/src/lang/modules/forecast-order/zh-cn.ts +413 -0
- package/references/front-demo/src/lang/modules/forecast-order/zh-tw.ts +410 -0
- package/references/front-demo/src/lang/modules/gsReport/en-us.ts +41 -0
- package/references/front-demo/src/lang/modules/gsReport/zh-cn.ts +41 -0
- package/references/front-demo/src/lang/modules/gsReport/zh-tw.ts +41 -0
- package/references/front-demo/src/lang/modules/gsUploadFile/en-us.ts +10 -0
- package/references/front-demo/src/lang/modules/gsUploadFile/zh-cn.ts +10 -0
- package/references/front-demo/src/lang/modules/gsUploadFile/zh-tw.ts +10 -0
- package/references/front-demo/src/lang/modules/home/en-us.ts +19 -0
- package/references/front-demo/src/lang/modules/home/zh-cn.ts +19 -0
- package/references/front-demo/src/lang/modules/home/zh-tw.ts +19 -0
- package/references/front-demo/src/lang/modules/importData/en-us.ts +42 -0
- package/references/front-demo/src/lang/modules/importData/zh-cn.ts +42 -0
- package/references/front-demo/src/lang/modules/importData/zh-tw.ts +42 -0
- package/references/front-demo/src/lang/modules/importHistroy/en-us.ts +9 -0
- package/references/front-demo/src/lang/modules/importHistroy/zh-cn.ts +9 -0
- package/references/front-demo/src/lang/modules/importHistroy/zh-tw.ts +9 -0
- package/references/front-demo/src/lang/modules/js/en-us.ts +63 -0
- package/references/front-demo/src/lang/modules/js/zh-cn.ts +60 -0
- package/references/front-demo/src/lang/modules/js/zh-tw.ts +60 -0
- package/references/front-demo/src/lang/modules/letters/en-us.ts +21 -0
- package/references/front-demo/src/lang/modules/letters/zh-cn.ts +22 -0
- package/references/front-demo/src/lang/modules/letters/zh-tw.ts +22 -0
- package/references/front-demo/src/lang/modules/login/en-us.ts +68 -0
- package/references/front-demo/src/lang/modules/login/zh-cn.ts +64 -0
- package/references/front-demo/src/lang/modules/login/zh-tw.ts +64 -0
- package/references/front-demo/src/lang/modules/mdmCustomer/en-us.ts +81 -0
- package/references/front-demo/src/lang/modules/mdmCustomer/zh-cn.ts +92 -0
- package/references/front-demo/src/lang/modules/mdmCustomer/zh-tw.ts +81 -0
- package/references/front-demo/src/lang/modules/menu/en-us.ts +429 -0
- package/references/front-demo/src/lang/modules/menu/zh-cn.ts +423 -0
- package/references/front-demo/src/lang/modules/menu/zh-tw.ts +423 -0
- package/references/front-demo/src/lang/modules/message/en-us.ts +4 -0
- package/references/front-demo/src/lang/modules/message/zh-cn.ts +4 -0
- package/references/front-demo/src/lang/modules/message/zh-tw.ts +4 -0
- package/references/front-demo/src/lang/modules/otherLang/en-us.ts +63 -0
- package/references/front-demo/src/lang/modules/otherLang/zh-cn.ts +60 -0
- package/references/front-demo/src/lang/modules/otherLang/zh-tw.ts +58 -0
- package/references/front-demo/src/lang/modules/person/en-us.ts +27 -0
- package/references/front-demo/src/lang/modules/person/zh-cn.ts +27 -0
- package/references/front-demo/src/lang/modules/person/zh-tw.ts +27 -0
- package/references/front-demo/src/lang/modules/product-master-data/en-us.ts +65 -0
- package/references/front-demo/src/lang/modules/product-master-data/zh-cn.ts +82 -0
- package/references/front-demo/src/lang/modules/product-master-data/zh-tw.ts +82 -0
- package/references/front-demo/src/lang/modules/source_data/en-us.ts +49 -0
- package/references/front-demo/src/lang/modules/source_data/zh-cn.ts +41 -0
- package/references/front-demo/src/lang/modules/source_data/zh-tw.ts +41 -0
- package/references/front-demo/src/lang/modules/theme/en-us.ts +22 -0
- package/references/front-demo/src/lang/modules/theme/zh-cn.ts +22 -0
- package/references/front-demo/src/lang/modules/theme/zh-tw.ts +23 -0
- package/references/front-demo/src/lang/modules/third/en-us.ts +10 -0
- package/references/front-demo/src/lang/modules/third/zh-cn.ts +9 -0
- package/references/front-demo/src/lang/modules/third/zh-tw.ts +9 -0
- package/references/front-demo/src/lang/modules/toast/en-us.ts +21 -0
- package/references/front-demo/src/lang/modules/toast/zh-cn.ts +21 -0
- package/references/front-demo/src/lang/modules/toast/zh-tw.ts +21 -0
- package/references/front-demo/src/lang/modules/uploadDocument/en-us.ts +6 -0
- package/references/front-demo/src/lang/modules/uploadDocument/zh-cn.ts +6 -0
- package/references/front-demo/src/lang/modules/uploadDocument/zh-tw.ts +6 -0
- package/references/front-demo/src/lang/utils.ts +20 -0
- package/references/front-demo/src/lang/vi-vn.ts +1140 -0
- package/references/front-demo/src/lang/zh-cn.ts +180 -0
- package/references/front-demo/src/lang/zh-tw.ts +147 -0
- package/references/front-demo/src/main.ts +25 -0
- package/references/front-demo/src/mock/forecast/index.ts +1 -0
- package/references/front-demo/src/mock/forecast/router.ts +824 -0
- package/references/front-demo/src/mock/forecast/seed.ts +577 -0
- package/references/front-demo/src/mock/index.ts +74 -0
- package/references/front-demo/src/mock/mdmCustomer/index.ts +1 -0
- package/references/front-demo/src/mock/mdmCustomer/router.ts +468 -0
- package/references/front-demo/src/mock/mdmCustomer/seed.ts +359 -0
- package/references/front-demo/src/mock/platform/router.ts +119 -0
- package/references/front-demo/src/mock/platform/seed.ts +145 -0
- package/references/front-demo/src/mock/storage.ts +55 -0
- package/references/front-demo/src/permission.ts +448 -0
- package/references/front-demo/src/plugins/i18n.ts +3 -0
- package/references/front-demo/src/plugins/pinia.ts +7 -0
- package/references/front-demo/src/qiankun.js +114 -0
- package/references/front-demo/src/router/index.ts +132 -0
- package/references/front-demo/src/router/modules/forecast-order.ts +68 -0
- package/references/front-demo/src/store/index.ts +43 -0
- package/references/front-demo/src/store/modules/app/actions.ts +137 -0
- package/references/front-demo/src/store/modules/app/getters.ts +16 -0
- package/references/front-demo/src/store/modules/app/index.ts +52 -0
- package/references/front-demo/src/store/modules/app/mutations.ts +108 -0
- package/references/front-demo/src/store/modules/forecast-order/__tests__/forecastOrderDetailStore.spec.ts +379 -0
- package/references/front-demo/src/store/modules/forecast-order/__tests__/forecastOrderListStore.spec.ts +297 -0
- package/references/front-demo/src/store/modules/forecast-order/changeOrderFormStore.ts +245 -0
- package/references/front-demo/src/store/modules/forecast-order/configStore.ts +157 -0
- package/references/front-demo/src/store/modules/forecast-order/forecastOrderDetailStore.ts +243 -0
- package/references/front-demo/src/store/modules/forecast-order/forecastOrderFormStore.ts +281 -0
- package/references/front-demo/src/store/modules/forecast-order/forecastOrderListStore.ts +101 -0
- package/references/front-demo/src/store/modules/forecast-order/index.ts +5 -0
- package/references/front-demo/src/store/modules/mdmCustomer/__tests__/customerStore.spec.ts +206 -0
- package/references/front-demo/src/store/modules/mdmCustomer/customerStore.ts +303 -0
- package/references/front-demo/src/store/modules/permission/actions.ts +11 -0
- package/references/front-demo/src/store/modules/permission/getters.ts +5 -0
- package/references/front-demo/src/store/modules/permission/index.ts +14 -0
- package/references/front-demo/src/store/modules/permission/mutations.ts +13 -0
- package/references/front-demo/src/store/modules/product-master-data/__tests__/productListStore.spec.ts +378 -0
- package/references/front-demo/src/store/modules/product-master-data/productListStore.ts +333 -0
- package/references/front-demo/src/store/modules/tagsView/actions.ts +87 -0
- package/references/front-demo/src/store/modules/tagsView/getters.ts +6 -0
- package/references/front-demo/src/store/modules/tagsView/index.ts +18 -0
- package/references/front-demo/src/store/modules/tagsView/mutations.ts +118 -0
- package/references/front-demo/src/store/modules/theme/actions.ts +77 -0
- package/references/front-demo/src/store/modules/theme/getters.ts +10 -0
- package/references/front-demo/src/store/modules/theme/index.ts +27 -0
- package/references/front-demo/src/store/modules/theme/mutations.ts +28 -0
- package/references/front-demo/src/store/modules/user/actions.ts +243 -0
- package/references/front-demo/src/store/modules/user/getters.ts +10 -0
- package/references/front-demo/src/store/modules/user/index.ts +44 -0
- package/references/front-demo/src/store/modules/user/mutations.ts +104 -0
- package/references/front-demo/src/store/piniaToVuex/index.ts +283 -0
- package/references/front-demo/src/stores/counter.ts +12 -0
- package/references/front-demo/src/styles/element-plus.scss +937 -0
- package/references/front-demo/src/styles/global.scss +826 -0
- package/references/front-demo/src/styles/iconfont/demo.css +539 -0
- package/references/front-demo/src/styles/iconfont/iconfont.css +68 -0
- package/references/front-demo/src/styles/iconfont/iconfont.js +63 -0
- package/references/front-demo/src/styles/iconfont/iconfont.ttf +0 -0
- package/references/front-demo/src/styles/index.scss +116 -0
- package/references/front-demo/src/styles/mixin.scss +78 -0
- package/references/front-demo/src/styles/theme/black/content-management.scss +11 -0
- package/references/front-demo/src/styles/theme/black/dynamic-report.scss +31 -0
- package/references/front-demo/src/styles/theme/black/form-design.scss +181 -0
- package/references/front-demo/src/styles/theme/black/open-api.scss +118 -0
- package/references/front-demo/src/styles/theme/black/platform.scss +57 -0
- package/references/front-demo/src/styles/theme/black/process-manage.scss +48 -0
- package/references/front-demo/src/styles/theme/black/rent-mannage.scss +8 -0
- package/references/front-demo/src/styles/theme/black/schedule.scss +45 -0
- package/references/front-demo/src/styles/theme/black/service-management.scss +14 -0
- package/references/front-demo/src/styles/theme/black/system-manage.scss +144 -0
- package/references/front-demo/src/styles/theme/black.scss +1642 -0
- package/references/front-demo/src/styles/theme/default/index.scss +1 -0
- package/references/front-demo/src/styles/theme/default/menu.scss +199 -0
- package/references/front-demo/src/styles/transition.scss +107 -0
- package/references/front-demo/src/styles/variables.scss +66 -0
- package/references/front-demo/src/types/forecast-order/api.ts +44 -0
- package/references/front-demo/src/types/forecast-order/enums.ts +122 -0
- package/references/front-demo/src/types/forecast-order/forecastChangeOrder.ts +40 -0
- package/references/front-demo/src/types/forecast-order/forecastOrder.ts +98 -0
- package/references/front-demo/src/types/forecast-order/index.ts +43 -0
- package/references/front-demo/src/types/mdmCustomer/api.ts +26 -0
- package/references/front-demo/src/types/mdmCustomer/customer.ts +75 -0
- package/references/front-demo/src/types/product-master-data/api.ts +27 -0
- package/references/front-demo/src/types/product-master-data/product.ts +58 -0
- package/references/front-demo/src/utils/ArrayExtension.ts +175 -0
- package/references/front-demo/src/utils/app-mixin.ts +50 -0
- package/references/front-demo/src/utils/areas.ts +1712 -0
- package/references/front-demo/src/utils/auth.ts +336 -0
- package/references/front-demo/src/utils/base64.ts +231 -0
- package/references/front-demo/src/utils/browser-helper.ts +39 -0
- package/references/front-demo/src/utils/bus.ts +35 -0
- package/references/front-demo/src/utils/deprecated-utils.ts +116 -0
- package/references/front-demo/src/utils/errorHandler.ts +61 -0
- package/references/front-demo/src/utils/events.ts +59 -0
- package/references/front-demo/src/utils/forecastOrderActions.ts +117 -0
- package/references/front-demo/src/utils/i18nHelper.ts +24 -0
- package/references/front-demo/src/utils/index.ts +819 -0
- package/references/front-demo/src/utils/name-auth.ts +97 -0
- package/references/front-demo/src/utils/onlyMsgBox.ts +38 -0
- package/references/front-demo/src/utils/pinyinList.ts +417 -0
- package/references/front-demo/src/utils/request-utils.ts +277 -0
- package/references/front-demo/src/utils/request.ts +146 -0
- package/references/front-demo/src/utils/routeHelper.ts +66 -0
- package/references/front-demo/src/utils/statusTagHelper.ts +55 -0
- package/references/front-demo/src/utils/storage.ts +80 -0
- package/references/front-demo/src/utils/theme.ts +192 -0
- package/references/front-demo/src/utils/toPinYin.ts +34 -0
- package/references/front-demo/src/utils/tool.ts +7103 -0
- package/references/front-demo/src/utils/utilsFn.ts +73 -0
- package/references/front-demo/src/utils/validate.ts +110 -0
- package/references/front-demo/src/utils/watermark.ts +161 -0
- package/references/front-demo/src/utils/watermarkcompact.ts +180 -0
- package/references/front-demo/src/utils/wordRender.ts +100 -0
- package/references/front-demo/src/utils/ws.ts +42 -0
- package/references/front-demo/src/views/404.vue +245 -0
- package/references/front-demo/src/views/CollectButton/demand.vue +39 -0
- package/references/front-demo/src/views/CollectButton/dialog.vue +178 -0
- package/references/front-demo/src/views/CollectButton/index.vue +306 -0
- package/references/front-demo/src/views/FlowCharts/FormDemo.vue +236 -0
- package/references/front-demo/src/views/FlowCharts/components/ListDetailButton/index.vue +36 -0
- package/references/front-demo/src/views/FlowCharts/leaveApplication.vue +56 -0
- package/references/front-demo/src/views/FlowCharts/testForm.vue +56 -0
- package/references/front-demo/src/views/Password/index.vue +148 -0
- package/references/front-demo/src/views/authorize/components/ForgetPassword.vue +309 -0
- package/references/front-demo/src/views/authorize/components/FormLogin/components/VerificationDialog.vue +297 -0
- package/references/front-demo/src/views/authorize/components/FormLogin/index.vue +649 -0
- package/references/front-demo/src/views/authorize/index.vue +149 -0
- package/references/front-demo/src/views/dynamic-form/index.vue +42 -0
- package/references/front-demo/src/views/forecast-order/ChangeOrderEdit.vue +113 -0
- package/references/front-demo/src/views/forecast-order/ForecastOrderDetail.vue +732 -0
- package/references/front-demo/src/views/forecast-order/ForecastOrderEdit.vue +179 -0
- package/references/front-demo/src/views/forecast-order/__tests__/ChangeOrderEdit.spec.ts +157 -0
- package/references/front-demo/src/views/forecast-order/__tests__/ForecastOrderDetail.spec.ts +230 -0
- package/references/front-demo/src/views/forecast-order/__tests__/ForecastOrderE2E.spec.ts +607 -0
- package/references/front-demo/src/views/forecast-order/__tests__/ForecastOrderEdit.spec.ts +283 -0
- package/references/front-demo/src/views/forecast-order/__tests__/ForecastOrderList.spec.ts +428 -0
- package/references/front-demo/src/views/forecast-order/__tests__/Selectors.spec.ts +209 -0
- package/references/front-demo/src/views/forecast-order/components/ApproveChangeDialog.vue +165 -0
- package/references/front-demo/src/views/forecast-order/components/ChangeForm.vue +235 -0
- package/references/front-demo/src/views/forecast-order/components/CustomerSelector.vue +165 -0
- package/references/front-demo/src/views/forecast-order/components/ForecastOrderForm.vue +299 -0
- package/references/front-demo/src/views/forecast-order/components/ProductSelector.vue +167 -0
- package/references/front-demo/src/views/forecast-order/components/ReplyDialog.vue +170 -0
- package/references/front-demo/src/views/forecast-order/components/StatusFlowBar.vue +156 -0
- package/references/front-demo/src/views/forecast-order/components/TransferFoDialog.vue +97 -0
- package/references/front-demo/src/views/forecast-order/config/index.vue +205 -0
- package/references/front-demo/src/views/forecast-order/index.vue +539 -0
- package/references/front-demo/src/views/home-page/WorkTable.vue +116 -0
- package/references/front-demo/src/views/home-page/index.vue +14 -0
- package/references/front-demo/src/views/layout/Frame.vue +75 -0
- package/references/front-demo/src/views/layout/Layout.vue +186 -0
- package/references/front-demo/src/views/layout/MiddleView.vue +29 -0
- package/references/front-demo/src/views/layout/components/AppMain.vue +302 -0
- package/references/front-demo/src/views/layout/components/CompactTools/index.vue +59 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/AVue.vue +34 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Gpt.vue +51 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Help.vue +52 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Locale.vue +143 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Message.vue +495 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/NavbarMenu.vue +196 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Personal.vue +308 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Portal.vue +34 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/SystemChange.vue +133 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Tablet.vue +206 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/TenantChange.vue +186 -0
- package/references/front-demo/src/views/layout/components/Navbar/components/Theme.vue +429 -0
- package/references/front-demo/src/views/layout/components/Navbar/index.vue +220 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/CustomSliderMenu.vue +267 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/FetchMenuItem.vue +45 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/MenuItem.vue +135 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/MenuSearch.vue +102 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/SubMenu.js +190 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/SubMenu.vue +125 -0
- package/references/front-demo/src/views/layout/components/Sidebar/components/ToggleSidebar.vue +51 -0
- package/references/front-demo/src/views/layout/components/Sidebar/index.vue +464 -0
- package/references/front-demo/src/views/layout/components/TagsView.vue +683 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/chatgpt.png +0 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/knowledge_IT.png +0 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/knowledge_gushen.png +0 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/pmo_background.png +0 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/smile.png +0 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/stop.svg +1 -0
- package/references/front-demo/src/views/layout/components/chatGPT/image/titleIcon.png +0 -0
- package/references/front-demo/src/views/layout/components/chatGPT/index.js +7 -0
- package/references/front-demo/src/views/layout/components/chatGPT/index.vue +517 -0
- package/references/front-demo/src/views/layout/components/chatGPT/styles/index.scss +360 -0
- package/references/front-demo/src/views/layout/components/chatGPT/utils/gpt.js +29 -0
- package/references/front-demo/src/views/layout/components/chatGPT/utils/index.js +70 -0
- package/references/front-demo/src/views/layout/components/index.js +6 -0
- package/references/front-demo/src/views/layout/mixin/ResizeHandler.js +28 -0
- package/references/front-demo/src/views/layout/utils/dynamicFormHelper.js +44 -0
- package/references/front-demo/src/views/layout/utils/scroll.js +89 -0
- package/references/front-demo/src/views/letters/config/gridConfig.js +59 -0
- package/references/front-demo/src/views/letters/index.vue +401 -0
- package/references/front-demo/src/views/login/ForgetPassword.vue +425 -0
- package/references/front-demo/src/views/login/FormLogin.vue +1222 -0
- package/references/front-demo/src/views/login/ScanLogin.vue +256 -0
- package/references/front-demo/src/views/login/index.vue +432 -0
- package/references/front-demo/src/views/mdmCustomer/__tests__/CustomerList.spec.ts +90 -0
- package/references/front-demo/src/views/mdmCustomer/components/AddressFormDialog.vue +95 -0
- package/references/front-demo/src/views/mdmCustomer/components/ConfirmDialog.vue +37 -0
- package/references/front-demo/src/views/mdmCustomer/components/CustomerDetailDrawer.vue +118 -0
- package/references/front-demo/src/views/mdmCustomer/components/CustomerFormDialog.vue +254 -0
- package/references/front-demo/src/views/mdmCustomer/index.vue +397 -0
- package/references/front-demo/src/views/person-info/components/information.vue +99 -0
- package/references/front-demo/src/views/person-info/index.vue +28 -0
- package/references/front-demo/src/views/product-master-data/__tests__/ProductFormDialog.spec.ts +246 -0
- package/references/front-demo/src/views/product-master-data/__tests__/ProductList.spec.ts +423 -0
- package/references/front-demo/src/views/product-master-data/components/ConfirmDialog.vue +69 -0
- package/references/front-demo/src/views/product-master-data/components/ProductDetailDrawer.vue +140 -0
- package/references/front-demo/src/views/product-master-data/components/ProductFormDialog.vue +198 -0
- package/references/front-demo/src/views/product-master-data/index.vue +384 -0
- package/references/front-demo/src/views/sso/login/index.vue +128 -0
- package/references/front-demo/src/views/sso/multi-login/index.vue +95 -0
- package/references/front-demo/src/views/third-login/index.vue +73 -0
- package/references/front-demo/src/views/third-view.vue +86 -0
- package/references/front-demo/tsconfig.app.json +12 -0
- package/references/front-demo/tsconfig.json +11 -0
- package/references/front-demo/tsconfig.node.json +19 -0
- package/references/front-demo/vite.config.ts +56 -0
- package/references/front-demo/vitest.config.ts +35 -0
- package/references/python-end-standard/01-Python/345/220/216/347/253/257/347/274/226/347/240/201/350/247/204/350/214/203.md +372 -0
- package/references/python-end-standard/02-/346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/344/270/216/344/275/277/347/224/250/350/247/204/350/214/203.md +226 -0
- package/references/python-end-standard/03-Celery/345/274/202/346/255/245/344/273/273/345/212/241/350/247/204/350/214/203.md +237 -0
- package/references/python-end-standard/04-Redis/344/275/277/347/224/250/350/247/204/350/214/203.md +231 -0
- package/references/python-end-standard/index.md +12 -0
- package/references/web-ui/.editorconfig +9 -0
- package/references/web-ui/.gitattributes +1 -0
- package/references/web-ui/.prettierrc.json +6 -0
- package/references/web-ui/README.md +39 -0
- package/references/web-ui/auto-imports.d.ts +10 -0
- package/references/web-ui/components.d.ts +78 -0
- package/references/web-ui/env.d.ts +1 -0
- package/references/web-ui/eslint.config.ts +22 -0
- package/references/web-ui/index.html +22 -0
- package/references/web-ui/package.json +57 -0
- package/references/web-ui/public/apiurls.js +69 -0
- package/references/web-ui/public/config.js +93 -0
- package/references/web-ui/public/favicon.ico +0 -0
- package/references/web-ui/src/App.vue +117 -0
- package/references/web-ui/src/api/app.ts +298 -0
- package/references/web-ui/src/api/attachment.ts +30 -0
- package/references/web-ui/src/api/base-exception/index.ts +87 -0
- package/references/web-ui/src/api/collect/index.ts +37 -0
- package/references/web-ui/src/api/comment/index.ts +44 -0
- package/references/web-ui/src/api/dashboard/index.ts +83 -0
- package/references/web-ui/src/api/dataImport.ts +97 -0
- package/references/web-ui/src/api/dingding/index.ts +43 -0
- package/references/web-ui/src/api/export.ts +25 -0
- package/references/web-ui/src/api/home/index.ts +78 -0
- package/references/web-ui/src/api/iotBaseRole/index.ts +32 -0
- package/references/web-ui/src/api/iotBaseSystem/index.ts +32 -0
- package/references/web-ui/src/api/letters/index.ts +93 -0
- package/references/web-ui/src/api/login.ts +140 -0
- package/references/web-ui/src/api/menu/index.ts +79 -0
- package/references/web-ui/src/api/multi-login/index.ts +36 -0
- package/references/web-ui/src/api/personalInformation/index.ts +9 -0
- package/references/web-ui/src/api/portal/index.ts +95 -0
- package/references/web-ui/src/api/practice/index.ts +32 -0
- package/references/web-ui/src/api/reset-password/index.ts +16 -0
- package/references/web-ui/src/api/system-manage/dataImport/index.ts +87 -0
- package/references/web-ui/src/api/system-manage/menu/index.ts +34 -0
- package/references/web-ui/src/api/system-manage/reverse-authorization/index.ts +18 -0
- package/references/web-ui/src/api/testMenu/demo1/index.ts +14 -0
- package/references/web-ui/src/api/testMenu/demo2/index.ts +0 -0
- package/references/web-ui/src/api/testMenu/leaveApplication/index.ts +53 -0
- package/references/web-ui/src/api/testMenu/testDemo/index.ts +66 -0
- package/references/web-ui/src/api/update/index.ts +43 -0
- package/references/web-ui/src/api/worktable/agenda.ts +19 -0
- package/references/web-ui/src/api/worktable/approved.ts +32 -0
- package/references/web-ui/src/api/worktable/entrusted.ts +92 -0
- package/references/web-ui/src/api/worktable/myProcess.ts +48 -0
- package/references/web-ui/src/api/worktable/startTask.ts +56 -0
- package/references/web-ui/src/api/worktable/tobeRead.ts +28 -0
- package/references/web-ui/src/api/wx-work/index.ts +43 -0
- package/references/web-ui/src/assets/images/404.png +0 -0
- package/references/web-ui/src/assets/images/404_cloud.png +0 -0
- package/references/web-ui/src/assets/images/compact_layout.png +0 -0
- package/references/web-ui/src/assets/images/dingding.png +0 -0
- package/references/web-ui/src/assets/images/feishu.png +0 -0
- package/references/web-ui/src/assets/images/hover.png +0 -0
- package/references/web-ui/src/assets/images/login_background.jpg +0 -0
- package/references/web-ui/src/assets/images/login_banner.jpg +0 -0
- package/references/web-ui/src/assets/images/logo.png +0 -0
- package/references/web-ui/src/assets/images/noData.png +0 -0
- package/references/web-ui/src/assets/images/no_data.png +0 -0
- package/references/web-ui/src/assets/images/normal_layout.png +0 -0
- package/references/web-ui/src/assets/images/qiyeweixin.png +0 -0
- package/references/web-ui/src/assets/images/sider-open.png +0 -0
- package/references/web-ui/src/assets/images/vertical.png +0 -0
- package/references/web-ui/src/assets/png/pass.png +0 -0
- package/references/web-ui/src/components/GsIcon/index.ts +7 -0
- package/references/web-ui/src/components/GsIcon/index.vue +47 -0
- package/references/web-ui/src/components/GsIconDialog/icons.ts +2167 -0
- package/references/web-ui/src/components/GsIconDialog/index.ts +7 -0
- package/references/web-ui/src/components/GsIconDialog/index.vue +856 -0
- package/references/web-ui/src/components/GsUpload/GsOverloadText.vue +68 -0
- package/references/web-ui/src/components/GsUpload/attachmentList.vue +241 -0
- package/references/web-ui/src/components/GsUpload/copper.vue +117 -0
- package/references/web-ui/src/components/GsUpload/imgUpload.vue +382 -0
- package/references/web-ui/src/components/GsUpload/index.vue +468 -0
- package/references/web-ui/src/components/GsUpload/preview.vue +44 -0
- package/references/web-ui/src/components/GsUpload/utils.ts +151 -0
- package/references/web-ui/src/components/SvgIcon/index.ts +7 -0
- package/references/web-ui/src/components/SvgIcon/index.vue +39 -0
- package/references/web-ui/src/components/UploadImg/index.ts +7 -0
- package/references/web-ui/src/components/UploadImg/index.vue +292 -0
- package/references/web-ui/src/components/global-register.ts +31 -0
- package/references/web-ui/src/components/utils/index.ts +12 -0
- package/references/web-ui/src/config/index.js +64 -0
- package/references/web-ui/src/core/initMain.ts +89 -0
- package/references/web-ui/src/icons/index.ts +5 -0
- package/references/web-ui/src/icons/svg/AssessmentInfo.svg +1 -0
- package/references/web-ui/src/icons/svg/BasicConfig.svg +1 -0
- package/references/web-ui/src/icons/svg/DataEase.svg +86 -0
- package/references/web-ui/src/icons/svg/PDF.svg +1 -0
- package/references/web-ui/src/icons/svg/account_box.svg +5 -0
- package/references/web-ui/src/icons/svg/add.svg +1 -0
- package/references/web-ui/src/icons/svg/alert.svg +8 -0
- package/references/web-ui/src/icons/svg/alertlist.svg +18 -0
- package/references/web-ui/src/icons/svg/all-msg.svg +1 -0
- package/references/web-ui/src/icons/svg/analysis.svg +1 -0
- package/references/web-ui/src/icons/svg/app.svg +1 -0
- package/references/web-ui/src/icons/svg/assPersonnel.svg +1 -0
- package/references/web-ui/src/icons/svg/assessment.svg +1 -0
- package/references/web-ui/src/icons/svg/bar-horizontal.svg +1 -0
- package/references/web-ui/src/icons/svg/bar-stack-horizontal.svg +1 -0
- package/references/web-ui/src/icons/svg/bar-stack.svg +1 -0
- package/references/web-ui/src/icons/svg/bar.svg +1 -0
- package/references/web-ui/src/icons/svg/basicalgorithm.svg +1 -0
- package/references/web-ui/src/icons/svg/battery.svg +1 -0
- package/references/web-ui/src/icons/svg/bbgl.svg +1 -0
- package/references/web-ui/src/icons/svg/bell.svg +5 -0
- package/references/web-ui/src/icons/svg/bfcx.svg +1 -0
- package/references/web-ui/src/icons/svg/bjqd.svg +1 -0
- package/references/web-ui/src/icons/svg/bjxhtj.svg +1 -0
- package/references/web-ui/src/icons/svg/bjxhxq.svg +1 -0
- package/references/web-ui/src/icons/svg/bmll.svg +1 -0
- package/references/web-ui/src/icons/svg/bmtl.svg +1 -0
- package/references/web-ui/src/icons/svg/bqcj.svg +1 -0
- package/references/web-ui/src/icons/svg/bqmbgl.svg +1 -0
- package/references/web-ui/src/icons/svg/buddle-map.svg +1 -0
- package/references/web-ui/src/icons/svg/bug.svg +1 -0
- package/references/web-ui/src/icons/svg/bygd.svg +1 -0
- package/references/web-ui/src/icons/svg/bz.svg +1 -0
- package/references/web-ui/src/icons/svg/bzgl.svg +1 -0
- package/references/web-ui/src/icons/svg/characteristics.svg +1 -0
- package/references/web-ui/src/icons/svg/chart-mix.svg +1 -0
- package/references/web-ui/src/icons/svg/checkbox-checked.svg +5 -0
- package/references/web-ui/src/icons/svg/checkimage.svg +1 -0
- package/references/web-ui/src/icons/svg/ck.svg +1 -0
- package/references/web-ui/src/icons/svg/classifymark.svg +1 -0
- package/references/web-ui/src/icons/svg/closeEyes.svg +15 -0
- package/references/web-ui/src/icons/svg/club.svg +1 -0
- package/references/web-ui/src/icons/svg/collector.svg +1 -0
- package/references/web-ui/src/icons/svg/collectormanage.svg +1 -0
- package/references/web-ui/src/icons/svg/crkdcx.svg +1 -0
- package/references/web-ui/src/icons/svg/dashboard-collector.svg +38 -0
- package/references/web-ui/src/icons/svg/dashboard-device.svg +40 -0
- package/references/web-ui/src/icons/svg/dashboard-gateway.svg +38 -0
- package/references/web-ui/src/icons/svg/dashboard-warning.svg +40 -0
- package/references/web-ui/src/icons/svg/dashboard.svg +1 -0
- package/references/web-ui/src/icons/svg/database.svg +1 -0
- package/references/web-ui/src/icons/svg/dataset-task.svg +1 -0
- package/references/web-ui/src/icons/svg/datasource.svg +1 -0
- package/references/web-ui/src/icons/svg/db.svg +1 -0
- package/references/web-ui/src/icons/svg/ddgl.svg +1 -0
- package/references/web-ui/src/icons/svg/ddycjk.svg +1 -0
- package/references/web-ui/src/icons/svg/default.svg +1 -0
- package/references/web-ui/src/icons/svg/definition.svg +1 -0
- package/references/web-ui/src/icons/svg/depassessment.svg +1 -0
- package/references/web-ui/src/icons/svg/dept.svg +1 -0
- package/references/web-ui/src/icons/svg/device.svg +1 -0
- package/references/web-ui/src/icons/svg/devicebig.svg +1 -0
- package/references/web-ui/src/icons/svg/devicegroup.svg +1 -0
- package/references/web-ui/src/icons/svg/devicelist.svg +1 -0
- package/references/web-ui/src/icons/svg/devicemanage.svg +1 -0
- package/references/web-ui/src/icons/svg/deviceparam.svg +1 -0
- package/references/web-ui/src/icons/svg/devicetype.svg +1 -0
- package/references/web-ui/src/icons/svg/diagnose.svg +1 -0
- package/references/web-ui/src/icons/svg/diagnoseresult.svg +1 -0
- package/references/web-ui/src/icons/svg/distribution.svg +1 -0
- package/references/web-ui/src/icons/svg/doc.svg +1 -0
- package/references/web-ui/src/icons/svg/docs.svg +1 -0
- package/references/web-ui/src/icons/svg/dqby.svg +1 -0
- package/references/web-ui/src/icons/svg/dqbydb.svg +1 -0
- package/references/web-ui/src/icons/svg/dqbygc.svg +1 -0
- package/references/web-ui/src/icons/svg/dqbygd.svg +1 -0
- package/references/web-ui/src/icons/svg/dqbyjh.svg +1 -0
- package/references/web-ui/src/icons/svg/ds-api.svg +1 -0
- package/references/web-ui/src/icons/svg/ds-custom.svg +1 -0
- package/references/web-ui/src/icons/svg/ds-db.svg +1 -0
- package/references/web-ui/src/icons/svg/ds-excel.svg +1 -0
- package/references/web-ui/src/icons/svg/ds-sql.svg +1 -0
- package/references/web-ui/src/icons/svg/ds-union.svg +1 -0
- package/references/web-ui/src/icons/svg/dxjdb.svg +1 -0
- package/references/web-ui/src/icons/svg/dxjgc.svg +1 -0
- package/references/web-ui/src/icons/svg/dxjgd.svg +1 -0
- package/references/web-ui/src/icons/svg/dxjjh.svg +1 -0
- package/references/web-ui/src/icons/svg/dy.svg +1 -0
- package/references/web-ui/src/icons/svg/earth.svg +5 -0
- package/references/web-ui/src/icons/svg/echart-fullscreen.svg +1 -0
- package/references/web-ui/src/icons/svg/echart-nomalscreen.svg +1 -0
- package/references/web-ui/src/icons/svg/edit.svg +1 -0
- package/references/web-ui/src/icons/svg/email-task.svg +1 -0
- package/references/web-ui/src/icons/svg/envelop.svg +5 -0
- package/references/web-ui/src/icons/svg/equalizer.svg +5 -0
- package/references/web-ui/src/icons/svg/example.svg +1 -0
- package/references/web-ui/src/icons/svg/exclamationmark.svg +1 -0
- package/references/web-ui/src/icons/svg/exclamationmark2.svg +1 -0
- package/references/web-ui/src/icons/svg/exit-fullscreen.svg +1 -0
- package/references/web-ui/src/icons/svg/eye-open.svg +1 -0
- package/references/web-ui/src/icons/svg/eye.svg +1 -0
- package/references/web-ui/src/icons/svg/fav.svg +1 -0
- package/references/web-ui/src/icons/svg/field_location.svg +1 -0
- package/references/web-ui/src/icons/svg/field_text.svg +1 -0
- package/references/web-ui/src/icons/svg/field_time.svg +1 -0
- package/references/web-ui/src/icons/svg/field_value.svg +1 -0
- package/references/web-ui/src/icons/svg/folder.svg +1 -0
- package/references/web-ui/src/icons/svg/form.svg +1 -0
- package/references/web-ui/src/icons/svg/fullscreen.svg +1 -0
- package/references/web-ui/src/icons/svg/funnel.svg +1 -0
- package/references/web-ui/src/icons/svg/gateway.svg +1 -0
- package/references/web-ui/src/icons/svg/gatewaymanage.svg +16 -0
- package/references/web-ui/src/icons/svg/gauge.svg +1 -0
- package/references/web-ui/src/icons/svg/gdgl.svg +1 -0
- package/references/web-ui/src/icons/svg/gdll.svg +1 -0
- package/references/web-ui/src/icons/svg/gdtl.svg +1 -0
- package/references/web-ui/src/icons/svg/gdwcqk.svg +1 -0
- package/references/web-ui/src/icons/svg/gdwcxq.svg +1 -0
- package/references/web-ui/src/icons/svg/gnwz.svg +1 -0
- package/references/web-ui/src/icons/svg/gs-add.svg +14 -0
- package/references/web-ui/src/icons/svg/gs-change.svg +18 -0
- package/references/web-ui/src/icons/svg/gs-choose-icon.svg +23 -0
- package/references/web-ui/src/icons/svg/gs-close.svg +15 -0
- package/references/web-ui/src/icons/svg/gs-delete.svg +19 -0
- package/references/web-ui/src/icons/svg/gs-down.svg +12 -0
- package/references/web-ui/src/icons/svg/gs-edit.svg +23 -0
- package/references/web-ui/src/icons/svg/gs-edit2.svg +18 -0
- package/references/web-ui/src/icons/svg/gs-page.svg +14 -0
- package/references/web-ui/src/icons/svg/gs-resize.svg +12 -0
- package/references/web-ui/src/icons/svg/gs-select.svg +15 -0
- package/references/web-ui/src/icons/svg/gzbx.svg +1 -0
- package/references/web-ui/src/icons/svg/gzgd.svg +1 -0
- package/references/web-ui/src/icons/svg/gzk.svg +1 -0
- package/references/web-ui/src/icons/svg/gzzd.svg +1 -0
- package/references/web-ui/src/icons/svg/head.svg +13 -0
- package/references/web-ui/src/icons/svg/iconfont.svg +71 -0
- package/references/web-ui/src/icons/svg/im_message.svg +1 -0
- package/references/web-ui/src/icons/svg/indexdefine.svg +1 -0
- package/references/web-ui/src/icons/svg/inner-join.svg +1 -0
- package/references/web-ui/src/icons/svg/international.svg +1 -0
- package/references/web-ui/src/icons/svg/jcsj.svg +1 -0
- package/references/web-ui/src/icons/svg/jhjxgd.svg +1 -0
- package/references/web-ui/src/icons/svg/jilu.svg +1 -0
- package/references/web-ui/src/icons/svg/jldw.svg +1 -0
- package/references/web-ui/src/icons/svg/jscsfp.svg +1 -0
- package/references/web-ui/src/icons/svg/jscswh.svg +1 -0
- package/references/web-ui/src/icons/svg/kccx.svg +1 -0
- package/references/web-ui/src/icons/svg/kcpd.svg +1 -0
- package/references/web-ui/src/icons/svg/konwledgelist.svg +1 -0
- package/references/web-ui/src/icons/svg/kucun.svg +1 -0
- package/references/web-ui/src/icons/svg/language.svg +1 -0
- package/references/web-ui/src/icons/svg/left-join.svg +1 -0
- package/references/web-ui/src/icons/svg/leftBack.svg +15 -0
- package/references/web-ui/src/icons/svg/line-stack.svg +1 -0
- package/references/web-ui/src/icons/svg/line.svg +1 -0
- package/references/web-ui/src/icons/svg/link.svg +1 -0
- package/references/web-ui/src/icons/svg/liquid.svg +1 -0
- package/references/web-ui/src/icons/svg/list.svg +5 -0
- package/references/web-ui/src/icons/svg/location2.svg +5 -0
- package/references/web-ui/src/icons/svg/lock_closed.svg +1 -0
- package/references/web-ui/src/icons/svg/lock_open.svg +1 -0
- package/references/web-ui/src/icons/svg/logo.svg +32 -0
- package/references/web-ui/src/icons/svg/map.svg +1 -0
- package/references/web-ui/src/icons/svg/map_old.svg +1 -0
- package/references/web-ui/src/icons/svg/menu.svg +1 -0
- package/references/web-ui/src/icons/svg/message.svg +1 -0
- package/references/web-ui/src/icons/svg/messaged.svg +1 -0
- package/references/web-ui/src/icons/svg/meter.svg +5 -0
- package/references/web-ui/src/icons/svg/mobile.svg +5 -0
- package/references/web-ui/src/icons/svg/model.svg +1 -0
- package/references/web-ui/src/icons/svg/money.svg +1 -0
- package/references/web-ui/src/icons/svg/more_v.svg +1 -0
- package/references/web-ui/src/icons/svg/msg-setting.svg +1 -0
- package/references/web-ui/src/icons/svg/mttr&mtbf.svg +1 -0
- package/references/web-ui/src/icons/svg/multiplemp.svg +1 -0
- package/references/web-ui/src/icons/svg/myassessment.svg +1 -0
- package/references/web-ui/src/icons/svg/nested.svg +1 -0
- package/references/web-ui/src/icons/svg/new-message.svg +5 -0
- package/references/web-ui/src/icons/svg/no-join.svg +1 -0
- package/references/web-ui/src/icons/svg/normal-fx.svg +1 -0
- package/references/web-ui/src/icons/svg/notification.svg +1 -0
- package/references/web-ui/src/icons/svg/openEyes.svg +12 -0
- package/references/web-ui/src/icons/svg/openai.svg +1 -0
- package/references/web-ui/src/icons/svg/panel.svg +1 -0
- package/references/web-ui/src/icons/svg/password.svg +1 -0
- package/references/web-ui/src/icons/svg/people.svg +1 -0
- package/references/web-ui/src/icons/svg/peoples.svg +1 -0
- package/references/web-ui/src/icons/svg/pie-rose.svg +1 -0
- package/references/web-ui/src/icons/svg/pie.svg +1 -0
- package/references/web-ui/src/icons/svg/plus.svg +5 -0
- package/references/web-ui/src/icons/svg/podcast.svg +5 -0
- package/references/web-ui/src/icons/svg/preview.svg +1 -0
- package/references/web-ui/src/icons/svg/qrcode.svg +5 -0
- package/references/web-ui/src/icons/svg/radar.svg +1 -0
- package/references/web-ui/src/icons/svg/readed-msg.svg +1 -0
- package/references/web-ui/src/icons/svg/remove.svg +1 -0
- package/references/web-ui/src/icons/svg/rhdb.svg +1 -0
- package/references/web-ui/src/icons/svg/rhgc.svg +1 -0
- package/references/web-ui/src/icons/svg/rhgd.svg +1 -0
- package/references/web-ui/src/icons/svg/right-join.svg +1 -0
- package/references/web-ui/src/icons/svg/role.svg +1 -0
- package/references/web-ui/src/icons/svg/rulelist.svg +1 -0
- package/references/web-ui/src/icons/svg/runconfig.svg +1 -0
- package/references/web-ui/src/icons/svg/sbgzlbb.svg +1 -0
- package/references/web-ui/src/icons/svg/sbqy.svg +1 -0
- package/references/web-ui/src/icons/svg/sbrhjh.svg +1 -0
- package/references/web-ui/src/icons/svg/sbwhl.svg +1 -0
- package/references/web-ui/src/icons/svg/scatter.svg +1 -0
- package/references/web-ui/src/icons/svg/scene.svg +1 -0
- package/references/web-ui/src/icons/svg/shoppingCard.svg +1 -0
- package/references/web-ui/src/icons/svg/shouqi.svg +13 -0
- package/references/web-ui/src/icons/svg/singlemp.svg +1 -0
- package/references/web-ui/src/icons/svg/size.svg +1 -0
- package/references/web-ui/src/icons/svg/slimHead.svg +12 -0
- package/references/web-ui/src/icons/svg/sort-asc.svg +1 -0
- package/references/web-ui/src/icons/svg/sort-desc.svg +1 -0
- package/references/web-ui/src/icons/svg/standard.svg +1 -0
- package/references/web-ui/src/icons/svg/star.svg +1 -0
- package/references/web-ui/src/icons/svg/stats-bars.svg +5 -0
- package/references/web-ui/src/icons/svg/suffix-obj.svg +1 -0
- package/references/web-ui/src/icons/svg/sys-tools.svg +1 -0
- package/references/web-ui/src/icons/svg/system.svg +1 -0
- package/references/web-ui/src/icons/svg/table-info.svg +1 -0
- package/references/web-ui/src/icons/svg/table-normal.svg +1 -0
- package/references/web-ui/src/icons/svg/table-pivot.svg +1 -0
- package/references/web-ui/src/icons/svg/table.svg +1 -0
- package/references/web-ui/src/icons/svg/taizhang.svg +1 -0
- package/references/web-ui/src/icons/svg/task.svg +1 -0
- package/references/web-ui/src/icons/svg/tenant.svg +1 -0
- package/references/web-ui/src/icons/svg/text.svg +1 -0
- package/references/web-ui/src/icons/svg/tjqq.svg +1 -0
- package/references/web-ui/src/icons/svg/tree-company.svg +1 -0
- package/references/web-ui/src/icons/svg/tree-department.svg +1 -0
- package/references/web-ui/src/icons/svg/tree-device.svg +1 -0
- package/references/web-ui/src/icons/svg/tree-organization.svg +1 -0
- package/references/web-ui/src/icons/svg/tree.svg +1 -0
- package/references/web-ui/src/icons/svg/treemap.svg +1 -0
- package/references/web-ui/src/icons/svg/undefinedata.svg +1 -0
- package/references/web-ui/src/icons/svg/unread-msg.svg +1 -0
- package/references/web-ui/src/icons/svg/user-check.svg +6 -0
- package/references/web-ui/src/icons/svg/user.svg +1 -0
- package/references/web-ui/src/icons/svg/users.svg +6 -0
- package/references/web-ui/src/icons/svg/warn-tre.svg +1 -0
- package/references/web-ui/src/icons/svg/waterfall.svg +1 -0
- package/references/web-ui/src/icons/svg/wdgzt.svg +1 -0
- package/references/web-ui/src/icons/svg/wdlc.svg +1 -0
- package/references/web-ui/src/icons/svg/web-msg.svg +1 -0
- package/references/web-ui/src/icons/svg/wlbm.svg +1 -0
- package/references/web-ui/src/icons/svg/wlfl.svg +1 -0
- package/references/web-ui/src/icons/svg/wlgl.svg +1 -0
- package/references/web-ui/src/icons/svg/word-cloud.svg +1 -0
- package/references/web-ui/src/icons/svg/wtsp.svg +1 -0
- package/references/web-ui/src/icons/svg/wxdb.svg +1 -0
- package/references/web-ui/src/icons/svg/wxgc.svg +1 -0
- package/references/web-ui/src/icons/svg/xiaoxi.svg +13 -0
- package/references/web-ui/src/icons/svg/xyldr.svg +1 -0
- package/references/web-ui/src/icons/svg/ysp.svg +1 -0
- package/references/web-ui/src/icons/svg/yxgl.svg +1 -0
- package/references/web-ui/src/icons/svg/zcfbjzttj.svg +1 -0
- package/references/web-ui/src/icons/svg/zcfl.svg +1 -0
- package/references/web-ui/src/icons/svg/zcgl.svg +1 -0
- package/references/web-ui/src/icons/svg/zclk.svg +1 -0
- package/references/web-ui/src/icons/svg/zcll.svg +1 -0
- package/references/web-ui/src/icons/svg/zclx.svg +1 -0
- package/references/web-ui/src/icons/svg/zcpd.svg +1 -0
- package/references/web-ui/src/icons/svg/zctjbb.svg +1 -0
- package/references/web-ui/src/icons/svg/zcz.svg +1 -0
- package/references/web-ui/src/icons/svg/zhankai.svg +13 -0
- package/references/web-ui/src/icons/svg/zichan.svg +1 -0
- package/references/web-ui/src/icons/svg/zxck.svg +1 -0
- package/references/web-ui/src/icons/svg/zxrk.svg +1 -0
- package/references/web-ui/src/lang/element-lang.ts +26 -0
- package/references/web-ui/src/lang/en-us.ts +146 -0
- package/references/web-ui/src/lang/hu-hu.ts +1141 -0
- package/references/web-ui/src/lang/index.ts +109 -0
- package/references/web-ui/src/lang/iotBaseRole/en-us.ts +28 -0
- package/references/web-ui/src/lang/iotBaseRole/zh-cn.ts +28 -0
- package/references/web-ui/src/lang/iotBaseSystem/en-us.ts +35 -0
- package/references/web-ui/src/lang/iotBaseSystem/zh-cn.ts +35 -0
- package/references/web-ui/src/lang/modules/button/en-us.ts +158 -0
- package/references/web-ui/src/lang/modules/button/zh-cn.ts +157 -0
- package/references/web-ui/src/lang/modules/button/zh-tw.ts +157 -0
- package/references/web-ui/src/lang/modules/customizeTable/en-us.ts +56 -0
- package/references/web-ui/src/lang/modules/customizeTable/zh-cn.ts +55 -0
- package/references/web-ui/src/lang/modules/customizeTable/zh-tw.ts +55 -0
- package/references/web-ui/src/lang/modules/exportData/en-us.ts +19 -0
- package/references/web-ui/src/lang/modules/exportData/zh-cn.ts +19 -0
- package/references/web-ui/src/lang/modules/exportData/zh-tw.ts +19 -0
- package/references/web-ui/src/lang/modules/exportHistroy/en-us.ts +10 -0
- package/references/web-ui/src/lang/modules/exportHistroy/zh-cn.ts +10 -0
- package/references/web-ui/src/lang/modules/exportHistroy/zh-tw.ts +10 -0
- package/references/web-ui/src/lang/modules/gsReport/en-us.ts +41 -0
- package/references/web-ui/src/lang/modules/gsReport/zh-cn.ts +41 -0
- package/references/web-ui/src/lang/modules/gsReport/zh-tw.ts +41 -0
- package/references/web-ui/src/lang/modules/gsUploadFile/en-us.ts +10 -0
- package/references/web-ui/src/lang/modules/gsUploadFile/zh-cn.ts +10 -0
- package/references/web-ui/src/lang/modules/gsUploadFile/zh-tw.ts +10 -0
- package/references/web-ui/src/lang/modules/home/en-us.ts +19 -0
- package/references/web-ui/src/lang/modules/home/zh-cn.ts +19 -0
- package/references/web-ui/src/lang/modules/home/zh-tw.ts +19 -0
- package/references/web-ui/src/lang/modules/importData/en-us.ts +42 -0
- package/references/web-ui/src/lang/modules/importData/zh-cn.ts +42 -0
- package/references/web-ui/src/lang/modules/importData/zh-tw.ts +42 -0
- package/references/web-ui/src/lang/modules/importHistroy/en-us.ts +9 -0
- package/references/web-ui/src/lang/modules/importHistroy/zh-cn.ts +9 -0
- package/references/web-ui/src/lang/modules/importHistroy/zh-tw.ts +9 -0
- package/references/web-ui/src/lang/modules/js/en-us.ts +63 -0
- package/references/web-ui/src/lang/modules/js/zh-cn.ts +60 -0
- package/references/web-ui/src/lang/modules/js/zh-tw.ts +60 -0
- package/references/web-ui/src/lang/modules/letters/en-us.ts +21 -0
- package/references/web-ui/src/lang/modules/letters/zh-cn.ts +22 -0
- package/references/web-ui/src/lang/modules/letters/zh-tw.ts +22 -0
- package/references/web-ui/src/lang/modules/login/en-us.ts +68 -0
- package/references/web-ui/src/lang/modules/login/zh-cn.ts +64 -0
- package/references/web-ui/src/lang/modules/login/zh-tw.ts +64 -0
- package/references/web-ui/src/lang/modules/menu/en-us.ts +429 -0
- package/references/web-ui/src/lang/modules/menu/zh-cn.ts +423 -0
- package/references/web-ui/src/lang/modules/menu/zh-tw.ts +423 -0
- package/references/web-ui/src/lang/modules/message/en-us.ts +4 -0
- package/references/web-ui/src/lang/modules/message/zh-cn.ts +4 -0
- package/references/web-ui/src/lang/modules/message/zh-tw.ts +4 -0
- package/references/web-ui/src/lang/modules/otherLang/en-us.ts +63 -0
- package/references/web-ui/src/lang/modules/otherLang/zh-cn.ts +60 -0
- package/references/web-ui/src/lang/modules/otherLang/zh-tw.ts +58 -0
- package/references/web-ui/src/lang/modules/person/en-us.ts +27 -0
- package/references/web-ui/src/lang/modules/person/zh-cn.ts +27 -0
- package/references/web-ui/src/lang/modules/person/zh-tw.ts +27 -0
- package/references/web-ui/src/lang/modules/source_data/en-us.ts +49 -0
- package/references/web-ui/src/lang/modules/source_data/zh-cn.ts +41 -0
- package/references/web-ui/src/lang/modules/source_data/zh-tw.ts +41 -0
- package/references/web-ui/src/lang/modules/theme/en-us.ts +22 -0
- package/references/web-ui/src/lang/modules/theme/zh-cn.ts +22 -0
- package/references/web-ui/src/lang/modules/theme/zh-tw.ts +23 -0
- package/references/web-ui/src/lang/modules/third/en-us.ts +10 -0
- package/references/web-ui/src/lang/modules/third/zh-cn.ts +9 -0
- package/references/web-ui/src/lang/modules/third/zh-tw.ts +9 -0
- package/references/web-ui/src/lang/modules/toast/en-us.ts +21 -0
- package/references/web-ui/src/lang/modules/toast/zh-cn.ts +21 -0
- package/references/web-ui/src/lang/modules/toast/zh-tw.ts +21 -0
- package/references/web-ui/src/lang/modules/uploadDocument/en-us.ts +6 -0
- package/references/web-ui/src/lang/modules/uploadDocument/zh-cn.ts +6 -0
- package/references/web-ui/src/lang/modules/uploadDocument/zh-tw.ts +6 -0
- package/references/web-ui/src/lang/utils.ts +20 -0
- package/references/web-ui/src/lang/vi-vn.ts +1140 -0
- package/references/web-ui/src/lang/zh-cn.ts +180 -0
- package/references/web-ui/src/lang/zh-tw.ts +147 -0
- package/references/web-ui/src/main.ts +25 -0
- package/references/web-ui/src/permission.ts +407 -0
- package/references/web-ui/src/plugins/i18n.ts +3 -0
- package/references/web-ui/src/plugins/pinia.ts +7 -0
- package/references/web-ui/src/qiankun.js +114 -0
- package/references/web-ui/src/router/index.ts +119 -0
- package/references/web-ui/src/store/index.ts +43 -0
- package/references/web-ui/src/store/modules/app/actions.ts +137 -0
- package/references/web-ui/src/store/modules/app/getters.ts +17 -0
- package/references/web-ui/src/store/modules/app/index.ts +52 -0
- package/references/web-ui/src/store/modules/app/mutations.ts +108 -0
- package/references/web-ui/src/store/modules/permission/actions.ts +11 -0
- package/references/web-ui/src/store/modules/permission/getters.ts +5 -0
- package/references/web-ui/src/store/modules/permission/index.ts +14 -0
- package/references/web-ui/src/store/modules/permission/mutations.ts +13 -0
- package/references/web-ui/src/store/modules/tagsView/actions.ts +87 -0
- package/references/web-ui/src/store/modules/tagsView/getters.ts +6 -0
- package/references/web-ui/src/store/modules/tagsView/index.ts +18 -0
- package/references/web-ui/src/store/modules/tagsView/mutations.ts +118 -0
- package/references/web-ui/src/store/modules/theme/actions.ts +38 -0
- package/references/web-ui/src/store/modules/theme/getters.ts +10 -0
- package/references/web-ui/src/store/modules/theme/index.ts +26 -0
- package/references/web-ui/src/store/modules/theme/mutations.ts +28 -0
- package/references/web-ui/src/store/modules/user/actions.ts +243 -0
- package/references/web-ui/src/store/modules/user/getters.ts +10 -0
- package/references/web-ui/src/store/modules/user/index.ts +44 -0
- package/references/web-ui/src/store/modules/user/mutations.ts +104 -0
- package/references/web-ui/src/store/piniaToVuex/index.ts +179 -0
- package/references/web-ui/src/stores/counter.ts +12 -0
- package/references/web-ui/src/styles/element-plus.scss +937 -0
- package/references/web-ui/src/styles/global.scss +826 -0
- package/references/web-ui/src/styles/iconfont/demo.css +539 -0
- package/references/web-ui/src/styles/iconfont/iconfont.css +68 -0
- package/references/web-ui/src/styles/iconfont/iconfont.js +63 -0
- package/references/web-ui/src/styles/iconfont/iconfont.ttf +0 -0
- package/references/web-ui/src/styles/index.scss +116 -0
- package/references/web-ui/src/styles/mixin.scss +78 -0
- package/references/web-ui/src/styles/theme/black/content-management.scss +11 -0
- package/references/web-ui/src/styles/theme/black/dynamic-report.scss +31 -0
- package/references/web-ui/src/styles/theme/black/form-design.scss +181 -0
- package/references/web-ui/src/styles/theme/black/open-api.scss +118 -0
- package/references/web-ui/src/styles/theme/black/platform.scss +57 -0
- package/references/web-ui/src/styles/theme/black/process-manage.scss +48 -0
- package/references/web-ui/src/styles/theme/black/rent-mannage.scss +8 -0
- package/references/web-ui/src/styles/theme/black/schedule.scss +45 -0
- package/references/web-ui/src/styles/theme/black/service-management.scss +14 -0
- package/references/web-ui/src/styles/theme/black/system-manage.scss +144 -0
- package/references/web-ui/src/styles/theme/black.scss +1642 -0
- package/references/web-ui/src/styles/theme/default/index.scss +1 -0
- package/references/web-ui/src/styles/theme/default/menu.scss +199 -0
- package/references/web-ui/src/styles/transition.scss +107 -0
- package/references/web-ui/src/styles/variables.scss +66 -0
- package/references/web-ui/src/utils/ArrayExtension.ts +175 -0
- package/references/web-ui/src/utils/app-mixin.ts +50 -0
- package/references/web-ui/src/utils/areas.ts +1712 -0
- package/references/web-ui/src/utils/auth.ts +329 -0
- package/references/web-ui/src/utils/base64.ts +231 -0
- package/references/web-ui/src/utils/browser-helper.ts +39 -0
- package/references/web-ui/src/utils/bus.ts +35 -0
- package/references/web-ui/src/utils/deprecated-utils.ts +116 -0
- package/references/web-ui/src/utils/events.ts +59 -0
- package/references/web-ui/src/utils/index.ts +790 -0
- package/references/web-ui/src/utils/name-auth.ts +97 -0
- package/references/web-ui/src/utils/onlyMsgBox.ts +38 -0
- package/references/web-ui/src/utils/pinyinList.ts +417 -0
- package/references/web-ui/src/utils/request-utils.ts +277 -0
- package/references/web-ui/src/utils/request.ts +100 -0
- package/references/web-ui/src/utils/routeHelper.ts +66 -0
- package/references/web-ui/src/utils/storage.ts +80 -0
- package/references/web-ui/src/utils/theme.ts +192 -0
- package/references/web-ui/src/utils/toPinYin.ts +34 -0
- package/references/web-ui/src/utils/tool.ts +7103 -0
- package/references/web-ui/src/utils/utilsFn.ts +73 -0
- package/references/web-ui/src/utils/validate.ts +110 -0
- package/references/web-ui/src/utils/watermark.ts +161 -0
- package/references/web-ui/src/utils/watermarkcompact.ts +180 -0
- package/references/web-ui/src/utils/wordRender.ts +100 -0
- package/references/web-ui/src/utils/ws.ts +42 -0
- package/references/web-ui/src/views/404.vue +245 -0
- package/references/web-ui/src/views/CollectButton/demand.vue +39 -0
- package/references/web-ui/src/views/CollectButton/dialog.vue +178 -0
- package/references/web-ui/src/views/CollectButton/index.vue +306 -0
- package/references/web-ui/src/views/FlowCharts/FormDemo.vue +236 -0
- package/references/web-ui/src/views/FlowCharts/components/ListDetailButton/index.vue +36 -0
- package/references/web-ui/src/views/FlowCharts/leaveApplication.vue +56 -0
- package/references/web-ui/src/views/FlowCharts/testForm.vue +56 -0
- package/references/web-ui/src/views/Password/index.vue +147 -0
- package/references/web-ui/src/views/authorize/components/ForgetPassword.vue +309 -0
- package/references/web-ui/src/views/authorize/components/FormLogin/components/VerificationDialog.vue +297 -0
- package/references/web-ui/src/views/authorize/components/FormLogin/index.vue +649 -0
- package/references/web-ui/src/views/authorize/index.vue +149 -0
- package/references/web-ui/src/views/dynamic-form/index.vue +42 -0
- package/references/web-ui/src/views/home-page/WorkTable.vue +116 -0
- package/references/web-ui/src/views/home-page/index.vue +14 -0
- package/references/web-ui/src/views/iotBaseRole/AddDrawer.vue +320 -0
- package/references/web-ui/src/views/iotBaseRole/EditTable.vue +373 -0
- package/references/web-ui/src/views/iotBaseRole/index.vue +313 -0
- package/references/web-ui/src/views/iotBaseSystem/AddDrawer.vue +305 -0
- package/references/web-ui/src/views/iotBaseSystem/index.vue +385 -0
- package/references/web-ui/src/views/layout/Frame.vue +75 -0
- package/references/web-ui/src/views/layout/Layout.vue +186 -0
- package/references/web-ui/src/views/layout/MiddleView.vue +29 -0
- package/references/web-ui/src/views/layout/components/AppMain.vue +302 -0
- package/references/web-ui/src/views/layout/components/CompactTools/index.vue +59 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/AVue.vue +34 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Gpt.vue +49 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Help.vue +52 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Locale.vue +99 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Message.vue +495 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/NavbarMenu.vue +196 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Personal.vue +308 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Portal.vue +34 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/SystemChange.vue +133 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Tablet.vue +206 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/TenantChange.vue +186 -0
- package/references/web-ui/src/views/layout/components/Navbar/components/Theme.vue +367 -0
- package/references/web-ui/src/views/layout/components/Navbar/index.vue +181 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/CustomSliderMenu.vue +267 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/FetchMenuItem.vue +45 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/MenuItem.vue +135 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/MenuSearch.vue +74 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/SubMenu.js +190 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/SubMenu.vue +125 -0
- package/references/web-ui/src/views/layout/components/Sidebar/components/ToggleSidebar.vue +51 -0
- package/references/web-ui/src/views/layout/components/Sidebar/index.vue +464 -0
- package/references/web-ui/src/views/layout/components/TagsView.vue +683 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/chatgpt.png +0 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/knowledge_IT.png +0 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/knowledge_gushen.png +0 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/pmo_background.png +0 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/smile.png +0 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/stop.svg +1 -0
- package/references/web-ui/src/views/layout/components/chatGPT/image/titleIcon.png +0 -0
- package/references/web-ui/src/views/layout/components/chatGPT/index.js +7 -0
- package/references/web-ui/src/views/layout/components/chatGPT/index.vue +517 -0
- package/references/web-ui/src/views/layout/components/chatGPT/styles/index.scss +360 -0
- package/references/web-ui/src/views/layout/components/chatGPT/utils/gpt.js +29 -0
- package/references/web-ui/src/views/layout/components/chatGPT/utils/index.js +70 -0
- package/references/web-ui/src/views/layout/components/index.js +6 -0
- package/references/web-ui/src/views/layout/mixin/ResizeHandler.js +28 -0
- package/references/web-ui/src/views/layout/utils/dynamicFormHelper.js +44 -0
- package/references/web-ui/src/views/layout/utils/scroll.js +89 -0
- package/references/web-ui/src/views/letters/config/gridConfig.js +59 -0
- package/references/web-ui/src/views/letters/index.vue +401 -0
- package/references/web-ui/src/views/login/ForgetPassword.vue +425 -0
- package/references/web-ui/src/views/login/FormLogin.vue +1219 -0
- package/references/web-ui/src/views/login/ScanLogin.vue +256 -0
- package/references/web-ui/src/views/login/index.vue +432 -0
- package/references/web-ui/src/views/person-info/components/information.vue +99 -0
- package/references/web-ui/src/views/person-info/index.vue +28 -0
- package/references/web-ui/src/views/sso/login/index.vue +128 -0
- package/references/web-ui/src/views/sso/multi-login/index.vue +95 -0
- package/references/web-ui/src/views/third-login/index.vue +73 -0
- package/references/web-ui/src/views/third-view.vue +86 -0
- package/references/web-ui/tsconfig.app.json +12 -0
- package/references/web-ui/tsconfig.json +11 -0
- package/references/web-ui/tsconfig.node.json +19 -0
- package/references/web-ui/vite.config.ts +42 -0
- package/references/yudaocloud-end-standard/04-Java/345/220/216/347/253/257/347/274/226/347/240/201/350/247/204/350/214/203.md +1095 -0
- package/references/yudaocloud-end-standard/index.md +12 -0
- package/scripts/postinstall.js +107 -0
- package/scripts/sync-version.js +109 -0
- package/skills/.claude/.wiki-update-queue +26 -0
- package/skills/adspecs-adversarial-review/SKILL.md +486 -0
- package/skills/adspecs-analyze/SKILL.md +573 -0
- package/skills/adspecs-architecture-planning/SKILL.md +875 -0
- package/skills/adspecs-biz-blueprint/SKILL.md +554 -0
- package/skills/adspecs-clarify/SKILL.md +299 -0
- package/skills/adspecs-export-word/SKILL.md +498 -0
- package/skills/adspecs-export-word/references/md-to-docx.js +862 -0
- package/skills/adspecs-export-word/references/package-lock.json +220 -0
- package/skills/adspecs-export-word/references/package.json +10 -0
- package/skills/adspecs-front-spec/SKILL.md +502 -0
- package/skills/adspecs-front-tasks/SKILL.md +611 -0
- package/skills/adspecs-git-commit/SKILL.md +53 -0
- package/skills/adspecs-new-requirement/SKILL.md +608 -0
- package/skills/adspecs-plan/SKILL.md +429 -0
- package/skills/adspecs-prd/SKILL.md +404 -0
- package/skills/adspecs-requirement-research/02-/351/234/200/346/261/202/346/235/245/346/272/220/344/270/216/351/207/207/351/233/206/350/256/260/345/275/225.md +85 -0
- package/skills/adspecs-requirement-research/SKILL.md +184 -0
- package/skills/adspecs-tasks/SKILL.md +630 -0
- package/skills/adspecs-update-status/SKILL.md +382 -0
- package/skills/adspecs-utest/SKILL.md +390 -0
- package/skills/adspecs-write-planning-report/SKILL.md +93 -0
- package/skills/adspecs-write-roadmap/SKILL.md +83 -0
- package/skills/adspecs-write-sow/SKILL.md +351 -0
- package/skills/project-init/SKILL.md +1289 -0
- package/skills/sie-front-code-review/SKILL.md +152 -0
- package/skills/wiki-update/SKILL.md +232 -0
- package/src/commands/doctor.js +197 -0
- package/src/commands/init.js +83 -0
- package/src/commands/plugin.js +145 -0
- package/src/commands/update.js +87 -0
- package/src/lib/area-scanner.js +129 -0
- package/src/lib/copier.js +104 -0
- package/src/lib/dir-utils.js +133 -0
- package/src/lib/json-merge.js +114 -0
- package/src/lib/paths-defaults.js +37 -0
- package/src/lib/prompts.js +345 -0
- package/src/lib/readme-gen.js +143 -0
- package/src/lib/report.js +327 -0
- package/src/lib/scaffolder.js +518 -0
- package/src/lib/short-name.js +36 -0
- package/src/utils.js +80 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# 数据库设计与使用规范
|
|
2
|
+
|
|
3
|
+
> **版本**: v1.0 | **修订日期**: 2026-07-15
|
|
4
|
+
> **技术栈**: SQLAlchemy 2.0+ / Alembic / SQLite (aiosqlite)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、SQLAlchemy 基类
|
|
9
|
+
|
|
10
|
+
### 1.1 声明式基类
|
|
11
|
+
|
|
12
|
+
```python
|
|
13
|
+
# app/models/base.py
|
|
14
|
+
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|
15
|
+
from sqlalchemy import Integer, String, Boolean, DateTime, func
|
|
16
|
+
from datetime import datetime
|
|
17
|
+
|
|
18
|
+
class Base(DeclarativeBase):
|
|
19
|
+
"""SQLAlchemy 声明式基类"""
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
class TimestampMixin:
|
|
23
|
+
"""时间戳 Mixin — 自动记录创建/更新时间"""
|
|
24
|
+
created_at: Mapped[datetime] = mapped_column(
|
|
25
|
+
DateTime, server_default=func.now(), nullable=False
|
|
26
|
+
)
|
|
27
|
+
updated_at: Mapped[datetime] = mapped_column(
|
|
28
|
+
DateTime, server_default=func.now(), onupdate=func.now(), nullable=False
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
class SoftDeleteMixin:
|
|
32
|
+
"""软删除 Mixin"""
|
|
33
|
+
is_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
|
|
34
|
+
|
|
35
|
+
class AuditMixin:
|
|
36
|
+
"""审计 Mixin — 记录操作人"""
|
|
37
|
+
created_by: Mapped[int | None] = mapped_column(Integer, nullable=True)
|
|
38
|
+
updated_by: Mapped[int | None] = mapped_column(Integer, nullable=True)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 1.2 模型定义示例
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
# app/models/warehouse.py
|
|
45
|
+
from sqlalchemy import String, Integer, Text, Index
|
|
46
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
47
|
+
from app.models.base import Base, TimestampMixin, SoftDeleteMixin, AuditMixin
|
|
48
|
+
|
|
49
|
+
class Warehouse(Base, TimestampMixin, SoftDeleteMixin, AuditMixin):
|
|
50
|
+
"""仓库模型"""
|
|
51
|
+
__tablename__ = "warehouses"
|
|
52
|
+
__table_args__ = (
|
|
53
|
+
Index("ix_warehouse_code", "code", unique=True),
|
|
54
|
+
Index("ix_warehouse_active", "is_active"),
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
|
58
|
+
code: Mapped[str] = mapped_column(String(50), nullable=False, comment="仓库编码")
|
|
59
|
+
name: Mapped[str] = mapped_column(String(200), nullable=False, comment="仓库名称")
|
|
60
|
+
location: Mapped[str | None] = mapped_column(String(500), comment="位置")
|
|
61
|
+
is_active: Mapped[bool] = mapped_column(default=True, comment="是否启用")
|
|
62
|
+
|
|
63
|
+
# relationships
|
|
64
|
+
material_lots: Mapped[list["MaterialLot"]] = relationship(back_populates="warehouse")
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 二、SQLite 特有注意事项
|
|
70
|
+
|
|
71
|
+
| 事项 | 规范 |
|
|
72
|
+
|----------------|------------------------------------------------------------|
|
|
73
|
+
| WAL 模式 | 生产环境必须启用 `PRAGMA journal_mode=WAL` |
|
|
74
|
+
| 外键约束 | 默认关闭,必须执行 `PRAGMA foreign_keys=ON` |
|
|
75
|
+
| 类型亲和性 | 严格按模型定义列类型,避免隐式转换 |
|
|
76
|
+
| 并发写入 | SQLite 不支持并发写,Celery worker 必须 `--concurrency=1` |
|
|
77
|
+
| 文件权限 | 数据库文件目录需要读写权限 |
|
|
78
|
+
| 备份 | 定期 VACUUM + 文件拷贝 |
|
|
79
|
+
|
|
80
|
+
### 引擎配置
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
# app/core/database.py
|
|
84
|
+
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
|
|
85
|
+
from sqlalchemy import text
|
|
86
|
+
from app.core.config import settings
|
|
87
|
+
|
|
88
|
+
engine = create_async_engine(
|
|
89
|
+
settings.DATABASE_URL,
|
|
90
|
+
echo=settings.DEBUG,
|
|
91
|
+
connect_args={"check_same_thread": False},
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
async_session = async_sessionmaker(engine, expire_on_commit=False, class_=AsyncSession)
|
|
95
|
+
|
|
96
|
+
async def init_db():
|
|
97
|
+
"""初始化数据库(启用 WAL 模式)"""
|
|
98
|
+
async with engine.connect() as conn:
|
|
99
|
+
await conn.execute(text("PRAGMA journal_mode=WAL"))
|
|
100
|
+
await conn.execute(text("PRAGMA foreign_keys=ON"))
|
|
101
|
+
await conn.commit()
|
|
102
|
+
|
|
103
|
+
async def get_db():
|
|
104
|
+
"""数据库会话依赖注入"""
|
|
105
|
+
async with async_session() as session:
|
|
106
|
+
try:
|
|
107
|
+
yield session
|
|
108
|
+
except Exception:
|
|
109
|
+
await session.rollback()
|
|
110
|
+
raise
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 三、Alembic 迁移规范
|
|
116
|
+
|
|
117
|
+
### 3.1 初始化
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
alembic init alembic
|
|
121
|
+
# 修改 alembic.ini 的 sqlalchemy.url
|
|
122
|
+
# 修改 alembic/env.py 导入 Base.metadata
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 3.2 迁移命名
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
alembic revision --autogenerate -m "add_warehouse_table"
|
|
129
|
+
alembic revision --autogenerate -m "add_index_warehouse_code"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 3.3 迁移规则
|
|
133
|
+
|
|
134
|
+
| 规则 | 说明 |
|
|
135
|
+
|------------|------------------------------------------------|
|
|
136
|
+
| 自动生成 | 始终使用 `--autogenerate`,手动 review 后提交 |
|
|
137
|
+
| 不可逆操作 | DROP TABLE/DROP COLUMN 前必须确认数据安全 |
|
|
138
|
+
| 数据迁移 | 数据迁移和结构迁移分开为两个 revision |
|
|
139
|
+
| 测试 | 迁移后必须运行测试验证 |
|
|
140
|
+
| 提交 | 迁移文件必须纳入版本控制 |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 四、查询规范
|
|
145
|
+
|
|
146
|
+
### 4.1 使用 select() 风格
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
from sqlalchemy import select, func
|
|
150
|
+
|
|
151
|
+
# 单条查询
|
|
152
|
+
stmt = select(Warehouse).where(Warehouse.id == warehouse_id)
|
|
153
|
+
result = await db.execute(stmt)
|
|
154
|
+
warehouse = result.scalar_one_or_none()
|
|
155
|
+
|
|
156
|
+
# 分页查询
|
|
157
|
+
stmt = (
|
|
158
|
+
select(Warehouse)
|
|
159
|
+
.where(Warehouse.is_deleted == False, Warehouse.is_active == True)
|
|
160
|
+
.order_by(Warehouse.created_at.desc())
|
|
161
|
+
.offset((page - 1) * page_size)
|
|
162
|
+
.limit(page_size)
|
|
163
|
+
)
|
|
164
|
+
result = await db.execute(stmt)
|
|
165
|
+
items = result.scalars().all()
|
|
166
|
+
|
|
167
|
+
# 计数
|
|
168
|
+
count_stmt = select(func.count()).select_from(Warehouse).where(Warehouse.is_deleted == False)
|
|
169
|
+
total = (await db.execute(count_stmt)).scalar()
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 4.2 禁止事项
|
|
173
|
+
|
|
174
|
+
- 禁止使用 `session.query()` 风格(SQLAlchemy 1.x 遗留)
|
|
175
|
+
- 禁止字符串拼接 SQL
|
|
176
|
+
- 禁止在循环中执行查询(N+1 问题)
|
|
177
|
+
- 禁止不带 WHERE 的 UPDATE/DELETE
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 五、Repository 模式
|
|
182
|
+
|
|
183
|
+
```python
|
|
184
|
+
# app/repositories/warehouse.py
|
|
185
|
+
class WarehouseRepository:
|
|
186
|
+
"""仓库数据访问层"""
|
|
187
|
+
|
|
188
|
+
async def get_by_id(self, db: AsyncSession, warehouse_id: int) -> Warehouse | None:
|
|
189
|
+
return await db.get(Warehouse, warehouse_id)
|
|
190
|
+
|
|
191
|
+
async def get_by_code(self, db: AsyncSession, code: str) -> Warehouse | None:
|
|
192
|
+
stmt = select(Warehouse).where(Warehouse.code == code, Warehouse.is_deleted == False)
|
|
193
|
+
result = await db.execute(stmt)
|
|
194
|
+
return result.scalar_one_or_none()
|
|
195
|
+
|
|
196
|
+
async def get_page(
|
|
197
|
+
self, db: AsyncSession, page: int, page_size: int, filters: dict | None = None
|
|
198
|
+
) -> tuple[list[Warehouse], int]:
|
|
199
|
+
base = select(Warehouse).where(Warehouse.is_deleted == False)
|
|
200
|
+
if filters:
|
|
201
|
+
if "name" in filters:
|
|
202
|
+
base = base.where(Warehouse.name.contains(filters["name"]))
|
|
203
|
+
if "is_active" in filters:
|
|
204
|
+
base = base.where(Warehouse.is_active == filters["is_active"])
|
|
205
|
+
|
|
206
|
+
count_stmt = select(func.count()).select_from(base.subquery())
|
|
207
|
+
total = (await db.execute(count_stmt)).scalar()
|
|
208
|
+
|
|
209
|
+
stmt = base.order_by(Warehouse.created_at.desc()).offset((page - 1) * page_size).limit(page_size)
|
|
210
|
+
result = await db.execute(stmt)
|
|
211
|
+
return result.scalars().all(), total
|
|
212
|
+
|
|
213
|
+
warehouse_repo = WarehouseRepository()
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 六、索引策略
|
|
219
|
+
|
|
220
|
+
| 场景 | 索引类型 | 示例 |
|
|
221
|
+
|----------------|------------------|-------------------------------------------|
|
|
222
|
+
| 唯一约束 | Unique Index | code, email |
|
|
223
|
+
| 高频查询条件 | 普通索引 | is_active, status |
|
|
224
|
+
| 组合查询 | 复合索引 | (warehouse_id, material_type) |
|
|
225
|
+
| 外键 | 自动创建 | relationship 自动生成 |
|
|
226
|
+
| 软删除过滤 | 部分索引 | WHERE is_deleted = False |
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# Celery 异步任务规范
|
|
2
|
+
|
|
3
|
+
> **版本**: v1.0 | **修订日期**: 2026-07-15
|
|
4
|
+
> **技术栈**: Celery 5.4+ / Redis (Broker + Backend)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、Celery 实例配置
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
# app/tasks/celery_app.py
|
|
12
|
+
from celery import Celery
|
|
13
|
+
from app.core.config import settings
|
|
14
|
+
|
|
15
|
+
celery_app = Celery(
|
|
16
|
+
"worker",
|
|
17
|
+
broker=settings.CELERY_BROKER_URL,
|
|
18
|
+
backend=settings.CELERY_RESULT_BACKEND,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
celery_app.conf.update(
|
|
22
|
+
# 序列化
|
|
23
|
+
task_serializer="json",
|
|
24
|
+
accept_content=["json"],
|
|
25
|
+
result_serializer="json",
|
|
26
|
+
|
|
27
|
+
# 时区
|
|
28
|
+
timezone="Asia/Shanghai",
|
|
29
|
+
enable_utc=True,
|
|
30
|
+
|
|
31
|
+
# 任务执行
|
|
32
|
+
task_track_started=True,
|
|
33
|
+
task_time_limit=300, # 硬超时 5 分钟
|
|
34
|
+
task_soft_time_limit=240, # 软超时 4 分钟
|
|
35
|
+
|
|
36
|
+
# Worker(SQLite 场景)
|
|
37
|
+
worker_concurrency=1, # SQLite 不支持并发写
|
|
38
|
+
worker_prefetch_multiplier=1,
|
|
39
|
+
worker_pool="solo", # 单进程池
|
|
40
|
+
|
|
41
|
+
# 结果过期
|
|
42
|
+
result_expires=3600,
|
|
43
|
+
|
|
44
|
+
# Beat 定时任务
|
|
45
|
+
beat_schedule={},
|
|
46
|
+
)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 二、任务定义规范
|
|
52
|
+
|
|
53
|
+
### 2.1 命名规则
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
{action}_{entity}_task
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
示例: `sync_inventory_task`, `generate_report_task`, `send_notification_task`
|
|
60
|
+
|
|
61
|
+
### 2.2 任务定义
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
# app/tasks/inventory_tasks.py
|
|
65
|
+
from app.tasks.celery_app import celery_app
|
|
66
|
+
|
|
67
|
+
@celery_app.task(
|
|
68
|
+
name="inventory.sync_inventory",
|
|
69
|
+
bind=True,
|
|
70
|
+
autoretry_for=(ConnectionError, TimeoutError),
|
|
71
|
+
max_retries=3,
|
|
72
|
+
retry_backoff=True,
|
|
73
|
+
retry_backoff_max=600,
|
|
74
|
+
)
|
|
75
|
+
def sync_inventory_task(self, warehouse_id: int, material_type: str | None = None):
|
|
76
|
+
"""同步库存数据"""
|
|
77
|
+
try:
|
|
78
|
+
# 任务逻辑(Celery 任务内使用同步数据库会话)
|
|
79
|
+
from app.core.database import SessionLocal
|
|
80
|
+
with SessionLocal() as db:
|
|
81
|
+
# ... 业务逻辑
|
|
82
|
+
db.commit()
|
|
83
|
+
except Exception as exc:
|
|
84
|
+
self.retry(exc=exc)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 2.3 参数规范
|
|
88
|
+
|
|
89
|
+
| 规则 | 说明 |
|
|
90
|
+
|----------------|------------------------------------------------|
|
|
91
|
+
| 可序列化 | 参数必须是 JSON 可序列化的(str/int/float/dict/list) |
|
|
92
|
+
| 禁止传对象 | 禁止传递 SQLAlchemy Model 实例 |
|
|
93
|
+
| 传递 ID | 通过 ID 在任务内部重新查询数据库 |
|
|
94
|
+
| 参数校验 | 任务开头进行参数校验,失败直接 raise |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 三、任务调用
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
from app.tasks.inventory_tasks import sync_inventory_task
|
|
102
|
+
|
|
103
|
+
# 异步调用
|
|
104
|
+
result = sync_inventory_task.delay(warehouse_id=123, material_type="aluminum")
|
|
105
|
+
|
|
106
|
+
# 指定 ETA
|
|
107
|
+
from datetime import datetime, timedelta
|
|
108
|
+
result = sync_inventory_task.apply_async(
|
|
109
|
+
kwargs={"warehouse_id": 123},
|
|
110
|
+
eta=datetime.utcnow() + timedelta(minutes=10),
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
# 获取结果(同步等待)
|
|
114
|
+
result.get(timeout=60)
|
|
115
|
+
|
|
116
|
+
# 检查状态
|
|
117
|
+
result.status # PENDING / STARTED / SUCCESS / FAILURE / RETRY
|
|
118
|
+
result.ready() # bool
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 四、错误处理与重试
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
@celery_app.task(
|
|
127
|
+
bind=True,
|
|
128
|
+
autoretry_for=(ConnectionError,),
|
|
129
|
+
max_retries=3,
|
|
130
|
+
retry_backoff=True,
|
|
131
|
+
retry_backoff_max=600,
|
|
132
|
+
retry_jitter=True,
|
|
133
|
+
)
|
|
134
|
+
def process_order_task(self, order_id: int):
|
|
135
|
+
"""处理订单"""
|
|
136
|
+
try:
|
|
137
|
+
# 业务逻辑
|
|
138
|
+
...
|
|
139
|
+
except BusinessLogicError as exc:
|
|
140
|
+
# 业务错误不重试,直接记录
|
|
141
|
+
logger.error(f"Order {order_id} failed: {exc}")
|
|
142
|
+
raise
|
|
143
|
+
except ExternalServiceError as exc:
|
|
144
|
+
# 外部服务错误,手动重试
|
|
145
|
+
raise self.retry(exc=exc, countdown=60)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
| 场景 | 策略 |
|
|
149
|
+
|----------------|----------------------|
|
|
150
|
+
| 网络超时 | autoretry + backoff |
|
|
151
|
+
| 业务逻辑错误 | 不重试,记录日志 |
|
|
152
|
+
| 数据不一致 | 不重试,告警通知 |
|
|
153
|
+
| 外部服务故障 | 手动 retry + 固定间隔|
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 五、定时任务(Celery Beat)
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
celery_app.conf.beat_schedule = {
|
|
161
|
+
"daily-inventory-sync": {
|
|
162
|
+
"task": "inventory.sync_inventory",
|
|
163
|
+
"schedule": crontab(hour=2, minute=0), # 每天凌晨 2 点
|
|
164
|
+
"kwargs": {"warehouse_id": 0},
|
|
165
|
+
},
|
|
166
|
+
"weekly-report": {
|
|
167
|
+
"task": "report.generate_weekly_report",
|
|
168
|
+
"schedule": crontab(day_of_week="monday", hour=8, minute=0),
|
|
169
|
+
},
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 六、Worker 配置
|
|
176
|
+
|
|
177
|
+
### 6.1 启动命令
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# 开发环境
|
|
181
|
+
celery -A app.tasks.celery_app worker --loglevel=debug --pool=solo
|
|
182
|
+
|
|
183
|
+
# 生产环境(SQLite)
|
|
184
|
+
celery -A app.tasks.celery_app worker --loglevel=info --pool=solo --concurrency=1
|
|
185
|
+
|
|
186
|
+
# Beat 定时任务调度
|
|
187
|
+
celery -A app.tasks.celery_app beat --loglevel=info
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 6.2 SQLite 注意事项
|
|
191
|
+
|
|
192
|
+
| 事项 | 说明 |
|
|
193
|
+
|--------------|------------------------------------------------|
|
|
194
|
+
| 并发 | 必须 `--concurrency=1`,SQLite 不支持并发写 |
|
|
195
|
+
| 连接池 | 每个任务创建新的数据库连接,任务结束关闭 |
|
|
196
|
+
| 事务 | 任务内部手动 commit,不依赖外部事务 |
|
|
197
|
+
| 长时间任务 | 拆分为多个短任务,避免长时间持有数据库锁 |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 七、监控(Flower)
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
celery -A app.tasks.celery_app flower --port=5555
|
|
205
|
+
# 访问 http://localhost:5555
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 八、任务测试
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
# tests/conftest.py
|
|
214
|
+
@pytest.fixture(autouse=True)
|
|
215
|
+
def celery_eager_mode(monkeypatch):
|
|
216
|
+
"""测试时任务同步执行"""
|
|
217
|
+
from app.tasks.celery_app import celery_app
|
|
218
|
+
celery_app.conf.update(
|
|
219
|
+
task_always_eager=True,
|
|
220
|
+
task_eager_propagates=True,
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
# tests/test_tasks/test_inventory.py
|
|
224
|
+
def test_sync_inventory_task_success(db_session):
|
|
225
|
+
"""测试库存同步任务成功"""
|
|
226
|
+
warehouse = WarehouseFactory()
|
|
227
|
+
db_session.add(warehouse)
|
|
228
|
+
db_session.commit()
|
|
229
|
+
|
|
230
|
+
result = sync_inventory_task.delay(warehouse_id=warehouse.id)
|
|
231
|
+
assert result.successful()
|
|
232
|
+
|
|
233
|
+
def test_sync_inventory_task_invalid_id():
|
|
234
|
+
"""测试无效仓库 ID"""
|
|
235
|
+
result = sync_inventory_task.delay(warehouse_id=99999)
|
|
236
|
+
assert result.failed()
|
|
237
|
+
```
|
package/references/python-end-standard/04-Redis/344/275/277/347/224/250/350/247/204/350/214/203.md
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Redis 使用规范
|
|
2
|
+
|
|
3
|
+
> **版本**: v1.0 | **修订日期**: 2026-07-15
|
|
4
|
+
> **技术栈**: Redis 7.0+ / redis-py (async)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、连接管理
|
|
9
|
+
|
|
10
|
+
```python
|
|
11
|
+
# app/core/redis.py
|
|
12
|
+
import redis.asyncio as redis
|
|
13
|
+
from app.core.config import settings
|
|
14
|
+
|
|
15
|
+
redis_client = redis.from_url(
|
|
16
|
+
settings.REDIS_URL,
|
|
17
|
+
encoding="utf-8",
|
|
18
|
+
decode_responses=True,
|
|
19
|
+
max_connections=20,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
async def get_redis() -> redis.Redis:
|
|
23
|
+
return redis_client
|
|
24
|
+
|
|
25
|
+
# 生命周期管理
|
|
26
|
+
async def close_redis():
|
|
27
|
+
await redis_client.close()
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 二、Key 命名规范
|
|
33
|
+
|
|
34
|
+
### 2.1 格式
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
{app_prefix}:{module}:{entity}:{identifier}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
冒号 `:` 分隔层级,便于 Redis CLI 和可视化工具浏览。
|
|
41
|
+
|
|
42
|
+
### 2.2 示例
|
|
43
|
+
|
|
44
|
+
| 用途 | Key 示例 |
|
|
45
|
+
|--------------|---------------------------------------------|
|
|
46
|
+
| 用户缓存 | app:user:profile:123 |
|
|
47
|
+
| 仓库列表 | app:warehouse:list:active |
|
|
48
|
+
| 会话 | app:session:{token} |
|
|
49
|
+
| 限流 | app:ratelimit:api:{user_id}:{endpoint} |
|
|
50
|
+
| 分布式锁 | app:lock:inventory_sync:{warehouse_id} |
|
|
51
|
+
| Celery 任务 | celery-task-meta-{task_id}(Celery 自动管理)|
|
|
52
|
+
|
|
53
|
+
### 2.3 规则
|
|
54
|
+
|
|
55
|
+
| 规则 | 说明 |
|
|
56
|
+
|--------------|------------------------------------------------|
|
|
57
|
+
| 前缀 | 所有 key 必须以 `app:` 开头 |
|
|
58
|
+
| 层级 | 冒号分隔,不超过 4 层 |
|
|
59
|
+
| 长度 | 不超过 128 字节 |
|
|
60
|
+
| 禁止空格 | 使用下划线或驼峰代替空格 |
|
|
61
|
+
| TTL | 所有 key 必须设置过期时间 |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 三、缓存使用
|
|
66
|
+
|
|
67
|
+
### 3.1 装饰器模式
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
import json
|
|
71
|
+
import functools
|
|
72
|
+
|
|
73
|
+
def cached(key_template: str, ttl: int = 300):
|
|
74
|
+
"""缓存装饰器"""
|
|
75
|
+
def decorator(func):
|
|
76
|
+
@functools.wraps(func)
|
|
77
|
+
async def wrapper(*args, **kwargs):
|
|
78
|
+
key = key_template.format(**kwargs)
|
|
79
|
+
r = await get_redis()
|
|
80
|
+
# 尝试读缓存
|
|
81
|
+
data = await r.get(key)
|
|
82
|
+
if data:
|
|
83
|
+
return json.loads(data)
|
|
84
|
+
# 执行函数
|
|
85
|
+
result = await func(*args, **kwargs)
|
|
86
|
+
# 写缓存
|
|
87
|
+
await r.setex(key, ttl, json.dumps(result, default=str))
|
|
88
|
+
return result
|
|
89
|
+
return wrapper
|
|
90
|
+
return decorator
|
|
91
|
+
|
|
92
|
+
# 使用
|
|
93
|
+
@cached(key_template="app:warehouse:detail:{warehouse_id}", ttl=600)
|
|
94
|
+
async def get_warehouse_detail(warehouse_id: int):
|
|
95
|
+
return await warehouse_service.get_by_id(db, warehouse_id)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 3.2 缓存失效策略
|
|
99
|
+
|
|
100
|
+
| 策略 | 适用场景 | 实现 |
|
|
101
|
+
|--------------|--------------------|------------------------------------|
|
|
102
|
+
| TTL 过期 | 所有缓存 | setex 设置过期时间 |
|
|
103
|
+
| 主动删除 | 数据更新时 | 更新/删除操作后 delete key |
|
|
104
|
+
| 模式删除 | 批量失效 | scan + delete(禁止 keys *) |
|
|
105
|
+
| 版本号 | 配置类数据 | key 中嵌入版本号,更新时递增 |
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
# 缓存失效示例
|
|
109
|
+
async def invalidate_warehouse_cache(warehouse_id: int):
|
|
110
|
+
r = await get_redis()
|
|
111
|
+
await r.delete(f"app:warehouse:detail:{warehouse_id}")
|
|
112
|
+
await r.delete("app:warehouse:list:active")
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 四、分布式锁
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
from redis.asyncio.lock import Lock
|
|
121
|
+
|
|
122
|
+
async def with_inventory_lock(warehouse_id: int, func, *args, **kwargs):
|
|
123
|
+
"""带分布式锁的库存操作"""
|
|
124
|
+
r = await get_redis()
|
|
125
|
+
lock_key = f"app:lock:inventory:{warehouse_id}"
|
|
126
|
+
lock = Lock(r, lock_key, timeout=30, blocking_timeout=5)
|
|
127
|
+
|
|
128
|
+
async with lock:
|
|
129
|
+
return await func(*args, **kwargs)
|
|
130
|
+
|
|
131
|
+
# 使用
|
|
132
|
+
await with_inventory_lock(warehouse_id=123, func=sync_inventory)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
| 规则 | 说明 |
|
|
136
|
+
|--------------|------------------------------------------------|
|
|
137
|
+
| timeout | 锁的最大持有时间,防止死锁 |
|
|
138
|
+
| blocking | 获取锁时是否阻塞等待 |
|
|
139
|
+
| blocking_timeout | 阻塞等待的最大时间 |
|
|
140
|
+
| 唯一标识 | Lock 自动使用 UUID,确保释放安全 |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 五、限流
|
|
145
|
+
|
|
146
|
+
### 5.1 滑动窗口限流
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
import time
|
|
150
|
+
|
|
151
|
+
async def is_rate_limited(user_id: int, endpoint: str, limit: int = 100, window: int = 60) -> bool:
|
|
152
|
+
"""滑动窗口限流"""
|
|
153
|
+
r = await get_redis()
|
|
154
|
+
key = f"app:ratelimit:{user_id}:{endpoint}"
|
|
155
|
+
now = time.time()
|
|
156
|
+
|
|
157
|
+
pipe = r.pipeline()
|
|
158
|
+
pipe.zremrangebyscore(key, 0, now - window)
|
|
159
|
+
pipe.zadd(key, {str(now): now})
|
|
160
|
+
pipe.zcard(key)
|
|
161
|
+
pipe.expire(key, window)
|
|
162
|
+
results = await pipe.execute()
|
|
163
|
+
|
|
164
|
+
return results[2] > limit
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 六、数据结构选择
|
|
170
|
+
|
|
171
|
+
| 场景 | 数据结构 | 示例 |
|
|
172
|
+
|----------------|----------------|---------------------------------------|
|
|
173
|
+
| 简单缓存 | String | GET/SET user profile JSON |
|
|
174
|
+
| 对象属性 | Hash | HSET user:123 name "Alice" |
|
|
175
|
+
| 列表/队列 | List | LPUSH/RPOP 消息队列 |
|
|
176
|
+
| 去重集合 | Set | SADD user:123:tags "vip" |
|
|
177
|
+
| 排行榜/排序 | Sorted Set | ZADD leaderboard score member |
|
|
178
|
+
| 位操作 | Bitmap | SETBIT user:active:20260715 user_id 1 |
|
|
179
|
+
| 计数器 | String (INCR) | INCR page:views:home |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 七、序列化规范
|
|
184
|
+
|
|
185
|
+
| 规则 | 说明 |
|
|
186
|
+
|--------------|------------------------------------------------|
|
|
187
|
+
| 格式 | 统一使用 JSON |
|
|
188
|
+
| 禁止 pickle | 安全风险,禁止序列化 Python 对象 |
|
|
189
|
+
| datetime | 序列化为 ISO 8601 字符串 |
|
|
190
|
+
| Decimal | 序列化为字符串 |
|
|
191
|
+
| bytes | Base64 编码后存储 |
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 八、内存管理
|
|
196
|
+
|
|
197
|
+
| 配置 | 推荐值 | 说明 |
|
|
198
|
+
|----------------|-----------------|------------------------------------|
|
|
199
|
+
| maxmemory | 根据服务器内存 | 设置最大内存限制 |
|
|
200
|
+
| maxmemory-policy | allkeys-lru | 内存满时淘汰策略 |
|
|
201
|
+
| 过期时间 | 必须设置 | 所有 key 必须有 TTL |
|
|
202
|
+
| 大 key 监控 | redis-cli --bigkeys | 定期检查大 key |
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 九、测试规范
|
|
207
|
+
|
|
208
|
+
```python
|
|
209
|
+
# tests/conftest.py
|
|
210
|
+
import fakeredis.aioredis
|
|
211
|
+
|
|
212
|
+
@pytest.fixture
|
|
213
|
+
async def redis_client():
|
|
214
|
+
"""使用 fakeredis 隔离测试"""
|
|
215
|
+
fake = fakeredis.aioredis.FakeRedis(decode_responses=True)
|
|
216
|
+
yield fake
|
|
217
|
+
await fake.flushall()
|
|
218
|
+
await fake.close()
|
|
219
|
+
|
|
220
|
+
# 测试示例
|
|
221
|
+
async def test_cache_hit(redis_client):
|
|
222
|
+
await redis_client.setex("app:test:key", 60, "value")
|
|
223
|
+
result = await redis_client.get("app:test:key")
|
|
224
|
+
assert result == "value"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
| 规则 | 说明 |
|
|
228
|
+
|--------------|------------------------------------------------|
|
|
229
|
+
| fakeredis | 单元测试使用 fakeredis,不依赖真实 Redis |
|
|
230
|
+
| 隔离 | 每个测试前后 flushall |
|
|
231
|
+
| 集成测试 | 使用独立 Redis DB(db=15) |
|