diff --git a/dcsp-repos.json b/dcsp-repos.json index 5d2698b..cb4766f 100644 --- a/dcsp-repos.json +++ b/dcsp-repos.json @@ -11,6 +11,12 @@ "url": "http://117.72.162.127:3000/xb/build.git", "username": "xb", "token": "582e19830c58bdbfa8962f881ec873cce208ead0" + }, + { + "name": "项目模型", + "url": "http://117.72.162.127:3000/xb/----.git", + "username": "xb", + "token": "582e19830c58bdbfa8962f881ec873cce208ead0" } ] } \ No newline at end of file diff --git a/out/panels/ConfigPanel.js b/out/panels/ConfigPanel.js index 7623d39..f9635ec 100644 --- a/out/panels/ConfigPanel.js +++ b/out/panels/ConfigPanel.js @@ -24,7 +24,6 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigPanel = void 0; -// src/panels/ConfigPanel.ts const vscode = __importStar(require("vscode")); const path = __importStar(require("path")); const ProjectView_1 = require("./views/ProjectView"); @@ -60,6 +59,7 @@ class ConfigPanel { this.currentModuleFolderId = ''; // 仓库配置 this.repoConfigs = []; + this.currentCloneScope = 'config'; // 状态管理 this.isWebviewDisposed = false; this.currentModuleFolderFileTree = []; @@ -93,9 +93,10 @@ class ConfigPanel { await this.loadRepoConfigs(); } /** - * 弹出仓库选择弹窗(仅用于“获取仓库 -> 获取分支”) + * 按作用域弹出仓库选择弹窗(仅用于“获取仓库 -> 获取分支”) */ - async openRepoSelect() { + async openRepoSelectForScope(scope) { + this.currentCloneScope = scope; await this.loadRepoConfigs(); if (this.repoConfigs.length === 0) { vscode.window.showWarningMessage('尚未配置任何仓库,请先点击右上角 "仓库配置" 按钮编辑 dcsp-repos.json。'); @@ -108,6 +109,12 @@ class ConfigPanel { repos: this.repoConfigs.map(r => ({ name: r.name })) }); } + /** + * ConfigView 使用的默认版本(保持兼容) + */ + async openRepoSelect() { + return this.openRepoSelectForScope('config'); + } /** * 弹出“上传代码”时的仓库 + 分支选择弹窗 */ @@ -263,6 +270,9 @@ class ConfigPanel { // Git 仓库管理 'openRepoConfig': () => this.openRepoConfig(), 'openRepoSelect': () => this.openRepoSelect(), + 'openRepoSelectForProject': () => this.openRepoSelectForScope('project'), + 'openRepoSelectForAircraft': () => this.openRepoSelectForScope('aircraft'), + 'openRepoSelectForContainer': () => this.openRepoSelectForScope('container'), 'repoSelectedForBranches': (data) => this.handleRepoSelectedForBranches(data.repoName), // Git 分支管理 'fetchBranches': (data) => this.fetchBranches(data.url), @@ -587,7 +597,34 @@ class ConfigPanel { vscode.window.showErrorMessage(`获取分支失败: ${error}`); } } + /** + * 根据当前作用域,把选中的分支克隆到不同层级 + */ async cloneBranches(branches) { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + switch (this.currentCloneScope) { + case 'project': + await this.cloneBranchesToProjects(branches); + break; + case 'aircraft': + await this.cloneBranchesToAircrafts(branches); + break; + case 'container': + await this.cloneBranchesToContainers(branches); + break; + case 'config': + default: + await this.cloneBranchesToModuleFolders(branches); + break; + } + } + /** + * 原有逻辑:在 ConfigView 中,把分支克隆为当前容器下的 git 模块文件夹 + */ + async cloneBranchesToModuleFolders(branches) { if (!this.currentRepoForBranches) { vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); return; @@ -635,6 +672,206 @@ class ConfigPanel { vscode.window.showErrorMessage(`克隆分支失败: ${error}`); } } + /** + * ProjectView 用:把分支克隆为完整项目 + * 每个分支会弹出一个路径输入框,克隆整个仓库到该路径,如果有 .dcsp-data.json 则自动加载为项目 + */ + async cloneBranchesToProjects(branches) { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + const url = this.currentRepoForBranches.url; + const tasks = []; + for (const branch of branches) { + const pathInput = await vscode.window.showInputBox({ + prompt: `请输入分支 "${branch}" 的项目存储路径(绝对路径,系统将自动创建该文件夹)`, + placeHolder: `/path/to/your/project/${branch}`, + validateInput: (value) => { + if (!value) + return '路径不能为空'; + return null; + } + }); + if (!pathInput) { + vscode.window.showWarningMessage(`已取消分支 ${branch} 的克隆`); + continue; + } + tasks.push({ branch, targetPath: pathInput }); + } + if (tasks.length === 0) { + return; + } + let successCount = 0; + let failCount = 0; + await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: `正在克隆 ${tasks.length} 个项目分支`, + cancellable: false + }, async (progress) => { + for (let i = 0; i < tasks.length; i++) { + const { branch, targetPath } = tasks[i]; + progress.report({ + message: `克隆项目分支: ${branch} (${i + 1}/${tasks.length})` + }); + try { + await GitService_1.GitService.cloneRepository(url, targetPath, branch, undefined, this.currentRepoForBranches?.username, this.currentRepoForBranches?.token); + // 克隆完成后,尝试加载项目数据(如果有 .dcsp-data.json) + try { + const projectId = await this.projectService.loadProjectData(targetPath); + if (projectId) { + this.currentProjectId = projectId; + successCount++; + } + else { + // 没有 dscp-data 也算成功克隆,只是不会自动出现在列表里 + successCount++; + } + } + catch (err) { + console.warn('加载克隆项目数据失败:', err); + successCount++; + } + } + catch (error) { + console.error(`❌ 项目分支克隆失败: ${branch}`, error); + failCount++; + } + } + }); + await vscode.commands.executeCommand('workbench.files.action.refreshFilesExplorer'); + if (failCount === 0) { + vscode.window.showInformationMessage(`成功克隆 ${successCount} 个项目分支`); + } + else { + vscode.window.showWarningMessage(`项目克隆完成: ${successCount} 个成功, ${failCount} 个失败`); + } + this.currentView = 'projects'; + this.updateWebview(); + } + /** + * AircraftView 用:把分支克隆为当前项目下的飞行器 + * 目标路径:/<分支名>,克隆后自动解析容器/配置/模块,并写入 dscp-data.json + */ + async cloneBranchesToAircrafts(branches) { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + if (!this.currentProjectId) { + vscode.window.showErrorMessage('请先选择项目'); + return; + } + const projectPath = this.projectService.getProjectPath(this.currentProjectId); + if (!projectPath) { + vscode.window.showErrorMessage('未找到项目路径'); + return; + } + const url = this.currentRepoForBranches.url; + const username = this.currentRepoForBranches.username; + const token = this.currentRepoForBranches.token; + let successCount = 0; + let failCount = 0; + await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: `正在克隆飞行器分支`, + cancellable: false + }, async (progress) => { + for (let i = 0; i < branches.length; i++) { + const branch = branches[i]; + const aircraftName = branch.trim(); + if (!aircraftName) + continue; + const localPath = path.join(projectPath, aircraftName); + progress.report({ + message: `克隆飞行器分支: ${branch} (${i + 1}/${branches.length})` + }); + try { + await GitService_1.GitService.cloneRepository(url, localPath, branch, undefined, username, token); + await this.projectService.importAircraftFromExistingFolder(this.currentProjectId, aircraftName); + successCount++; + } + catch (error) { + console.error(`❌ 飞行器分支克隆失败: ${branch}`, error); + failCount++; + } + } + }); + await this.saveCurrentProjectData(); + await vscode.commands.executeCommand('workbench.files.action.refreshFilesExplorer'); + if (failCount === 0) { + vscode.window.showInformationMessage(`成功克隆 ${successCount} 个飞行器`); + } + else { + vscode.window.showWarningMessage(`飞行器克隆完成: ${successCount} 个成功, ${failCount} 个失败`); + } + this.currentView = 'aircrafts'; + this.updateWebview(); + } + /** + * ContainerView 用:把分支克隆为当前飞行器下的容器 + * 目标路径:/<当前飞行器名>/<分支名>,克隆后自动解析配置/模块,并写入 dscp-data.json + */ + async cloneBranchesToContainers(branches) { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + if (!this.currentProjectId || !this.currentAircraftId) { + vscode.window.showErrorMessage('请先选择项目和飞行器'); + return; + } + const projectPath = this.projectService.getProjectPath(this.currentProjectId); + if (!projectPath) { + vscode.window.showErrorMessage('未找到项目路径'); + return; + } + const aircraftName = this.getAircraftName(); + if (!aircraftName || aircraftName === '未知飞行器') { + vscode.window.showErrorMessage('未找到当前飞行器名称'); + return; + } + const url = this.currentRepoForBranches.url; + const username = this.currentRepoForBranches.username; + const token = this.currentRepoForBranches.token; + let successCount = 0; + let failCount = 0; + await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: `正在克隆容器分支`, + cancellable: false + }, async (progress) => { + for (let i = 0; i < branches.length; i++) { + const branch = branches[i]; + const containerName = branch.trim(); + if (!containerName) + continue; + const localPath = path.join(projectPath, aircraftName, containerName); + progress.report({ + message: `克隆容器分支: ${branch} (${i + 1}/${branches.length})` + }); + try { + await GitService_1.GitService.cloneRepository(url, localPath, branch, undefined, username, token); + await this.projectService.importContainerFromExistingFolder(this.currentAircraftId, containerName); + successCount++; + } + catch (error) { + console.error(`❌ 容器分支克隆失败: ${branch}`, error); + failCount++; + } + } + }); + await this.saveCurrentProjectData(); + await vscode.commands.executeCommand('workbench.files.action.refreshFilesExplorer'); + if (failCount === 0) { + vscode.window.showInformationMessage(`成功克隆 ${successCount} 个容器`); + } + else { + vscode.window.showWarningMessage(`容器克隆完成: ${successCount} 个成功, ${failCount} 个失败`); + } + this.currentView = 'containers'; + this.updateWebview(); + } async addGitModuleFolder(url, displayName, folderName, branch, username, token) { try { if (!url || !url.startsWith('http')) { @@ -1197,6 +1434,9 @@ class ConfigPanel { // ============================================= // Webview 更新方法 // ============================================= + // ============================================= + // Webview 更新方法 + // ============================================= updateWebview() { if (this.isWebviewDisposed) { console.log('⚠️ Webview 已被销毁,跳过更新'); @@ -1225,7 +1465,10 @@ class ConfigPanel { const project = this.projectService.getProjects().find(p => p.id === this.currentProjectId); const currentAircraft = this.projectService.getAircraftsByProject(this.currentProjectId) .find(a => a.id === this.currentAircraftId); - const projectContainers = this.projectService.getContainersByAircraft(this.currentAircraftId); + // ✅ 只在 UI 层隐藏名为 .git 的容器 + const projectContainers = this.projectService + .getContainersByAircraft(this.currentAircraftId) + .filter(c => c.name !== '.git'); return this.containerView.render({ project: project, aircraft: currentAircraft, diff --git a/out/panels/ConfigPanel.js.map b/out/panels/ConfigPanel.js.map index 02d0b91..ca6cfc3 100644 --- a/out/panels/ConfigPanel.js.map +++ b/out/panels/ConfigPanel.js.map @@ -1 +1 @@ -{"version":3,"file":"ConfigPanel.js","sourceRoot":"","sources":["../../src/panels/ConfigPanel.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ConfigPanel.js","sourceRoot":"","sources":["../../src/panels/ConfigPanel.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/out/panels/services/GitService.js b/out/panels/services/GitService.js index 76f8fda..b9ab451 100644 --- a/out/panels/services/GitService.js +++ b/out/panels/services/GitService.js @@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GitService = void 0; +// src/panels/services/GitService.ts const fs = __importStar(require("fs")); const isomorphic_git_1 = __importDefault(require("isomorphic-git")); const node_1 = __importDefault(require("isomorphic-git/http/node")); @@ -255,16 +256,25 @@ class GitService { } /** * 构建文件树 + * 这里显式忽略: + * - .git 目录 + * - .dcsp-data.json + * - 其它以 . 开头的隐藏文件/目录 */ static async buildFileTree(dir, relativePath = '') { try { const files = await fs.promises.readdir(dir); const tree = []; for (const file of files) { - if (file.startsWith('.') && file !== '.git') + // 1. 不要解析 .git + if (file === '.git') continue; + // 2. 不要解析项目数据文件 if (file === '.dcsp-data.json') continue; + // 3. 其它所有隐藏文件/目录统统忽略 + if (file.startsWith('.')) + continue; const filePath = path.join(dir, file); const stats = await fs.promises.stat(filePath); const currentRelativePath = path.join(relativePath, file); diff --git a/out/panels/services/GitService.js.map b/out/panels/services/GitService.js.map index 8bff592..eb934b5 100644 --- a/out/panels/services/GitService.js.map +++ b/out/panels/services/GitService.js.map @@ -1 +1 @@ -{"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../src/panels/services/GitService.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../src/panels/services/GitService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/out/panels/services/ProjectService.js b/out/panels/services/ProjectService.js index 993638e..fa203f7 100644 --- a/out/panels/services/ProjectService.js +++ b/out/panels/services/ProjectService.js @@ -58,8 +58,8 @@ class ProjectService { getProjectPath(projectId) { return this.projectPaths.get(projectId); } - setProjectPath(projectId, path) { - this.projectPaths.set(projectId, path); + setProjectPath(projectId, pathStr) { + this.projectPaths.set(projectId, pathStr); } async createProject(name) { const newId = this.generateUniqueId('p', this.projects); @@ -124,7 +124,7 @@ class ProjectService { const aircraft = this.aircrafts.find(a => a.id === aircraftId); if (!aircraft) return false; - // ⚠️ 修正点:先在删除 containers 之前,算出要删的 containerIds + // ⚠️ 先算出要删的 containerIds const relatedContainers = this.containers.filter(c => c.aircraftId === aircraftId); const containerIds = relatedContainers.map(c => c.id); // 删除飞机自身和容器 @@ -135,7 +135,50 @@ class ProjectService { this.moduleFolders = this.moduleFolders.filter(folder => !containerIds.includes(folder.containerId)); return true; } + /** + * 从已存在的磁盘目录导入飞行器 + * 不会创建/删除任何文件,只在内存中补充 Aircraft / Container / ModuleFolder 数据 + */ + async importAircraftFromExistingFolder(projectId, aircraftName) { + // 已存在同名飞行器直接返回 + const existed = this.getAircraftsByProject(projectId).find(a => a.name === aircraftName); + if (existed) { + return existed.id; + } + const newId = this.generateUniqueId('a', this.aircrafts); + const aircraft = { + id: newId, + name: aircraftName, + projectId + }; + this.aircrafts.push(aircraft); + const projectPath = this.projectPaths.get(projectId); + if (!projectPath) { + return newId; + } + const aircraftDir = path.join(projectPath, aircraftName); + if (!fs.existsSync(aircraftDir)) { + // 目录不存在就不再解析子目录 + return newId; + } + // 每个子目录视为一个容器(排除 .git) + const entries = await fs.promises.readdir(aircraftDir, { withFileTypes: true }); + for (const entry of entries) { + if (!entry.isDirectory()) + continue; + if (entry.name === '.git') + continue; + await this.importContainerFromExistingFolder(newId, entry.name); + } + return newId; + } // =============== 容器相关方法 =============== + /** + * ⚠️ 这里不再做 .git 过滤: + * - 我们只会通过 createContainer / importContainerFromExistingFolder 创建容器 + * - importContainerFromExistingFolder 内部已经排除了 .git + * 所以不会出现名字叫 ".git" 的容器 + */ getContainersByAircraft(aircraftId) { return this.containers.filter(c => c.aircraftId === aircraftId); } @@ -148,6 +191,7 @@ class ProjectService { }; this.containers.push(newContainer); await this.createContainerDirectory(newContainer); + // UI 手动创建的容器,仍然保留“默认两个配置”的行为 await this.createDefaultConfigs(newContainer); return newId; } @@ -168,6 +212,73 @@ class ProjectService { this.moduleFolders = this.moduleFolders.filter(folder => folder.containerId !== containerId); return true; } + /** + * 从已存在的磁盘目录导入容器 + * + * ✅ 你的最新需求: + * - 不创建“默认两个配置” + * - 自动扫描容器目录下的『子文件夹』 + * - 每个子文件夹创建一个 ModuleFolder(type: 'local') + * - 排除 `.git` 子文件夹 + */ + async importContainerFromExistingFolder(aircraftId, containerName) { + if (containerName === '.git') { + throw new Error('不能将 .git 导入为容器'); + } + const existed = this.getContainersByAircraft(aircraftId).find(c => c.name === containerName); + if (existed) { + return existed.id; + } + const newId = this.generateUniqueId('c', this.containers); + const container = { + id: newId, + name: containerName, + aircraftId + }; + this.containers.push(container); + // 🚩 关键逻辑:扫描容器目录下的子文件夹 -> 创建 ModuleFolder + await this.scanContainerModuleFolders(container); + // 不再创建默认两个配置(不调用 createDefaultConfigs) + // 也不创建目录(目录是 Git 克隆出来的,本来就存在) + return newId; + } + /** + * 扫描容器目录中的子文件夹(不含 .git),将其作为本地模块文件夹记录 + */ + async scanContainerModuleFolders(container) { + try { + const aircraft = this.aircrafts.find(a => a.id === container.aircraftId); + if (!aircraft) + return; + const projectPath = this.projectPaths.get(aircraft.projectId); + if (!projectPath) + return; + const containerDir = path.join(projectPath, aircraft.name, container.name); + if (!fs.existsSync(containerDir)) { + return; + } + const entries = await fs.promises.readdir(containerDir, { withFileTypes: true }); + for (const entry of entries) { + if (!entry.isDirectory()) + continue; + if (entry.name === '.git') + continue; + const folderId = this.generateUniqueId('local-', this.moduleFolders); + const relativePath = `/${aircraft.projectId}/${aircraft.name}/${container.name}/${entry.name}`; + const moduleFolder = { + id: folderId, + name: entry.name, + type: 'local', + localPath: relativePath, + containerId: container.id + }; + this.moduleFolders.push(moduleFolder); + } + } + catch (error) { + console.error('扫描容器目录生成模块文件夹失败:', error); + } + } // =============== 配置相关方法 =============== getConfigsByContainer(containerId) { return this.configs.filter(cfg => cfg.containerId === containerId); @@ -295,6 +406,10 @@ class ProjectService { console.error(`确保容器目录存在失败: ${error}`); } } + /** + * 仅用于「新建容器」时的默认两个配置 + * (导入容器时不会调用) + */ async createDefaultConfigs(container) { this.configs.push({ id: this.generateUniqueId('cfg', this.configs), @@ -346,10 +461,11 @@ class ProjectService { this.containers = this.containers.filter(c => !aircraftIds.includes(c.aircraftId)); this.configs = this.configs.filter(cfg => !containerIds.includes(cfg.containerId)); this.moduleFolders = this.moduleFolders.filter(folder => !containerIds.includes(folder.containerId)); - // 加载新数据 + // ⭐ 载入新数据时顺便过滤掉名字为 ".git" 的容器(避免历史数据带进来) + const cleanedContainers = data.containers.filter(c => c.name !== '.git'); this.projects.push(...data.projects); this.aircrafts.push(...data.aircrafts); - this.containers.push(...data.containers); + this.containers.push(...cleanedContainers); this.configs.push(...data.configs); this.moduleFolders.push(...data.moduleFolders); this.projectPaths.set(projectId, projectPath); diff --git a/out/panels/services/ProjectService.js.map b/out/panels/services/ProjectService.js.map index 1285585..8467dc5 100644 --- a/out/panels/services/ProjectService.js.map +++ b/out/panels/services/ProjectService.js.map @@ -1 +1 @@ -{"version":3,"file":"ProjectService.js","sourceRoot":"","sources":["../../../src/panels/services/ProjectService.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ProjectService.js","sourceRoot":"","sources":["../../../src/panels/services/ProjectService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAwC;AACxC,+CAAiC;AACjC,2CAA6B;AAC7B,uCAAyB;AAQzB,qDAAkD;AAElD;;GAEG;AACH,MAAa,cAAc;IAA3B;QACY,aAAQ,GAAc,EAAE,CAAC;QACzB,cAAS,GAAe,EAAE,CAAC;QAC3B,eAAU,GAAgB,EAAE,CAAC;QAC7B,YAAO,GAAa,EAAE,CAAC;QACvB,kBAAa,GAAmB,EAAE,CAAC;QACnC,iBAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IA8kB1D,CAAC;IA5kBG;;OAEG;IACH,gBAAgB,CAAC,MAAc,EAAE,iBAAwB,EAAE;QACvD,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,yCAAyC;IAEzC,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,OAAe;QAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,UAAU,GAAY;YACxB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI;SACb,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,OAAe;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;YACvB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,sBAAsB;QACtB,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtD,SAAS;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAErG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0CAA0C;IAE1C,qBAAqB,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,SAAiB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,WAAW,GAAa;YAC1B,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,SAAS;SACvB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjC,UAAU;QACV,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,UAAkB,EAAE,OAAe;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;YACxB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QACnF,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtD,YAAY;QACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAE3E,8BAA8B;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAErG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gCAAgC,CAAC,SAAiB,EAAE,YAAoB;QAC1E,eAAe;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACzF,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAC,EAAE,CAAC;SACrB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAa;YACvB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,YAAY;YAClB,SAAS;SACZ,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC7B,gBAAgB;YAChB,OAAO,KAAK,CAAC;SAChB;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YAEpC,MAAM,IAAI,CAAC,iCAAiC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SACnE;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,yCAAyC;IAEzC;;;;;OAKG;IACH,uBAAuB,CAAC,UAAkB;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,UAAkB;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAc;YAC5B,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;SACzB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAClD,6BAA6B;QAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAE9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,mBAAmB,CAAC,WAAmB,EAAE,OAAe;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAClE,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;YACzB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,WAAmB;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QAE7F,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iCAAiC,CAAC,UAAkB,EAAE,aAAqB;QAC7E,IAAI,aAAa,KAAK,MAAM,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAC7F,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAC,EAAE,CAAC;SACrB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAc;YACzB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,aAAa;YACnB,UAAU;SACb,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhC,0CAA0C;QAC1C,MAAM,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAEjD,uCAAuC;QACvC,8BAA8B;QAE9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,0BAA0B,CAAC,SAAoB;QACzD,IAAI;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW;gBAAE,OAAO;YAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC9B,OAAO;aACV;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAS;gBAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrE,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAE/F,MAAM,YAAY,GAAiB;oBAC/B,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,YAAY;oBACvB,WAAW,EAAE,SAAS,CAAC,EAAE;iBAC5B,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACzC;SAEJ;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;SAC5C;IACL,CAAC;IAED,yCAAyC;IAEzC,qBAAqB,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,WAAmB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,SAAS,GAAW;YACtB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YACjD,WAAW,EAAE,WAAW;SAC3B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7B,MAAM,IAAI,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,QAAgB,EAAE,OAAe;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzD,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,QAAgB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4CAA4C;IAE5C,2BAA2B,CAAC,WAAmB;QAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,eAAe,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe,CAAC,MAAoB;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,OAA8B;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzE,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAErC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG;YAC9B,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YAClC,GAAG,OAAO;SACb,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,QAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,OAAe;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACxD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,yCAAyC;IAEjC,KAAK,CAAC,uBAAuB,CAAC,QAAkB;QACpD,IAAI;YACA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAClC,OAAO;aACV;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrF,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;SAEnD;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;SACxC;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,SAAoB;QACvD,IAAI;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACnC,OAAO;aACV;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,OAAO;aACV;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtE,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;SAEnD;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;SACvC;IACL,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAAC,WAAmB;QAC5D,IAAI;YACA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW;gBAAE,OAAO;YAEzB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtE,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;SAE3D;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;SACzC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB,CAAC,SAAoB;QACnD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YAC9C,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,SAAS,CAAC,EAAE;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YAC9C,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,oBAAoB;YAC9B,WAAW,EAAE,SAAS,CAAC,EAAE;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,wCAAwC;IAExC,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QAC1C,IAAI;YACA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAClC,OAAO,KAAK,CAAC;aAChB;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,MAAM,+BAAc,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAClE;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACrC,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,+BAAc,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,IAAI,CAAC;aACf;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,IAAI,CAAC;aACf;YAED,sEAAsE;YACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YAChF,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAErD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3F,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEvD,yBAAyB;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YAErG,yCAAyC;YACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAEzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YAE/C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC;SACpB;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAEO,cAAc,CAAC,SAAiB;QACpC,OAAO;YACH,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAE,CAAC;YACxD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC;YAChE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;gBACjE,OAAO,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;YACxD,CAAC,CAAC;YACF,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;gBACtE,IAAI,CAAC,SAAS;oBAAE,OAAO,KAAK,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;gBACzE,OAAO,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;YACxD,CAAC,CAAC;YACF,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzE,IAAI,CAAC,SAAS;oBAAE,OAAO,KAAK,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;gBACzE,OAAO,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;YACxD,CAAC,CAAC;SACL,CAAC;IACN,CAAC;IAED,uCAAuC;IAEvC,uBAAuB,CAAC,MAAoB;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,QAAgB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI;YACA,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACzB,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;gBACtC,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;SAChB;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;CACJ;AAplBD,wCAolBC"} \ No newline at end of file diff --git a/out/panels/views/AircraftView.js b/out/panels/views/AircraftView.js index ddf358b..830c8cb 100644 --- a/out/panels/views/AircraftView.js +++ b/out/panels/views/AircraftView.js @@ -1,7 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AircraftView = void 0; -// src/panels/views/AircraftView.ts const BaseView_1 = require("./BaseView"); class AircraftView extends BaseView_1.BaseView { render(data) { @@ -26,6 +25,7 @@ class AircraftView extends BaseView_1.BaseView { 飞行器配置 ${this.getStyles()} + ${this.getRepoSelectScript()} @@ -103,6 +178,21 @@ class AircraftView extends BaseView_1.BaseView { + +
+

