| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const fs = require('fs')
- const path = require('path')
- const baseDir = path.resolve(__dirname, '../src/views/elderly/apply/nine-precautions')
- const dirs = fs.readdirSync(baseDir).filter(d => fs.statSync(path.join(baseDir, d)).isDirectory())
- dirs.forEach(dir => {
- const filePath = path.join(baseDir, dir, 'index.vue')
- if (!fs.existsSync(filePath)) return
- let content = fs.readFileSync(filePath, 'utf-8')
- let modified = false
- // 1. 移除 BatchExportDialog 组件(支持有无注释前缀)
- const batchDialogRegex = /(\s*<!-- 通用批量导出弹窗 -->\s*)?<BatchExportDialog[\s\S]*?<\/BatchExportDialog>/
- if (batchDialogRegex.test(content)) {
- content = content.replace(batchDialogRegex, '')
- modified = true
- }
- // 2. 修复 ButtonAdd 后未自动导入 ButtonImport 的情况( nutritional-risk 等)
- if (content.includes('<ButtonImport') && !content.includes("import ButtonImport from '@/components/ButtonImport/src/ButtonImport.vue'")) {
- // 在 script 标签后的第一行 import 处插入
- content = content.replace(
- '<script setup lang="ts">',
- '<script setup lang="ts">\nimport ButtonImport from \'@/components/ButtonImport/src/ButtonImport.vue\''
- )
- modified = true
- }
- // 3. 移除旧的空壳 handleImportCard / handleBatchExport 残留
- const oldHandleRegex = /\/\/ 打开导出弹窗\s*const handleImportCard = async \(\) => \{[\s\S]*?\}\s*/
- if (oldHandleRegex.test(content)) {
- content = content.replace(oldHandleRegex, '')
- modified = true
- }
- // 4. 整理 headers 缩进:将 6 空格缩进的单引号 key/title 改为 2 空格
- content = content.replace(/\n 'key': /g, "\n 'key': ")
- content = content.replace(/\n 'title': /g, "\n 'title': ")
- // 5. 修正 div 闭合标签缩进:将 ButtonImport 后的 </div> 单独一行并正确缩进
- content = content.replace(
- /(<ButtonImport @click="handleImportCard" \/>)\n <!-- <el-button @click="inputH" type="success">.*<\/el-button>-->\n<\/div>/g,
- '$1\n </div>'
- )
- // 兜底:把 "-->\n</div>" 替换为 "-->\n </div>"
- content = content.replace(/-->\n<\/div>/g, '-->\n </div>')
- // 6. 将 exportData.map 中的 const row = { ... } 改为 const row: any = { ... }
- content = content.replace(
- /const processedData = exportData\.map\(\(item\) => \{\n const row = \{/g,
- 'const processedData = exportData.map((item) => {\n const row: any = {'
- )
- if (modified || content !== fs.readFileSync(filePath, 'utf-8')) {
- fs.writeFileSync(filePath, content, 'utf-8')
- console.log(`已清理:${filePath}`)
- }
- })
|