Files
martial-mini/check-pages.js
2025-11-28 11:04:10 +08:00

205 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const fs = require('fs');
const path = require('path');
// 定义需要检查的页面列表
const pages = [
{
name: '首页(武术赛事通)',
path: 'pages/home/home.vue',
description: '包含轮播图、精品赛事列表'
},
{
name: '个人中心',
path: 'pages/profile/profile.vue',
description: '用户信息、我的报名、常用信息等功能入口'
},
{
name: '常用信息',
path: 'pages/common-info/common-info.vue',
description: '选手/集体/联系人信息管理含Tab切换'
},
{
name: '新增选手',
path: 'pages/add-player/add-player.vue',
description: '表单页面,包含证件类型、姓名、证件号码、队伍'
},
{
name: '编辑选手',
path: 'pages/edit-player/edit-player.vue',
description: '编辑选手信息'
},
{
name: '新增联系人',
path: 'pages/add-contact/add-contact.vue',
description: '包含手机号码、邮箱、地址、设置为默认联系人'
},
{
name: '我的报名',
path: 'pages/my-registration/my-registration.vue',
description: '全部/待开始/进行中/已结束四个Tab显示报名的赛事'
},
{
name: '全部赛事列表',
path: 'pages/event-list/event-list.vue',
description: '搜索框、日期和地区筛选'
},
{
name: '赛事详情',
path: 'pages/event-detail/event-detail.vue',
description: '赛事信息、信息发布、赛事规程等功能入口'
},
{
name: '选择报名类型',
path: 'pages/register-type/register-type.vue',
description: '单人赛/集体赛选择'
},
{
name: '选择报名项目',
path: 'pages/select-event/select-event.vue',
description: '列表形式选择报名项目'
},
{
name: '赛事报名流程',
path: 'pages/event-register/event-register.vue',
description: '三步骤:选择选手信息、订单支付、报名成功'
}
];
// 定义需要检查的组件列表
const components = [
{
name: '自定义导航栏',
path: 'components/custom-navbar/custom-navbar.vue'
},
{
name: 'Tab切换组件',
path: 'components/custom-tabs/custom-tabs.vue'
},
{
name: '确认弹窗组件',
path: 'components/confirm-modal/confirm-modal.vue'
}
];
// 定义需要检查的配置文件
const configs = [
{
name: 'pages.json',
path: 'pages.json'
},
{
name: 'manifest.json',
path: 'manifest.json'
},
{
name: 'App.vue',
path: 'App.vue'
},
{
name: 'main.js',
path: 'main.js'
},
{
name: 'uni.scss',
path: 'uni.scss'
},
{
name: 'index.html',
path: 'index.html'
},
{
name: 'package.json',
path: 'package.json'
}
];
function checkFile(filePath) {
const fullPath = path.join(__dirname, filePath);
return fs.existsSync(fullPath);
}
function generateReport() {
console.log('========================================');
console.log(' 武术赛事报名系统 - 页面完成度检查报告');
console.log('========================================\n');
let totalItems = 0;
let completedItems = 0;
// 检查配置文件
console.log('【配置文件检查】');
configs.forEach(config => {
totalItems++;
const exists = checkFile(config.path);
if (exists) {
completedItems++;
console.log(`${config.name}`);
} else {
console.log(`${config.name} [缺失]`);
}
});
console.log('\n【公共组件检查】');
components.forEach(component => {
totalItems++;
const exists = checkFile(component.path);
if (exists) {
completedItems++;
console.log(`${component.name}`);
} else {
console.log(`${component.name} [缺失]`);
}
});
console.log('\n【页面检查】');
pages.forEach((page, index) => {
totalItems++;
const exists = checkFile(page.path);
if (exists) {
completedItems++;
console.log(`${index + 1}. ${page.name}`);
console.log(` 描述: ${page.description}`);
console.log(` 路径: ${page.path}\n`);
} else {
console.log(`${index + 1}. ${page.name} [缺失]`);
console.log(` 描述: ${page.description}`);
console.log(` 路径: ${page.path}\n`);
}
});
const completionRate = ((completedItems / totalItems) * 100).toFixed(2);
console.log('========================================');
console.log('【统计信息】');
console.log(`总计项目: ${totalItems}`);
console.log(`已完成: ${completedItems}`);
console.log(`未完成: ${totalItems - completedItems}`);
console.log(`完成度: ${completionRate}%`);
console.log('========================================\n');
if (completedItems === totalItems) {
console.log('🎉 恭喜!所有页面和组件都已完成!');
console.log('\n【后续步骤】');
console.log('1. 运行 npm install 安装依赖');
console.log('2. 运行 npm run dev:h5 启动H5开发环境');
console.log('3. 运行 npm run dev:mp-weixin 启动微信小程序开发环境');
} else {
console.log('⚠️ 还有未完成的项目,请继续完善。');
}
console.log('\n【项目特点】');
console.log('✓ 支持H5和微信小程序');
console.log('✓ 基于uniapp框架开发');
console.log('✓ 完整的赛事报名流程');
console.log('✓ 选手和联系人信息管理');
console.log('✓ 响应式设计,一比一还原设计稿');
console.log('✓ 使用rpx单位自适应不同屏幕尺寸');
}
// 执行检查
try {
generateReport();
} catch (error) {
console.error('检查过程中出现错误:', error);
}