🛫 飞行器云仓库

+
+

🔗 获取飞行器仓库

+
+ + + 从仓库配置中选择 Git 仓库,选择分支后可将飞行器代码克隆到当前项目下(以分支名作为飞行器名称) + +
+
+
+
+ `; diff --git a/out/panels/views/AircraftView.js.map b/out/panels/views/AircraftView.js.map index f24f11b..ca96889 100644 --- a/out/panels/views/AircraftView.js.map +++ b/out/panels/views/AircraftView.js.map @@ -1 +1 @@ -{"version":3,"file":"AircraftView.js","sourceRoot":"","sources":["../../../src/panels/views/AircraftView.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,yCAAsC;AAGtC,MAAa,YAAa,SAAQ,mBAAQ;IACtC,MAAM,CAAC,IAAwC;QAC3C,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;QAExC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;;;oEAGY,QAAQ,CAAC,EAAE,QAAQ,QAAQ,CAAC,IAAI;;;2EAGzB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,SAAS;;;0EAGrC,QAAQ,CAAC,EAAE;;;SAG5E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO;;;;;;MAMT,IAAI,CAAC,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqER,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2FnB,CAAC;IACL,CAAC;CACJ;AA1LD,oCA0LC"} \ No newline at end of file +{"version":3,"file":"AircraftView.js","sourceRoot":"","sources":["../../../src/panels/views/AircraftView.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC,MAAa,YAAa,SAAQ,mBAAQ;IACtC,MAAM,CAAC,IAAwC;QAC3C,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;QAExC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;;;oEAGY,QAAQ,CAAC,EAAE,QAAQ,QAAQ,CAAC,IAAI;;;2EAGzB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,SAAS;;;0EAGrC,QAAQ,CAAC,EAAE;;;SAG5E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO;;;;;;MAMT,IAAI,CAAC,SAAS,EAAE;MAChB,IAAI,CAAC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgJlB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwQnB,CAAC;IACL,CAAC;CACJ;AAnbD,oCAmbC"} \ No newline at end of file diff --git a/out/panels/views/ContainerView.js b/out/panels/views/ContainerView.js index 4eb6240..aead072 100644 --- a/out/panels/views/ContainerView.js +++ b/out/panels/views/ContainerView.js @@ -1,7 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContainerView = void 0; -// src/panels/views/ContainerView.ts const BaseView_1 = require("./BaseView"); class ContainerView extends BaseView_1.BaseView { render(data) { @@ -28,6 +27,117 @@ class ContainerView extends BaseView_1.BaseView { 容器管理 ${this.getStyles()} + ${this.getRepoSelectScript()} +
@@ -53,6 +163,21 @@ class ContainerView extends BaseView_1.BaseView { + +
+

📦 容器云仓库

+
+

🔗 获取容器仓库

+
+ + + 从仓库配置中选择 Git 仓库,选择分支后可将容器代码克隆到当前飞行器下(以分支名作为容器名称) + +
+
+
+
+ `; diff --git a/out/panels/views/ContainerView.js.map b/out/panels/views/ContainerView.js.map index 26cd7e6..7d065ff 100644 --- a/out/panels/views/ContainerView.js.map +++ b/out/panels/views/ContainerView.js.map @@ -1 +1 @@ -{"version":3,"file":"ContainerView.js","sourceRoot":"","sources":["../../../src/panels/views/ContainerView.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AACpC,yCAAsC;AAGtC,MAAa,aAAc,SAAQ,mBAAQ;IACvC,MAAM,CAAC,IAAyB;QAC5B,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QAE1C,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAA4B,EAAE,EAAE,CAAC;;;yEAGP,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC,IAAI,UAAU,SAAS,CAAC,IAAI;;;4EAGtD,SAAS,CAAC,EAAE;;;2EAGb,SAAS,CAAC,EAAE;;;SAG9E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO;;;;;;MAMT,IAAI,CAAC,SAAS,EAAE;;;;gFAI0D,QAAQ,EAAE,IAAI,IAAI,OAAO;;;;;;;;;;;;;cAa3F,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyEpB,CAAC;IACL,CAAC;CACJ;AAtHD,sCAsHC"} \ No newline at end of file +{"version":3,"file":"ContainerView.js","sourceRoot":"","sources":["../../../src/panels/views/ContainerView.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC,MAAa,aAAc,SAAQ,mBAAQ;IACvC,MAAM,CAAC,IAAyB;QAC5B,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QAE1C,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAA4B,EAAE,EAAE,CAAC;;;yEAGP,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC,IAAI,UAAU,SAAS,CAAC,IAAI;;;4EAGtD,SAAS,CAAC,EAAE;;;2EAGb,SAAS,CAAC,EAAE;;;SAG9E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO;;;;;;MAMT,IAAI,CAAC,SAAS,EAAE;MAChB,IAAI,CAAC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAkHgD,QAAQ,EAAE,IAAI,IAAI,OAAO;;;;;;;;;;;;;cAa3F,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsPpB,CAAC;IACL,CAAC;CACJ;AAlZD,sCAkZC"} \ No newline at end of file diff --git a/out/panels/views/ProjectView.js b/out/panels/views/ProjectView.js index 8c24e5a..3521884 100644 --- a/out/panels/views/ProjectView.js +++ b/out/panels/views/ProjectView.js @@ -1,7 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProjectView = void 0; -// src/panels/views/ProjectView.ts const BaseView_1 = require("./BaseView"); class ProjectView extends BaseView_1.BaseView { render(data) { @@ -37,6 +36,7 @@ class ProjectView extends BaseView_1.BaseView { 数字卫星构建平台 ${this.getStyles()} + ${this.getRepoSelectScript()} @@ -125,6 +212,21 @@ class ProjectView extends BaseView_1.BaseView { + +
+

📚 项目云仓库

+
+

🔗 获取项目仓库

+
+ + + 从仓库配置中选择 Git 仓库,选择分支后可将完整项目克隆到本地(包含 dscp-data.json) + +
+
+
+
+ `; diff --git a/out/panels/views/ProjectView.js.map b/out/panels/views/ProjectView.js.map index 0c3fa0a..c39025b 100644 --- a/out/panels/views/ProjectView.js.map +++ b/out/panels/views/ProjectView.js.map @@ -1 +1 @@ -{"version":3,"file":"ProjectView.js","sourceRoot":"","sources":["../../../src/panels/views/ProjectView.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,yCAAsC;AAGtC,MAAa,WAAY,SAAQ,mBAAQ;IACrC,MAAM,CAAC,IAA0E;QAC7E,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC;QAErD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAwB,EAAE,EAAE;YAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAEhD,OAAO;;;kEAG+C,OAAO,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI;;0BAEjF,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;;;yEAItB,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,MAAM,YAAY;0BAC9F,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;;;yEAIqB,OAAO,CAAC,EAAE;;;SAG1E,CAAA;QAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEb,OAAO;;;;;;MAMT,IAAI,CAAC,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAyER,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+GlB,CAAC;IACL,CAAC;CACJ;AA7ND,kCA6NC"} \ No newline at end of file +{"version":3,"file":"ProjectView.js","sourceRoot":"","sources":["../../../src/panels/views/ProjectView.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC,MAAa,WAAY,SAAQ,mBAAQ;IACrC,MAAM,CAAC,IAA0E;QAC7E,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC;QAErD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAwB,EAAE,EAAE;YAC3D,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAEhD,OAAO;;;kEAG+C,OAAO,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI;;0BAEjF,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;;;;yEAItB,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,MAAM,YAAY;0BAC9F,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;;;yEAIqB,OAAO,CAAC,EAAE;;;SAG1E,CAAA;QAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEb,OAAO;;;;;;MAMT,IAAI,CAAC,SAAS,EAAE;MAChB,IAAI,CAAC,mBAAmB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgKlB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4RlB,CAAC;IACL,CAAC;CACJ;AAleD,kCAkeC"} \ No newline at end of file diff --git a/src/panels/ConfigPanel.ts b/src/panels/ConfigPanel.ts index 48337f2..dd1efb9 100755 --- a/src/panels/ConfigPanel.ts +++ b/src/panels/ConfigPanel.ts @@ -1,4 +1,3 @@ -// src/panels/ConfigPanel.ts import * as vscode from 'vscode'; import * as path from 'path'; import { ProjectView } from './views/ProjectView'; @@ -26,6 +25,8 @@ interface GitFileTree { children?: GitFileTree[]; } +type CloneScope = 'project' | 'aircraft' | 'container' | 'config'; + export class ConfigPanel { public static currentPanel: ConfigPanel | undefined; public readonly panel: vscode.WebviewPanel; @@ -40,33 +41,34 @@ export class ConfigPanel { private currentAircraftId: string = ''; private currentContainerId: string = ''; private currentModuleFolderId: string = ''; - + // 仓库配置 private repoConfigs: RepoConfigItem[] = []; private currentRepoForBranches: RepoConfigItem | undefined; - + private currentCloneScope: CloneScope = 'config'; + // 状态管理 private isWebviewDisposed: boolean = false; private currentModuleFolderFileTree: GitFileTree[] = []; - + // 视图实例 private readonly projectView: ProjectView; private readonly aircraftView: AircraftView; private readonly containerView: ContainerView; private readonly configView: ConfigView; - + // ============================================= // 公共方法 // ============================================= - + public static createOrShow(extensionUri: vscode.Uri) { const column = vscode.window.activeTextEditor?.viewColumn || vscode.ViewColumn.One; - + if (ConfigPanel.currentPanel) { ConfigPanel.currentPanel.panel.reveal(column); return; } - + const panel = vscode.window.createWebviewPanel( 'DCSP', '数字卫星构建平台', @@ -77,81 +79,89 @@ export class ConfigPanel { retainContextWhenHidden: true } ); - + ConfigPanel.currentPanel = new ConfigPanel(panel, extensionUri); } - + public constructor(panel: vscode.WebviewPanel, extensionUri: vscode.Uri) { this.panel = panel; this.extensionUri = extensionUri; this.isWebviewDisposed = false; - + // 初始化服务 this.projectService = new ProjectService(); - + // 初始化视图 this.projectView = new ProjectView(extensionUri); this.aircraftView = new AircraftView(extensionUri); this.containerView = new ContainerView(extensionUri); this.configView = new ConfigView(extensionUri); - + // 加载仓库配置 void this.loadRepoConfigs(); - + this.updateWebview(); this.setupMessageListener(); - + this.panel.onDidDispose(() => { this.isWebviewDisposed = true; ConfigPanel.currentPanel = undefined; }); } - + // ============================================= // 仓库配置相关 // ============================================= - + private async loadRepoConfigs(): Promise { this.repoConfigs = await StorageService.loadRepoConfigs(this.extensionUri); } - + private async openRepoConfig(): Promise { await StorageService.openRepoConfig(this.extensionUri); await this.loadRepoConfigs(); } /** - * 弹出仓库选择弹窗(仅用于“获取仓库 -> 获取分支”) + * 按作用域弹出仓库选择弹窗(仅用于“获取仓库 -> 获取分支”) */ - private async openRepoSelect(): Promise { + private async openRepoSelectForScope(scope: CloneScope): Promise { + this.currentCloneScope = scope; await this.loadRepoConfigs(); - + if (this.repoConfigs.length === 0) { vscode.window.showWarningMessage('尚未配置任何仓库,请先点击右上角 "仓库配置" 按钮编辑 dcsp-repos.json。'); return; } - + if (this.isWebviewDisposed) return; - + this.panel.webview.postMessage({ type: 'showRepoSelect', repos: this.repoConfigs.map(r => ({ name: r.name })) }); } + /** + * ConfigView 使用的默认版本(保持兼容) + */ + private async openRepoSelect(): Promise { + return this.openRepoSelectForScope('config'); + } + /** * 弹出“上传代码”时的仓库 + 分支选择弹窗 */ private async openUploadRepoSelect(folderId: string, folderType: 'git' | 'local'): Promise { await this.loadRepoConfigs(); - + if (this.repoConfigs.length === 0) { vscode.window.showWarningMessage('尚未配置任何仓库,请先点击右上角 "仓库配置" 按钮编辑 dcsp-repos.json。'); return; } - + if (this.isWebviewDisposed) return; - + this.panel.webview.postMessage({ type: 'showUploadRepoSelect', repos: this.repoConfigs.map(r => ({ name: r.name })), @@ -159,23 +169,23 @@ export class ConfigPanel { folderType }); } - + /** * “获取仓库”弹窗确认后:用于拉取分支 */ private async handleRepoSelectedForBranches(repoName: string): Promise { await this.loadRepoConfigs(); const repo = this.repoConfigs.find(r => r.name === repoName); - + if (!repo) { vscode.window.showErrorMessage(`在仓库配置中未找到名为 "${repoName}" 的仓库`); return; } - + this.currentRepoForBranches = repo; await this.fetchBranchesForRepo(repo); } - + /** * “上传代码”弹窗确认后:根据 folderType 决定上传逻辑,并使用用户输入的 branchName */ @@ -190,14 +200,14 @@ export class ConfigPanel { vscode.window.showErrorMessage('分支名称不能为空'); return; } - + await this.loadRepoConfigs(); const repo = this.repoConfigs.find(r => r.name === repoName); if (!repo) { vscode.window.showErrorMessage(`在仓库配置中未找到名为 "${repoName}" 的仓库`); return; } - + if (folderType === 'local') { // 本地模块 -> 选中仓库 + 指定分支 await this.uploadLocalModuleFolder( @@ -212,7 +222,7 @@ export class ConfigPanel { await this.processGitUploadWithBranch(folderId, repo, trimmedBranch); } } - + /** * Git 模块上传(可能换仓库 / 改名),使用用户指定的分支 */ @@ -226,25 +236,25 @@ export class ConfigPanel { vscode.window.showErrorMessage("未找到要上传的 Git 模块文件夹"); return; } - + const newFolderName = folder.localPath.split('/').pop() ?? ''; const oldFolderName = folder.originalFolderName ?? newFolderName; - + const isRenamed = newFolderName !== oldFolderName; const isSameRepo = !!folder.originalRepoUrl && folder.originalRepoUrl === repo.url; - + const fullPath = this.projectService.getModuleFolderFullPath(folder); if (!fullPath) { vscode.window.showErrorMessage("无法确定 Git 模块文件夹路径"); return; } - + // 未改名 + 还是原来的仓库 → 直接在原分支上 push(更新代码) if (!isRenamed && isSameRepo) { await this.uploadGitModuleFolder(folderId); return; } - + // 改了名字 或 换了仓库 → 使用“用户输入的分支名”进行推送 await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, @@ -253,7 +263,7 @@ export class ConfigPanel { }, async (progress) => { try { progress.report({ increment: 0, message: '准备上传...' }); - + await GitService.pushToRepoUrl( fullPath, repo.url, @@ -261,15 +271,15 @@ export class ConfigPanel { repo.username, repo.token ); - + this.projectService.updateModuleFolder(folderId, { uploaded: true, originalFolderName: newFolderName, originalRepoUrl: repo.url }); - + await this.saveCurrentProjectData(); - + progress.report({ increment: 100, message: '完成' }); vscode.window.showInformationMessage(`✅ Git 仓库已上传到 ${repo.name} 的分支 ${branchName}`); this.updateWebview(); @@ -279,11 +289,11 @@ export class ConfigPanel { } }); } - + // ============================================= // Webview 消息处理 // ============================================= - + private setupMessageListener() { this.panel.webview.onDidReceiveMessage(async (data) => { if (this.isWebviewDisposed) { @@ -301,7 +311,7 @@ export class ConfigPanel { } }); } - + private async handleWebviewMessage(data: any): Promise { const messageHandlers: { [key: string]: (data: any) => Promise } = { // 导航相关 @@ -313,39 +323,42 @@ export class ConfigPanel { 'goBackToProjects': () => this.handleGoBackToProjects(), 'goBackToAircrafts': () => this.handleGoBackToAircrafts(), 'goBackToContainers': () => this.handleGoBackToContainers(), - + // 项目管理 'updateProjectName': (data) => this.updateProjectName(data.projectId, data.name), 'createProject': (data) => this.createProject(data.name), 'deleteProject': (data) => this.deleteProject(data.projectId), - + // 飞行器管理 'updateAircraftName': (data) => this.updateAircraftName(data.aircraftId, data.name), 'createAircraft': (data) => this.createAircraft(data.name), 'deleteAircraft': (data) => this.deleteAircraft(data.aircraftId), - + // 容器管理 'updateContainerName': (data) => this.updateContainerName(data.containerId, data.name), 'createContainer': (data) => this.createContainer(data.name), 'deleteContainer': (data) => this.deleteContainer(data.containerId), - + // 配置管理 'updateConfigName': (data) => this.updateConfigName(data.configId, data.name), 'createConfig': (data) => this.createConfig(data.name), 'deleteConfig': (data) => this.deleteConfig(data.configId), 'openConfigFileInVSCode': (data) => this.openConfigFileInVSCode(data.configId), 'mergeConfigs': (data) => this.mergeConfigs(data.configIds, data.displayName, data.folderName), - + // Git 仓库管理 'openRepoConfig': () => this.openRepoConfig(), - 'openRepoSelect': () => this.openRepoSelect(), + 'openRepoSelect': () => this.openRepoSelect(), // ConfigView 用 + 'openRepoSelectForProject': () => this.openRepoSelectForScope('project'), + 'openRepoSelectForAircraft': () => this.openRepoSelectForScope('aircraft'), + 'openRepoSelectForContainer': () => this.openRepoSelectForScope('container'), 'repoSelectedForBranches': (data) => this.handleRepoSelectedForBranches(data.repoName), - + // Git 分支管理 'fetchBranches': (data) => this.fetchBranches(data.url), 'cloneBranches': (data) => this.cloneBranches(data.branches), 'cancelBranchSelection': () => this.handleCancelBranchSelection(), - + // 模块文件夹管理 'loadModuleFolder': (data) => this.loadModuleFolder(data.folderId), 'syncGitModuleFolder': (data) => this.syncGitModuleFolder(data.folderId), @@ -353,13 +366,13 @@ export class ConfigPanel { 'importGitFile': (data) => this.importGitFile(data.filePath), 'openTheModuleFolder': (data) => this.openTheModuleFolder(data.moduleType, data.id), 'renameModuleFolder': (data) => this.renameModuleFolder(data.folderId, data.newName), - + // 上传功能 'uploadGitModuleFolder': (data) => this.uploadGitModuleFolder(data.folderId, data.username, data.password), 'openRepoSelectForUpload': (data) => this.openUploadRepoSelect(data.folderId, 'local'), 'uploadLocalModuleFolder': (data) => this.uploadLocalModuleFolder(data.folderId, data.repoUrl, data.branchName), 'openRepoSelectForGitUpload': (data) => this.openUploadRepoSelect(data.folderId, 'git'), - + // 上传时 仓库+分支 选择确认 'uploadRepoSelected': (data) => this.handleUploadRepoSelected( data.folderId, @@ -368,7 +381,7 @@ export class ConfigPanel { data.branchName ) }; - + const handler = messageHandlers[data.type]; if (handler) { await handler(data); @@ -376,11 +389,11 @@ export class ConfigPanel { console.warn(`未知的消息类型: ${data.type}`); } } - + // ============================================= // 导航处理方法 // ============================================= - + private async handleConfigureProject(data: any): Promise { const selectedPath = await this.selectProjectPath(data.projectId, data.projectName); if (selectedPath) { @@ -389,26 +402,26 @@ export class ConfigPanel { this.updateWebview(); } } - + private async handleOpenProject(data: any): Promise { this.currentView = 'aircrafts'; this.currentProjectId = data.projectId; this.updateWebview(); } - + private async handleOpenAircraftConfig(data: any): Promise { this.currentView = 'containers'; this.currentProjectId = data.projectId; this.currentAircraftId = data.aircraftId; this.updateWebview(); } - + private async handleOpenContainerConfig(data: any): Promise { this.currentView = 'configs'; this.currentContainerId = data.containerId; this.updateWebview(); } - + private async handleGoBackToProjects(): Promise { this.currentView = 'projects'; this.currentProjectId = ''; @@ -417,29 +430,29 @@ export class ConfigPanel { this.currentModuleFolderId = ''; this.updateWebview(); } - + private async handleGoBackToAircrafts(): Promise { this.currentView = 'aircrafts'; this.currentAircraftId = ''; this.currentContainerId = ''; this.updateWebview(); } - + private async handleGoBackToContainers(): Promise { this.currentView = 'containers'; this.currentContainerId = ''; this.updateWebview(); } - + private async handleCancelBranchSelection(): Promise { console.log('❌ 取消分支选择'); this.updateWebview(); } - + // ============================================= // 项目管理方法 // ============================================= - + private async updateProjectName(projectId: string, newName: string): Promise { if (this.projectService.updateProjectName(projectId, newName)) { vscode.window.showInformationMessage(`项目名称更新: ${newName}`); @@ -447,7 +460,7 @@ export class ConfigPanel { this.updateWebview(); } } - + private async createProject(name: string): Promise { const newId = await this.projectService.createProject(name); this.currentProjectId = newId; @@ -455,7 +468,7 @@ export class ConfigPanel { vscode.window.showInformationMessage(`新建项目: ${name}`); this.updateWebview(); } - + private async deleteProject(projectId: string): Promise { if (this.projectService.deleteProject(projectId)) { if (this.currentProjectId === projectId) { @@ -467,11 +480,11 @@ export class ConfigPanel { this.updateWebview(); } } - + // ============================================= // 飞行器管理方法 // ============================================= - + private async updateAircraftName(aircraftId: string, newName: string): Promise { if (this.projectService.updateAircraftName(aircraftId, newName)) { vscode.window.showInformationMessage(`飞行器名称更新: ${newName}`); @@ -479,19 +492,19 @@ export class ConfigPanel { this.updateWebview(); } } - + private async createAircraft(name: string): Promise { if (!this.currentProjectId) { vscode.window.showErrorMessage('无法创建飞行器:未找到当前项目'); return; } - + const aircraftId = await this.projectService.createAircraft(name, this.currentProjectId); vscode.window.showInformationMessage(`新建飞行器: ${name}`); await this.saveCurrentProjectData(); this.updateWebview(); } - + private async deleteAircraft(aircraftId: string): Promise { if (this.projectService.deleteAircraft(aircraftId)) { vscode.window.showInformationMessage('飞行器已删除'); @@ -499,11 +512,11 @@ export class ConfigPanel { this.updateWebview(); } } - + // ============================================= // 容器管理方法 // ============================================= - + private async updateContainerName(containerId: string, newName: string): Promise { if (this.projectService.updateContainerName(containerId, newName)) { vscode.window.showInformationMessage(`容器名称更新: ${newName}`); @@ -511,19 +524,19 @@ export class ConfigPanel { this.updateWebview(); } } - + private async createContainer(name: string): Promise { if (!this.currentAircraftId) { vscode.window.showErrorMessage('无法创建容器:未找到当前飞行器'); return; } - + const containerId = await this.projectService.createContainer(name, this.currentAircraftId); vscode.window.showInformationMessage(`新建容器: ${name} (包含2个默认配置文件)`); await this.saveCurrentProjectData(); this.updateWebview(); } - + private async deleteContainer(containerId: string): Promise { if (this.projectService.deleteContainer(containerId)) { vscode.window.showInformationMessage('容器已删除'); @@ -531,11 +544,11 @@ export class ConfigPanel { this.updateWebview(); } } - + // ============================================= // 配置管理方法 // ============================================= - + private async updateConfigName(configId: string, newName: string): Promise { if (this.projectService.updateConfigName(configId, newName)) { vscode.window.showInformationMessage(`配置名称更新: ${newName}`); @@ -543,7 +556,7 @@ export class ConfigPanel { this.updateWebview(); } } - + private async createConfig(name: string): Promise { // 注意:真正创建文件内容的逻辑放在 ProjectService.createConfig 里处理 const configId = await this.projectService.createConfig(name, this.currentContainerId); @@ -551,22 +564,22 @@ export class ConfigPanel { await this.saveCurrentProjectData(); this.updateWebview(); } - + private async deleteConfig(configId: string): Promise { const config = this.projectService.getConfig(configId); if (!config) return; - + const confirm = await vscode.window.showWarningMessage( `确定要删除配置文件 "${config.name}" 吗?这将同时删除磁盘上的文件。`, { modal: true }, '确定删除', '取消' ); - + if (confirm !== '确定删除') { return; } - + try { // 删除配置文件(磁盘) await this.projectService.deleteConfigFileFromDisk(configId); @@ -577,23 +590,23 @@ export class ConfigPanel { vscode.window.showInformationMessage(`删除配置: ${config.name}`); await this.saveCurrentProjectData(); this.updateWebview(); - + } catch (error) { vscode.window.showErrorMessage(`删除配置文件失败: ${error}`); } } - + private async mergeConfigs(configIds: string[], displayName: string, folderName: string): Promise { if (!this.currentContainerId) { vscode.window.showErrorMessage('未找到当前容器'); return; } - + if (configIds.length < 2) { vscode.window.showErrorMessage('请至少选择两个配置文件进行合并'); return; } - + try { const container = this.projectService.getContainersByAircraft(this.currentAircraftId) .find(c => c.id === this.currentContainerId); @@ -601,29 +614,29 @@ export class ConfigPanel { vscode.window.showErrorMessage('未找到容器数据'); return; } - + const projectPath = this.projectService.getProjectPath(this.currentProjectId); if (!projectPath) { vscode.window.showErrorMessage('未找到项目路径'); return; } - + // 获取选中的配置(仅元信息,不含 content) const selectedConfigs = configIds .map(id => this.projectService.getConfig(id)) .filter(Boolean); - + if (selectedConfigs.length !== configIds.length) { vscode.window.showErrorMessage('部分配置文件未找到'); return; } - + // 创建合并文件夹 const mergeFolderPath = path.join(projectPath, this.getAircraftName(), container.name, folderName); await vscode.workspace.fs.createDirectory(vscode.Uri.file(mergeFolderPath)); - + const fs = require('fs'); - + // 复制文件到合并文件夹:完全基于磁盘文件 for (const config of selectedConfigs) { if (!config) continue; @@ -641,7 +654,7 @@ export class ConfigPanel { await fs.promises.writeFile(targetPath, placeholder, 'utf8'); } } - + // 创建模块文件夹记录(使用 ProjectService 的统一 ID 生成) const relativePath = `/${this.currentProjectId}/${this.getAircraftName()}/${container.name}/${folderName}`; const newFolder: ModuleFolder = { @@ -651,45 +664,45 @@ export class ConfigPanel { localPath: relativePath, containerId: this.currentContainerId }; - + this.projectService.addModuleFolder(newFolder); - + // 删除原配置(包括磁盘上的配置文件) for (const configId of configIds) { await this.projectService.deleteConfigFileFromDisk(configId); this.projectService.deleteConfig(configId); } - + await this.saveCurrentProjectData(); vscode.window.showInformationMessage(`成功合并 ${selectedConfigs.length} 个配置文件到文件夹: ${folderName}`); this.updateWebview(); - + } catch (error) { console.error('❌ 合并配置文件失败:', error); vscode.window.showErrorMessage(`合并配置文件失败: ${error}`); } } - + private getAircraftName(): string { const aircrafts = this.projectService.getAircraftsByProject(this.currentProjectId); const aircraft = aircrafts.find(a => a.id === this.currentAircraftId); return aircraft?.name || '未知飞行器'; } - + private getContainerName(): string { const containers = this.projectService.getContainersByAircraft(this.currentAircraftId); const container = containers.find(c => c.id === this.currentContainerId); return container?.name || '未知容器'; } - + // ============================================= // Git 分支管理方法 // ============================================= - + private async fetchBranchesForRepo(repo: RepoConfigItem): Promise { await this.fetchBranches(repo.url, repo); } - + private async fetchBranches(url: string, repo?: RepoConfigItem): Promise { try { await vscode.window.withProgress({ @@ -698,24 +711,24 @@ export class ConfigPanel { cancellable: false }, async (progress) => { progress.report({ increment: 0, message: '连接远程仓库...' }); - + try { progress.report({ increment: 30, message: '获取远程引用...' }); - + const branches = await GitService.fetchBranches( url, repo?.username, - repo?.token + repo?.token ); - + if (branches.length === 0) { throw new Error('未找到任何分支'); } - + progress.report({ increment: 80, message: '处理分支数据...' }); - + const branchTree = GitService.buildBranchTree(branches); - + if (!this.isWebviewDisposed) { this.panel.webview.postMessage({ type: 'branchesFetched', @@ -725,30 +738,59 @@ export class ConfigPanel { repoName: repo?.name }); } - + progress.report({ increment: 100, message: '完成' }); - + } catch (error) { console.error('❌ 获取分支失败:', error); vscode.window.showErrorMessage(`获取分支失败: ${error}`); } }); - + } catch (error) { console.error('❌ 获取分支失败:', error); vscode.window.showErrorMessage(`获取分支失败: ${error}`); } } + /** + * 根据当前作用域,把选中的分支克隆到不同层级 + */ private async cloneBranches(branches: string[]): Promise { if (!this.currentRepoForBranches) { vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); return; } + switch (this.currentCloneScope) { + case 'project': + await this.cloneBranchesToProjects(branches); + break; + case 'aircraft': + await this.cloneBranchesToAircrafts(branches); + break; + case 'container': + await this.cloneBranchesToContainers(branches); + break; + case 'config': + default: + await this.cloneBranchesToModuleFolders(branches); + break; + } + } + + /** + * 原有逻辑:在 ConfigView 中,把分支克隆为当前容器下的 git 模块文件夹 + */ + private async cloneBranchesToModuleFolders(branches: string[]): Promise { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + const url = this.currentRepoForBranches.url; const repoDisplayName = this.currentRepoForBranches.name; - + try { console.log('🚀 开始克隆分支:', { url, branches }); @@ -765,7 +807,7 @@ export class ConfigPanel { const progressPercent = (i / branches.length) * 100; progress.report({ increment: progressPercent, - message: `克隆分支: ${branch} (${i + 1}/${branches.length})` + message: `克隆分支: ${branch} (${i + 1}/${branches.length})` }); console.log(`📥 开始克隆分支: ${branch}`); @@ -779,7 +821,7 @@ export class ConfigPanel { this.currentRepoForBranches?.username, this.currentRepoForBranches?.token ); - + successCount++; console.log(`✅ 分支克隆成功: ${branch}`); } catch (error) { @@ -794,13 +836,264 @@ export class ConfigPanel { } else { vscode.window.showWarningMessage(`克隆完成: ${successCount} 个成功, ${failCount} 个失败`); } - + } catch (error) { console.error('❌ 克隆分支失败:', error); vscode.window.showErrorMessage(`克隆分支失败: ${error}`); } } + /** + * ProjectView 用:把分支克隆为完整项目 + * 每个分支会弹出一个路径输入框,克隆整个仓库到该路径,如果有 .dcsp-data.json 则自动加载为项目 + */ + private async cloneBranchesToProjects(branches: string[]): Promise { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + + const url = this.currentRepoForBranches.url; + + const tasks: { branch: string; targetPath: string }[] = []; + + for (const branch of branches) { + const pathInput = await vscode.window.showInputBox({ + prompt: `请输入分支 "${branch}" 的项目存储路径(绝对路径,系统将自动创建该文件夹)`, + placeHolder: `/path/to/your/project/${branch}`, + validateInput: (value) => { + if (!value) return '路径不能为空'; + return null; + } + }); + + if (!pathInput) { + vscode.window.showWarningMessage(`已取消分支 ${branch} 的克隆`); + continue; + } + + tasks.push({ branch, targetPath: pathInput }); + } + + if (tasks.length === 0) { + return; + } + + let successCount = 0; + let failCount = 0; + + await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: `正在克隆 ${tasks.length} 个项目分支`, + cancellable: false + }, async (progress) => { + for (let i = 0; i < tasks.length; i++) { + const { branch, targetPath } = tasks[i]; + progress.report({ + message: `克隆项目分支: ${branch} (${i + 1}/${tasks.length})` + }); + + try { + await GitService.cloneRepository( + url, + targetPath, + branch, + undefined, + this.currentRepoForBranches?.username, + this.currentRepoForBranches?.token + ); + + // 克隆完成后,尝试加载项目数据(如果有 .dcsp-data.json) + try { + const projectId = await this.projectService.loadProjectData(targetPath); + if (projectId) { + this.currentProjectId = projectId; + successCount++; + } else { + // 没有 dscp-data 也算成功克隆,只是不会自动出现在列表里 + successCount++; + } + } catch (err) { + console.warn('加载克隆项目数据失败:', err); + successCount++; + } + } catch (error) { + console.error(`❌ 项目分支克隆失败: ${branch}`, error); + failCount++; + } + } + }); + + await vscode.commands.executeCommand('workbench.files.action.refreshFilesExplorer'); + + if (failCount === 0) { + vscode.window.showInformationMessage(`成功克隆 ${successCount} 个项目分支`); + } else { + vscode.window.showWarningMessage(`项目克隆完成: ${successCount} 个成功, ${failCount} 个失败`); + } + + this.currentView = 'projects'; + this.updateWebview(); + } + + /** + * AircraftView 用:把分支克隆为当前项目下的飞行器 + * 目标路径:/<分支名>,克隆后自动解析容器/配置/模块,并写入 dscp-data.json + */ + private async cloneBranchesToAircrafts(branches: string[]): Promise { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + + if (!this.currentProjectId) { + vscode.window.showErrorMessage('请先选择项目'); + return; + } + + const projectPath = this.projectService.getProjectPath(this.currentProjectId); + if (!projectPath) { + vscode.window.showErrorMessage('未找到项目路径'); + return; + } + + const url = this.currentRepoForBranches.url; + const username = this.currentRepoForBranches.username; + const token = this.currentRepoForBranches.token; + + let successCount = 0; + let failCount = 0; + + await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: `正在克隆飞行器分支`, + cancellable: false + }, async (progress) => { + for (let i = 0; i < branches.length; i++) { + const branch = branches[i]; + const aircraftName = branch.trim(); + if (!aircraftName) continue; + + const localPath = path.join(projectPath, aircraftName); + + progress.report({ + message: `克隆飞行器分支: ${branch} (${i + 1}/${branches.length})` + }); + + try { + await GitService.cloneRepository( + url, + localPath, + branch, + undefined, + username, + token + ); + + await this.projectService.importAircraftFromExistingFolder(this.currentProjectId, aircraftName); + successCount++; + } catch (error) { + console.error(`❌ 飞行器分支克隆失败: ${branch}`, error); + failCount++; + } + } + }); + + await this.saveCurrentProjectData(); + await vscode.commands.executeCommand('workbench.files.action.refreshFilesExplorer'); + + if (failCount === 0) { + vscode.window.showInformationMessage(`成功克隆 ${successCount} 个飞行器`); + } else { + vscode.window.showWarningMessage(`飞行器克隆完成: ${successCount} 个成功, ${failCount} 个失败`); + } + + this.currentView = 'aircrafts'; + this.updateWebview(); + } + + /** + * ContainerView 用:把分支克隆为当前飞行器下的容器 + * 目标路径:/<当前飞行器名>/<分支名>,克隆后自动解析配置/模块,并写入 dscp-data.json + */ + private async cloneBranchesToContainers(branches: string[]): Promise { + if (!this.currentRepoForBranches) { + vscode.window.showErrorMessage('请先通过"获取仓库"选择一个仓库'); + return; + } + + if (!this.currentProjectId || !this.currentAircraftId) { + vscode.window.showErrorMessage('请先选择项目和飞行器'); + return; + } + + const projectPath = this.projectService.getProjectPath(this.currentProjectId); + if (!projectPath) { + vscode.window.showErrorMessage('未找到项目路径'); + return; + } + + const aircraftName = this.getAircraftName(); + if (!aircraftName || aircraftName === '未知飞行器') { + vscode.window.showErrorMessage('未找到当前飞行器名称'); + return; + } + + const url = this.currentRepoForBranches.url; + const username = this.currentRepoForBranches.username; + const token = this.currentRepoForBranches.token; + + let successCount = 0; + let failCount = 0; + + await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: `正在克隆容器分支`, + cancellable: false + }, async (progress) => { + for (let i = 0; i < branches.length; i++) { + const branch = branches[i]; + const containerName = branch.trim(); + if (!containerName) continue; + + const localPath = path.join(projectPath, aircraftName, containerName); + + progress.report({ + message: `克隆容器分支: ${branch} (${i + 1}/${branches.length})` + }); + + try { + await GitService.cloneRepository( + url, + localPath, + branch, + undefined, + username, + token + ); + + await this.projectService.importContainerFromExistingFolder(this.currentAircraftId, containerName); + successCount++; + } catch (error) { + console.error(`❌ 容器分支克隆失败: ${branch}`, error); + failCount++; + } + } + }); + + await this.saveCurrentProjectData(); + await vscode.commands.executeCommand('workbench.files.action.refreshFilesExplorer'); + + if (failCount === 0) { + vscode.window.showInformationMessage(`成功克隆 ${successCount} 个容器`); + } else { + vscode.window.showWarningMessage(`容器克隆完成: ${successCount} 个成功, ${failCount} 个失败`); + } + + this.currentView = 'containers'; + this.updateWebview(); + } + private async addGitModuleFolder( url: string, displayName: string, @@ -1484,6 +1777,10 @@ export class ConfigPanel { // ============================================= // Webview 更新方法 + // ============================================= + + // ============================================= + // Webview 更新方法 // ============================================= private updateWebview() { @@ -1515,8 +1812,12 @@ export class ConfigPanel { const project = this.projectService.getProjects().find(p => p.id === this.currentProjectId); const currentAircraft = this.projectService.getAircraftsByProject(this.currentProjectId) .find(a => a.id === this.currentAircraftId); - const projectContainers = this.projectService.getContainersByAircraft(this.currentAircraftId); - + + // ✅ 只在 UI 层隐藏名为 .git 的容器 + const projectContainers = this.projectService + .getContainersByAircraft(this.currentAircraftId) + .filter(c => c.name !== '.git'); + return this.containerView.render({ project: project, aircraft: currentAircraft, diff --git a/src/panels/services/GitService.ts b/src/panels/services/GitService.ts old mode 100644 new mode 100755 index ffdf027..1e6774a --- a/src/panels/services/GitService.ts +++ b/src/panels/services/GitService.ts @@ -1,3 +1,4 @@ +// src/panels/services/GitService.ts import * as fs from 'fs'; import git from 'isomorphic-git'; import http from 'isomorphic-git/http/node'; @@ -290,6 +291,10 @@ export class GitService { /** * 构建文件树 + * 这里显式忽略: + * - .git 目录 + * - .dcsp-data.json + * - 其它以 . 开头的隐藏文件/目录 */ static async buildFileTree(dir: string, relativePath: string = ''): Promise { try { @@ -297,9 +302,15 @@ export class GitService { const tree: GitFileTree[] = []; for (const file of files) { - if (file.startsWith('.') && file !== '.git') continue; + // 1. 不要解析 .git + if (file === '.git') continue; + + // 2. 不要解析项目数据文件 if (file === '.dcsp-data.json') continue; + // 3. 其它所有隐藏文件/目录统统忽略 + if (file.startsWith('.')) continue; + const filePath = path.join(dir, file); const stats = await fs.promises.stat(filePath); const currentRelativePath = path.join(relativePath, file); diff --git a/src/panels/services/ProjectService.ts b/src/panels/services/ProjectService.ts index 6242aa7..ba505a6 100644 --- a/src/panels/services/ProjectService.ts +++ b/src/panels/services/ProjectService.ts @@ -31,7 +31,7 @@ export class ProjectService { } // =============== 项目相关方法 =============== - + getProjects(): Project[] { return this.projects; } @@ -44,8 +44,8 @@ export class ProjectService { return this.projectPaths.get(projectId); } - setProjectPath(projectId: string, path: string): void { - this.projectPaths.set(projectId, path); + setProjectPath(projectId: string, pathStr: string): void { + this.projectPaths.set(projectId, pathStr); } async createProject(name: string): Promise { @@ -123,7 +123,7 @@ export class ProjectService { const aircraft = this.aircrafts.find(a => a.id === aircraftId); if (!aircraft) return false; - // ⚠️ 修正点:先在删除 containers 之前,算出要删的 containerIds + // ⚠️ 先算出要删的 containerIds const relatedContainers = this.containers.filter(c => c.aircraftId === aircraftId); const containerIds = relatedContainers.map(c => c.id); @@ -138,8 +138,56 @@ export class ProjectService { return true; } + /** + * 从已存在的磁盘目录导入飞行器 + * 不会创建/删除任何文件,只在内存中补充 Aircraft / Container / ModuleFolder 数据 + */ + async importAircraftFromExistingFolder(projectId: string, aircraftName: string): Promise { + // 已存在同名飞行器直接返回 + const existed = this.getAircraftsByProject(projectId).find(a => a.name === aircraftName); + if (existed) { + return existed.id; + } + + const newId = this.generateUniqueId('a', this.aircrafts); + const aircraft: Aircraft = { + id: newId, + name: aircraftName, + projectId + }; + this.aircrafts.push(aircraft); + + const projectPath = this.projectPaths.get(projectId); + if (!projectPath) { + return newId; + } + + const aircraftDir = path.join(projectPath, aircraftName); + if (!fs.existsSync(aircraftDir)) { + // 目录不存在就不再解析子目录 + return newId; + } + + // 每个子目录视为一个容器(排除 .git) + const entries = await fs.promises.readdir(aircraftDir, { withFileTypes: true }); + for (const entry of entries) { + if (!entry.isDirectory()) continue; + if (entry.name === '.git') continue; + + await this.importContainerFromExistingFolder(newId, entry.name); + } + + return newId; + } + // =============== 容器相关方法 =============== + /** + * ⚠️ 这里不再做 .git 过滤: + * - 我们只会通过 createContainer / importContainerFromExistingFolder 创建容器 + * - importContainerFromExistingFolder 内部已经排除了 .git + * 所以不会出现名字叫 ".git" 的容器 + */ getContainersByAircraft(aircraftId: string): Container[] { return this.containers.filter(c => c.aircraftId === aircraftId); } @@ -154,6 +202,7 @@ export class ProjectService { this.containers.push(newContainer); await this.createContainerDirectory(newContainer); + // UI 手动创建的容器,仍然保留“默认两个配置”的行为 await this.createDefaultConfigs(newContainer); return newId; @@ -179,6 +228,83 @@ export class ProjectService { return true; } + /** + * 从已存在的磁盘目录导入容器 + * + * ✅ 你的最新需求: + * - 不创建“默认两个配置” + * - 自动扫描容器目录下的『子文件夹』 + * - 每个子文件夹创建一个 ModuleFolder(type: 'local') + * - 排除 `.git` 子文件夹 + */ + async importContainerFromExistingFolder(aircraftId: string, containerName: string): Promise { + if (containerName === '.git') { + throw new Error('不能将 .git 导入为容器'); + } + + const existed = this.getContainersByAircraft(aircraftId).find(c => c.name === containerName); + if (existed) { + return existed.id; + } + + const newId = this.generateUniqueId('c', this.containers); + const container: Container = { + id: newId, + name: containerName, + aircraftId + }; + this.containers.push(container); + + // 🚩 关键逻辑:扫描容器目录下的子文件夹 -> 创建 ModuleFolder + await this.scanContainerModuleFolders(container); + + // 不再创建默认两个配置(不调用 createDefaultConfigs) + // 也不创建目录(目录是 Git 克隆出来的,本来就存在) + + return newId; + } + + /** + * 扫描容器目录中的子文件夹(不含 .git),将其作为本地模块文件夹记录 + */ + private async scanContainerModuleFolders(container: Container): Promise { + try { + const aircraft = this.aircrafts.find(a => a.id === container.aircraftId); + if (!aircraft) return; + + const projectPath = this.projectPaths.get(aircraft.projectId); + if (!projectPath) return; + + const containerDir = path.join(projectPath, aircraft.name, container.name); + if (!fs.existsSync(containerDir)) { + return; + } + + const entries = await fs.promises.readdir(containerDir, { withFileTypes: true }); + + for (const entry of entries) { + if (!entry.isDirectory()) continue; + if (entry.name === '.git') continue; + + const folderId = this.generateUniqueId('local-', this.moduleFolders); + const relativePath = `/${aircraft.projectId}/${aircraft.name}/${container.name}/${entry.name}`; + + const moduleFolder: ModuleFolder = { + id: folderId, + name: entry.name, + type: 'local', + localPath: relativePath, + containerId: container.id + }; + + this.moduleFolders.push(moduleFolder); + } + + } catch (error) { + console.error('扫描容器目录生成模块文件夹失败:', error); + } + } + // =============== 配置相关方法 =============== getConfigsByContainer(containerId: string): Config[] { @@ -329,6 +455,10 @@ export class ProjectService { } } + /** + * 仅用于「新建容器」时的默认两个配置 + * (导入容器时不会调用) + */ private async createDefaultConfigs(container: Container): Promise { this.configs.push({ id: this.generateUniqueId('cfg', this.configs), @@ -389,10 +519,12 @@ export class ProjectService { this.configs = this.configs.filter(cfg => !containerIds.includes(cfg.containerId)); this.moduleFolders = this.moduleFolders.filter(folder => !containerIds.includes(folder.containerId)); - // 加载新数据 + // ⭐ 载入新数据时顺便过滤掉名字为 ".git" 的容器(避免历史数据带进来) + const cleanedContainers = data.containers.filter(c => c.name !== '.git'); + this.projects.push(...data.projects); this.aircrafts.push(...data.aircrafts); - this.containers.push(...data.containers); + this.containers.push(...cleanedContainers); this.configs.push(...data.configs); this.moduleFolders.push(...data.moduleFolders); diff --git a/src/panels/views/AircraftView.ts b/src/panels/views/AircraftView.ts index f6cb493..1780373 100755 --- a/src/panels/views/AircraftView.ts +++ b/src/panels/views/AircraftView.ts @@ -1,4 +1,3 @@ -// src/panels/views/AircraftView.ts import { BaseView } from './BaseView'; import { AircraftViewData } from '../types/ViewTypes'; @@ -27,6 +26,7 @@ export class AircraftView extends BaseView { 飞行器配置 ${this.getStyles()} + ${this.getRepoSelectScript()} @@ -104,6 +179,21 @@ export class AircraftView extends BaseView { + +
+

🛫 飞行器云仓库

+
+

🔗 获取飞行器仓库

+
+ + + 从仓库配置中选择 Git 仓库,选择分支后可将飞行器代码克隆到当前项目下(以分支名作为飞行器名称) + +
+
+
+
+ `; } -} \ No newline at end of file +} diff --git a/src/panels/views/ContainerView.ts b/src/panels/views/ContainerView.ts index 6cf09ab..1d8b6c4 100755 --- a/src/panels/views/ContainerView.ts +++ b/src/panels/views/ContainerView.ts @@ -1,4 +1,3 @@ -// src/panels/views/ContainerView.ts import { BaseView } from './BaseView'; import { AircraftConfigData, ContainerViewData } from '../types/ViewTypes'; @@ -29,6 +28,117 @@ export class ContainerView extends BaseView { 容器管理 ${this.getStyles()} + ${this.getRepoSelectScript()} +
@@ -54,6 +164,21 @@ export class ContainerView extends BaseView { + +
+

📦 容器云仓库

+
+

🔗 获取容器仓库

+
+ + + 从仓库配置中选择 Git 仓库,选择分支后可将容器代码克隆到当前飞行器下(以分支名作为容器名称) + +
+
+
+
+ `; } -} \ No newline at end of file +} diff --git a/src/panels/views/ProjectView.ts b/src/panels/views/ProjectView.ts index 61378a6..1631fcb 100755 --- a/src/panels/views/ProjectView.ts +++ b/src/panels/views/ProjectView.ts @@ -1,4 +1,3 @@ -// src/panels/views/ProjectView.ts import { BaseView } from './BaseView'; import { ProjectViewData } from '../types/ViewTypes'; @@ -38,6 +37,7 @@ export class ProjectView extends BaseView { 数字卫星构建平台 ${this.getStyles()} + ${this.getRepoSelectScript()} @@ -126,6 +213,21 @@ export class ProjectView extends BaseView { + +
+

📚 项目云仓库

+
+

🔗 获取项目仓库

+
+ + + 从仓库配置中选择 Git 仓库,选择分支后可将完整项目克隆到本地(包含 dscp-data.json) + +
+
+
+
+ `; } -} \ No newline at end of file +}