feat: 实现供水运营专题大屏BI可视化
- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
This commit is contained in:
+67
@@ -0,0 +1,67 @@
|
||||
// Porcess generated lib files.
|
||||
// Like adding js extension in the import statement.
|
||||
|
||||
const { transformImport } = require('./transformImport');
|
||||
const globby = require('globby');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const chalk = require('chalk');
|
||||
const rollup = require('rollup');
|
||||
const nodeResolve = require('@rollup/plugin-node-resolve').default;
|
||||
|
||||
function addJsExtension(moduleName) {
|
||||
// Ignore 'tslib'
|
||||
if (!(moduleName.startsWith('.'))) {
|
||||
return moduleName;
|
||||
}
|
||||
if (moduleName.endsWith('.ts')) {
|
||||
// Replace ts with js
|
||||
return moduleName.replace(/\.ts$/, '.js');
|
||||
}
|
||||
else if (moduleName.endsWith('.js')) {
|
||||
return moduleName;
|
||||
}
|
||||
else {
|
||||
return moduleName + '.js'
|
||||
}
|
||||
}
|
||||
|
||||
async function transform() {
|
||||
const libFiles = await globby([
|
||||
'**/*.js'
|
||||
], {
|
||||
cwd: path.join(__dirname, '../lib'),
|
||||
absolute: true
|
||||
});
|
||||
|
||||
if (libFiles.length === 0) {
|
||||
throw new Error('No lib files found.')
|
||||
}
|
||||
|
||||
for (let file of libFiles) {
|
||||
const code = fs.readFileSync(file, 'utf-8');
|
||||
fs.writeFileSync(file, transformImport(code, addJsExtension), 'utf-8');
|
||||
}
|
||||
|
||||
// Transform index;
|
||||
const indexFile = path.join(__dirname, '../index.js');
|
||||
fs.writeFileSync(
|
||||
indexFile,
|
||||
transformImport(
|
||||
fs.readFileSync(indexFile, 'utf-8'),
|
||||
(mduleName) => addJsExtension(mduleName).replace('./src', './lib')
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
transform().then(() => {
|
||||
console.log(chalk.green('Added .js extensions.'));
|
||||
console.log(chalk.gray('Start testing generated libs...'));
|
||||
}).then(() => {
|
||||
return rollup.rollup({
|
||||
input: path.resolve(__dirname, '../index.js'),
|
||||
plugins: [nodeResolve()]
|
||||
});
|
||||
}).then(() => {
|
||||
console.log(chalk.green('Libs can be bundled!'));
|
||||
});
|
||||
Reference in New Issue
Block a user