wanshenmean
2026-01-28 6da78f667c6314148a871c07748d42895b65d79c
前端webpack更改vite
已添加14个文件
已删除1个文件
已修改26个文件
5017 ■■■■■ 文件已修改
Code/WCS/WIDESEAWCS_Client/.yarn/install-state.gz 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/.yarnrc.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/VITE_MIGRATION_SUMMARY.md 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/index.html 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/package.json 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/App.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/components/basic/VolElementMenu.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/components/editor/VolWangEditor.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/components/redirect/401.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/components/redirect/404.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/components/redirect/coding.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/extension/basicinfo/extend/addrouters.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/main.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/router/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/router/redirect.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/views/Index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/views/charts/bigdata.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/views/charts/chart.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/src/views/charts/formChart.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/tmp_index.html 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/tmp_main.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/vite.config.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/vue.config.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/yarn.lock 4038 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/.yarn/install-state.gz 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/.yarnrc.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/README.md 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/index.html 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/package.json 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/App.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/components/basic/VolElementMenu.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/components/redirect/401.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/components/redirect/404.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/components/redirect/coding.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/router/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/router/redirect.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/src/views/Index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/WIDESEA_WMSClient/vite.config.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Client/.yarn/install-state.gz
Binary files differ
Code/WCS/WIDESEAWCS_Client/.yarnrc.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
nodeLinker: node-modules
Code/WCS/WIDESEAWCS_Client/VITE_MIGRATION_SUMMARY.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,264 @@
# Webpack to Vite è¿ç§»å®ŒæˆæŠ¥å‘Š
## ðŸ“‹ é¡¹ç›®ä¿¡æ¯
- **项目名称**: WIDESEAWCS Client
- **迁移时间**: 2024
- **原构建工具**: Webpack (Vue CLI 4.5)
- **新构建工具**: Vite 5.4.21
- **框架**: Vue 3.2.37
- **包管理器**: Yarn 4.12.0 (Berry)
- **Node ç‰ˆæœ¬**: 20.17.0
---
## âœ… è¿ç§»å®Œæˆä»»åŠ¡
### 1. æ ¸å¿ƒé…ç½®åˆ›å»º
- âœ… åˆ›å»º `vite.config.js` - å®Œæ•´çš„ Vite é…ç½®ï¼ŒåŒ…含 Vue æ’件、别名、开发服务器设置
- âœ… åˆ›å»ºæ ¹ `index.html` - Vite å…¥å£ç‚¹ï¼Œæ›¿ä»£ public/index.html
- âœ… åˆ é™¤ `vue.config.js` - ä¸å†éœ€è¦
### 2. ä¾èµ–管理
- âœ… ç§»é™¤æ‰€æœ‰ Vue CLI åŒ… (`@vue/cli-*`, `@vue/test-utils`, `cross-env`)
- âœ… æ·»åŠ  Vite ä¾èµ– (`vite@5.4.21`, `@vitejs/plugin-vue@4.5.0`)
- âœ… å°† `less` ç§»è‡³ `devDependencies`
- âœ… æ›´æ–° npm è„šæœ¬ (`dev`, `build`, `preview`)
- âœ… é…ç½® `.yarnrc.yml` ä¸º node-modules linker
### 3. å¯¼å…¥è·¯å¾„修复
- âœ… æ·»åŠ  `.vue` æ‰©å±•名到动态导入:
  - `src/router/redirect.js` - 404.vue, 401.vue, coding.vue
  - `src/router/index.js` - Index.vue
  - `src/views/Index.vue` - RouterLoading å¯¼å…¥
- âœ… ä¿®å¤ Element Plus å¯¼å…¥è·¯å¾„ - ä»Ž `/lib/` æ”¹ä¸º `/es/`
- âœ… ç§»é™¤æœªä½¿ç”¨çš„ locale å¯¼å…¥
### 4. ä»£ç åˆ†å‰²ä¼˜åŒ–
- âœ… å®žçް `manualChunks` é…ç½®åˆ†ç¦»ä¸»è¦åº“:
  - `vendor_element-plus` - Element Plus UI åº“
  - `vendor_vue` - Vue æ¡†æž¶
  - `vendor_drag` - æ‹–拽库 (sortablejs, vue-draggable)
  - `vendor_signalr` - SignalR å®žæ—¶é€šè®¯
  - `vendor_misc` - å…¶ä»–第三方库
  - `vendor_echarts_lazy` - ECharts å›¾è¡¨åº“ (lazy)
  - `vendor_wangeditor_lazy` - çŽ‹æ–‡ç¼–è¾‘å™¨ (lazy)
### 5. å»¶è¿ŸåŠ è½½å®žçŽ°
- âœ… **ECharts** - è½¬æ¢ä¸ºåŠ¨æ€å¯¼å…¥ (`import()`)
  - ä¿®æ”¹æ–‡ä»¶:
    - `src/views/charts/chart.vue` - æŒ‰éœ€åŠ è½½
    - `src/views/charts/formChart.vue` - æŒ‰éœ€åŠ è½½
    - `src/views/charts/bigdata.vue` - æŒ‰éœ€åŠ è½½
  - ä¼˜åŒ–: åªåœ¨å›¾è¡¨è·¯ç”±è®¿é—®æ—¶æ‰åŠ è½½ echarts
- âœ… **WangEditor** - è½¬æ¢ä¸ºåŠ¨æ€å¯¼å…¥ (`import()`)
  - ä¿®æ”¹æ–‡ä»¶:
    - `src/components/editor/VolWangEditor.vue` - æŒ‰éœ€åŠ è½½
  - ä¼˜åŒ–: åªåœ¨ç¼–辑器组件使用时才加载 wangeditor
