{"_id":"@borurio-print/print-designer","_rev":"3-bb599e33b925377e36d7d3d29e099344","name":"@borurio-print/print-designer","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@borurio-print/print-designer","version":"1.0.0","_id":"@borurio-print/print-designer@1.0.0","maintainers":[{"name":"shenjinya","email":"tangqinji2001@gmail.com"}],"dist":{"shasum":"4622b5122cc1b81661ef628b7d079c0bb23bf4c9","tarball":"https://registry.npmjs.org/@borurio-print/print-designer/-/print-designer-1.0.0.tgz","fileCount":45,"integrity":"sha512-l4l+uyfV40IUvlq4AT+fyPe1G8WON7fEeHzaOsDcxgZul0g1XpTZgT+PvV2VtGyP2VC87w0Xe/YVz/Ucxve00Q==","signatures":[{"sig":"MEYCIQDy31ley1E5471TLssfp0HdLmr3wo10Gpwf4FLv0CpPWwIhAM1HpfSrNQZ9nq5CUghtlJ4gvTnOhT3x17qk337OPvAN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1354827},"main":"./dist-lib/index.js","type":"module","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/style.css"},"private":false,"scripts":{"dev":"vite","build":"pnpm build:lib && pnpm build:web","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts && vue-tsc -p tsconfig.lib.json","build:web":"vite build && vue-tsc -p tsconfig.app.json --noEmit","type-check":"vue-tsc -p tsconfig.app.json --noEmit"},"_npmUser":{"name":"shenjinya","email":"tangqinji2001@gmail.com"},"description":"A Vue 3 label print designer with PDF preview support.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"jspdf":"^4.2.1","qrcode":"^1.5.4","jsbarcode":"^3.12.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","vite":"^7.0.0","vue-tsc":"^3.0.0","vue-i18n":"^11.0.0","typescript":"~5.9.0","@types/node":"^22.0.0","element-plus":"^2.14.5","@types/qrcode":"^1.5.6","@vue/tsconfig":"^0.8.0","@tsconfig/node22":"^22.0.0","@types/jsbarcode":"^3.11.4","@vitejs/plugin-vue":"^6.0.0","unplugin-auto-import":"^21.1.0","unplugin-vue-components":"^32.1.0"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^11.0.0","element-plus":"^2.14.5"},"_npmOperationalInternal":{"tmp":"tmp/print-designer_1.0.0_1788509904641_0.09501842225089296","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@borurio-print/print-designer","version":"1.0.1","_id":"@borurio-print/print-designer@1.0.1","maintainers":[{"name":"shenjinya","email":"tangqinji2001@gmail.com"}],"dist":{"shasum":"e271df952ac5b0ac5faf10148aeb349e483ff971","tarball":"https://registry.npmjs.org/@borurio-print/print-designer/-/print-designer-1.0.1.tgz","fileCount":45,"integrity":"sha512-uZ5GxQs4ZrZVbzu9tmqaDDD/nYzVvZwMDh+r0+s49/rphFEPjOJzFuQZlxDNjGI6TLpYoO/RZTED8qjdAxrQwg==","signatures":[{"sig":"MEYCIQDNHueYNKb4umkFw4kSSZ4yAcEZurRZl8TDThlBWSwrJQIhAOR/wcQSZWaC7jHZ8rsOt1WAoV8z9hL1qQVKLcqP8eeT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1354900},"main":"./dist-lib/index.js","type":"module","types":"./dist-lib/index.d.ts","module":"./dist-lib/index.js","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/style.css"},"private":false,"scripts":{"dev":"vite","build":"pnpm build:lib && pnpm build:web","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts && vue-tsc -p tsconfig.lib.json","build:web":"vite build && vue-tsc -p tsconfig.app.json --noEmit","type-check":"vue-tsc -p tsconfig.app.json --noEmit"},"_npmUser":{"name":"shenjinya","email":"tangqinji2001@gmail.com"},"description":"A Vue 3 label print designer with PDF preview support.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"jspdf":"^4.2.1","qrcode":"^1.5.4","jsbarcode":"^3.12.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","vite":"^7.0.0","vue-tsc":"^3.0.0","vue-i18n":"^11.0.0","typescript":"~5.9.0","@types/node":"^22.0.0","element-plus":"^2.14.5","@types/qrcode":"^1.5.6","@vue/tsconfig":"^0.8.0","@tsconfig/node22":"^22.0.0","@types/jsbarcode":"^3.11.4","@vitejs/plugin-vue":"^6.0.0","unplugin-auto-import":"^21.1.0","unplugin-vue-components":"^32.1.0"},"peerDependencies":{"vue":"^3.5.0","vue-i18n":"^9.0.0 || ^10.0.0 || ^11.0.0","element-plus":"^2.14.5"},"_npmOperationalInternal":{"tmp":"tmp/print-designer_1.0.1_1788512251680_0.8646206479762215","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@borurio-print/print-designer","private":false,"version":"1.0.2","description":"A Vue 3 label print designer with PDF preview support.","type":"module","sideEffects":["**/*.css"],"main":"./dist-lib/index.js","module":"./dist-lib/index.js","types":"./dist-lib/index.d.ts","exports":{".":{"types":"./dist-lib/index.d.ts","import":"./dist-lib/index.js"},"./style.css":"./dist-lib/style.css"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"element-plus":">=2.3.2 <3.0.0","vue":">=3.2.45 <4.0.0","vue-i18n":">=9.2.2 <12.0.0"},"devDependencies":{"@tsconfig/node22":"^22.0.0","@types/jsbarcode":"^3.11.4","@types/node":"^22.0.0","@types/qrcode":"^1.5.6","@vitejs/plugin-vue":"^6.0.0","@vue/tsconfig":"^0.8.0","element-plus":"^2.14.5","jsbarcode":"^3.12.3","jspdf":"^4.2.1","qrcode":"^1.5.4","typescript":"~5.9.0","unplugin-auto-import":"^21.1.0","unplugin-vue-components":"^32.1.0","vite":"^7.0.0","vue":"^3.5.0","vue-i18n":"^11.0.0","vue-tsc":"^3.0.0"},"scripts":{"dev":"vite","build":"pnpm build:lib && pnpm build:web","build:web":"vite build && vue-tsc -p tsconfig.app.json --noEmit","build:lib":"vite build --config vite.lib.config.ts && vue-tsc -p tsconfig.lib.json","preview":"vite preview","type-check":"vue-tsc -p tsconfig.app.json --noEmit"},"_nodeVersion":"22.16.0","_id":"@borurio-print/print-designer@1.0.2","dist":{"integrity":"sha512-m1QTonhRj2x0yLZ8ctLMLpAl1DtEEtu9nVbaNo5DdLjyfGhUK+uXNt7bMrNjmA3OXOXa1kA6Q4IfBybciM65Tw==","shasum":"c938b0684ea071d2139b014fed81825e8d8f676b","tarball":"https://registry.npmjs.org/@borurio-print/print-designer/-/print-designer-1.0.2.tgz","fileCount":45,"unpackedSize":1355622,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEen2RU1Lrb5ZFcDU+i7rjDA0osHxFJyXC8mQnDu2KN+AiEAgGisezk+RRzJgexj+lHAm7nW7cGKXmA6t/siqtF4BGY="}]},"_npmUser":{"name":"shenjinya","email":"tangqinji2001@gmail.com"},"directories":{},"maintainers":[{"name":"shenjinya","email":"tangqinji2001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/print-designer_1.0.2_1788516080124_0.30399932143352815"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-04T08:18:24.474Z","modified":"2026-09-04T10:01:20.427Z","1.0.0":"2026-09-04T08:18:24.791Z","1.0.1":"2026-09-04T08:57:31.816Z","1.0.2":"2026-09-04T10:01:20.270Z"},"description":"A Vue 3 label print designer with PDF preview support.","maintainers":[{"name":"shenjinya","email":"tangqinji2001@gmail.com"}],"readme":"# Borurio Print Designer\n\n这是一个 Vue 3 标签打印设计器基础项目，同时支持独立 Web/iframe 页面和 npm 组件包两种使用方式。\n\n## 入口说明\n\n- `src/main.ts`：独立 Web/iframe 入口，创建 Vue 应用并挂载到 `#app`。\n- `src/index.ts`：npm 包入口，只导出组件、类型和语言包，不创建应用。\n- `src/PrintDesigner.vue`：设计器根组件，持有模板、网格和缩放状态。\n\n## 目录职责\n\n- `src/components`：可跨业务模块复用的基础组件，目前包含 Symbol 图标组件。\n- `src/core`：与界面无关的领域类型。\n- `src/locales`：中英文语言包及独立 Web 模式的 i18n 实例。\n- `src/views/print-designer/components`：打印设计器内部使用的界面组件。\n- `src/assets/iconfont`：Iconfont 平台生成的本地 Symbol 脚本，不建议手动修改。\n\n## 构建配置\n\n- `vite.config.ts`：生成可部署到服务器并通过 iframe 打开的 `dist`。\n- `vite.lib.config.ts`：从 `src/index.ts` 生成 npm 使用的 `dist-lib`。\n- `tsconfig.app.json`：检查 Web 应用源码，不输出文件。\n- `tsconfig.lib.json`：为 npm 包生成 TypeScript 声明文件。\n- `tsconfig.node.json`：检查 Vite 配置文件。\n\n## 常用命令\n\n- `pnpm dev`：启动本地 Web 开发服务。\n- `pnpm build:web`：构建 iframe/Web 版本并执行类型检查。\n- `pnpm build:lib`：构建 npm 版本并生成类型声明。\n- `pnpm build`：依次构建 npm 和 Web 两种版本。\n\n## npm 包使用\n\n当前包名为 `@borurio-print/print-designer`。业务项目需要已安装下列 peer dependencies：\n\n- Vue `>=3.2.45 <4.0.0`\n- Element Plus `>=2.3.2 <3.0.0`\n- vue-i18n `>=9.2.2 <12.0.0`\n\n```bash\nnpm install @borurio-print/print-designer\n```\n\n如果业务项目尚未安装上述 peer dependencies，再按 npm 提示补充安装。\n二维码、条形码和 PDF 生成库已包含在设计器产物中，业务项目无需另行安装。\n\n在 Vue 页面中引入组件和独立样式文件：\n\n```vue\n<script setup lang=\"ts\">\nimport { PrintDesigner } from '@borurio-print/print-designer'\nimport '@borurio-print/print-designer/style.css'\n</script>\n\n<template>\n  <div class=\"print-designer-page\">\n    <PrintDesigner />\n  </div>\n</template>\n\n<style scoped>\n.print-designer-page {\n  width: 100%;\n  height: 100vh;\n}\n</style>\n```\n\n组件使用业务应用已经注册的 `vue-i18n` 实例。业务应用需要把组件语言包合并到\n对应语言中：\n\n```ts\nimport { createI18n } from 'vue-i18n'\nimport {\n  enUS as printDesignerEnUS,\n  zhCN as printDesignerZhCN,\n} from '@borurio-print/print-designer'\n\nconst i18n = createI18n({\n  legacy: false,\n  locale: 'zh-CN',\n  messages: {\n    'zh-CN': printDesignerZhCN,\n    'en-US': printDesignerEnUS,\n  },\n})\n\napp.use(i18n)\n```\n\n如果业务应用已经存在语言包，可以使用 `mergeLocaleMessage` 合并，避免覆盖原有文案：\n\n```ts\ni18n.global.mergeLocaleMessage('zh-CN', printDesignerZhCN)\ni18n.global.mergeLocaleMessage('en-US', printDesignerEnUS)\n```\n\n如果业务系统使用 `zh-cn` 和 `en` 作为语言代码，则按实际代码合并：\n\n```ts\ni18n.global.mergeLocaleMessage('zh-cn', printDesignerZhCN)\ni18n.global.mergeLocaleMessage('en', printDesignerEnUS)\n```\n\n## npm 发布\n\n首次发布前，需要确认当前 npm 账号拥有 `@borurio-print` 组织作用域的发布权限。先登录并检查\n即将进入安装包的文件：\n\n```bash\nnpm login\npnpm build:lib\nnpm pack --dry-run\n```\n\n确认内容无误后发布公开包：\n\n```bash\npnpm publish --access public\n```\n\n同一个版本号不能重复发布；后续修改需要先更新 `package.json` 中的版本号。\n\n## 自动生成文件\n\n`src/auto-imports.d.ts` 和 `src/components.d.ts` 由自动按需引入插件生成；`pnpm-lock.yaml` 由 pnpm 生成。这些文件不应手动添加说明或修改内容。\n","readmeFilename":""}