From 090a8353a3ea72bc825acb18513db1ba58e81557 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 13 Nov 2024 11:08:21 +0800 Subject: [PATCH] =?UTF-8?q?Feat:=20=E5=A4=9A=E8=AF=AD=E8=A8=80=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=A2=9E=E5=8A=A0=E8=BF=87=E6=BB=A4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/xcmd.js | 24 +++++++--- package.json | 2 +- utils/data.js | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 138 insertions(+), 8 deletions(-) create mode 100644 utils/data.js diff --git a/bin/xcmd.js b/bin/xcmd.js index 9f81309..743c70f 100644 --- a/bin/xcmd.js +++ b/bin/xcmd.js @@ -4,7 +4,7 @@ * @Author: HxB * @Date: 2022-04-25 16:27:06 * @LastEditors: DoubleAm - * @LastEditTime: 2024-11-03 16:44:49 + * @LastEditTime: 2024-11-13 10:58:05 * @Description: 命令处理文件 * @FilePath: \js-xcmd\bin\xcmd.js */ @@ -34,6 +34,7 @@ const { cmd } = require('../utils/cmd'); const { node2es6, sortJSON, mergeObj, versionUpgrade, isValidJson, jsonToExcel } = require('../utils/tools'); const { extractParamsFromFiles } = require('../utils/ast'); const { downloadTpl } = require('../utils/tpl'); +const { FILTER_KEYS } = require('../utils/data'); const nodeCmd = require('node-cmd'); const readline = require('readline'); @@ -708,15 +709,24 @@ program }); program - .option('json2excel [jsonFilePath]', 'json2excel [jsonFilePath]') - .command('json2excel [jsonFilePath]') + .option('json2excel [jsonFilePath] [notFilter]', 'json2excel [jsonFilePath] [notFilter]') + .command('json2excel [jsonFilePath] [notFilter]') .description('将 JSON 数据转化为 Excel') - .action((projectCode, jsonFilePath) => { + .action((projectCode, jsonFilePath, notFilter) => { + notFilter = `${notFilter}` === 'true'; if (!projectCode) { console.error('请提供 Project Code'); return; } + const _filterJsonData = (data) => { + if (notFilter) return data; + FILTER_KEYS.forEach((key) => { + delete data[key]; + }); + return data; + }; + if (!jsonFilePath) { // 如果未提供JSON文件路径,则提示输入JSON内容 const rl = readline.createInterface({ @@ -727,7 +737,7 @@ program rl.question('请输入 JSON 数据: \n', (jsonData) => { rl.close(); if (isValidJson(jsonData)) { - jsonToExcel(projectCode, JSON.parse(jsonData)); + jsonToExcel(projectCode, _filterJsonData(JSON.parse(jsonData))); } else { console.error('输入的内容不是有效的JSON格式'); } @@ -736,7 +746,7 @@ program const filePath = getResolvePath(jsonFilePath); const jsonData = getJSONFileObj(filePath); if (jsonData) { - jsonToExcel(projectCode, jsonData); + jsonToExcel(projectCode, _filterJsonData(jsonData)); } else { console.error('JSON 文件中的内容不是有效的 JSON 格式'); } @@ -751,7 +761,7 @@ program listData?.forEach((i) => { jsonData[i] = i; }); - jsonToExcel(projectCode, jsonData); + jsonToExcel(projectCode, _filterJsonData(jsonData)); } }); diff --git a/package.json b/package.json index bac2e2c..3efa25e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "js-xcmd", - "version": "1.5.15", + "version": "1.5.16", "description": "XCmd library for node.js.", "main": "main.js", "bin": { diff --git a/utils/data.js b/utils/data.js new file mode 100644 index 0000000..1c52015 --- /dev/null +++ b/utils/data.js @@ -0,0 +1,120 @@ +const FILTER_KEYS = [ + '首页', + '上一步', + '下一步', + '返回', + '上一页', + '下一页', + '跳转', + '文件', + '下载', + '生效', + '失效', + '启用', + '停用', + '禁用', + '是', + '否', + '性别', + '男', + '女', + '开启', + '关闭', + '退出', + '状态', + '国家', + '重置', + '搜索', + '查询', + '查看', + '新增', + '编辑', + '删除', + '批量导入', + '批量导出', + '导入', + '导出', + '导出选中', + '导出全部', + '全部', + '操作完成', + '成功', + '失败', + '请输入', + '请选择', + '确认', + '确定', + '取消', + '保存', + '提交', + '清空', + '详情', + '操作', + '操作人', + '创建人', + '创建时间', + '更新人', + '更新时间', + '日期', + '时间', + '年', + '月', + '日', + '时', + '分', + '小时', + '分钟', + '秒', + '毫秒', + '星期', + '星期一', + '星期二', + '星期三', + '星期四', + '星期五', + '星期六', + '星期日', + '星期天', + '放大', + '缩小', + '最小化', + '最大化', + '排序', + '名称', + '备注', + '选择', + '加载中', + '筛选', + '刷新', + '选择文件', + '处理中', + '继续', + '停止', + '跳过', + '全选', + '反选', + '反馈', + '照片', + '图片', + '请上传', + '基础信息', + '基本信息', + '省', + '州', + '市', + '区', + '城市', + '街道', + '点击上传', + '经度', + '纬度', + '可选', + '已选', + '关联', + '不关联', + '请输入必填项', + '请输入正确的格式', + '数据填写不完整请检查并补充所有必填项' +]; + +module.exports = { FILTER_KEYS };