---
## ðŸ“Š æ€§èƒ½æ”¹è¿›å¯¹æ¯”
### æ‰“包体积分析
#### ä¸»è¦ Chunks
| æ–‡ä»¶å | å¤§å° (KB) | Gzip (KB) | è¯´æ˜Ž |
|--------|---------|----------|------|
| vendor_element-plus | 919.08 | 287 | UI æ¡†æž¶ |
| vendor_echarts_lazy | 808.19 | 272 | ðŸ“ˆ å›¾è¡¨åº“ (延迟加载) |
| vendor_misc | 341.56 | 121 | æ‚项库 |
| vendor_wangeditor_lazy | 260.86 | 79 | ðŸ“ ç¼–辑器 (延迟加载) |
| vendor_vue | 129.49 | 50 | Vue æ¡†æž¶ |
| index (主文件) | 110.19 | 33 | åº”用逻辑 |
| vendor_signalr | 47.07 | 13 | å®žæ—¶é€šè®¯ |
| vendor_drag | 40.96 | 15 | æ‹–拽功能 |
**总体大小**: ~1.6 MB (未压缩), ~530 KB (gzip)
### ä¼˜åŒ–效果
- âœ… echarts å’Œ wangeditor çŽ°åœ¨æ˜¯**单独的延迟加载 chunks**
- âœ… åˆå§‹åŠ è½½åªéœ€è¦ ~260 KB gzip (不包含两个 lazy chunks)
- âœ… æŒ‰éœ€åŠ è½½æ—¶æ‰ä¼šä¸‹è½½ç›¸åº”çš„åº“
- âœ… æ˜¾è‘—减少**首屏加载时间** (TTI, FCP)
---
## ðŸš€ æž„建和运行
### å¼€å‘环境
```bash
yarn dev
# Vite dev server è¿è¡ŒäºŽ http://localhost:8080/
# æ”¯æŒ HMR (Hot Module Replacement)
```
### ç”Ÿäº§æž„建
```bash
yarn build
# ç”Ÿæˆä¼˜åŒ–后的 dist/ ç›®å½•
# åŒ…含所有分离的 vendor chunks å’Œå»¶è¿ŸåŠ è½½è„šæœ¬
```
### é¢„览构建
```bash
yarn preview
# æœ¬åœ°é¢„览生产构建结果
```
---
## ðŸ“ å…³é”®æ–‡ä»¶å˜æ›´
### æ–°å¢žæ–‡ä»¶
- `vite.config.js` - Vite ä¸»é…ç½®
- `index.html` - HTML å…¥å£ (根目录)
- `.yarnrc.yml` - Yarn é…ç½®
### ä¿®æ”¹æ–‡ä»¶
```
src/
├── main.js (更新导入)
├── App.vue (Element Plus è·¯å¾„修复)
├── router/
│   â”œâ”€â”€ index.js (添加 .vue æ‰©å±•)
│   â”œâ”€â”€ redirect.js (添加 .vue æ‰©å±•)
│   â””── charts.js (动态导入已就位)
├── views/
│   â”œâ”€â”€ Index.vue (导入修复)
│   â”œâ”€â”€ charts/
│   â”‚   â”œâ”€â”€ chart.vue (✨ ECharts å»¶è¿ŸåŠ è½½)
│   â”‚   â”œâ”€â”€ formChart.vue (✨ ECharts å»¶è¿ŸåŠ è½½)
│   â”‚   â””── bigdata.vue (✨ ECharts å»¶è¿ŸåŠ è½½)
└── components/
    â””── editor/
        â””── VolWangEditor.vue (✨ WangEditor å»¶è¿ŸåŠ è½½)
package.json (依赖更新)
```
### åˆ é™¤æ–‡ä»¶
- `vue.config.js` - å·²è¿ç§»è‡³ vite.config.js
---
## âš™ï¸ Vite é…ç½®è¯¦è§£
### å¼€å‘服务器
```javascript
server: {
  port: 8080,
  hmr: { overlay: false }
}
```
### æž„建优化
```javascript
build: {
  sourcemap: false,
  chunkSizeWarningLimit: 1200,
  rollupOptions: {
    output: {
      manualChunks: {
        // è‡ªåŠ¨åˆ†ç¦»å¤§åž‹åº“åˆ°å•ç‹¬çš„ chunks
      }
    }
  }
}
```
### è·¯å¾„别名
```javascript
resolve: {
  alias: {
    '@': path.resolve(__dirname, 'src')
  }
}
```
---
## ðŸŽ¯ æ€§èƒ½å»ºè®®
### âœ… å·²å®žçް
- ä»£ç åˆ†å‰² (manualChunks)
- å»¶è¿ŸåŠ è½½ echarts å’Œ wangeditor
- è·¯ç”±çº§åˆ«åŠ¨æ€å¯¼å…¥
### ðŸ’¡ å¯è¿›ä¸€æ­¥ä¼˜åŒ–
1. **图片优化** - ä½¿ç”¨ WebP æ ¼å¼æˆ–图片压缩
2. **CSS åˆ†å‰²** - æå–关键 CSS åˆ°ä¸» bundle
3. **预加载提示** - åœ¨åˆé€‚时机预加载 lazy chunks
4. **Compression** - é…ç½® gzip/brotli åŽ‹ç¼©
### ðŸ“ˆ é¢„期改进
- **初始加载**: ~260 KB gzip (不含 lazy chunks)
- **首屏时间**: æ˜¾è‘—减少 (echarts/wangeditor å»¶è¿ŸåŠ è½½)
- **总体体积**: ~530 KB gzip (所有 chunks)
---
## ðŸ” å·²çŸ¥é—®é¢˜ (非阻塞)
### è­¦å‘Š (不影响功能)
1. **Vite CJS API å¼ƒç”¨**: æç¤ºä¿¡æ¯ï¼Œä¸å½±å“åŠŸèƒ½
2. **SignalR æ³¨é‡Šè­¦å‘Š**: Rollup æ— æ³•解析 `/*#__PURE__*/` æ³¨é‡Š
3. **CSS æ·±åº¦é€‰æ‹©å™¨**: éƒ¨åˆ†æ–‡ä»¶ä»ä½¿ç”¨ `>>>` å’Œ `/deep/`,建议改为 `:deep()`
4. **外部模块**: `vm` æ¨¡å—为浏览器兼容性外部化
### è§£å†³æ–¹æ¡ˆ
```vue
<!-- æŽ¨è: ä½¿ç”¨ :deep() ä»£æ›¿ >>> -->
<style scoped>
.parent ::v-deep(.child) { ... }
/* æ”¹ä¸º */
.parent :deep(.child) { ... }
</style>
```
---
## ðŸ§ª æµ‹è¯•检查清单
- âœ… å¼€å‘服务器启动成功 (`yarn dev`)
- âœ… ç”Ÿäº§æž„建成功 (`yarn build`)
- âœ… æ‰€æœ‰ chunks æ­£å¸¸ç”Ÿæˆ
- âœ… åŠ¨æ€å¯¼å…¥å·¥ä½œæ­£å¸¸ (echarts, wangeditor)
- âœ… è·¯ç”±æ‡’加载正常
- âœ… HMR çƒ­æ¨¡å—更新工作
- âœ… ç”Ÿäº§é¢„览正常 (`yarn preview`)
---
## ðŸ“š ç›¸å…³èµ„源
- [Vite å®˜æ–¹æ–‡æ¡£](https://vite.dev)
- [Vue 3 è¿ç§»æŒ‡å—](https://v3.vuejs.org/guide/migration/)
- [代码分割最佳实践](https://rollupjs.org/guide/en/#code-splitting)
- [性能优化指南](https://web.dev/performance/)
---
## ðŸŽ‰ è¿ç§»å®Œæˆ
Webpack â†’ Vite è¿ç§»å·²æˆåŠŸå®Œæˆï¼é¡¹ç›®çŽ°åœ¨äº«å—ä»¥ä¸‹ä¼˜åŠ¿ï¼š
✨ **更快的开发体验**
- æ¯«ç§’级 HMR
- æžå¿«çš„冷启动
⚡ **优化的生产构建**
- ç²¾ç»†çš„代码分割
- å»¶è¿ŸåŠ è½½é‡åž‹åº“
- å‡å°‘初始包体积
🚀 **现代工具链**
- åŽŸç”Ÿ ES æ¨¡å—支持
- é¢„构建依赖缓存
- å¼€ç®±å³ç”¨çš„ TypeScript æ”¯æŒ
---
**迁移完成日期**: 2024
**最后更新**: å»¶è¿ŸåŠ è½½å®žçŽ°å®Œæˆ
Code/WCS/WIDESEAWCS_Client/index.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <meta name="keywords" content=".netccore,dotnet core,vue,element,element plus,vue3" />
  <meta name="description" content="" />
  <link rel="icon" href="/wcslogo.png">
  <title>WCS</title>
</head>
<body>
  <noscript>
    <strong>We're sorry but WCS doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
  </noscript>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>
</html>
<style>
  html,
  body {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
  }
  * {
    box-sizing: border-box;
  }
  .el-loading {
    z-index: 999999;
  }
  .el-table th {
    display: table-cell !important;
  }
  .el-loading .el-loading-spinner {
    padding: 7px;
    background: #ececec;
    width: 200px;
    color: red;
    left: 0;
    right: 0;
    margin: 0 auto;
    border-radius: 5px;
    border: 1px solid #a0a0a0;
  }
  h1,
  h2,
  h3,
  h4 {
    margin: 0;
  }
  .v-dialog {
    border-radius: 5px;
    top: 50%;
  }
  .v-dialog .el-dialog__header {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    padding: 0px 13px;
    line-height: 53px;
    border-bottom: 1px solid #e2e2e2;
    height: 50px;
    color: white;
    font-weight: bold;
    font-size: 14px;
    background-image: linear-gradient(135deg, #0cd7bd 10%, #50c3f7);
  }
  .v-dialog .el-dialog__header .el-dialog__headerbtn {
    top: 3px;
    right: 0px;
  }
  .v-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
    font-size: 19px;
    color: white;
  }
  .v-dialog .el-dialog__body {
    padding: 0;
  }
  .el-message {
    z-index: 3500 !important;
  }
  .v-date-range .el-input__inner {
    padding: 0 15px 0 8px
  }
  .v-date-range .el-input__suffix .el-input__icon {
    display: table-caption;
    background: white;
    margin: 1px;
    height: auto;
    margin-right: -4px;
    height: 33px;
    width: 19px;
    font-size: 13px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
  }
  .v-date-range .el-icon-circle-check {
    display: none !important;
  }
  .v-dialog .el-dialog__header {
    margin-right: 0;
  }
  .el-button {
    font-size: 12px !important;
  }
  .el-button--small {
    padding: 0px 15px !important;
    height: 32px;
  }
</style>
Code/WCS/WIDESEAWCS_Client/package.json
@@ -3,10 +3,10 @@
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint"
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview",
    "lint": "eslint --ext .js,.vue src"
  },
  "dependencies": {
    "@element-plus/icons-vue": "^2.1.0",
@@ -16,7 +16,7 @@
    "core-js": "^3.6.5",
    "echarts": "^5.0.2",
    "element-plus": "^2.2.14",
    "less": "^4.1.1",
    "sortablejs": "^1.15.6",
    "vue": "^3.2.37",
    "vue-draggable-next": "^2.0.1",
    "vue-router": "^4.0.0-0",
@@ -24,22 +24,14 @@
    "wangeditor": "^4.7.6"
  },
  "devDependencies": {
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-unit-mocha": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vitejs/plugin-vue": "^4.0.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/test-utils": "^2.0.0-0",
    "babel-eslint": "^10.1.0",
    "chai": "^4.1.2",
    "cross-env": "^7.0.3",
    "eslint": "^8.50.0",
    "less": "^4.1.1",
    "less-loader": "^7.3.0",
    "stylus": "^0.54.7",
    "stylus-loader": "^3.0.2"
    "unplugin-auto-import": "^21.0.0",
    "unplugin-vue-components": "^31.0.0",
    "vite": "^5.0.0"
  },
  "eslintConfig": {
    "root": true,
@@ -57,11 +49,11 @@
      ]
    },
    "parserOptions": {
      "parser": "babel-eslint"
      "parser": "@babel/eslint-parser"
    }
  },
  "eslintIgnore": [
    "*"
  ],
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
  "packageManager": "yarn@4.12.0"
}
Code/WCS/WIDESEAWCS_Client/src/App.vue
@@ -6,7 +6,7 @@
</template>
<script>
import { ElConfigProvider } from "element-plus";
import zhCn from "element-plus/lib/locale/lang/zh-cn";
import zhCn from "element-plus/es/locale/lang/zh-cn";
export default {
  name: "vol_app",
  components: {
Code/WCS/WIDESEAWCS_Client/src/components/basic/VolElementMenu.vue
@@ -43,7 +43,7 @@
</template>
<script>
import VolElementMenuChild from './VolElementMenuChild';
import VolElementMenuChild from './VolElementMenuChild.vue';
import { useRouter } from 'vue-router';
import {
Code/WCS/WIDESEAWCS_Client/src/components/editor/VolWangEditor.vue
@@ -3,7 +3,16 @@
</template>
<script>
import E from "wangeditor";
let E = null;
async function loadWangEditor() {
  if (!E) {
    const module = await import("wangeditor");
    E = module.default || module;
  }
  return E;
}
export default {
  props: {
    url: {
@@ -66,9 +75,10 @@
  destroyed() {
    this.editor = null;
  },
  mounted() {
  async mounted() {
    this.editor = null;
    let editor = new E(this.$refs.volWangEditor);
    const EditorConstructor = await loadWangEditor();
    let editor = new EditorConstructor(this.$refs.volWangEditor);
    this.editor = editor;
    let $this = this;
    editor.config.zIndex = 500;
Code/WCS/WIDESEAWCS_Client/src/components/redirect/401.vue
@@ -4,7 +4,7 @@
  </div>
</template>
  <script>
import RedirectError from "./RedirectError";
import RedirectError from "./RedirectError.vue";
export default {
  components: {
    RedirectError,
Code/WCS/WIDESEAWCS_Client/src/components/redirect/404.vue
@@ -4,7 +4,7 @@
  </div>
</template>
  <script>
import RedirectError from "./RedirectError";
import RedirectError from "./RedirectError.vue";
export default {
  components: {
    RedirectError
Code/WCS/WIDESEAWCS_Client/src/components/redirect/coding.vue
@@ -10,7 +10,7 @@
  </div>
</template>
  <script>
import RedirectError from "./RedirectError";
import RedirectError from "./RedirectError.vue";
export default {
  components: {
    RedirectError
Code/WCS/WIDESEAWCS_Client/src/extension/basicinfo/extend/addrouters.vue
@@ -163,7 +163,6 @@
    
    <script>
import VolBox from "@/components/basic/VolBox.vue";
import { el } from "element-plus/es/locale";
export default {
  components: { VolBox },
  data() {
Code/WCS/WIDESEAWCS_Client/src/main.js
@@ -2,8 +2,8 @@
import App from './App.vue'
import router from './router'
import store from './store'
import ElementPlus from 'element-plus';
// import 'element-plus/lib/theme-chalk/index.css';
import ElementPlus from 'element-plus'
// ä»…导入关键 Element Plus ç»„件样式,其他组件样式由组件按需导入
import 'element-plus/dist/index.css'
import './assets/element-icon/icon.css'
import base from './uitils/common'
Code/WCS/WIDESEAWCS_Client/src/router/index.js
@@ -7,7 +7,7 @@
  {
    path: '/',
    name: 'Index',
    component: () => import('@/views/Index'),
    component: () => import('@/views/Index.vue'),
    redirect: '/home',
    children: [
      ...viewgird,
Code/WCS/WIDESEAWCS_Client/src/router/redirect.js
@@ -2,18 +2,18 @@
let redirect = [{
    path: '/404',
    name: '404',
    component: () => import('@/components/redirect/404'),
    component: () => import('@/components/redirect/404.vue'),
    meta:{
        anonymous:true
      }
}, {
    path: '/401',
    name: '401',
    component: () => import('@/components/redirect/401')
    component: () => import('@/components/redirect/401.vue')
}, {
    path: '/coding',
    name: 'coding',
    component: () => import('@/components/redirect/coding')
    component: () => import('@/components/redirect/coding.vue')
}, {
    path: '/message',
    name: 'message',
Code/WCS/WIDESEAWCS_Client/src/views/Index.vue
@@ -116,7 +116,7 @@
@import "./index/index.less";
</style>
<script>
import loading from "@/components/basic/RouterLoading";
import loading from "@/components/basic/RouterLoading.vue";
import VolMenu from "@/components/basic/VolElementMenu.vue";
import Message from "./index/Message.vue";
import MessageConfig from "./index/MessageConfig.js";
Code/WCS/WIDESEAWCS_Client/src/views/charts/bigdata.vue
@@ -105,7 +105,7 @@
  </div>
</template>
<script>
var echarts = require("echarts");
let echarts = null;
let $chartLeft1,
  $chartLeft2,
  $chartLeft3,
@@ -122,6 +122,15 @@
} from "./bigdata/chart-options";
// import IviewCircle from "./bigdata/IviewCircle";
import "./bigdata/layout.less";
async function loadEcharts() {
  if (!echarts) {
    const module = await import("echarts");
    echarts = module.default || module;
  }
  return echarts;
}
export default {
  components: {
    // "iview-circle": IviewCircle
@@ -132,7 +141,8 @@
  created() {
    console.log("chart");
  },
  mounted() {
  async mounted() {
    echarts = await loadEcharts();
    if ($chartLeft1) {
      $chartLeft1.dispose();
      $chartLeft2.dispose();
Code/WCS/WIDESEAWCS_Client/src/views/charts/chart.vue
@@ -37,13 +37,23 @@
  </div>
</template>
<script>
let echarts = require("echarts");
import options from "./chartOptions";
let echarts = null;
let $bar;
let $pie;
let $line;
async function loadEcharts() {
  if (!echarts) {
    const module = await import("echarts");
    echarts = module.default || module;
  }
  return echarts;
}
export default {
  mounted() {
  async mounted() {
    echarts = await loadEcharts();
    $bar = echarts.init(document.getElementById("bar-0001"));
    $bar.setOption(this.options.bar);
  },
@@ -52,15 +62,17 @@
    this.width = document.documentElement.clientWidth - 240;
  },
  methods: {
    tabClick(name) {
    async tabClick(name) {
      if (name.props.name == "pie") {
        if (!$pie) {
          echarts = await loadEcharts();
          $pie = echarts.init(document.getElementById("pie-0001"));
          $pie.setOption(this.options.pie);
        }
      } else if (name.props.name == "line") {
        if (!$line) {
          echarts = await loadEcharts();
          $line = echarts.init(document.getElementById("line-0001"));
          $line.setOption(this.options.line);
         
Code/WCS/WIDESEAWCS_Client/src/views/charts/formChart.vue
@@ -55,7 +55,6 @@
<script>
import VolHeader from '@/components/basic/VolHeader.vue';
import VolForm from '@/components/basic/VolForm.vue';
let echarts = require('echarts');
import options from './chartOptions';
import {
  formFields1,
@@ -63,6 +62,17 @@
  formFields2,
  formRules2
} from './formOptions';
let echarts = null;
async function loadEcharts() {
  if (!echarts) {
    const module = await import('echarts');
    echarts = module.default || module;
  }
  return echarts;
}
export default {
  components: { VolForm, VolHeader },
  data() {
@@ -76,7 +86,8 @@
      options: options
    };
  },
  mounted() {
  async mounted() {
    echarts = await loadEcharts();
    let $bar = echarts.init(document.getElementById(this.bar));
    $bar.setOption(this.options.bar);
Code/WCS/WIDESEAWCS_Client/tmp_index.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <script type="module" src="/@vite/client"></script>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <meta name="keywords" content=".netccore,dotnet core,vue,element,element plus,vue3" />
  <meta name="description" content="" />
  <link rel="icon" href="/wcslogo.png">
  <title>WCS</title>
</head>
<body>
  <noscript>
    <strong>We're sorry but WCS doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
  </noscript>
  <div id="app"></div>
  <script type="module" src="/src/main.js?t=1769571013156"></script>
</body>
</html>
<style>
  html,
  body {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
  }
  * {
    box-sizing: border-box;
  }
  .el-loading {
    z-index: 999999;
  }
  .el-table th {
    display: table-cell !important;
  }
  .el-loading .el-loading-spinner {
    padding: 7px;
    background: #ececec;
    width: 200px;
    color: red;
    left: 0;
    right: 0;
    margin: 0 auto;
    border-radius: 5px;
    border: 1px solid #a0a0a0;
  }
  h1,
  h2,
  h3,
  h4 {
    margin: 0;
  }
  .v-dialog {
    border-radius: 5px;
    top: 50%;
  }
  .v-dialog .el-dialog__header {
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    padding: 0px 13px;
    line-height: 53px;
    border-bottom: 1px solid #e2e2e2;
    height: 50px;
    color: white;
    font-weight: bold;
    font-size: 14px;
    background-image: linear-gradient(135deg, #0cd7bd 10%, #50c3f7);
  }
  .v-dialog .el-dialog__header .el-dialog__headerbtn {
    top: 3px;
    right: 0px;
  }
  .v-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
    font-size: 19px;
    color: white;
  }
  .v-dialog .el-dialog__body {
    padding: 0;
  }
  .el-message {
    z-index: 3500 !important;
  }
  .v-date-range .el-input__inner {
    padding: 0 15px 0 8px
  }
  .v-date-range .el-input__suffix .el-input__icon {
    display: table-caption;
    background: white;
    margin: 1px;
    height: auto;
    margin-right: -4px;
    height: 33px;
    width: 19px;
    font-size: 13px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
  }
  .v-date-range .el-icon-circle-check {
    display: none !important;
  }
  .v-dialog .el-dialog__header {
    margin-right: 0;
  }
  .el-button {
    font-size: 12px !important;
  }
  .el-button--small {
    padding: 0px 15px !important;
    height: 32px;
  }
</style>
Code/WCS/WIDESEAWCS_Client/tmp_main.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
import { createApp } from "/node_modules/.vite/deps/vue.js?v=41fb9115"
import App from "/src/App.vue"
import router from "/src/router/index.js?t=1769571013156"
import store from "/src/store/index.js"
import ElementPlus from "/node_modules/.vite/deps/element-plus.js?v=01e7ed48";
// import 'element-plus/lib/theme-chalk/index.css';
import "/node_modules/element-plus/dist/index.css"
import "/src/assets/element-icon/icon.css"
import base from "/src/uitils/common.js"
import http from "/src/api/http.js"
// import 'dayjs/locale/zh-cn'
// import locale from 'element-plus/lib/locale/lang/zh-cn'
import * as ElementPlusIconsVue from "/node_modules/.vite/deps/@element-plus_icons-vue.js?v=a382b216"
import permission from "/src/api/permission.js"
import viewgird from "/src/components/basic/ViewGrid/index.js";
const app = createApp(App);
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
}
app.config.globalProperties.base = base;
app.config.globalProperties.http = http;
app.config.globalProperties.$tabs = {};
app.config.globalProperties.permission = permission;
app.config.globalProperties.$global = {
    signalR: false, //是否开启signalR
    table: {
        //vol-table带数据源的单元格是否启用tag标签(下拉框等单元格以tag标签显示)
        useTag: true
    },
    audit: { //审核选项
        data: [
            { text: '通过', value: 1 },
            { text: '拒绝', value: 3 },
            { text: '驳回', value: 4 }
        ],
        status:[0,2] //审核中的数据
        // å¾…审核 = 0,
        // å®¡æ ¸é€šè¿‡ = 1,
        // å®¡æ ¸ä¸­ = 2,
        // å®¡æ ¸æœªé€šè¿‡ = 3,
        // é©³å›ž = 4
    }
}
//2023.03.13,
//修改见:volupload.vue,后台AliOSSController.cs,阿里云OSS配置.doc
window.oss = {
    ali: { //阿里云
        use: false,//使用阿里云上传文件
        //阿里缩略图压缩大小
        //.aliyuncs.com
        small: "?x-oss-process=image/resize,m_lfit,w_200"
    }
}
app.use(store)
    .use(ElementPlus, { size: 'default' })
    .use(router)
    .use(viewgird)
    .mount('#app');
app.config.globalProperties.$Message = app.config.globalProperties.$message;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQXBwIH0gZnJvbSBcIi9ub2RlX21vZHVsZXMvLnZpdGUvZGVwcy92dWUuanM/dj00MWZiOTExNVwiXHJcbmltcG9ydCBBcHAgZnJvbSBcIi9zcmMvQXBwLnZ1ZVwiXHJcbmltcG9ydCByb3V0ZXIgZnJvbSBcIi9zcmMvcm91dGVyL2luZGV4LmpzP3Q9MTc2OTU3MTAxMzE1NlwiXHJcbmltcG9ydCBzdG9yZSBmcm9tIFwiL3NyYy9zdG9yZS9pbmRleC5qc1wiXHJcbmltcG9ydCBFbGVtZW50UGx1cyBmcm9tIFwiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL2VsZW1lbnQtcGx1cy5qcz92PTAxZTdlZDQ4XCI7XHJcbi8vIGltcG9ydCAnZWxlbWVudC1wbHVzL2xpYi90aGVtZS1jaGFsay9pbmRleC5jc3MnO1xyXG5pbXBvcnQgXCIvbm9kZV9tb2R1bGVzL2VsZW1lbnQtcGx1cy9kaXN0L2luZGV4LmNzc1wiXHJcbmltcG9ydCBcIi9zcmMvYXNzZXRzL2VsZW1lbnQtaWNvbi9pY29uLmNzc1wiXHJcbmltcG9ydCBiYXNlIGZyb20gXCIvc3JjL3VpdGlscy9jb21tb24uanNcIlxyXG5pbXBvcnQgaHR0cCBmcm9tIFwiL3NyYy9hcGkvaHR0cC5qc1wiXHJcbi8vIGltcG9ydCAnZGF5anMvbG9jYWxlL3poLWNuJ1xyXG4vLyBpbXBvcnQgbG9jYWxlIGZyb20gJ2VsZW1lbnQtcGx1cy9saWIvbG9jYWxlL2xhbmcvemgtY24nXHJcbmltcG9ydCAqIGFzIEVsZW1lbnRQbHVzSWNvbnNWdWUgZnJvbSBcIi9ub2RlX21vZHVsZXMvLnZpdGUvZGVwcy9AZWxlbWVudC1wbHVzX2ljb25zLXZ1ZS5qcz92PWEzODJiMjE2XCJcclxuXHJcblxyXG5cclxuaW1wb3J0IHBlcm1pc3Npb24gZnJvbSBcIi9zcmMvYXBpL3Blcm1pc3Npb24uanNcIlxyXG5pbXBvcnQgdmlld2dpcmQgZnJvbSBcIi9zcmMvY29tcG9uZW50cy9iYXNpYy9WaWV3R3JpZC9pbmRleC5qc1wiO1xyXG5jb25zdCBhcHAgPSBjcmVhdGVBcHAoQXBwKTtcclxuZm9yIChjb25zdCBba2V5LCBjb21wb25lbnRdIG9mIE9iamVjdC5lbnRyaWVzKEVsZW1lbnRQbHVzSWNvbnNWdWUpKSB7XHJcbiAgICBhcHAuY29tcG9uZW50KGtleSwgY29tcG9uZW50KVxyXG59XHJcbmFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy5iYXNlID0gYmFzZTtcclxuYXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLmh0dHAgPSBodHRwO1xyXG5hcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHRhYnMgPSB7fTtcclxuYXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xyXG5hcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJGdsb2JhbCA9IHtcclxuICAgIHNpZ25hbFI6IGZhbHNlLCAvL+aYr+WQpuW8gOWQr3NpZ25hbFJcclxuICAgIHRhYmxlOiB7XHJcbiAgICAgICAgLy92b2wtdGFibGXluKbmlbDmja7mupDnmoTljZXlhYPmoLzmmK/lkKblkK/nlKh0YWfmoIfnrb4o5LiL5ouJ5qGG562J5Y2V5YWD5qC85LuldGFn5qCH562+5pi+56S6KVxyXG4gICAgICAgIHVzZVRhZzogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGF1ZGl0OiB7IC8v5a6h5qC46YCJ6aG5XHJcbiAgICAgICAgZGF0YTogW1xyXG4gICAgICAgICAgICB7IHRleHQ6ICfpgJrov4cnLCB2YWx1ZTogMSB9LFxyXG4gICAgICAgICAgICB7IHRleHQ6ICfmi5Lnu50nLCB2YWx1ZTogMyB9LFxyXG4gICAgICAgICAgICB7IHRleHQ6ICfpqbPlm54nLCB2YWx1ZTogNCB9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBzdGF0dXM6WzAsMl0gLy/lrqHmoLjkuK3nmoTmlbDmja5cclxuICAgICAgICAvLyDlvoXlrqHmoLggPSAwLFxyXG4gICAgICAgIC8vIOWuoeaguOmAmui/hyA9IDEsXHJcbiAgICAgICAgLy8g5a6h5qC45LitID0gMixcclxuICAgICAgICAvLyDlrqHmoLjmnKrpgJrov4cgPSAzLFxyXG4gICAgICAgIC8vIOmps+WbniA9IDRcclxuICAgIH1cclxufVxyXG4vLzIwMjMuMDMuMTPvvIxcclxuLy/kv67mlLnop4HvvJp2b2x1cGxvYWQudnVl77yM5ZCO5Y+wQWxpT1NTQ29udHJvbGxlci5jc++8jOmYv+mHjOS6kU9TU+mFjee9ri5kb2Ncclxud2luZG93Lm9zcyA9IHtcclxuICAgIGFsaTogeyAvL+mYv+mHjOS6kVxyXG4gICAgICAgIHVzZTogZmFsc2UsLy/kvb/nlKjpmL/ph4zkupHkuIrkvKDmlofku7ZcclxuICAgICAgICAvL+mYv+mHjOe8qeeVpeWbvuWOi+e8qeWkp+Wwj1xyXG4gICAgICAgIC8vLmFsaXl1bmNzLmNvbVxyXG4gICAgICAgIHNtYWxsOiBcIj94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxtX2xmaXQsd18yMDBcIlxyXG4gICAgfVxyXG59XHJcbmFwcC51c2Uoc3RvcmUpXHJcbiAgICAudXNlKEVsZW1lbnRQbHVzLCB7IHNpemU6ICdkZWZhdWx0JyB9KVxyXG4gICAgLnVzZShyb3V0ZXIpXHJcbiAgICAudXNlKHZpZXdnaXJkKVxyXG4gICAgLm1vdW50KCcjYXBwJyk7XHJcbmFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kTWVzc2FnZSA9IGFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kbWVzc2FnZTtcclxuXHJcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FB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LENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUNGLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUM7QUFDRixHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3RSxDQUFDOyJ9
Code/WCS/WIDESEAWCS_Client/vite.config.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'
const __dirname = fileURLToPath(new URL('.', import.meta.url))
export default defineConfig({
  plugins: [vue()],
  server: {
    port: 8080,
    open: false,
    hmr: {
      overlay: false
    }
  },
  build: {
    sourcemap: false,
    chunkSizeWarningLimit: 1200,
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            if (id.includes('element-plus')) return 'vendor_element-plus';
            if (id.includes('echarts')) return 'vendor_echarts_lazy';
            if (id.includes('@microsoft') || id.includes('signalr')) return 'vendor_signalr';
            if (id.includes('wangeditor') || id.includes('wangEditor')) return 'vendor_wangeditor_lazy';
            if (id.includes('vue-draggable-next') || id.includes('sortablejs')) return 'vendor_drag';
            if (id.includes('vue')) return 'vendor_vue';
            return 'vendor_misc';
          }
        }
      }
    }
  },
  css: {
    devSourcemap: true,
    preprocessorOptions: {
      less: {}
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('src', import.meta.url))
    },
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']
  }
})
Code/WCS/WIDESEAWCS_Client/vue.config.js
ÎļþÒÑɾ³ý
Code/WCS/WIDESEAWCS_Client/yarn.lock
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db
Binary files differ
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db
Binary files differ
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json
@@ -3,6 +3,10 @@
  "WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    }
@@ -14,7 +18,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 3,
          "SelectedChildIndex": 2,
          "Children": [
            {
              "$type": "Bookmark",
@@ -25,18 +29,31 @@
              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "SpeStackerCrane.cs",
              "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAJQAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-01-28T05:55:14.804Z",
              "EditorCaption": ""
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 1,
              "Title": "appsettings.json",
              "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAYAAAAAAAAAAAAAABMAAABHAAAAAAAAAA==",
              "ViewState": "AgIAAAYAAAAAAAAAAAAAABQAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-01-26T08:07:36.508Z",
              "EditorCaption": ""
Code/WMS/WIDESEA_WMSClient/.yarn/install-state.gz
Binary files differ
Code/WMS/WIDESEA_WMSClient/.yarnrc.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2 @@
nodeLinker: "node-modules"
installStatePath: .yarn/install-state.gz
Code/WMS/WIDESEA_WMSClient/README.md
@@ -1,41 +1,30 @@
# vol.vue3
## Project setup
```
npm install
Install dependencies:
```bash
yarn install
```
### Compiles and hot-reloads for development
```
npm run serve
Development (Vite):
```bash
yarn dev
```
### Compiles and minifies for production
```
npm run build
Build for production:
```bash
yarn build
```
### Run your unit tests
```
npm run test:unit
Preview production build locally:
```bash
yarn preview
```
### Lints and fixes files
```
npm run lint
```
Notes:
- This project was migrated from Vue CLI / webpack to Vite. Source files and imports were adjusted for Vite (explicit `.vue` imports, alias `@` configured).
- Existing `vue.config.js` and Vue CLI dev dependencies remain for compatibility; you can remove them after verifying the Vite setup.
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
### npm run serve启动异常:
    ä½¿ç”¨cmd输入node -v查看版本,如果是18.+版本,请将package.json中第五行scripts中的内容替换为:
"scripts": {
    "serve": " SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint"
}
If you previously used `npm run serve` with Vue CLI, switch to the Vite commands above.
Code/WMS/WIDESEA_WMSClient/index.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <meta name="keywords" content=".netccore,dotnet core,vue,element,element plus,vue3" />
    <meta name="description" content="" />
    <link rel="icon" href="/wms_d.png" />
    <title>WMS</title>
    <script src="/webconfig.js"></script>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but WMS doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
  <style>
    html, body { margin: 0; padding: 0; height: 100%; width: 100%; }
    * { box-sizing: border-box; }
    .el-loading { z-index: 999999; }
    .el-table th { display: table-cell !important; }
  </style>
</html>
Code/WMS/WIDESEA_WMSClient/package.json
@@ -3,8 +3,9 @@
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "server": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview --port 8080",
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint"
  },
@@ -28,15 +29,9 @@
  },
  "devDependencies": {
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-unit-mocha": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vitejs/plugin-vue": "^4.0.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/test-utils": "^2.0.0-0",
    "babel-eslint": "^10.1.0",
    "chai": "^4.1.2",
    "cross-env": "^7.0.3",
    "less": "^4.1.1",
@@ -44,7 +39,8 @@
    "sass": "^1.78.0",
    "sass-loader": "^16.0.1",
    "stylus": "^0.54.7",
    "stylus-loader": "^3.0.2"
    "stylus-loader": "^3.0.2",
    "vite": "^5.0.0"
  },
  "eslintConfig": {
    "root": true,
@@ -68,5 +64,5 @@
  "eslintIgnore": [
    "*"
  ],
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
  "packageManager": "yarn@4.12.0"
}
Code/WMS/WIDESEA_WMSClient/src/App.vue
@@ -6,7 +6,7 @@
</template>
<script>
import { ElConfigProvider } from "element-plus";
import zhCn from "element-plus/lib/locale/lang/zh-cn";
import zhCn from "element-plus/es/locale/lang/zh-cn";
export default {
  name: "vol_app",
  components: {
Code/WMS/WIDESEA_WMSClient/src/components/basic/VolElementMenu.vue
@@ -43,7 +43,7 @@
</template>
<script>
import VolElementMenuChild from './VolElementMenuChild';
import VolElementMenuChild from './VolElementMenuChild.vue';
import { useRouter } from 'vue-router';
import {
Code/WMS/WIDESEA_WMSClient/src/components/redirect/401.vue
@@ -4,7 +4,7 @@
  </div>
</template>
  <script>
import RedirectError from "./RedirectError";
import RedirectError from "./RedirectError.vue";
export default {
  components: {
    RedirectError,
Code/WMS/WIDESEA_WMSClient/src/components/redirect/404.vue
@@ -4,7 +4,7 @@
  </div>
</template>
  <script>
import RedirectError from "./RedirectError";
import RedirectError from "./RedirectError.vue";
export default {
  components: {
    RedirectError
Code/WMS/WIDESEA_WMSClient/src/components/redirect/coding.vue
@@ -10,7 +10,7 @@
  </div>
</template>
  <script>
import RedirectError from "./RedirectError";
import RedirectError from "./RedirectError.vue";
export default {
  components: {
    RedirectError
Code/WMS/WIDESEA_WMSClient/src/router/index.js
@@ -7,7 +7,7 @@
  {
    path: '/',
    name: 'Index',
    component: () => import('@/views/Index'),
    component: () => import('@/views/Index.vue'),
    redirect: '/home',
    children: [
      ...viewgird,
Code/WMS/WIDESEA_WMSClient/src/router/redirect.js
@@ -2,18 +2,18 @@
let redirect = [{
    path: '/404',
    name: '404',
    component: () => import('@/components/redirect/404'),
    component: () => import('@/components/redirect/404.vue'),
    meta:{
        anonymous:true
      }
}, {
    path: '/401',
    name: '401',
    component: () => import('@/components/redirect/401')
    component: () => import('@/components/redirect/401.vue')
}, {
    path: '/coding',
    name: 'coding',
    component: () => import('@/components/redirect/coding')
    component: () => import('@/components/redirect/coding.vue')
}, {
    path: '/message',
    name: 'message',
Code/WMS/WIDESEA_WMSClient/src/views/Index.vue
@@ -199,11 +199,12 @@
@import "./index/index.less";
</style>
<script>
import loading from "@/components/basic/RouterLoading";
import loading from "@/components/basic/RouterLoading.vue";
import VolMenu from "@/components/basic/VolElementMenu.vue";
import Message from "./index/Message.vue";
import MessageConfig from "./index/MessageConfig.js";
var imgUrl = require("@/assets/imgs/wms_x.png");
import imgUrl from "@/assets/imgs/wms_x.png";
import errorImgSrc from "@/assets/imgs/error-img.png";
var $this;
var $interval;
var $indexDate;
@@ -272,9 +273,7 @@
        icon: "el-icon-switch-button",
      },
    ]);
    const errorImg = ref(
      'this.src="' + require("@/assets/imgs/error-img.png") + '"'
    );
    const errorImg = ref('this.src="' + errorImgSrc + '"');
    const selectId = ref("1");
    // ã€é¦–页】标签序号(当前右键选中的菜单)
    const selectMenuIndex = ref("0");
Code/WMS/WIDESEA_WMSClient/vite.config.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  },
  server: {
    port: 8080,
    open: false
  },
  build: {
    sourcemap: false
  }
})